Singing with Csound
by Don Mahurin, 2010-02-07
First released, in 1986, CSOUND is a audio programming language used to model and synthesize sound.
The language contains many opcodes to allow the creation of complex instruments. One such opcode is the ‘fof’ opcode, which produces sinusoid bursts and can be used for formant synthesis. Human vowel sounds can be synthesized using this opcode.
The examples below demonstrate the use of the ‘fof’ opcode to synthesize singing vowel sounds, acting as an instrument in midi songs.
Csound source used to translate synth voice and choir voice instruments into ‘fof’ based instrument, while routing other instruments through the fluid soft synthesizer engine: midi_fluid_voice.csd
Star Trek midi converted to contain a synth voice instrument: startrek_voice.mid
Result, converted to mp3: startrek_voice.mp3
csound midi_fluid_voice.csd -F startrek_voice.mid
Nirvana “Lithium” midi converted to contain a synth voice instrument: lithium_voice.mid
Result, converted to mp3: lithium_voice.mp3 Note that here, the synth voice instrument is interpreted as a “wah” voice, where the start of group of notes starts with a “w” ( a short oo sound), and continued notes produce an “ah” sound.
csound midi_fluid_voice.csd -F lithium_voice.mid
Prerequisites in Ubuntu:
sudo apt-get install csound fluid-soundfont-gm
Here some other sample midi files generated with GK-2A guitar pickup that demonstrate a bending voice: (to be played with the above csd)
Many thanks to the authors of Csound, and the examples (fofx6.csd, fluidcomplex.csd) which the above csd builds upon. Thanks also the the OLPC csound team which also provided useful examples (gm.csd) and documentation.