MIDI Event routing to 2032 Event dispatcher... a smarter way to do this?

Hello everyone.

This thread question is Audio related in the context BUT is more about Blueprint proper usage, so any good BP dev could help.

Following this thread:

I managed to have Ableton sending MIDI notes to UE4.
There are 127 possible midi notes
There are 16 Channels.

2032 MIDI “events” can in theory happens.

As I am designing a pipeline I need to have all of these working so musician can send anything they need: it will hold.

This is what I did, and I would like to know if there is a **better/smarter way? **(See attached pic)

**Here is why I am requesting help **(optional read/details):

As I am using Event dispatcher (because I guess that’s the only way to do this?) I have to create 2032 of them… and using a Switch on int to route the input from MIDI.
When MIDI goes in, I switch on int/channel (1 out of 16) and route this to a BP Actor component (Midi_int_Switch_Ch1)

This BP as you can see is… was long to create: you have to manually create all the EDispatcher (as Multi select/copy/paste doesn’t work).
I can’t create 2032… 127 took a already hours.

So the solution is to duplicate the BP Actor component (Midi_int_Switch_Ch1) in the Content Browser and assign a parent so “automatically” it rename all the EDispatchers at each duplicate. (adding 127)
So I to that 16 times…

Hi @olivierJT, this approach seems unnecessarily complicated.

In the tutorial, you would have noticed that I created a single MIDI NoteOn Event Dispatcher and as input arguments included the more complex information of Channel, MIDI Note, Velocity, etc.


This single event can do all the work your 2032 Events can do and can do it more simply (read: better/smarter).

Is there a reason you do not want to do this?

Hello @dan.reynolds !
I did the same as you did, but my goal is to have a Universal receiver that dispatch to the many actors that will be in the scene.
It’s not just a 1 on 1 MIDI exchange.

One thing to note is that, i use MIDI not to make/generate/trigger music/audio, it’s only for visuals. “VJing”

I am not sure if what I did with dispatcher is the good path, it’s was a pain to set up.
I have incoming MIDI signal from 2 Abletons Live that send to my UE4 MIDI notes, so I wanted to be able to receive anything MIDI they could throw at me and then distribute events.

Because with your system, I will still need to distribute (switch on int) the CC to the parameters, event I need anyway, so the idea is to do it before universally.

I am definitely not sure I took the right approach :slight_smile:

Are you saying that each one of your Actors uses all 2032 messages?

They could yes, that’s the idea.
Right now it’s just pipeline design, so it’s “everything is possible style”
Visually very probably not, but I will close the many of the 2032 for optimizations after sequence design is decided.

If I have 5 musicians during the live show, then I need to be able to receive all what they send me.
In the end it will be max 16 channels anyway. (x127cc)