Midi channel/port settings

Hi

In the general controller configuration, midi channel tab (rename, port setting etc).
Am I correct in my understanding that if midi channel 16 is set to ONLY omniport 1 (TRS MIDI), its messages (on ch 16) won’t appear anywhere else?
(Thus, there is an filter active?)

Likewise if midichannel 1 and 2 is only set ONLY to the DIN MIDI output, they won’t ever appear at omniport 1?

So, if I have an second controller (Source Audio Soleman, itself set to ch 16) into the MC6mk2 (itself set to ch 15). And the MC6mk2 connected back into Soleman.

I can get the Soleman to transmit messages on ch 1 & 2, and the MC6mk2 (with midi thru active) will pass the messages ch 1 & 2 onwards only to its DIN MIDI output.
Works so far… kinda.

Somehow the Soleman doesn’t like it when I have been transmitting on ch 1 & ch 2, because as soon as I do it will no longer accept ANY messages later on at ch 16 (and probably not see anything on any other channel either).
And I’m not sure that the MC6mk2 is still passing on via midi thru (I forgot to check that).
The only way to get the Soleman back to ‘normal’ is by power cycling it…

It’s like there is an midi loop, but in my logic there shouldn’t be any anywhere? Any suggestions on what I am missing here?

Thanks.

In general, if you’ve got two devices hooked up in a loop, unless you’ve turned off MIDI thru or one of the devices is actively consuming the messages, you’re still getting those messages looping through and they can build up. The Soleman is an older device and would probably feel that strain earlier. Can you share a bit more about how everything is connected and your ultimate goal control-wise?

Thanks.

Soleman has 3 modes: Scenes (0 - 127), Setlist (0 - 63) and Panels (0 - 63).

The most basic way to understand those right out of the box would be:
Scenes = PC#.
Setlist = an sequence of the Scenes/PC# (in any order, up to 90 per each setlist).
Panels = four switches transmitting anything (i e PC#/CC#/NN#/Start/Stop).

You are able to set an global midi channel in, as well as out, for the Soleman.
You can set the Scenes to transmit on one different channel of choice instead of default (global), for each Scene. In each Scene you are able to set one CC# id for the expression pedal (as well as its range and direction).

You can set each switch in each Panel to transmit on different channels of choice, as well as setting their functionality and state Latch (On/Off), Momentary (On/Off), One Shot (on), Radio Button (anyone activated, deactivates the others). Similar to as in Scenes: you are able to set one CC# id for the expression pedal (using either the default or other channel).

But buckle up… because there is a deep rabbit hole of a cool advance feature of the Soleman:

Any of the Scenes (as well as any of the Panel switches) can be programmed to utilize Macros instead of transmitting the (usual) PC#/CC#/NN# etc.
There are 127 Macros available, each can store up to 50 data bytes length.

This means that the Setlist can basically become a sequence of Macros.
So the most simple way to understand/use this is for example as an ‘multichannel’ transmit function. Instead of having that Scene transmitting just one PC# on just one channel (either the default or other), set that Scene to use a specific Macro. In the Macro, set which PC# to be transmitted on which channel. Need to send to more channels? Duplicate the message in the same Macro and change channel for each instance.

But the expression pedal is still ‘only’ using either the default/other channel of your choice as set up per Scene and/or Panel. You can´t multiply it in anyway within the Soleman.

So… anyway…

How do I use the MC6mk2 together with my Soleman?
With four different CC#s. I control the Soleman functionality.
I can (CC102) switch Mode (Scene = 0, Setlist = 1 or Panel = 2) on the Soleman.
I can (CC103) recall any Scene (0 - 127).
I can (CC104) recall any Setlist (0 - 63).
I can (CC105) recall any Panel (0 - 63).

Easy to set up with four different counters in the MC6mk2.

Ok, cool. I´d like to have a few more expression CC#s. Hey, the MC6mk2 can transmit quite a few!
But… the Soleman doesn´t merge any external midi input. It just only accepts the above mentioned (and PC# + NN# as well for Panels and Scenes) on its global channel. Anything else sent into it doesn´t merge and go to its outputs (there are 2 + USB).

Ok, but what if I ‘flip the setup’?
Instead of MC6mk2 => Soleman.
Set it as Soleman => MC6mk2 (with midi thru ON).
But then I loose the ability to control the functionality of the Soleman?
Yup, but if I´m connecting the MC6mk2 back into the Soleman via TRS-midi cable and only transmitting on channel 16 (my global default of Soleman) on that output. While letting the Soleman transmitting only on the other channels (via Macros) into the midi din, with midi thru on active on MC6mk2 and only transmitting those channels (but not channel 16). And connect the expression pedal to MC6mk2 instead.

Should work. And it kinda does. Until I use the switches on the Soleman (i e Setlist sequence).
As soon as I do, it becomes non-responsive to any further CC# control from the MC6mk2.
So it seems like an midi loop even though there should be none. Looking in Midi View (midi monitor). What I can see, there is nothing retransmitting. Not into the Soleman. Not into the MC6mk2.

Specifically for your problem: On the MC6 mkii you can use A+F together to toggle “midi thru” on and off. If you press that, can you regain control of the Soleman?

More generally: I’ve read your entire post a couple of times though, and I’m wondering … why not use the Soleman as a glorified four switch expansion on your MC6 rather than the other way around? The Macros are pretty neat, and you can get somewhere between 18-25 commands that way instead of the 16 on an MC6 mkii, but for most people, that’s overkill, and the Macros seem harder to program than the 16 messages of an MC6 preset. Is there a particular reason to do what you’re doing instead of having all the messages come from the MC6 and using the Soleman to control stuff like changing pages and banks on it?

Thanks for the suggestion regarding A+F as a toggle for the midi thru setting, I´ll investigate that when time allows.

As per your question regarding which one to be the ‘master’ and ‘expansion’ controller. Yes, I´ve thought about the same. The first and foremost reason to buy the MC6 was to be able to change the modes on Soleman. Between Scenes (PC#), Setlist and Panel. The second reason was to investigate if and how much the MC6 possibly also could replace the Soleman.

The macros seems harder to program than they actually are (you get an pop up window where you can select PC#, CC# etc + values + channel).

All the scenes (PC#) in the Soleman all use macro instead of transmitting regular PC#.
The scene number itself corresponds to the macro number: 00 = 00, 01 = 01 and so on…

And in the macros (00 - 100):
Tuner OFF Ch1 (AxeFx ‘A’)
Tuner OFF Ch2 (AxeFx ‘B’)
Program Change 00 - 100 Ch1
Program Change 00 - 100 Ch2

And beyond that in the first 8 macros (101 - 108)
Tuner OFF Ch1
Tuner OFF Ch2
Controller Change 30 (value 0 - 7) Ch1
Controller Change 30 (value 0 - 7) Ch2

Remaining macros (109 and onwards) aren´t in use.

This ‘structure’ is to simplify the programming of a Setlist. Which in my case: setlist = song.
So the first scene are any of the first 100 presets (macro 00 - 99 = program change 00 - 99).
Each of the then following scenes are any of the corresponding CC#30 macros, which by themselves are selecting any of the 8 “scenes” in the AxeFX. A “scene” in AxeFx is an ‘snapshot’ setting within a preset, but no dropouts in sound (as it would be if changing preset with PC#).

So a setlist programming in Soleman would look like:
PC# (i e preset 25 in AxeFx)
CC# (i e scene 1 in AxeFx = INTRO/VERSE)
CC# (i e scene 2 in AxeFx = CHORUS)
CC# (i e scene 1 in AxeFx = VERSE)
CC# (i e scene 4 in AxeFx = BRIDGE)
CC# (i e scene 2 in AxeFx = CHORUS)
CC# (i e scene 3 in AxeFx = OUTRO)

While I can name the CC# macros in Soleman, they´re actually as of now just named correspondingly to the scene number in AxeFX (as I can´t name them in the AxeFx).

So in Soleman:

  1. I can engage the setlist mode (selected with MC6)
  2. Search for any setlist (song), using ‘search’ switch on Soleman.
  3. Upon disengaging the search mode of setlist (finding a song).
  4. I can ‘start’ the song, which first recalls the PC# in both AxeFX (‘next’ switch)
  5. Step forward thru the ‘song parts’ (‘next’ switch) all in the correct order as the song is.
  6. Step backward if needed (‘previous’ switch).

If I don´t ‘have’ any song(structure). I e while improvising, I can:

  1. Choose any PC# I want (Soleman Scenes).
  2. Enter Panel mode instead (selected with MC6).
  3. Toggle between two panels (with MC6).
  4. Panel 1 = switches 1 - 4 on Soleman recalls AxeFx scenes 1 - 4.
  5. Panel 2 = switches 1 - 4 on Soleman recalls AxeFx scenes 5 - 8.

And in any case of above, if I need/choose to tune my guitar (but forgets to turn it off).
It automatically disengages the tuner regardless of what I do next of the abovementioned.

Can I do all, or at least much of all, of above with the MC6? Yes and no, kind of.

The hardest part is actually (the lack of) visual aspect, names etc in the MC6 display.
Abbreviations are valid for a ‘system’ switch, but how do you shorten a song name?
Soleman scrolls the name sideways back and forth. With the MC6, I would need to have an written list elsewhere. While using something generic like song 1, song 2 and so on in the MC6.

Still investigating what kind of possibilities there are in the MC6 as I´m still learning it.
Perhaps there is an solution if I just change perspective or rethink the ‘structure’…

I gotcha. I agree, the MC6 mkii is more flexible in some ways, but its bank limitations (30 banks) means you can’t just go 1-to-1 with the preset structure of another device (i.e. your Axe Fx). If you were dealing with the MC6 Pro (which has 128 banks and 4 pages per bank), however, I’d totally say SWITCH IT AROUND!!! lol.

Yeah, however for me it isn´t primarily the bank limitations in MC6 that is the fundamental problem. But rather the lack of programmability regarding the display itself (+ possibly how the MC6 handles incoming Midi). And as far from what I can see, without a MC6 Pro in front of me, it seems that it wouldn´t alleviate those ‘issues’ by itself either. While I could purchase one and hope for those abilities to become a reality, I´d rather see them first then purchase one.

Regarding my setup:
A + F toggling Midi Thru ON/OFF doesn´t make much difference as far as I can tell.
Investigating further I tried and found a few things that are interesting (+ a possible bug).

  • MC6 Omniport OUT => MidiHub (IN port C) / MidiHub (OUT port D) => Soleman Midi IN
  • Soleman Midi OUT => MidiHub (IN port A) / MidiHub (OUT port B) => MC6 Midi IN
  • MC6 Midi OUT => Nektar MidiFlex IN

Having the editor for (Blokas) MidiHub open programming it to just pass on anything from port A to port B (Soleman Midi OUT to MC6 Midi IN).
As well as pass on anything from port C to port D (MC6 Omniport OUT to Soleman Midi IN).
No kind of filtering active anywhere, just straight IN => OUT within the MidiHub.

Having MidiView (Midi monitor app) open on my computer the with Nektar MidiFlex as it input (MC6 Midi OUT).

As well as having the Midi monitor section within the MidiHub editor available at the same time.
I can see what happens back and forth from/to each unit ‘at any IN or OUT port’, as the MidiHub Midi monitor section can display either of any IN port or OUT port of my choice.
(But unfortunately not all at the same time, for good and bad).

What I found:

  1. Despite the MC6 midi channel setting regarding CH16 being set to the Omniport ONLY.
    And the CH1 & CH2 being set to the MC6 Midi OUT (but NOT set to the Omniport) ONLY.
    The Omniport STILL transmits CH1 & CH2. Because monitoring what is received at IN port C on MidiHub ( = MC6 Omniport OUT), it shows the CH1 & CH2 messages arriving there.
    = NOT as expected
    I would consider this a bug, within the Output port selection?
    My suspicion is that it somehow might be related to the ‘ALL on default’ at each channel AND/OR not being successfully cleared when deselected or clicking ‘Clear All’.
    Maybe it somehow is an Editor AND/OR Global Config Save issue?

  2. Looking at the MC6 Midi OUT (Nektar MidiFlex IN = MidiView app). I can see that while the Soleman (from the MidiHub port D) receives from MC6 Omniport (CH16) and itself then ‘retransmitting’ on CH1 & CH2, back into the MC6. The MC6 never shows anything regarding transmitting on CH16, but everything regarding CH1 & CH2.
    = as expected.

  3. In the General Controller Setting where the possibility to set the Midi Channel Select Output ports (and ‘naming’ them). Assumingly:

  • A channel selected to a TRS Midi Output port.
  • A channel selected to a Midi Output port (or USB).
  • Should all be equal in all their functionality regardless of which kind of output port selected?
    Otherwise the tick boxes for output port selection per channel, doesn´t make much sense.
  1. When having the MidiHub inbetween both controllers, the Soleman seems to be more ‘relaxed’ as I haven´t succeded in getting it ‘locked up’/‘unresponsive’.
    This possibly implies that it might be that some slight mS in latency could help with certain issues (Internal latency of Midihub? - #3 by Giedrius - Support - Blokas Community).

Suggestions:

  • Check the code regarding functionality of the Output port selection, obviously.
  • Perhaps add an Midi INPUT port filter section if possible?
    It could look pretty much the same as the Midi Channel (OUT) settings (in Controller Settings) but obviously with only Midi INPUT ports selectable: Midi IN, USB IN & TRS IN depending on which unit being used/programmed. With selectable filter options (channel specific type of messages: PC#, CC# and NN# and so on) per channel IN.
    This would basically turn the MC unit into an programmable Midi Thru/Filter device if needed. Advanced options could be to even set the ability to a specific range (for example: filter out this range of PC# but not this range, on this channel).
  • Perhaps expand/separate the ‘MIDI Send Delay’ to specific ports AND/OR channels?

However, I don´t know if any or all units can handle such additional processing regarding Midi IN.

But at least the code involved in the Output port selection, definitely needs to be looked at. Something seems to be a bit odd in there somewhere…