If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Lin to freq
21 posts
• Page 1 of 3 • 1, 2, 3
Lin to freq
Hey does anyone know how to convert linear (0-1) to frequency (hz) ?
I want to display a value in hertz for my filter. What i have been trying is connecting the output of the cutoff knob and do a calculation to convert, but it isnt very accurate.
Ive searched the old SM forums, but im still not getting it right.
I thought ,so if 0-1 is 0-22050hz (44100 SR) then just scale it (Thanks Trog and your scaling module!)
This doesnt work so great.
I also have tested in my DAW, loading up a synth patch and checking the freqs this way (via Ozone's spectrum)
How can I do this correctly??
I want to display a value in hertz for my filter. What i have been trying is connecting the output of the cutoff knob and do a calculation to convert, but it isnt very accurate.
Ive searched the old SM forums, but im still not getting it right.
I thought ,so if 0-1 is 0-22050hz (44100 SR) then just scale it (Thanks Trog and your scaling module!)
This doesnt work so great.
I also have tested in my DAW, loading up a synth patch and checking the freqs this way (via Ozone's spectrum)
How can I do this correctly??
- Drnkhobo
- Posts: 312
- Joined: Sun Aug 19, 2012 7:13 pm
- Location: ZA
Re: Lin to freq
hmm there are 0..1 to hz modules in the toolbox, but like you said 0..1 * SR/2...
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
Re: Lin to freq
Yeah the 0-1 to hz module has a poly out. . . I don't know how to convert it to green.
I've seen examples of EQ schematics and they seem to have this sort of calc:
Input (from knob) to the pow 2.5 x (SR/2)
Which works amazing for their Schematic but when I try to modify it to mine, it's off.
This should be easy right?
If the cutoff sends a value of 0..1 that represents the whole spectrum 0..22050hz
Then surely there is a formula to convert that to a viable freq value?
A simple scaler is not correct , I've tried and analysed it, it's wrong.
I've seen examples of EQ schematics and they seem to have this sort of calc:
Input (from knob) to the pow 2.5 x (SR/2)
Which works amazing for their Schematic but when I try to modify it to mine, it's off.
This should be easy right?
If the cutoff sends a value of 0..1 that represents the whole spectrum 0..22050hz
Then surely there is a formula to convert that to a viable freq value?
A simple scaler is not correct , I've tried and analysed it, it's wrong.
- Drnkhobo
- Posts: 312
- Joined: Sun Aug 19, 2012 7:13 pm
- Location: ZA
Re: Lin to freq
hmm, so if i understood right, this should be the right thing, i took i out of a freq splitter, you can choose the frequency range in the properties..
- Attachments
-
- 0..1ToLog.fsm
- (583 Bytes) Downloaded 1488 times
-
Nubeat7 - Posts: 1347
- Joined: Sat Apr 14, 2012 9:59 am
- Location: Vienna
Re: Lin to freq
One step ahead of you! I tried that today but its not 100% accurate,
its pretty close >1000hz but as you go below, it starts to get off. . .
Its better then my previous one though
So he is doing a 10pow(value from knob). . . . hmmm
- Its definitely an exponential function
- Drnkhobo
- Posts: 312
- Joined: Sun Aug 19, 2012 7:13 pm
- Location: ZA
Re: Lin to freq
Hi there,
I find the pitch to frequency primitive useful here.
The trouble with a 0..1 frequency input is the log scaling - whenever you connect up a knob, you only really get any control over the upper frequencies. It's easy to explain why...
1 = 22050 Hz
0.5 = 11025 Hz (one octave down)
So half of the knob is just that single top octave. To get 1000Hz, you need a 0...1 range value of just 0.04 - and because of the way the knobs are slightly quantized (due to the mouse only registering exact pixels of movement), there's no hope of getting any control over the bass at all.
So, Pitch -> Frequency then....
Normally used to take a MIDI pitch (linear), and turn it into a 0...1 frequency input. Using this you can get a nice even spread of frequencies, with the octaves linearly spread around the circumference of the knob. Just set your knob range to the note numbers of the min and max frequencies that you want (it's OK to go outside the normal 0-127 MIDI range).
This is also the key to making synths with filters that track the keyboard note - or nice even pitch bend and vibrato effects in your modulation matrix.
Regarding the accuracy. Well 0...1 * SR/2 is certainly the right equation, so I suppose the question is - how far out are the numbers that you're getting? With the exception of Ruby, all of FS's calculations are only single-precision (i.e. 32 bits), so possibly you are seeing the result of rounding/truncation in the maths?
I find the pitch to frequency primitive useful here.
The trouble with a 0..1 frequency input is the log scaling - whenever you connect up a knob, you only really get any control over the upper frequencies. It's easy to explain why...
1 = 22050 Hz
0.5 = 11025 Hz (one octave down)
So half of the knob is just that single top octave. To get 1000Hz, you need a 0...1 range value of just 0.04 - and because of the way the knobs are slightly quantized (due to the mouse only registering exact pixels of movement), there's no hope of getting any control over the bass at all.
So, Pitch -> Frequency then....
Normally used to take a MIDI pitch (linear), and turn it into a 0...1 frequency input. Using this you can get a nice even spread of frequencies, with the octaves linearly spread around the circumference of the knob. Just set your knob range to the note numbers of the min and max frequencies that you want (it's OK to go outside the normal 0-127 MIDI range).
This is also the key to making synths with filters that track the keyboard note - or nice even pitch bend and vibrato effects in your modulation matrix.
Regarding the accuracy. Well 0...1 * SR/2 is certainly the right equation, so I suppose the question is - how far out are the numbers that you're getting? With the exception of Ruby, all of FS's calculations are only single-precision (i.e. 32 bits), so possibly you are seeing the result of rounding/truncation in the maths?
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
Don't stagnate, mutate to create!
-
trogluddite - Posts: 1730
- Joined: Fri Oct 22, 2010 12:46 am
- Location: Yorkshire, UK
Re: Lin to freq
Trog to the rescue.....!!!!
Thanks brother, I sit staring at the screen till you pipe up! lol!
Thanks brother, I sit staring at the screen till you pipe up! lol!
- Drnkhobo
- Posts: 312
- Joined: Sun Aug 19, 2012 7:13 pm
- Location: ZA
Re: Lin to freq
So half of the knob is just that single top octave. To get 1000Hz, you need a 0...1 range value of just 0.04 - and because of the way the knobs are slightly quantized (due to the mouse only registering exact pixels of movement), there's no hope of getting any control over the bass at all.
You are right on it, the lower freqs just get tooo small,move the knob 1-click (shft-drag) from 0+ and there are huge jumps.
im using green so im thinking ruby time!
So, Pitch -> Frequency then....
Normally used to take a MIDI pitch (linear), and turn it into a 0...1 frequency input. Using this you can get a nice even spread of frequencies, with the octaves linearly spread around the circumference of the knob. Just set your knob range to the note numbers of the min and max frequencies that you want (it's OK to go outside the normal 0-127 MIDI range).
So you are saying, set my knobs min/max to the note numbers as in C0-C12?
So:
C0(16.35hz) ...C12(???) ???
Ive tried with these settings:
KNOB( min(12)...max(127) ) - - - - - *(SR/2)
I get a reading from 16hz-12 543hz
Still need to verify, but then I need my knob to output 0...1 for my filter-how do i link that?
Im confused Trog!
**EDIT
What i have done is send the output from my cutoff knob (0...1) to a float scaler and scaled it to:
min:12 (16hz)
max:136.766 (22050.5hz)
that is sent to a calc: out=in*(SR/2)
Then to my label.
Seems like its handling the lower freqs more accurately... im gonna test now
- Drnkhobo
- Posts: 312
- Joined: Sun Aug 19, 2012 7:13 pm
- Location: ZA
Re: Lin to freq
Tests. . .
Filter used was a Biquad Notch
Real reading comes from Ozone
Filter readout: +-130hz
Real Reading: +-84hz
Filter readout: +-243hz
Real Reading: +-175hz
Filter readout: +-719hz
Real Reading: +-580hz
Filter readout: +-1936hz
Real Reading: +-1796hz
Filter readout: +-2777.6hz
Real Reading: +-2750hz
Filter used was a Biquad Notch
Real reading comes from Ozone
Filter readout: +-130hz
Real Reading: +-84hz
Filter readout: +-243hz
Real Reading: +-175hz
Filter readout: +-719hz
Real Reading: +-580hz
Filter readout: +-1936hz
Real Reading: +-1796hz
Filter readout: +-2777.6hz
Real Reading: +-2750hz
- Drnkhobo
- Posts: 312
- Joined: Sun Aug 19, 2012 7:13 pm
- Location: ZA
Re: Lin to freq
Drnkhobo wrote:I need my knob to output 0...1 for my filter-how do i link that?
Just apply the previous equation in reverse to turn Hz into 0..1 - divide by half the sample rate.
Drnkhobo wrote:Filter used was a Biquad Notch
Real reading comes from Ozone
Wow, that's really off down low.
I would first try doing the same tests but with a basic sine oscillator - they're accurate enough for well pitched notes, and have always given me pretty reliable readings. I'm just wondering whether the error really comes from the control system.
Biquad filters have a habit of being a bit inaccurate at low frequencies, and depending on the filter design, it could be using approximations or look-up tables for some of the sine/cosine functions where the filter coefficients get calculated. I suspect that it might be a limitation of the filter rather than anything you've done wrong with your knob design that is the problem.
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
Don't stagnate, mutate to create!
-
trogluddite - Posts: 1730
- Joined: Fri Oct 22, 2010 12:46 am
- Location: Yorkshire, UK
21 posts
• Page 1 of 3 • 1, 2, 3
Who is online
Users browsing this forum: No registered users and 36 guests