New to Midihub: Step-by-Step.04: Controlling outgoing messages

In Step-by-Step.03, we used filters in MIDI Monitor to better understand the data coming in from two devices.

In this activity, we will use Midihub to control the data going out to a synthesizer, sampler, or another sound module

We’re going to use the sequencer and KeyStep37 MIDI controller like before.
Follow along in your own way with your gear

Let’s start!

Cables needed: USB & 2 MIDI cables.
Other gear: Two MIDI input devices & Midihub Editor like before
(optional): a 3rd cable connected from MIDI OUT-A to your sound module

Let’s return to the patch for the “2 to 1 MIDI MERGE BOX”:

Connect all your devices like last time and switch them on
Connect to Midihub Editor and…
Open the ‘Merger2to1.mhp’ patch you saved at the end of Step-by-Step.03.

In Step-by-Step.03, we checked the data…

… from each OUT-A port separately

but it’s useful to check them together so:

First do FileSave As and rename the patch ‘Merger2to1VirtualA.mhp’ or similar

Now we’re going to change the patch…
…by adding virtual pipes…
…to make connections ‘inside the box’…
… like this:


:high_brightness: Now change the patch to make these new connections…

try it yourself …then check below…

..the new patch should look like this...


Now Save the changes you’ve made to ‘Merger2to1VirtualA.mhp’

Let’s get testing!

We’re still using a Sequencer on MIDI-A…
…and a MIDI controller keyboard (with an arpeggiator) on MIDI-B

First we check the filters in MIDI Monitor:
We don’t want to see Clock or Active Sensing

Next we check the data coming in to MIDI-A:

it’s as expected…

Then we check the data coming in to MIDI-B with the Arp ON:

as expected, BUT SEE the BPM is 30!

…that BPM needs to be 96 to follow the tempo of the sequencer on MIDI-A

…so let’s fix that on the KeyStep on MIDI-B:
:arrow_lower_right: (more on syncing tempos later )

:eye_in_speech_bubble: Later we’ll pick up one more thing wrong on the KeyStep

NOW we’re ready to check the merged output

To make a full check:
We’ll select Virtual-A-IN and

  • Start the Arp on MIDI-B
  • Start & Stop the Sequencer on MIDI-A:



Are the two MIDI Clock sources messing with eachother?
Let’s Check…

Stop the Arp on the device coming into MIDI-B…
…and check again:


…it certainly looks like that!

We will fix that problem of two Clock inputs in the next section…

1 Like

Our merged pipelines are causing a Clock conflict.

… to stop a device sending out unwanted messages…
… we could spend a hour looking at manuals and the web…

…or solve it the easy way with Midihub Filters

:pushpin: MIDI Monitor filters just hide events from view

Midihub Filter Pipes stop certain events getting through

There are 5 types of Midihub filter pipes.
Together they can do a lot

We need to use one of the simplest: the FILTER pipe

We need to stop Clock messages from MIDI-B…
…but not from MIDI-A…

SO: We need to insert a FILTER pipe in the right place…

:high_brightness: try it yourself …then check below… should look like this:

Take a moment to look down the list of message types FILTER can prevent getting through
We’ll come back to it later to play,
but for now…

Now let’s test the FILTER in action:

First: change the MIDI Monitor filters to show Clock again…

… we see that Clock messages are Incoming but not Outgoing

BUT if we Bypass the FILTER (we stop it doing anything)

…we see that Clock messages are Incoming and Outgoing

NOW, select the Virtual Pipe that merges the signals…

SEE the BPM is still crazy because the FILTER Bypass is ON

but when we turn OFF Bypass and let the FILTER do its job…

…everything is as we want it!

Now turn off the Keystep Arp just to finish…

…see the Stop message and the ‘Stop’ CCs

:eye_in_speech_bubble: : did you spot the KeyStep oversight?

It's the wrong channel!:

Between sessions it was playing a Drum machine on Channel 10.

MIDI Monitor shows us we need to fix that too, otherwise Keystep won’t be ‘seen’ on Channel 1.

Now: Save the patch : we’ll build on it in the next session
(our name for it was ‘Merger2to1VirtualA.mhp’)

Now the patch is saved, take some time to …

:game_die: Experiment with Filter

..try some different..

…event types to filter out:

  • try to see how many different event types your devices will output…
  • …use a Filter in one or more of the 3 pipelines
  • …change the Filter options
  • …try the Enable All, Disable All, and Invert buttons…
  • …and watch the change in the MIDI Monitor Outgoing column

Now you know…

  • how to use Virtual pipes to combine outputs…
  • how to use MIDI Monitor to diagnose and fix problems
  • that Midihub Filters are one way to limit messages that leave a pipeline

Next, we’ll split outputs and customise what goes through each one :link:

:arrow_upper_left: more on syncing tempos:

we just matched tempos...

…of our two devices, just to keep things simple.
That’s probably OK when playing a short arpeggio like out example.

But a long arpeggio or a sequence would need our devices to be sync’ed.
We put some links for that bigger subject here :link:

That’s the end of this episode.

In the next episode, we’ll use our Midihub skills to develop a patch with 2 inputs and 3 outputs, discovering some new pipes along the way.

The following entries on this topic are helpful comments from users on how to improve the tutorial above.

Many of the suggestions will have already been incorporated.

Feel free to add your own comments or questions below!


Although Clock is the number one candidate to be filtered out at the input, it might be worth to mention the realtime commands Start, Continue, Stop as well. Esp. interesting if you want or don’t want your arps and sequencers start and stop all together.

1 Like

Hi @RoDi , Happy New Year!
good point about Start, etc

In the spirit of “Development Collaboration” and as @Blokas is probably on hols (or packing up shipments!) until next week, any suggestions about where the extra mention might go?

I just had a look through the topic and it seems to me that it fits in part2,

maybe when Filter is first introduced here:

SO: We need to insert a FILTER pipe in the right place…

maybe around here:

:eye_in_speech_bubble: : did you spot the KeyStep oversight

or maybe even at the end here:

Now the patch is saved, take some time to …

:game_die: Experiment with Filter…

What do you think? Got any possible wording?

1 Like

Hi -doing tutorial number four, it says to use this patch. But I don’t see it anywhere. Can someone help me find it so I can finish the tutorial?

It refers to the preset saved in Step-by-Step.03

If you skipped that tutorial (all about making the most of MIDI Monitor), Merger2to1 looks like this

right! duh… thanks!

1 Like