Christian Schoenebeck <chr...@ep...> wrote:
>
> Has anybody already thought about incorporating formant manipulation into
the
> engine? That way the user would be able to e.g. pitch a sample without
> sounding synthetic. That works at least for some semi tones.
>
> And what about time stretching?
It was mentioned a long time ago (I think on linux-audio-dev) as something
that
would be nice to have, but it's probably easiest to implement for samples that
are completely in memory.
For a lot of samples, particularly drum loops where you are only going to use
one or a few shifted versions, it's more efficient to render the pitch shifted
version(s) to memory or disk rather than calculate them live. It then becomes
a job for the interface rather than for the real-time engine.
Interactive pitch/formant shifting (like the Roland VariPhrase and Native
Instruments Kontakt) probably needs to have an intermediate "analysis" file
created, which is what gets played back. One way to handle this would be
if the engine could use custom "renderers" for particular file types.
The technology for pitch and formant shifting is known (usually LPC analysis,
inverse filtering to flatten the spectrum, pitch shifting by crossfading
between buffers (pitch synchronously if the audio is monophonic) then
filtering
to re-apply the spectrume shape, or a shifted version of it) but is just a lot
of work for someone to get it sounding good. Probably what is important at
this
stage is to make sure the engine can cope with this sort of thing in the
future.
Paul.
_____________________________
m a x i m | digital audio
http://mda-vst.com
_____________________________
|