The glottal component of my singing synthesizer has now been ported to Rust [0], which was translated from C. Rust like to use x.exp() instead of exp(x) for math funcs, so that tripped me up a few times.
The sound is pretty unremarkable [1], and will need a filter (tract) component to give it vowels.
0: https://github.com//PaulBatchelor/voxbox/blob/main/src/glot.rs
1: https://github.com/PaulBatchelor/voxbox/blob/main/examples/glot_simple.rs
I have ported my tract filter to rust now [0]. I couldn't resist garnishing my "simple" example a little bit [1] to make it more musical and sing-y.
In addition to the bare minimum tract filter processing the glottal source, I've also added some controls over vibrato, amplitude, and tract shape (for vowel morphing). I tuned the tract shapes by ear using the distinct region model.
0: https://github.com/PaulBatchelor/voxbox/blob/main/src/tract.rs
1: https://github.com/PaulBatchelor/voxbox/blob/main/examples/tract_simple.rs
I have ported my tract filter to rust now [0]. I couldn't resist garnishing my "simple" example a little bit [1] to make it more musical and sing-y.
In addition to the bare minimum tract filter processing the glottal source, I've also added some controls over vibrato, amplitude, and tract shape (for vowel morphing). I tuned the tract shapes by ear using the distinct region model.