A knob that adjusts Oscillator drift by percentage (Moog Beat Knob)


#1

Hello again good people!

I've been trying all day to make a "Beat" knob (that mimics the famous Moog feature). Most people think a Beat knob is a fancy term for oscillator tune, in fact it is not. It is a percentage that it is added to your second oscillator that's based on the first oscillator frequency. The tolerance for the Beat knob I'm trying to reproduce is -/+2%.

So, say OSC1 is at 250hz, 2% of this number would be 5, so, OSC2 would do 255hz (turned fully clockwise) and 245hz (counter clockwise). This very clever trick works very well say with bass synths. 2% of say 50hz is only 1hz more/less. In short, the low end stays focus for those low notes and the more you climb up the keys, more of the "drift" is applied.

I succeeded implementing this "behaviour" in PureData but Axoloti is another animal. The fact that the midi/in/keyb module outputs a bipolar value kind of throws me off. I think I figured out how a knob would generate a -/+2 value there, but using the math/* function doesn't work, there's something I don't grasp still.

Any help is greatly appreciated, thanks in advance!

Marc aka Khorus


#2

0 to 64 is the full range. so 0.64x2 gives you 2 percent. so a bipolar knob followed by a multiplication by 0.02 should give you -1.28 to 1.28 range.

put your midi/keys output into a mix1 object (the topmost connection) and your drift knob into the other connnection. out goes to the oscillator. that should do it.

btw. this beat adjustment is not specific to moog, prettymuch every synth has it. detuning with a fixed amount of hz (over the whole range) may also be desirable, since you can get consistent results in all octaves. i did this with axoloti as well :slight_smile: and i think @SmashedTransistors has some objects for that...


#3

Hey Lokki,

Thanks for the quick answer, it worked from the get go! Maybe 2% was a little low, so based on your "setup", I simply replaced the 0.02 multiplication by a "div 128" block (which I'm pretty sure Shift >> 7 bits) which gives it a range of -/+0.5 and now it's pretty damn perfect! I didn't understand the fact that you can mix bipolar signals with a mix 1 block, thanks again for that. Here's my final "render":


#4

nice! now make sure that all blue and especially red cables go from top left to bottom right in order to remove any unwanted delays.


#5

Oh, I didn't know this neither, I'm kind of a "Left to Right" type of guy. I'll be careful in the future, thanks for the tip!


#6

that's right :slight_smile: just avoid upwards red connections if possible to avoid the delays