One for the experts here!
Setup: iPAD app (SetListMaker) -> midi to -> MOXF6 -> midi out -> MIDI MONITOR (to capture data)
1) When I click directly on the MOXF6 switching between masters I get 1 set of MIDI data that's sent to my slave keyboard
From Port 1 Control 1 Bank Select 62
From Port 1 Note Off 1 G♯0 0
From Port 1 Program 1 0
From Port 1 Control 1 Channel Volume (coarse) 127
From Port 1 Note On 1 A♯-2 64
From Port 1 Control 7 Channel Volume (coarse) 100
From Port 1 Note On 1 A♯-2 64
From Port 1 Control 8 Channel Volume (coarse) 100
From Port 1 Note On 1 A♯-2 64
2) if I click on the iPad app to send SYSEX to switch master on the MOXF6, i get the midi data out of the MOXF6 twice (2 sets of the same)
From Port 1 Control 1 Bank Select 62
From Port 1 Note Off 1 G♯0 0
From Port 1 Program 1 0
From Port 1 Control 1 Channel Volume (coarse) 127
From Port 1 Note On 1 A♯-2 64
From Port 1 Control 7 Channel Volume (coarse) 100
From Port 1 Note On 1 A♯-2 64
From Port 1 Control 8 Channel Volume (coarse) 100
From Port 1 Note On 1 A♯-2 64
From Port 1 Control 1 Bank Select 62
From Port 1 Note Off 1 G♯0 0
From Port 1 Program 1 0
From Port 1 Control 1 Channel Volume (coarse) 127
From Port 1 Note On 1 A♯-2 64
From Port 1 Control 7 Channel Volume (coarse) 100
From Port 1 Note On 1 A♯-2 64
From Port 1 Control 8 Channel Volume (coarse) 100
From Port 1 Note On 1 A♯-2 64
this anomaly creates havoc on the slave keyboard (montage) and breaks it's SSS feature.
I know its the midi data sent twice that causes a problem, because if I click on the master keyboard directly twice I get the same problem on the montage.
So for sure the midi data is being sent twice (as captured by midi monitor).
The 64k dollar question....why does it get sent twice?
Thanks!
Can't tell. You didn't really outline the actual MIDI connections, nor the number and nature of the items being slaved.
But just a guess: you are echoing the message in a loop. It's not sending it twice, as much as it is bouncing around in your setup.
From the details given, you are attempting to slave Master Mode to an iPad app. I don't think this will work as a concept. I have not tried this but, you have two Masters, the iPad app tells Master mode of the MOXF to switch Masters, you then expect the MOXF to be 'master' to other devices. Frankly, I don't know if that is possible.
Try eliminating the iPad - as a test. In other words, recall the MOXF Master by actually pressing the front panel buttons of the MOXF. Let us know if that recalls your setup properly. If yes, that will save us a lot of time in finding you a proper solution for your system (and please do include exactly what you have and need to accomplish).
The ideal situation would be to have one device act as Master, all others as slaves. Daisy chaining the master role is just something I've never done because afaik, MIDI's Master/slave relationships always are 1 master, multiple slaves. I've never created a multiple Master situation because logically it doesn't seem feasible. (Doesn't mean it will not, just doesn't seem like the way designer's think - they have one way for a device to act when it's the master then a completely different way it works when it's a slave. Never seen a mode for slave/master/master, is what I'm saying.
Can your app address the slaves as separate entities?
If not, that may be what you need...
Thanks BM! I forgot some details as you noted.
iPad APP -> midi out via irig-> to MOXF6(midi in) -> midi out via midi cable to usb to -> MIDI MONITOR App to capture data.
That's the connection nothing else (I purposely didn't want to introduce anything else to simplify the capturing of midi data)
And yes, if I do click on just the MOXF6 master buttons it sends it once. It's when I send SYSEX commands to switch the MOXF6 masters do I capture the MSB/LSB noted above twice via the MIDI MONITOR APP.
As far as your last question, can the app address the slaves as separate entities, i am not sure how to do that. I like my current setup, because if the app dies or i remove the iPad from the setup, i can still control the slave (montage8) from the moxf6 via simply clicking the moxf6 master buttons. I just like using the iPad app, as it has lyrics and as I have to change set list every gig, it's so much easier to do that. So my ideal setup and how I have it is iPad APP midi out to midiIn of Moxf6 mididOUT to the midiIN of montage8.
As far as your concern on slaving the MOXF6 from an iPad App. I'm not sure if its "slaving" as much as sending a SYSEX command to switch masters as documented in the manual/data list F0 43 10 7F 1C 00 0A 00 00 dd F7.
iPad APP -> midi out via irig-> to MOXF6(midi in) -> midi out via midi cable to usb to -> MIDI MONITOR App to capture data.
That's the connection nothing else
So where's the Montage. I'm sure the setup is clear to you but not to us, we can only try to follow what you write. I read that again and again and I less clear each time. (Sorry).
As far as your concern on slaving the MOXF6 from an iPad App. I'm not sure if its "slaving" as much as sending a SYSEX command to switch masters as documented in the manual/data list F0 43 10 7F 1C 00 0A 00 00 dd F7.
Whatever you call it, it's definitely an extra step - quite different than physically pressing the button.
Sorry, I'll give it another shot.
(A) - IPAD APP
(B) - MOXF6
(C) - MONTAGE8
(D) - MIDI MONITOR SOFTWARE ON MAC TO CAPTURE MIDI DATA
Here's my live setup when playing:
(A) ->midi-> (B) ->midi-> (C)
I click on (A) making selections which in turn sends MASTER CHANGE SYSEX COMMANDS to (B). (B) sends LIVESET MSB/LSB/PC change commands to (C)
EXPECTED RESULTS: (C) changes LIVESETS with SSS (no cutoff sound) as I click on (A)
ACTUAL RESULTS: (C) SSS does not work, sounds are cut off as I click different selections from (A)
With these actual results, I needed to understand why SSS failed. So I tried to debug/triage the problem and did the following:
1) Taking (A) out of the picture, I clicked directly on (B) to change MASTERS which in turn -> (C)'s LIVESET changes and SSS works. NO CUTOFF of SOUNDS. Works as expected.
With that in mind, I knew something was different when clicking on (A) vs clicking directly on (B).
2) Took (C) out of the picture. Introduced (D) to capture midi data, new setup is:
(A) ->midi-> (B) ->midi-> (D)
When clicking on (A) - (D) captured from (B) MSB/LSB/PC commands twice
When clicking on (B) - (D) captured from (B) MSB/LSB/PC commands only once
NOTE: I also intercepted (A) midi output directly to (D) to ensure the SYSEX commands are only sent once. And it was only sent once.
(B) sending MSB/LSB/PC twice will cause SSS to fail. How do I know? Directly on (C), click on LIVESET 1, then click on LIVESET 2 twice, SSS fails. And that is by design, (C) the montage cannot hold in memory essentially 3 programs (LIVESET 1, LIVESET 2 and another LIVESET 2).
So I'm back again to the original question. Why does changing MASTERS on (B) by using the provided SYSEX commands cause it in turn to dump 2 sets of MSB/LSB/PC commands I have setup in that MASTER?
Hi BadMister, any additional help would be appreciated.
Thanks much!
vince
Sorry, I needed to be at my studio to try to duplicate your issue.
I setup a MOXF Master to select Performances on the Montage, works great (no surprise). If I'm playing the Montage when the MOXF sends the Bank Select and Program Change, SSS works as it should. For me this is a workable situation, MOXF is master, Montage is the slave. Both products behave as expected in a direct MIDI master/slave relationship.
I don't have an app that sends Sysex to the MOXF. What I did was send a Sysex message in from a MIDI sequencer to select the MOXF Master, it in turn sends the Bank Select and Program Change to the Montage - which once again selected the appropriate Performance.
However, SSS is not working - when the MOXF is asked to receive a command and then send a command. Selecting the Master on the front panel of MOXF continues to work.
I am able to follow your methodology (thank you for setting that out as you did, very clear) in replacing the Montage with a device that could give you an indication of what messages are being received by the second slave device.
First thoughts:
Without knowing the app I can only speculate (much as you've concluded) that the addition of the app is the cause of the double message.
Is the app expecting a two way (in/out) connection? If yes, how are you accomplishing that?
And I guess I should ask what is the Sysex message you are sending? F0 43 10 7F 1C 00 0A 00 00 dd F7
Conclusion
The best way to control two devices (2 slaves) is to do so from a single device, not in a daisy chain where the device in the middle is expected to be both a master and a slave. Can the app send two separate messages (one to each device)?
Concerning the daisy chain: The good news is the Program Changes take place in both devices, the only thing that is not working is a feature designed to work when you are actually performing and making your selection on the keyboard directly. (I'm, frankly, surprised it works in the direct slave position). Which partially what makes this intriguing.
I cannot verify your finding that the message is sent twice by the MOXF, but this seems a logical conclusion - whether or not it actually is, I'm not sure how to determine this.
Sorry, I don't have an explanation for why this happens - only that it seems consistent with what I know about MIDI devices in master/slave relationships, in general.
I will, time permitting, see if I can take another look at this and hopefully find a solution for your situation. Clearly though, the current method of making the MOXF both slave (to the app) and master (to the Montage) only partially works.
Thanks BadMister for putting in the effort to duplicate the scenario! Much appreciated!
I know you had a few questions in your reply so I wanted to try to answer them in hopes that together we can find a solution. And who knows, the engineers back at Yamaha might be able to review this with you and accept it as a bug and fix the duplicate message. That would be the ideal ending 🙂
Anyway, back to your questions:
And I guess I should ask what is the Sysex message you are sending? F0 43 10 7F 1C 00 0A 00 00 dd F7
Correct, I use that command provided by Yamaha to switch Masters on the MOXF
Can the app send two separate messages (one to each device)?
Unfortunately, I don't think it can.
I cannot verify your finding that the message is sent twice by the MOXF, but this seems a logical conclusion - whether or not it actually is, I'm not sure how to determine this.
Sorry, I don't have an explanation for why this happens - only that it seems consistent with what I know about MIDI devices in master/slave relationships, in general.
I have verified this with Midi Monitor App, you can download here https://www.snoize.com/MIDIMonitor/ It's a great app to capture midi data.
The data is definitely being sent twice.
Thanks again! If you deem this worthy enough to take back to engineers at yamaha, I would appreciate that. If I need to reach out, I can as well. I just was not sure how and who to contact. Any advise would help here as well.
Hi BadMister!
Wanted to check in to see if this issue was brought up to the engineers at Yamaha? Was hoping to see if they think that there's a potential issue here and possible fix.
I know it may be low in their priority but was hoping they are considering it.
Thanks
vince
I still cannot duplicate your issue. I will revisit it over the long weekend but I will (in the meantime stick with my initial reaction: The best way to control two devices (2 slaves) is to do so from a single device, not in a daisy chain where the device in the middle is expected to be both a master and a slave.
I'll try to have a definitive answer about duplicating the issue by Monday. Sorry for the delay.