Shop OBEX P1 Docs P2 Docs Learn Events
Scalable vocoder — Parallax Forums

Scalable vocoder

Keen6Keen6 Posts: 5
edited 2010-09-16 06:27 in Propeller 1
Hi. I'm new to the Propeller chip, and trying to find out how i can use it for some audio experiments. (I've read about the related projects on the forum)

One idea that i had was to make a vocoder; split 2 signals in fixed frequency bands, and apply the amplitude of the first signals bands to the second signal (very dodgy explanation). Since i havent worked on this before i have no idea how many bands a propeller chip is capable of processing. So my first question is; Has anyone tried a similar project? what's your experience?

and my other question is; if i manage to get this working, would it be possible to use multiple chips to process more bands? I think that would require sharing memory as well.. but i couldnt find anything on this.

Excuse me if im asking silly things.

Comments

  • AribaAriba Posts: 2,690
    edited 2010-09-13 20:19
    Hello Keen6

    A vocoder would be a very interesting audio project for the propeller.
    But this must be done in Assembly and you nee some knowledge of digital filters.
    Unfortunatly the Propeller has no hardware multipliers, this is the most limiting factor for the number of bands.
    One cog can do about 12..20 multiplications in a sample periode of 32 kHz, and one filter needs 3 multiplications. So I think max. 6 filters in 1 cog is realistic.
    This makes for a 12 band vocoder: 2 cogs for analysis part and 3 cogs for the synthesis part (2 for the filters, 1 for the modulators and mixing).

    Leaves enough cogs to implement also a little synthesizer which provides the carrier signal ;)

    Andy
  • Keen6Keen6 Posts: 5
    edited 2010-09-14 04:35
    Thanks for the reply Ariba!

    The assembly part was what i was afraid of :lol: since I only have an basic understanding of programming, synthesis, and electronics. But i figured its a pretty 'modular' or scalable concept, and its always nice to learn something new :smilewinkgrin:

    Your answer is really helpful, especially with the multiplications per cog. It made me wonder though, what amount of bands would be possible using just SPIN. If it's half that of a assembly coded version, i would have no problem splitting the original signals over 2 propellers running parallel.
  • SapiehaSapieha Posts: 2,964
    edited 2010-09-14 05:49
    Hi Keen6.

    To PASM part You can use BEAN's PropBasic.
    In most cases it will give You PASM code that are very understandable.

    Keen6 wrote: »
    Thanks for the reply Ariba!

    The assembly part was what i was afraid of :lol: since I only have an basic understanding of programming, synthesis, and electronics. But i figured its a pretty 'modular' or scalable concept, and its always nice to learn something new :smilewinkgrin:

    Your answer is really helpful, especially with the multiplications per cog. It made me wonder though, what amount of bands would be possible using just SPIN. If it's half that of a assembly coded version, i would have no problem splitting the original signals over 2 propellers running parallel.
  • HarleyHarley Posts: 997
    edited 2010-09-14 10:27
    Google vocoder for loads of info which may help your project.
  • Keen6Keen6 Posts: 5
    edited 2010-09-16 06:27
    @Harley: I have been 'googling' my #ss off. :yeah: There is indeed a lot of (useful) info about Vocoders out there! I've found some examples in C(++), but it still a bit daunting.

    @Sapieha; Thanks, I've read a bit about PropBasic but for some reason completely forgot about it. Will definitely look into it!
Sign In or Register to comment.