@bonehead696 said:
granulation :- shuffle or random placement of grains - (+ pitch, speed, grain size) maybe this would use a buffer to grab sections o audio to shuffle as it streams in?
You could do all of this with [vd~]. Randomize the delay for each grain. Speed and pitch are basically the same thing, and you can do this by changing the delay length of [vd~] with something like [vline~]. It would probably be easiest to use whatever is looking up the grain window to modulate [vd~], since that will keep them in sync.
convolution - able to convolve to live/playback inputs in real time (or close to)
morphing - able to blend-morph live/playback inputs in real time (or close to)
You can morph with FFT convolution. Here's a basic convolution setup:
[rfft~] [rfft~] <-- these are the two inputs
| |
[cartopol~] [cartopol~] <-- converts data to amplitude and phase
| \ / /
| /\ /
| / \ /
| / \ /
[*~ ] [+~ ]
| /
| /
| /
[poltocar~]
|
[irfft~]
What this does is convolve each FFT frame (Note: it's not like convolution reverb, which convolves the entire soundfiles). The amplitudes multiply, which means when the two sources have energy in the same bin, they are reinforced, whereas if one has little or no energy in a bin, it results in a smaller amplitude. Adding the phases sort of "fine-tunes" the frequency (I think; it's been a while since I messed with this).
IIRC, you can crossfade the outputs of the two [cartopol~]s to morph between the two sounds.