mpogue2 / SquareDesk

Fully-featured music player and sequence designer, designed for square dance callers
10 stars 4 forks source link

Feature: Global parametric EQ (and VST support) #395

Open mpogue2 opened 6 years ago

mpogue2 commented 6 years ago

See also #71.

I find that I more often want to compensate for room or speaker acoustics, and less often do I want to change every song separately.

I've been thinking a lot about this recently, and I think this is what I want:

I've also measured the response of the Kustom PA-50, with bass and treble controls set to 3 positions. We can see that it's probably not as good as it could be from a square dancing point of view (look how little treble it has -- I've noticed that I tend to turn up the treble a lot), but I'm curious to compare it to the MA-220 + Yaks. I suspect that global EQ would allow us to dial this into an overall sound that is more exciting, easier on the ears, and has more intelligibility for the dancers, even all the way to the back of the room.

kustompa-50

mpogue2 commented 6 years ago

By the way, that purple dashed line in the plot above is actually measured data from the white noise generator I used (which is why it's not 100% perfectly flat). So, I'm fairly confident in the methodology measuring the actual current response of the Kustom PA-50 speaker. I have moved the line up and down to match the "pivot point" of the two tone controls, though. I think this shows more clearly what the bass and treble controls on the PA-50 are actually doing.

I did not measure the interaction between bass and treble tone controls, just 3 positions of the bass control with the treble control held constant, and vice versa.

There is a bump up of about 2.5dB right around 2.5KHz, which is exactly the opposite of what we want for intelligibility (see more discussion on this in #71). We actually want it to be lower at that frequency.. A checkbox for "Mike Sikorsky-style intelligibility improvement" might make it easy to add this to every song (without having to edit each one individually using Audacity or Adobe Audition, etc.). Alternately, a per-song parametric EQ (as in #71) would make it possible to tweak it on a song-by-song basis.

mpogue2 commented 6 years ago

For comparison, here are the K8 curves. On the top is what they are when measured. On the bottom, I've moved the "vocal boost" curves down by 3dB, so we can see the effect of the vocal boost setting, without the added side effect of boosting overall volume that the vocal boost setting gives us.

This shows why I tend to run the K8 in Ext Sub/Vocal Boost mode -- we can see that this speaker defaults to putting out a LOT of bass. But, in ExtSub/Vocal Boost mode, it's much closer to flat, and then we can tweak the EQ to taste at the SquareDesk side.

Also note how much more high frequency response the K8 has. It's a much "crisper" sound. The Kustom PA-50 ($80) is rated at 50W (before it starts distorting), and it's fine for small venues, with the treble turned up all the way. The K8 ($650) is rated for 1000W of output (before it starts distorting), and a single one of these works great for large venues, or venues with a large amount of noise (e.g. a one night stand). I love the crisp K8 sound in ExtSub/VocalBoost mode, it's quite small and has excellent horizontal dispersion (to cover more squares with a single speaker). But, it's also a lot more expensive.

k8

mpogue2 commented 6 years ago

I'm also thinking that it might be simpler to allow a single EQ VST/VST3 component to be chosen as "SquareDesk Master EQ". Then, the user could save/load eq profiles at will. I believe libbass has the ability to load such plugins dynamically. This might be easier than trying to build the UI for a mutli-band parameter EQ -- there are LOTS of them out there already that work on Windows and Mac OS X.

For example: https://www.kvraudio.com/plugins/free/eq/most-popular

I think the key will be figuring out how to view the full GUI from within Qt. This is apparently not trivial.