Activity for JEQ - Java Stereo Equalizer

  • Dmitry Vagin Dmitry Vagin posted a comment on ticket #2

    Glad to hear. Good luck!

  • Majenko Technologies Majenko Technologies posted a comment on ticket #2

    And here's my generating program modified from that C you pointed me to: https://github.com/MajenkoProjects/AudiobookRecorder/blob/master/iircoeff.c Now I just need to test the results, but they look good to me...

  • Majenko Technologies Majenko Technologies posted a comment on ticket #2

    Ah, that's creating numbers at 48000 very close to your existing ones. Nice.

  • Majenko Technologies Majenko Technologies posted a comment on ticket #2

    Mmm.... useful code. I may be able to work with that...

  • Dmitry Vagin Dmitry Vagin posted a comment on ticket #2

    Don't use their project. Just take the piece of code. :) I don't want to download full EQU project. Just found the code you need: Code for IIR coefficients generation See find_f1_and_f2 and calc_coeffs function. I recommend to port it.

  • Dmitry Vagin Dmitry Vagin posted a comment on ticket #2

    The article I gave you initially uses constant Q which is wrong. Q should be different for each row.

  • Majenko Technologies Majenko Technologies posted a comment on ticket #2

    Great site for the calculations! I will incorporate those equations into my script for sure. And yes, that is a common problem with old code. I have plenty of old code where I have no clue how I generated parts of it, and the scripts I used are long gone. Now I try and keep them in the project and uploaded to Github whenever possible. For instance my IIR coefficient generating script is stashed safely away: https://github.com/MajenkoProjects/AudiobookRecorder/blob/master/iircoeff I don't fancy changing...

  • Dmitry Vagin Dmitry Vagin posted a comment on ticket #2

    Hi. Actually, the code for IIR tables generation is lost. So, I can only tell where to read the information you need. For example, see detailed explanation here: Calculating the bandwidth at −3 dB cut-off frequencies f1 and f2 Also, you can investigate the Felipe Rivera project:EQU. As i know he generates all IIR coefficients on the fly. I think it will be easy to port the code from C++ to Java.

  • Majenko Technologies Majenko Technologies posted a comment on ticket #2

    's ok. I think it's working pretty well as it stands, but anything you can suggest to make it even more perfect would be appreciated.

  • Dmitry Vagin Dmitry Vagin posted a comment on ticket #2

    I'm sorry, I did not have time to read your messages carefully. I'll look at everything carefully later.

  • Majenko Technologies Majenko Technologies modified a comment on ticket #2

    Yeah, that bit I got fine. The question is where those half power points should be - i.e., what the Q of the filter for a band should be (how wide the band is) compared to what you used originally. I have a working filter, but I want to make sure I have it as good as the original ones. At the moment I am calculating F1 and F2 as: my $f1 = $f0 - (($f0 - $fl) / 2); my $f2 = $f0 + (($fh - $f0) / 2); Where fl is the frequency of the next band down (or 0 for the first band) and fh is the frequency of...

  • Majenko Technologies Majenko Technologies modified a comment on ticket #2

    Yeah, that bit I got fine. The question is where those half power points should be - i.e., what the Q of the filter for a band should be (how wide the band is) compared to what you used originally. I have a working filter, but I want to make sure I have it as good as the original ones. At the moment I am calculating F1 and F2 as: my $f1 = $f0 - (($f0 - $fl) / 2); my $f2 = $f0 + (($fh - $f0) / 2); Where fl is the frequency of the next band down (or 0 for the first band) and fh is the frequency of...

  • Majenko Technologies Majenko Technologies modified a comment on ticket #2

    Yeah, that bit I got fine. The question is where those half power points should be - i.e., what the Q of the filter for a band should be (how wide the band is) compared to what you used originally. I have a working filter, but I want to make sure I have it as good as the original ones.

  • Majenko Technologies Majenko Technologies posted a comment on ticket #2

    Yeah, that bit I got five. The question is where those half power points should be - i.e., what the Q of the filter for a band should be (how wide the band is) compared to what you used originally. I have a working filter, but I want to make sure I have it as good as the original ones. On Thu, 27 Sep 2018, 15:26 Dmitry Vagin, davagin@users.sourceforge.net wrote: Hm... read the 3rd page. Right after equations 3, 4 and 5 you can see: "where Q=F0/(F2-F1). T0=2PI(F0/F1). The value F0 is the center frequency...

  • Dmitry Vagin Dmitry Vagin posted a comment on ticket #2

    Hm... read the 3rd page. Right after equations 3, 4 and 5 you can see: "where Q=F0/(F2-F1). T0=2PI(F0/F1). The value F0 is the center frequency of the bandpass filter, F1 and F2 are the half-power points (where the gain is equal to )...".

  • Majenko Technologies Majenko Technologies modified a comment on ticket #2

    Ok, I'm calculating Q from F0/F1/F2, where F1 and F2 are placed half way between the F0 and the previous and next bands, and while it's not quite the same numbers, when calculated for 96000Hz it does give me some results that work. How did you position F1 and F2 when calculating Q? Was it between bands, or did you just place it right on the previous and next band frequencies? I guess I can experiment with different calculations for F1 and F2 to see what I get at 48000Hz... (edit: no, just placing...

  • Majenko Technologies Majenko Technologies posted a comment on ticket #2

    Ok, I'm calculating Q from F0/F1/F2, where F1 and F2 are placed half way between the F0 and the previous and next bands, and while it's not quite the same numbers, when calculated for 96000Hz it does give me some results that work. How did you position F1 and F2 when calculating Q? Was it between bands, or did you just place it right on the previous and next band frequencies? I guess I can experiment with different calculations for F1 and F2 to see what I get at 48000Hz...

  • Majenko Technologies Majenko Technologies modified a comment on ticket #2

    Or... are you calculating a new Q for each individual frequency band? I worked out (through trial and error) that 20kHz in the 48000 31 bucket has a Q of approximately 5.488400478 - but that doesn't hold true for all the bands... Especially as my calculated 96000 coefficients seem to have no effect at all on the audio, but the 48000 ones when used on a 96000 source, do (though of course not technically correct)...

  • Majenko Technologies Majenko Technologies posted a comment on ticket #2

    Or... are you calculating a new Q for each individual frequency band? I worked out (through trial and error) that 20kHz in the 48000 31 bucket has a Q of approximately 5.488400478 - but that doesn't hold true for all the bands...

  • Majenko Technologies Majenko Technologies modified a comment on ticket #2

    Oh, and one last question: what Q did you choose? I want to try and keep it in line with the rest of the profiles. I have tried recreating the 48000 31-bucket profile with my little script and a Q of 1.4 as suggested by the second PDF, but the values are different - so I assume you chose a different Q? ... or my calculations are wrong ;)

  • Majenko Technologies Majenko Technologies posted a comment on ticket #2

    Oh, and one last question: what Q did you choose? I want to try and keep it in line with the rest of the profiles. I have tried recreating the 48000 31-bucket profile with my little script and a Q of 1.4 as suggested by the second PDF, but the values are different - so I assume you chose a different Q?

  • Dmitry Vagin Dmitry Vagin posted a comment on ticket #2

    Yes, multiply the coefficients by 2 and place into new table in IIRBase.java. In order to be sure that your calculations are correct, you can recalculate some coefficients for 11k and compare them with values from IIRBase.java. As you can see, I have not dealt with this code for a very long time. I do not remember much anymore, so it will not hurt to recheck.

  • Majenko Technologies Majenko Technologies posted a comment on ticket #2

    Excellent, that's exactly what I needed. Thanks. One more question: in the code it mentions that the 2x has been "moved to the coefficients to save processing". Does that mean I just need to multiply the results of those formulae by 2, or is it a little more complex than that?

  • Dmitry Vagin Dmitry Vagin posted a comment on ticket #2

    Hi man! It's simple. First of all, I recomment to read this: Guide_to_Digital_Signal_Process But of course, it's little bit boring. So, you can read this: Implementing a 10-Band Stereo Equalizer on the DSP56311 EVM Board All you need is on 3rd page. Good luck.

  • Majenko Technologies Majenko Technologies created ticket #2

    96000 Hz support

1