Error: tabsend~: $O-hann: no such array
Aha! This is a very interesting subject. Please forgive my presumptions.
The full FFT vocoder patch is attached. To use it you must experiment with loading different files and cross synthesising them. It is from the help files and should work as is.
Some problems will present themselves very quickly...
-
To cross synthesise two voices you must ensure that two speakers make exactly the same
utterances which are phonetically aligned. This is hard as I can tell you from experience of recording many voice artists. Even the same person will not speak a phrase the same way twice. -
The result is not a "timbral morph" between the two speakers. The human voice is very complex. Most likely the experiment will be invalidated by distracting artifacts.
Here's some suggestions.
-
Don't "morph" the voices, simply crossfade/mix them.
-
For repeatable results (essential to an experiment) a real-time solution is probably no good. Real time processing is very sensitive to initial conditions. I would prepare all the material beforehand and carefully screen it to make sure each set of subjects hears exactly the same signals.
-
If you want a hybrid voice (somewhere between A and
then vocoding is not the best way. There are many tools that would be better than Puredata which are open source and possible to integrate into a wider system.
Csound has a LPC suite. Linear predictive coding is particularly well suited to speech.
ii) Tapestrea is a wonderful tool that uses wavelet analysis. It also has a graphical front end that makes alignment of phonemes easier.
iii) Praat (Boersma and Weenink - Amsterdam Institute of Phonetic Sciences) is a great voice synthesis system based on articulatory tract models, where you can morph speaker models. You may find that a purely synthetic method yields data more suitable for this experiment.
> It is really hard (impossible or even sin) to convience TEACHERS.
Did you mean even cos, sin is an odd function, write it out 50 times!
A simple problem regarding PD patch initialization
I really don't why it is like this.
Anyway, this have been quite a nice surprise to use the expr instead of anything else. Because when an expr block is banged it seems that is "reading" (?) the number2 objects which are feeding the expr inlet but without even touching the number2 objects once you open a patch.
I know use expr object with small bang object beside it. Every bang of this type receive a global loadbang. And it work ... while keeping the number inlet opened. ...
Ok, back to work I am just trying to catch up something with fractional delays and block convolution which drive may crazy because it consume time!!!