Download

[HELP] Realtime Application of High Pass and EQ

Hey there Unreal team, devs, and friends.

I have a long-time project I have been working on that I finally have time to work on again.
They are virtual CDJs, which are the well-known club and festival standard of DJ equipment.

They originally were made in 4.19.2 and everything worked, but also they were a mess, as I was learning alot. It was about 13 different blueprints interacting with one another and it was impossible to migrate or use in another project.

Fast forward a few months and I have organized and consolidated them well to 1 Blueprint and MOSTLY everything is working except EQs and the high pass filter. I have literally tried everything up and to this point and I am seeking a solution. I am in one of the modes where I am so deep, and the solution is likely very simple.

I have also upgraded to 4.22 so I believe something broke or changed. I can’t even open the 4.19.2 project anymore, so I can’t reference it and see how I had it working.

So the setup is 4 CDJs and the mixer.

Each CDJ has an Audio Component from where the music of that specific player emits. The player can select a song from a list and it will set the song to be the AudioComponent’s sound.

Within the Mixer there are 4 Child blueprints, each of which are a “Track”. Each “Track” consists of a volume fader and 4 knobs. LOW knob, MEDIUM knob, HIGH knob for EQ, and the Filter knob.

Crossfader and volume faders work since its as easy as setting the AudioComponent volume,

The filter knob has 2 functions. 0-50% is Low Pass. Since Low Pass is a built in component to the Audio Component, it works flawlessly, simple.
50-100% is HighPass which is set by passing a float to a created SourceEffectFilterSetting entry.

The 3 knobs above, LOW, MEDIUM, and HIGH create 3 array entries to a Submix Effect Submix EQPreset.

This has worked before and I can confirm from debugging in the blueprint graphs that the Filter and EQ knobs DO receive input in realtime and are setting their values in their retrospective entries, so it is NOT a user input/interaction issue of any kind, it is purely audio and routing.

So here is what broke or is different now, or I may have simply even forgot at this point and broke it somehow.
I need to assign the HighPass SourceEffectFilterSetting entry AND the EQ Submix Effect Submix EQPreset entry to the AudioComponent.

I cannot assign it to the audio file directly, or it will only work on one CDJ. So my idea is that when the player loads a song, it dynamically adds these entries to that specific sound. EVEN BETTER would be have each AudioComponent have these effects always on opposed to assigning it to each sound when they load.

The ideal situation would be the following or a similar concept:

CDJ1 AudioComponent has EQ1 and HighPass1 entries assigned and controlled by Track 1
CDJ2 AudioComponent has EQ2 and HighPass2 entries assigned and controlled by Track 2
CDJ3 AudioComponent has EQ3 and HighPass3 entries assigned and controlled by Track 3
CDJ4 AudioComponent has EQ4 and HighPass4 entries assigned and controlled by Track 4
^The above should be seen as, no matter what song is assigned to the AudioComponent, the EQ and HighPass will be live.

I had it working before, so I know it is possible. I really need guidance, I need to step away and breathe as I feel I am getting too mixed up in terminologies and methods at this point. If someone can understand what I am trying to do and help out that would be insanely helpful. I have been at this for 3 days.

Thank you so much ahead of time, and I hope we can find a solution!
They are VR compatible and work with the MagicLeap as well, really excited to get it going!!

Thank you again!

-Brandon