[sharing] Split Sideband Synthesis

.quasar's icon

Don't think I've seen this one yet recreated in max. This synthesis technique is quite fun because it allows you to split the FM signal into 4 components :
- odd , lower sideband
- even, lower sideband
- odd, upper sideband
- even , upper sideband

IThis mean that you can process, mix or spatialise each component differently.

I followed the csound code from the article quite faithfully + I recreated Sean Costello's hilbert implementation so you might even have fun using it for a bode freqshifter later

Max Patch
Copy patch and select New From Clipboard in Max.

enrico wiltsch's icon

Very intersting , thanks ! !

Exit Only's icon

this is great

Borja Caro's icon

Super nice, how'd you turn something like this into a bode freqshifter?

Roman Thilenius's icon

a frequency shifter vastly differs from frequency modulation synthesis because it works on the whole spectrum of the input material without it need to have a base frequency such as an oscillator has.

it has, however, indeed a structure somehow similar to his patch, and as of today we still create them digitally after the same concept as they did in 1960 - just much better and with more options of course.

phase quadrature: you apply alternating ringmodulations (with 90 degree phase difference and 50% overlap to each other) for each of the outputs of a hilbert transform. the frequency of that oscillator is the offset.

if you think of it as a windowing function rather than RM (the lower part of the RM oscillator modulating the 90 degree shiftet input == same as AM of the 270 degree part) it would look like that:

now it is AM :)



in digital you of course have to bandlimit the input according to the shift value. on both ends, in case you want to go downwards, too.
eventually you can also use upsampling to get that done better - i do not like this so much, filtering the input is normally enough.


the bode and many other of these units also used an envelope follower to preserve the level transients, i my opinion that is optional in digital. but if you do it, do it complex, i.e. after the hilbert transform, because an envelope follower can benefit from that, too.

a gen patch would probably look similar to an MSP patch: a whole bunch of biquads - and some fascinating magic.

(not sure how the costello transformer would compare to the magic ollie coefficients from 2006? i suppose it is mostly a matter of saving some CPU compared to using a "full" biquad.)