• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Controlling Equalizer APO with a USB controller?

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
Hi everybody,

I was thinking of using a USB controller (with a given number of sliders and knobs) to control Equalizer APO in real time.
The idea is that each slider or knob could be assigned to a predefined parametric filter. Take these two controllers for instance (there are of course better/fancier ones) :

maxresdefault.jpg


dfg.jpg


I could easily imagine defining 9 parametric filters, then using each slider to control the corresponding filter gain, and each knob to control the corresponding filter frequency or Q-factor. Only problem is : how can all this be achieved ? Are there any tutorials on this matter ? Would it require any additional software ? How would you do ?

My first thought would be using some EAPO GUI (PEACE or Mega Switcher) to define the filters, then maybe assigning hotkeys to the filters and also to the sliders/knobs. But probably there are better ways.

Thanks in advance for your insights. :)
 
Last edited:

HarmonicTHD

Major Contributor
Joined
Mar 18, 2022
Messages
3,326
Likes
4,837
Hi everybody,

I was thinking of using a USB controller (with a given number of sliders and knobs) to control Equalizer APO in real time.
The idea is that each slider or knob could be assigned to a predefined parametric filter. Take these two controllers for instance (there are of course better/fancier ones) :

View attachment 237986

View attachment 237995

I could easily imagine defining 9 parametric filters, then using each slider to control the corresponding filter gain, and each knob to control the corresponding filter frequency or Q-factor. Only problem is : how can all this be achieved ? Are there any tutorials on this matter ? Would it require any additional software ? How would you do ?

My first thought would be using some EAPO GUI (PEACE or Mega Switcher) to define the filters, then maybe assigning hotkeys to the filters and also to the sliders/knobs. But probably there are better ways.

Thanks in advance for your insights. :)
Sorry I don’t have a direct answer to your question, but in case your are flexible in the type of EQ, I can suggest an alternative that works for sure out of the box.

Get a DAW (eg Ableton Live or similar) and their basic versions come at around 80bucks or sometimes for free if you buy a controller as you have shown. The DAWs have built in EQs which interface nicely with these USB controllers. And if you don’t like the EQ which comes with the basic DAW version, there are a gazillion of VST plugins to choose from, many of them for free.

Just a thought.
 
Last edited:
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
No DAW, thank you. That would defeat the purpose of this topic, which is to use a very popular EQ software like EAPO.
I'm sure this can be achieved. The only question is how. @sweetchaos , what do you think? ;)
 
Last edited:

-Matt-

Addicted to Fun and Learning
Joined
Nov 21, 2021
Messages
680
Likes
570
You may wish to look into AutoHotKey...


I think it should be able to control the EAPO editor software. The tricky bit will then be getting the driver for the usb slider board to map to keyboard shortcuts.

Just one possibility for you to investigate anyway.
 

digitalfrost

Major Contributor
Joined
Jul 22, 2018
Messages
1,541
Likes
3,172
Location
Palatinate, Germany
EqAPO will recoginze if any of its configuration files changes and auto-apply the change. If you can find a way to edit the config text files based on the controller input you should be there.
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
Thanks guys :) At first I was thinking about using AutoHotKey, but it turns out there may be better/simpler solutions for listening to MIDI over USB.
Basically these are bi-directional Windows apps that can :
  • Listen to any incoming MIDI signal via USB and convert it to anything else, including keypresses, etc.
  • Listen to any incoming PC signal (e.g. a keypress) and convert it to any outgoing MIDI signal
This would put me on the right path, and I wouldn't even need to use the controller's driver.

Now keypresses may not be enough in this case. I need to be able to listen to an incoming MIDI signal from a fader, which will be a MIDI control change (ex: CC#1) with a numerical value from 0 to 127 depending on the position of the fader. Then I need to be able to :
  • Translate the interval : e.g. convert [0...127] into [-15...15] if I want EAPO to set gain from -15 to 15 dB, not from 0 to 127 dB
  • Feed that info to EAPO
The translation part should be easy, since apparently the aforementioned MIDI apps can be customized to do that out of the box.
So now I'm looking for the best way to feed that info to EAPO. Maybe writing that value into a config file would do the trick, if there aren't better solutions.

So if slider 2 (CC#2 for example) has to control the gain of a 300 Hz peak filter with Q=2.0 :
  • Say we push the slider to value 47 (in the [0...127] interval)
  • The MIDI app will receive a CC#2 value of 47
  • The translated value will be -3.375 (in the [-15...15] interval)
  • So I could have some previously defined EAPO config file with this code : Filter 2: ON PK Fc 300 Hz Gain 0.0 dB Q 2.0
  • And change it to this code : Filter 2: ON PK Fc 300 Hz Gain -3.375 dB Q 2.0
And now if knob 2 (CC#12 for example) has to control the Q-factor of that same 300 Hz peak filter, from 1.0 to 5.0 :
  • Say we turn the knob to value 63 (in the [0...127] interval)
  • The MIDI app will receive a CC#12 value of 63
  • The translated value will be 3.125 (in the [1.0...5.0] interval)
  • So I could just modify the previous EAPO config file to this : Filter 2: ON PK Fc 300 Hz Gain -3.0 dB Q 3.125
In theory it should work, right ? :p

I'm just worried about having to write info to a text file many times per second every time I push a fader or turn a knob. But that could be solved with a RAM disk. I already have one, which shows like a regular disk in Windows (e.g. R:). So all I'd have to do is to use EAPO's config file to "Include" another config file that would be in R: That way EAPO would monitor changes in R: (so in RAM) and I wouldn't have to make disk writes many times per second.

What do you say ? :D
 
Last edited:
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
Wow, we can even directly control non-MIDI applications. Here's a video about it :

So just by using an EAPO GUI, I could transform incoming MIDI info to mouse events and magically move the sliders within the GUI.
Hopefully it could even work both ways, but that wouldn't be important unless I had motorized faders/knobs, which is another can of worms.
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
Just wanted to say that I decided to contact Peter Verbeek, the PEACE developer. He's a great guy and he already helped me in the past to improve Mega Switcher.

Well guess what? Peter liked my idea. He liked it so much, that he has now implemented full MIDI support within PEACE! :D Which means that from now on, we'll be able to have full control over PEACE from any MIDI/USB interface.

The new PEACE version is now entering test phase, so it should be available to users within a few days/weeks at most.

You're welcome. ;)
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France

Philbo King

Addicted to Fun and Learning
Joined
May 30, 2022
Messages
669
Likes
877
Thanks guys :) At first I was thinking about using AutoHotKey, but it turns out there may be better/simpler solutions for listening to MIDI over USB.
Basically these are bi-directional Windows apps that can :
  • Listen to any incoming MIDI signal via USB and convert it to anything else, including keypresses, etc.
  • Listen to any incoming PC signal (e.g. a keypress) and convert it to any outgoing MIDI signal
This would put me on the right path, and I wouldn't even need to use the controller's driver.

Now keypresses may not be enough in this case. I need to be able to listen to an incoming MIDI signal from a fader, which will be a MIDI control change (ex: CC#1) with a numerical value from 0 to 127 depending on the position of the fader. Then I need to be able to :
  • Translate the interval : e.g. convert [0...127] into [-15...15] if I want EAPO to set gain from -15 to 15 dB, not from 0 to 127 dB
  • Feed that info to EAPO
The translation part should be easy, since apparently the aforementioned MIDI apps can be customized to do that out of the box.
So now I'm looking for the best way to feed that info to EAPO. Maybe writing that value into a config file would do the trick, if there aren't better solutions.

So if slider 2 (CC#2 for example) has to control the gain of a 300 Hz peak filter with Q=2.0 :
  • Say we push the slider to value 47 (in the [0...127] interval)
  • The MIDI app will receive a CC#2 value of 47
  • The translated value will be -3.375 (in the [-15...15] interval)
  • So I could have some previously defined EAPO config file with this code : Filter 2: ON PK Fc 300 Hz Gain 0.0 dB Q 2.0
  • And change it to this code : Filter 2: ON PK Fc 300 Hz Gain -3.375 dB Q 2.0
And now if knob 2 (CC#12 for example) has to control the Q-factor of that same 300 Hz peak filter, from 1.0 to 5.0 :
  • Say we turn the knob to value 63 (in the [0...127] interval)
  • The MIDI app will receive a CC#12 value of 63
  • The translated value will be 3.125 (in the [1.0...5.0] interval)
  • So I could just modify the previous EAPO config file to this : Filter 2: ON PK Fc 300 Hz Gain -3.0 dB Q 3.125
In theory it should work, right ? :p

I'm just worried about having to write info to a text file many times per second every time I push a fader or turn a knob. But that could be solved with a RAM disk. I already have one, which shows like a regular disk in Windows (e.g. R:). So all I'd have to do is to use EAPO's config file to "Include" another config file that would be in R: That way EAPO would monitor changes in R: (so in RAM) and I wouldn't have to make disk writes many times per second.

What do you say ? :D
You might get hold of the guy who wrote APO and see if he'd consider adding midi control to it.
IMHO, APO is in the 'set and forget' category, but if I had business setting up EQ for home systems, it'd be worth it.
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
Didn't you notice that this was already solved before writing your post?
PEACE is the most widely used GUI for EAPO. And now it has full MIDI control. :cool:
 

paudio

Senior Member
Joined
Sep 18, 2021
Messages
311
Likes
178
This is sick. Going to try this later. Apple Dongle with controllable EQ.
 
Top Bottom