Anyone? Please! How to?
How to patch a Vocoder
While a vocoder can be patched, currently a dedicated object would be more efficient.
I started working on a 24-channel vocoder long time ago, and it is hidden somewhere in the source code, but it is not quite ready for general consumption. Maybe someone with DSP and coding skills could have a look at it?
If somebody does get to work on this patch, it would be fantastic if it implemented Linear Predictive Coding. Bitspeek and mda talkbox (now open source!) use it to create much more intelligible vocoder effects. It's fairly cheap as formant analysis goes, and uses autocorrelation (simple matrix operations) to shift the filter frequencies toward predicted values.
Disp/ibar 64 - extracting data and coding events
Here's a rough version of an 8-band vocoder patch I'm making for my book on Axoloti. Please note that it's not finished yet, but it will give you an idea of how a vocoder works. I still need to tweak the bandpass filters and the synthesizer voice to make it sound better.
If you modify the patch and find the best possible settings, post them back in this thread. Have fun!
vocoder-synthvoice.axs (4.8 KB) vocoder-002.axp (16.8 KB)
I was also interested in building a vocoder and I came up with a similar patch, with equally underwhelming results. Maybe my hardware is defective, but neither my attempt nor yours seem to elicit much of a vocoder-like sound. My output is also very choppy. Do you have any idea about why? Maybe the k-rate output of the follower is too slow and thus a problem?
Unfortunately, I don't have any practical experiences with vocoders and based my attempt on high-level descriptions of how they work. Maybe I'm missing some very important point.
- Your envelope followers are configured way too fast. I suggest 10ms or 20ms as a starting point.
- A single 2nd order bandpass filter has only 6dB/oct slope (on both sides), so the selectivity is very low. Better to cascade two bandpass filters per band.
- A 5kHz (cheap) saw wave as carrier does not have (much) low-frequency content below 5kHz, low-pitched carriers with a lot of harmonic content are more effective
- bp_7 and bp_16 are off tune
Do you get clean sound out of other patches? If not, make sure you connect line out to other equipment, not headphone out, and use a stereo splitter cable. Connecting a mono cable to line out results in distorted sound.
Check that if you just pass audio in to audio out through a patch that it sounds clean.
add a (bandpass filtered) noise OSC to imitate 'S' sounds (and other sharper sound).
mostly somewhere between 4-10kHz .
A question about bandpass filters: If I want to create a band of 200Hz to 400Hz, how do I need to tune it? The bandpass filters for Axoloti only have one pitch dial, so I'm having a hard time to figure this out. In Ableton Live, I usually use the EQ8 where I can specify the lower and upper frequency for the band.
bandpass filters have a Q factor (bandwidth relative to its center
frequency) . 1.4 is about 1 octave (so lower limit is 0.5 * center
frequency, upper is 2x the frequency), 0.667 is 2 octaves.
If you can set lower and higher ranges in Ableton then it is probably just a HP and a LP filter , not a bandpass.
Hi,
thank you for the lession here my first result. I have patch for each band 3 BPF serial and save it as subpatch. But it needs much power of cpu. At first i want 10 Bands but it was too much and i got the SRAM-Error. Would it be an solution to use FIR-Filter for the analyses part with the right set of the coefficent? My next question would be how i can set the coefficients in object fir-filter?
thank you all
vocoderosc.axs (3.2 KB) BP_Vocoder.axs (15.0 KB) vocoder.axp (12.4 KB)
vocoder.axp (12.9 KB)vocoderosc.axs (3.8 KB)BP_Vocoder.axs (19.1 KB)
A very small update of the vocoder. Just improve the handling over parameter parent and preset. But is nice to play with it.
There are some pretty good ideas in this patch. Was wondering if the same technique could be used to make a pitch shifter?
I read a little bit about it and a pitch shifter seems to need to know the pitch of the incoming signal, so some kind of analyzes need to be done to the input, so that the slave oscillator is in tune with the input... And then we can detune pitch shift or whatever.... Not really sure how to do the analyzes part, though... I think an envelope follower is also needed, like in the vocoder patch, right?
The analyzing in the vocoder is based on static filters, which does not change according to the pitch of the incoming signal, right?
@janvantomme, would you know how to create a pitch shifter?
Thanks
Yes it is atough one 😎 Going to read some more about it. There are probably different approaches.
Regarding the issue with the hi pass and lo pass..... You could just create a hp m and a lp m and set the frequenzy interval you'd like.. for example if you set the Hipass to 200hz and the Lo pass to 400 hz...you have a band of 2oohz......and then connect ONE dial to both of them. The you can control Hp and Lp with same knob it give you a broader range and more control than regular bandpass.
Hi , first , your envelope follower are too fast . 1,3 ms is 769 HZ .
Play a little with this values . For a 20 HZ Filter you need only a
20 HZ follower . For a 70 hz filter a 70 hz follower and so on.
It is very tricky to find the right values . Longer values - longer times- gives more a singing sound , shorter values the direct charakteristic frol the spoken words . If the values are too short, you modulate the synthesis filter (AC) with the frequence from the analysis filter. Than you got an Amplituden modulation and this dosn't sounds good .
Than , for speech synthesis remember than this frequency is in a range from 100...3000 hz
You can tune also the filter like normal notes above 2 octave. This can give a chord .
Than a trick . each second Filteroutput should be inverted and than add to the sum .
Synthesis Filter 1,3,5,7, is positive, 2,4,6,8 audio outputs are inverted . This was the same in the Elektor vocoder .
There was a Vocoder DIY in the Elektror from the 1980th . This had an interesting schematic
Your Basics are OK but the fine tunning must be done.
Than pitch shifting, or >>better formant shifting:. You can do it if you control all synthesis !!! filter simila.( not the analysis filter) It is not the Cheer Effect , but you can move your voice sound from a child to a man to a women .
Example Filter 1= 100 HZ , Filter 2 is 150 Hz , Filter 3= 400 Hz...4.5.6.7.8.
If you now control all Filter with the same Voltage but in V/OCT
you get 200,300.800,,,,,,,,,,,,,, and in the end you do a formant shifting. Because the analysis filter are the same , but the synthesis filter can move up or down .
Pitch shifting , This is possible only with the carrier. If you have a three osc carrier , you can sing with three voices in a chord . I suggest you a superwave osc .
Greets
Andre'
Hi, I tried to patch a vocoder using the new SirSickSik modules, but I don't know where to put the env/followers. I thought the vocoderFollow module would take care of that. Right now my voice works only as a gate. Do you have any suggestions?