From the original SynthMaker forum (2004–2014), with its members’ names and dates.
Vegetal ·
Hi
I'm trying to make an suboscillator for my synth project. I used the following math:
cos(x) = sqrt(1/2(1+cos(2x)))
Where 2x is our input signal which is 2 times the frequency that we want as output signal.
The problem is however that the outputsignal that I recieve is not downpitched 1 octave and I'm not sure that my circuit is working as intended (Or is the math the issue):
Is there any other way I can achieve the squareroot than using the stream power. Can I somehow get the square root with code.
Is there a page where I can lookup all the syntax formats for the code module?
that's an interesting idea. I played with it a little, unfortunately found 2 problems:
- make sure, that the input of sqrt is never negative
- the solution to y=sqrt(x) isn't y really, it's abs(y), - so the result has double frequency 🙁 (for a sine wave input you would have to flip every 2nd half-wave)
sorry, vegetal, do you mean the input coming from the SM osc output or the MIDI2Poly normalized frequency?
QuakerFloor ·
Hi everyone
I'm working with Vegetal on this project. Suboscillator might be the wrong term to use for what we are trying to make here. The synth we are working on is an additive synth with 16 harmonics using tjebychev polynoms. We add all the harmonics togeather and want to pitch down the resulting waveform. For example we make a fourier series that build up a saw we want the suboscillator to make a saw 1 octave below the original saw (Maybe calling it a pitchshifter is more correct).
Ty for the input here guys mych appretiated. I checked out the waveforms with a single cos wave in excell and it's right it's a abscos with 1/2 frequency we get from cos(x/2)=sqrt(1/2*(1+cos(x)). Looks like my math books at the university left that out.
rl ·
Isn't it easier to modify the frequency control signal instead of pitch-shifting the resulting wave?
BTW: My PitchBlack synthesizer from this year's KVR developer challenge uses Chebyshev polynomials. If you have any question feel free to ask.
TomC ·
rl wrote: Isn't it easier to modify the frequency control signal instead of pitch-shifting the resulting wave?
BTW: My PitchBlack synthesizer from this year's KVR developer challenge uses Chebyshev polynomials. If you have any question feel free to ask.
Addentum: the higher Chebychev polynoms are a little hard to compute by hand (actually, it's not hard, but you'll make about one zillion errors on your way), so if someone needs some higher Chebychevs I have them up to 32th grade.
Tom
PS: is the forum software fixed? I got no forum error (yet) today, so maybe I should start posting again...
QuakerFloor ·
I noticed that you don't realy need the higher polynoms except for the prime numbers.
For example polynom 3 coupled to a polynom 2 gives the same result as polynom 6. I also cheated a bit using ringmodulators to get the higher prime number harmonics.
What's an sub-osc? I thought it's just another sine-osc playing -1 octave ?!
stefan ·
Dave: Or any other lower octave.
QuakerFloor: Are you sure your formula is correct? As far as I can tell, you're increasing, not decreasing, the frequency by a factor of two. Or, no, I take that back, it looks like you should get the SAME frequency on the output side of things using your formula. No?
If you want an alias free solution I think the only way is to go UP one octave using a waveshaper. To go downwards in frequency you will have to rely on counters and flip-flop switching, which would alias. Or just use a full-blown, separate, oscillator.
Dave ·
@stefan: And the sub-osc is just mixed together with the other oscs right?
stefan ·
Dave wrote: @stefan: And the sub-osc is just mixed together with the other oscs right?
Yes. It's mainly useful when doing analog electronic designs, because you can make it using very few components. Like, uhm, just a comparator and a switch, almost. No full oscillator circuitry needed, since it relies on counting for instance positive zero crossings from an already running oscillator.
QuakerFloor ·
stefan wrote: Dave: Or any other lower octave.
QuakerFloor: Are you sure your formula is correct? As far as I can tell, you're increasing, not decreasing, the frequency by a factor of two. Or, no, I take that back, it looks like you should get the SAME frequency on the output side of things using your formula. No?
If you want an alias free solution I think the only way is to go UP one octave using a waveshaper. To go downwards in frequency you will have to rely on counters and flip-flop switching, which would alias. Or just use a full-blown, separate, oscillator.
I think this thread have become a little bit mixed up. The formula I wrote was just about using polynoms to get the different harmonics.
And yes a sub oscillator is natrually pitched down but it's not always just a sine wave. I've also seen people using a square and also using the same type of wave as one of the oscillators.
I have made a solution to this now by making another set of 16 harmonics that are using the same parameters and downpitch the first oscillator one octave (the rest will follow). This works as it should but it's not very cpu friendly. I will post the osm here later on I'm a bit late for school here.
QuakerFloor ·
Hi everyone
The link below is solotion of making 16 harmonics + a sub tone with the same waveform. Would be glad for some input on this. It's my first project in synthmaker (Only got some experience from Synth Edit before). There's surely some ways to opimize this.
http://www.box.net/shared/frpa6mh4ww
[/url]
Wrote something here? To have a post removed or your name hidden, write to [email protected].