hi, dear list !
here's one for all synth wizards ...
in trying to understand sound synthesis a little better than i do, i'm attempting to clone a nice VST synth that i like a lot (POLYVOKS).
it's a fairly simple synth and i understand and can recreate most of it's features and functions, safe for the following:
POLYVOKS has 2 Oscillators. Osc 1 can be modulated by 2 different sources: 1.) a global LFO 2.) Oscillator 2
while point 1 is easy, i didn'zt succeed in finding out what's going on when OSC 1 is "modulated" by OSC 2. it doesn't sound like any of the classical modulation techniques (RM, FM, PM) but more like a combination/modification of the above that i'm not able to figure out. my guess is that the OSC2 get's itself "modulated" while it modulates OSC 1 (depending on the mod amount)
please, if anybody might want to have a look at the following example patch. it includes the things i tried so far and a 4 second sample of the original (= the modulation effect recorded from the VST synth).
http://klingt.org/fileservice/downloads/00693153753552230-mod_osc_210918.zip
my testing setup was this: the synth got a note (C1) and both Oscillators had the same waveform (sine) and octave offset. then i raised the modulation (OSC2 -> OSC1) from min to max, over a course of 4 seconds.
if anybody has an idea what's going on here, that would be a big help !
thanks a lot in advance
oliver
hi Oliver,
i followed a hunch and patched up a version that has a full wave rectifier before the osc1 mod input. this sounds closer to the example. it sounds even nicer with soft clipping of the mod signal before scaling. oh, and this signal gets added to the pitch input of the osc like in your FM example. it doesn't sound perfect and i could be wrong about this method. it feels okay.
i remember buzz around analog through-zero oscillators from when i eaves dropped in modular hardware forums. the thing that made them special was negative pitch modulation capability. because a more conventional oscillator would respond to all voltage input positively instead of reversing the phase when the mod signal went 'through zero.'
it might be fun to try clipping the mod signal at zero instead of doing full wave rectification.
i think you should be able to just send a signal and its inverse [*~ -1] into both sides of the [max~ ] object to get the full wave rectification.
and it could be interesting to add the mod signal to the note number before going into mtof~
the tricky part is getting it to sound pretty at low mod amounts. synths i've played that have osc mod do this well usually. maybe scale it to allow subtle mod depths at the beginning of the control.
On Sep 21, 2018, at 9:12 AM, oliver oliver@klingt.org wrote:
hi, dear list !
here's one for all synth wizards ...
in trying to understand sound synthesis a little better than i do, i'm attempting to clone a nice VST synth that i like a lot (POLYVOKS).
it's a fairly simple synth and i understand and can recreate most of it's features and functions, safe for the following:
POLYVOKS has 2 Oscillators. Osc 1 can be modulated by 2 different sources: 1.) a global LFO 2.) Oscillator 2
while point 1 is easy, i didn'zt succeed in finding out what's going on when OSC 1 is "modulated" by OSC 2. it doesn't sound like any of the classical modulation techniques (RM, FM, PM) but more like a combination/modification of the above that i'm not able to figure out. my guess is that the OSC2 get's itself "modulated" while it modulates OSC 1 (depending on the mod amount)
please, if anybody might want to have a look at the following example patch. it includes the things i tried so far and a 4 second sample of the original (= the modulation effect recorded from the VST synth).
http://klingt.org/fileservice/downloads/00693153753552230-mod_osc_210918.zip
my testing setup was this: the synth got a note (C1) and both Oscillators had the same waveform (sine) and octave offset. then i raised the modulation (OSC2 -> OSC1) from min to max, over a course of 4 seconds.
if anybody has an idea what's going on here, that would be a big help !
thanks a lot in advance
oliver
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Carl wrote:
hi Oliver,
i followed a hunch and patched up a version that has a full wave rectifier before the osc1 mod input. this sounds closer to the example. it sounds even nicer with soft clipping of the mod signal before scaling. oh, and this signal gets added to the pitch input of the osc like in your FM example. it doesn't sound perfect and i could be wrong about this method. it feels okay.
hi, carl !
thanks a lot for giving it a try. do you mind posting the patch ? (I'm not sure i fully understand just by description)
best
oliver
Here's a patch with some examples using rectification.
Might be smart to use oversampling just around the max~ object http://write.flossmanuals.net/pure-data/antialiasing/
There's also an example here that just biases the mod osc to positive values. The sound has a different character, but it shouldn't alias.
On Sat, Sep 22, 2018 at 7:24 AM, oliver oliver@klingt.org wrote:
Carl wrote:
hi Oliver,
i followed a hunch and patched up a version that has a full wave rectifier before the osc1 mod input. this sounds closer to the example. it sounds even nicer with soft clipping of the mod signal before scaling. oh, and this signal gets added to the pitch input of the osc like in your FM example. it doesn't sound perfect and i could be wrong about this method. it feels okay.
hi, carl !
thanks a lot for giving it a try. do you mind posting the patch ? (I'm not sure i fully understand just by description)
best
oliver
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/li stinfo/pd-list
A couple problems with the patch I posted. Any of the bob~ objects need the message [saturation 1( sent to them to function the way I intended.
Also, turns out I was totally wrong about the through zero concept- you need to clip the frequency input of the modulated osc at 0Hz. Attached is a patch that demonstrates this. one of the examples shows use of bob~ to restrict values
On Thu, Sep 27, 2018 at 10:50 AM Carl S larstocqueville@gmail.com wrote:
Here's a patch with some examples using rectification.
Might be smart to use oversampling just around the max~ object http://write.flossmanuals.net/pure-data/antialiasing/
There's also an example here that just biases the mod osc to positive values. The sound has a different character, but it shouldn't alias.
On Sat, Sep 22, 2018 at 7:24 AM, oliver oliver@klingt.org wrote:
Carl wrote:
hi Oliver,
i followed a hunch and patched up a version that has a full wave rectifier before the osc1 mod input. this sounds closer to the example. it sounds even nicer with soft clipping of the mod signal before scaling. oh, and this signal gets added to the pitch input of the osc like in your FM example. it doesn't sound perfect and i could be wrong about this method. it feels okay.
hi, carl !
thanks a lot for giving it a try. do you mind posting the patch ? (I'm not sure i fully understand just by description)
best
oliver
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
-- Sent from my email to yours
Carl S wrote:
A couple problems with the patch I posted. Any of the bob~ objects need the message [saturation 1( sent to them to function the way I intended.
Also, turns out I was totally wrong about the through zero concept- you need to clip the frequency input of the modulated osc at 0Hz. Attached is a patch that demonstrates this. one of the examples shows use of bob~ to restrict values
hi, carl !
first, thank you very very much for your kind help. all of your suggestions are interesting to study and all have a distinct modulation "flavour". i have to confess that i don't fully understand the [bob~] approach, but the rectifying example was very clear.
after a little tweaking i came to a solution that sounded the closest to the effect i was looking for. the difference in my approach is to clip the frequency input of the modulated osc not at 0 Hz but at the carrier frequency.
example attached
thanks again for your examples !
best
oliver
Nice! if you later decide to use portamento or pitch modulation of the carrier osc, you can always replace the clip~ object with max~ and send the signal version of the carrier frequency to one side, and the modulation to the other. this will act identically as it will either send mod values higher than the carrier or the straight carrier.
I could be wrong, but I think the bob~ object has a clipping/saturating component that is more elegant and less likely to alias than a straight clip~. is this true? I think it can also accept startup messages to specify oversampling for better performance in this way. I think you could scale input to bob~ even to clip at the carrier frequency. But it would be nice to know if bob~ is actually good for this job before patching it up.
I am worried about the aliasing you will get with more complex waveforms than sine. I am interested in some methods like polyBLEP to smooth out discontinuities and wonder if they could be used downstream from an audio rate modulated oscillator and still function correctly. I've avoided this in my own oscillators by doing silly and expensive things with short delay lines. I'll forward my findings if i make any headway on this.
it's totally my pleasure to mess around with oscillator/synth component stuff in pure data! But beware my advice because my stuff is pretty scrappy.
On Mon, Oct 1, 2018 at 5:15 PM oliver oliver@klingt.org wrote:
Carl S wrote:
A couple problems with the patch I posted. Any of the bob~ objects need the message [saturation 1( sent to them to function the way I intended.
Also, turns out I was totally wrong about the through zero concept- you need to clip the frequency input of the modulated osc at 0Hz. Attached is a patch that demonstrates this. one of the examples shows use of bob~ to restrict values
hi, carl !
first, thank you very very much for your kind help. all of your suggestions are interesting to study and all have a distinct modulation "flavour". i have to confess that i don't fully understand the [bob~] approach, but the rectifying example was very clear.
after a little tweaking i came to a solution that sounded the closest to the effect i was looking for. the difference in my approach is to clip the frequency input of the modulated osc not at 0 Hz but at the carrier frequency.
example attached
thanks again for your examples !
best
oliver _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list