Page 1 of 3

La Voz Cantante: a 512 Channel Vocoder

PostPosted: Sun Dec 11, 2016 4:01 pm
by martinvicanek
Hey gang,

I thought I'd post this FFT Channel Vocoder that I made. Here is an explanation of the basic principle:

A vocoder has two inputs: one is the carrier (usually a sound source with rich spectral content, like a saw) and the other is the modulator (usually a human voice, can be sung ore just spoken, it does not matter much). Well, mine has these two plus a MIDI input as an option to use an internal synth as the carrier. At the core is an FFT engine which is quite heavily optimized so it is somewhat difficult so see the structure. Here is what it does:

Every 512 samples:

1. Calculate FIR coefficients for the vowel filter:
a) apply a windowed FFT to the modulator
b) compute modulus of 1a)
c) inverse FFT the result
d) shift by 1/4 FFT size to minimize boundary effects

2. Apply FIR filter to carrier (by linear convolution):
a) apply FFT to the carrier:
- use rectangular window for 1st half frame
- zero pad 2nd half frame to avoid time aliasing
b) apply windowed FFT to the FIR coefficients from 1d):
- use Kaiser window for 1st half frame
- zero pad 2nd half frame
c) complex multiply 2b)*2a) in the Fourier domain
d) inverse FFT the result
e) overlap-add with last frame in the time domain

Finally apply a spectral untilt operation (differentiator)
to compensate for an assumed 1/f carrier spectrum
falloff (e.g. saw or rectangle).

Some basic effects are included to make the plugin self contained.

There is more information, an mp3 demo and a PDF user manual over at my Web site:
http://vicanek.de/audioprocessing/lavozcantante.htm

Re: La Voz Cantante: a 512 Channel Vocoder

PostPosted: Sun Dec 11, 2016 4:27 pm
by BobF
Hi Martin,

WOW, 512 channels this is really nice. Vocoders are one of my favorite effects. Thanks for posting. Only playing with it for about 15 minutes and I have gotten some really cool sounds. Also what a great job on the manual, with pictures and all!

Cheers, BobF.....

Re: La Voz Cantante: a 512 Channel Vocoder

PostPosted: Mon Dec 12, 2016 11:56 am
by DigiTonix
Hi Guy's... :D

Re: La Voz Cantante: a 512 Channel Vocoder

PostPosted: Mon Dec 12, 2016 4:17 pm
by Spogg
Martin, this is a fantastic Hi-Fi Vocoder!

The sound quality blows every other vocoder I've heard clean out of the water. It's easily a commercial grade product, especially with the new GUI DigiTonix has made. You deserve to make money from this mate.

As a side issue, I found your wavetable osc inside the synth part. How much more efficient is this over the stock one?

You continue to confound me with your remarkable skills and I want to thank you big-time for sharing this.

Would it be ok to link to your plugins on Flowstoners?

Cheers

Spogg

Re: La Voz Cantante: a 512 Channel Vocoder

PostPosted: Wed Dec 14, 2016 10:25 pm
by martinvicanek
Thanks for your nice words, guys, and DigiTronix for the GUI!
Spogg wrote:As a side issue, I found your wavetable osc inside the synth part. How much more efficient is this over the stock one?
Uhm, actually the stock prim is more efficient. :oops:
Spogg wrote:Would it be ok to link to your plugins on Flowstoners?
Yes, that would be great, thank you!

Re: La Voz Cantante: a 512 Channel Vocoder

PostPosted: Tue Dec 27, 2016 9:25 am
by martinvicanek

Re: La Voz Cantante: a 512 Channel Vocoder

PostPosted: Tue Dec 27, 2016 1:09 pm
by Spogg
martinvicanek wrote:A little Christmas demo track...


Brilliant!

Spogg

Re: La Voz Cantante: a 512 Channel Vocoder

PostPosted: Thu Jan 25, 2018 7:40 pm
by hägar
fantastic..

Re: La Voz Cantante: a 512 Channel Vocoder

PostPosted: Wed Feb 27, 2019 7:56 pm
by guyman
Hey Martin, what's the latency on this? 512 samples? to sync with the input that acts as modulator...

Thanks.

Re: La Voz Cantante: a 512 Channel Vocoder

PostPosted: Wed Feb 27, 2019 9:41 pm
by martinvicanek
It is 1280 samples. There will always be some latency because you need to analyze a chunk of some size before you can start filtering.

I am currently working on an improved version . Wil post when ready.