Scalable vocoder
Keen6
Posts: 5
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.
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
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
The assembly part was what i was afraid of 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.
To PASM part You can use BEAN's PropBasic.
In most cases it will give You PASM code that are very understandable.
@Sapieha; Thanks, I've read a bit about PropBasic but for some reason completely forgot about it. Will definitely look into it!