Does this look right for phase modulation of live input?
[adc~] [0\
| |
[rfft~] [osc~]
| \ |
| \ | [0\
| \ | |
[cartopol~] [*~]
| | |
| [+~]
| |
[poltocar~]
| /
| /
| /
[rifft~]
|
[dac~]
Live phase modulation
Does this look right for phase modulation of live input?
[adc~] [0\
| |
[rfft~] [osc~]
| \ |
| \ | [0\
| \ | |
[cartopol~] [*~]
| | |
| [+~]
| |
[poltocar~]
| /
| /
| /
[rifft~]
|
[dac~]
You can just do it with a delay line:
[adc~]
|
[delwrite~]
[osc~]
|
[*~]
|
[vd~]
Remember, the phase of an oscillator is just a table lookup of a waveform. Using a delay line, it's just a table lookup of continuously recorded material.
I'm using this technique as live frequency modulation, but comparing the classic FM and PM techniques with two oscillators, you get quite different sound. Converting from Cartesian to Polar after [rfft~], you get the phase out of the right outlet, don't you? So adding an oscillator there should be messing around with the phase...at least that's what I had in mind. Plus these two techniques (the one I posted and the you did) do sound different.
I mean, is there a point going on with this, trying to make it a bit better?
the 'phase' in fft is quite different to the phase in normal signals.
it's an interesting idea though....does it sound interesting?
It actually does. If I apply windowing and overlapping it might be improved. I'll do that in the next few days.
Yeah, the example I gave was a little over-simplified. If you want to have more predictable results, you have to do some scaling of the modulator based on the index of modulation and the carrier frequency. I've attached a more thorough example which plots the standard two-oscillator approach and the delay-based version for comparison. If you are using an arbitrary input and want to maintain the C:M ratio, you'll obviously need to modify this to use a pitch-tracker.
If you're interested in the research, there's a paper on it here:
Nice! Thanks a lot. The math is a bit over my head, but I'm taking classes, so I'll get there.
Cheers
Ok, coming back to it after comparing my attempt with Maelstorm's patch. I did windowing and overlapping to the patch in the first post of this thread but it sure doesn't sound as good as Maelstorm's with a pitch tracker included (with an input from my guitar). Just to let anyone know. who sees this post and finds the idea interesting.
The FFT approach is very different. With a wavetable approach, you are modulating the phase of one single waveform. Even if you have many frequencies in that waveform, you are modulating them all as a single wave. You're using units of samples, and how much of the phase a sample is is frequency-dependent.
With FFT, you are modulating them all separately. And you are modulating them in radians, which are frequency independent. pi/2 radians (or 90 degrees) is a quarter of a sinewave, no matter what the frequency of the sinewave is. 50 samples is pi/2 radians at 220.5 Hz, but it's pi radians at 441 Hz.
Oops! Looks like something went wrong!