Hello, I am attempting to make a vocoder inside of pure data, I understand (I think) how a vocoder should work, ie you press the vocal signal through an amount of bandpass filters and then through an envelope follower, while passing the carrier signal through the same set of filters but without the envelope follower, I have done this and connected the envelope follower to my amplifier object but simply get a static noice that slightly dips and falls with the vocal. Any help would be greatly appreciated. Vocoder2.pd This is my attempt
-
Attempting to make a vocoder, HELP
-
@Anonymoist see (for old style vocoder) /pd/doc/7.stuff/soundfile-tools/6.vocoder.pd
There are phase vocoders in /pd/doc/3.audio.examples as well......
David. -
an external that could help simplify a vocoder to a large degree would be fiddle~. If the sound you are getting from your patch is static or crackly, you might check your buffer size, adjust the amout of lookahead/latency and double check your audio settings, taking care to select an appropriate block size.
-
I tried messing around with your patch and got good results when I
-replaced env~ with a peak envelope follower (highest~ from my library) rather than an rms one
-used 2 filters everywhere there is 1
-set the q to 10-15 in each bandpass filter
-use a line~ after the envelope follower to convert to signal that has interpolation time equal to the rate of output of the envelope follower
-use a[lop~ 10]
between[line~]
and[*~ ]
to take the high frequencies out of the line~ signal (which has first-derivative discontinuities)
I used a block size of 64 for the envelope follower -
Here it is,
vocode.zip
I also put smaller block sizes for the higher frequencies to catch transients better & larger for low frequencies so that they are read correctly, you need my lib mainly for the highest~ peak envelope follower -
This is infinitely helpful thank you!