From the original SynthMaker forum (2004–2014), with its members’ names and dates.
tester ·
Recently, playing with multiosc multimodulated AM/FM/slowmod stereo sounding gadget - I started to think about one interesting thing. Each oscillator (sounding, modulating, any esle) - starts at certain phase offset. But when you start to play with changes (different freiqnency/phase sends to left and right channel plus dezippers in action), then at the end - these starting offsets are inpredictable. Yet sometimes it sounds nice until you do the hard resync.
With simple/basic oscillators however (like sine, trangle and so on) - phase offset between two comparable units (between left and right sound or left and right modulator) is equal to time difference/delay between negative-to-positive zero crossings. This can be detected and then recalculated from time domain into degrees - and stored in preset (and then sent to slider on preset load).
With wavetable - I don't know if it's possible, because wavetable is not limited to particular amount of zero-crossings. But since the wavetable uses a table, then probably something can be calculated and reused from the table (some pattern detection?)
With irregular signals like quasi/random generators - it's probably impossible, since there is no reference point.
Anyway - anyone played with such topic?
oddson ·
I'm not seeing how the origin of the waveform -- whether it's from a table or otherwise generated -- makes any difference. 😕
tester ·
Input nodes for phase offset are sending only initial (start phase) positions. But if you start to play with these phase inputs (and frequency inputs too - the cycle becomes shorter or longer) sending various values and using dezippers - then at the end - there is no way to calculate what is the offset difference (between closest points if they are on different frequencies) between two oscillators. Or?
There is no output control/trigger (in SM primitives like sine), that would tell you where the wave cycle starts. The only way (at least to my understanding) to know, what is the offset difference between initial points (closest to each other, one wave is the reference) of cycle of two oscs - is to use then their outputs and catch particular zero crossing points. Sine wave has one crossing point (-/+) during the cycle, Trangle too, sawtooth too, many other that will be used - too. But on wavetable - the shape that is driven by pitch/frequency - can have multiple crossing points (yet it is still periodic). When the output is irregular (driven by irregularity) - then there is no periodicity or reference points to use (I think).
I make some reference pictures (based on sine oscs) of what I mean later, because my technical language may be inaccurate here.
tester ·
Here is what I mean. Capturing the state means to click "capture", and right channel phase offsets are stored to the preset, and restored on loading the preset (after trigger, code would seek for first -/+ zero-crossing on left channel, treating the left channel as "zero reference"). For one unit it is meaningless, but for multiple modulated sounds - you should be able restore the sounding nuances of actual setting.
What code would capture the delay between two stream inputs that way?
What is the formula to convert time into degrees according to given frequency/cycle-lenght?
Wrote something here? To have a post removed or your name hidden, write to [email protected].