From the original SynthMaker forum (2004–2014), with its members’ names and dates.
oddson ·
I'd like to alter the Parametric EQ module to take the fundamental of the note played in the poly stream as a set-point on the graph.
First step for me is to understand the existing schematic.
The first problem is the center frequency of the peaking filters seems to be twice what it should be based on the effect the filter is having on the actual signal.
I've made a schematic to show this.
OSM
Seems that the boost occurs at twice the frequency of the fundamental note. 😕 [edit]the problem was in the OSCs being set 1 octave too high not the filter being 1 too low... fixed in 0.9.5j[/edit]
As a follow up... once I figure how to centre the fundamental note, can anyone think of how I'd get the harmonics to stay in the same (relative) place on the graph.
I'm thinking the Freq and Q values would have to be converted differently from their X coords but I haven't figured how yet... (or would Q be the same as the scale is logarithmic?)
I'd also like to put up (vertical) markers for the main harmonic values.
oddson ·
The silence is deafening... 😉
I still have no idea why the 1/2 frequency thing is happening... so I've assumed there's an answer somewhere and I'll learn about it later.
I've coded '4*pi' into the formula instead of the '2*pi' everything says is correct.
In the meantime I've started my project and have run into a few other problems...
[url=http://members.shaw.ca/oddson/paraEQ2.osm]
OSM[/url]
The vertical dashed lines are multiples of the fundamental with the main note being the first line. There's a wireless feed of the fundamental frequency (in Hz) into the module and it won't work without it. (It could be changed to a hard wired 0-1 F value.)
Now for the problems.
First - somewhere along the way I broke the Q pointer's Y axis control so it's not locked with the Y value of the main pointer. It wiggles around when you move the main pointer and floats in the Y axis when you move it.
Second - (edit - now largely sorted - see post below) the graph lines for gain and phase are still using the old convert coding. I'm sure the phase line is largely meaningless with the differing frequencies the graph is trying to present so I'd likely lose it anyway. But the gain line is necessary. The thing is, even though it's not giving the 'right' information it seems to work on an intuitive level in that the peaks are where you'd expect them to be and the sound you get is what you might expect.
If I try changing the X conversion to the linear format of the graph peaks stop lining up.
I can't find a combination of start/end frequencies to feed to the biquad frequency analyser to go with what I think is the correct X convertion.
I would assume you could pick an arbitrary X value to be your representative frequency (somewhere around middle C or maybe A=440Hz) multiply it by 8 (as the normalized X value is 1/8 at the first vertical line).
Then there's the issue of whether something like the 1/2 frequncy problem is happening in the green coefficient calcaulations... 😮
Third - once I've got this stuff sorted I'd like to be able to switch between peaking to band-pass filters but don't have the DSP knowledge to make it happen on my own (and pointing me to DSP sites with coefficient info won't do it 'cause I not quite bright enough to figure it out on my own). 😕
Any help would be greatly appreciated.
oddson ·
Opps... didn't notice the logf boolean on the biquad graphing components.
Still have a bit of tweeking on the graphing issue but I think I'll get the sorted myself now.
Still would like help on the other issues...
1) what's up with the centre frequency?
2) how should I deal with the conversion for Q?
3) how can I convert the peaking to band pass in both the code and graphing sections?
4) how do I fix whatever I've done to the Q pointers?
infuzion ·
oddson wrote: The silence is deafening... 😉
Sorry dude, Fri nite to Mon morn, all I do is check email, sleep, work work work (about 25hours/weekend)
First - somewhere along the way I broke the Q pointer's Y axis control so it's not locked with the Y value of the main pointer. It wiggles around when you move the main pointer and floats in the Y axis when you move it.
First: unsync the first Point module from the second (You can still have the Freq modules synced though)
Second: Inside the second Point, do this:
There might be a better way, but it works.
oddson ·
I'll keep this in mind and use it if something I've done means I can't use the solution Stefan had working. But I can't understand how it worked in the original version.
Thanks for looking at it. It may help me sort it out if Stefan doesn't post an explanation for me.
stefan ·
I just checked the frequency thing in the EQ in the toolbox. If I set the freq input to 8000, I get the peak at 8khz. Are you sure that you get the peaks at half the frequency you set it to?
stefan ·
Looked at your schematic now... It's your "F to Hz" that is faulty, it should take F * samplerate, not F * nyquist.
oddson ·
It's your "F to Hz" that is faulty, it should take F * samplerate, not F * nyquist.
That's not what I heard here [old link]
stefan ·
Ok, well, nevertheless, the frequency from the F to Hz module is half of what it should be 🙂 I came to that conclusion by analysing the frequency of the output sine from the oscillator. Not easy to know when one has been misinformed, so it's no wonder this all seemed odd.
oddson ·
OK - I'll check it all out when I get home.
I knew it would be something fairly simple but never questioned that because I've been using that elsewhere and never discovered any problem.
Thanks for the help.
-- what about the Q control point issue? Can you spot anything there?
stefan ·
Will try to have a look at it later, or force malc to do it, been a bit busy lately.
oddson ·
Thanks... if you don't get to it then I'm hopeful that Infuzion's info above will help me sort it out..
Wrote something here? To have a post removed or your name hidden, write to [email protected].