talnadav ·
hey there ! i know how to make a continuously pass from wave A to B but can i make such a pass from multi waveforms? how can i make a slider or knob that will run smoothly and continuously from Sine ti Tri to Saw etc . . ?
From the original SynthMaker forum (2004–2014), with its members’ names and dates.
talnadav ·
hey there ! i know how to make a continuously pass from wave A to B but can i make such a pass from multi waveforms? how can i make a slider or knob that will run smoothly and continuously from Sine ti Tri to Saw etc . . ?
rl ·
assuming each waveform starts and ends at 0 mixing of them should be no a no-brainer. You may want to do the mixing like: slider * waveA + (1 - slider) * waveB so at start and end the mixed wave is always zero.
trogluddite ·
But A->B->C from one slider is more tricky.
Haven't time to try aschematic just now - but this is the essence of it...
For three waves, have a slider range of 0 to 2 - so say, 0=Sine, 1=Square, 2+Triangle. Then you need to seperate the slider value into the integer part and the fractional part (split it at the decimal point). Use the integer part to choose which pair of waves to mix between (0 and 1, or, 1 and 2), and then use the fractional part to set the crossfade between whichever two have been selected.
philter5 ·
there is a module somewhere here on the forum, i think it was in exonerates developer toolkit. the name was "float array blend" or something like that. it has 10 float array inputs and a 0-1 float input to smoothly blend between the 10 different arrays. of course this helps you only if u use float arrays for the OSC wave
trogluddite ·
Yes, thinking about it, streams would be more tricky - you'd have to make the selection between adjacent waves without using selectors, because they force a recompile/stage(0) when they switch. You'd have to use a custom mixer/selector of some sort - but you'd lose SMs funky ability to shut down disconnected modules.
trogluddite ·
Has a quick muck about in SM, and it was easier than I thought - once I drew a quick graph of the mix levels needed, it turned out to just need a little maths. Here's an example with 4 waves to mix between - but you can easily have more or less by adding/taking away 'Mix Level' modules, and changing a few properties. I call it Mexican wave coz that's what the mix levels do as you scan through the sources...
...have to be careful with CPU though, thoses oscillators will be running constantly - no automatic CPU saving here!
Might have a go at an all stream version -you could scan at samlple rate with LFOs/envelopes etc. then. Given that the osc's all have to be running anyway, the mix maths itself would use relatively little CPU.
oddson ·
You might want to check this thread out:
X/Y that outputs 4 values
datsound ·
Hi, This is an easy question, but you need to have 2 oscillators of sine/saw/pulse going at any time and simply make a maths operation that makes a button that makes amplitude go from 0 to +1 and +1 to 0 simultaneously on each one....
you need to have at least 2 oscillators at any time and crossfade through them.
If you look in my modulation exponential in the forum by typing exponential, it crossfades in between 5 parameters, code boxes that you could replace the code boxes by waves to have a crossfade between 5 waveforms.
Crossfade waves is cool for LFO but doesnt give you much sonic for the amounth of maths it uses, it doesnt make much richer sounds cos it is simple 1 frequency sounds.
if you want a REALLY cool wave that mixes 100 waveforms together, make a serge wave rectifier or serge wave multiplier, it goes like this: sine oscillator multiplied by a knob that goes from zero to 20, so the sine has an amplitude of 0-20, and send thes big sines through a maths cosine module... you have to do it in code
streamin sin; streamout rectifie;
rectifier = cos(sin);
you can also use saw * saw * saw * 0-20 to send through the cosine for interesting wave. listen the sound when you turn the knob it is better than sin saw pulse
Wrote something here? To have a post removed or your name hidden, write to [email protected].