[Csnd] simple offline vocoding?

I have two identical-length wav files that I would like to use as a modulator and carrier, respectively, and produce an output file. Is there a simple way to do this? TIA!

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Hey hey,
there are a few ways. there are a few UDOs with vocoders. I know that Victor has written one or two and I have as well:
http://juliencoder.de/sound/m_vc110-1.2.zip
These are classic virtual analogue vocoders. Also using the PVS opcodes you can use pvscross. Going by the settings suggested in the manual (1024 FFT and window size, 256 samples overlap) I get 1.5 * 1024 samples delay with PVS.

HTH.

Best wishes,

Jeanette

P.S.,sorry, I just remembered that I also encapslulated the pvscross opcode in a UDO as well:
http://juliencoder.de/sound/m_voice_processing-0.5.zip

It sounds magnificent! Thank you so much!!

— vocoder.csd —

-o vocoded.wav ; Output to file sr = 44100 ksmps = 32 nchnls = 1 0dbfs = 1

#include “m_vc110.udo” ; Load the vocoder

instr Vocoder
aMod diskin2 “vocals.wav”, 1 ; Load vocal modulator
aCar diskin2 “carrier.wav”, 1 ; Load synth carrier

kQ init 8 ; Filter sharpness (4-12 recommended)
kFormantShift init 0 ; No formant shift (try -500 to +500)
kInternalNoise init 0 ; Use original modulator for the highest band

aOut m_vc110 aCar, aMod, kQ, kFormantShift, kInternalNoise

out aOut
endin

i "Vocoder" 0 199.45 ; Run for full duration of vocals.wav