Before posting, please read: When to use this forum, when to submit a help ticket

Sending MIDI Song Select to Boss DR-3

Started by iguana, June 22, 2017, 05:45:06 PM

Previous topic - Next topic

iguana

I am trying to get BandHelper to work via MIDI to try to bring some automation to my setup. It seems to work very well, with one exception - I can't get my DR-3 (drum machine) to recognize a MIDI Song Select (i.e,. F3 xx) message when sent from Repertoire.

Platform: X86 laptop running Android. MIDI via USB dongle.

I can have Repertoire send PC message (to other gear), and the message are recognized and work correctly. This tells me the underlying platform works with Repertoire.

When I use the same dongle to send the SS message from my Windows box to the DR-3 using MIDI-OX, it works. That tells me the DR-3 can receive MIDI.

But when Repertoire sends SS messages directly to the DR-3, nothing. I've tried doing it via the MIDI Song Select Field, as well as using a MIDI preset with raw MIDI.

The MIDI log panel shows that the SS messages seems to be going out...

Anyone get Repertoire working with a DR-3?

And on a debugging note, are there any Android MIDI diagnostic tools that allow me to send MIDI commands, not just log them?

arlo

When you're sending the song select messages to the DR-3, do you also see the USB MIDI interface listed as a connected port in the MIDI Status window?

MIDI Commander is an Android app that lets you send test messages; I don't know if it can send song select messages, though:

https://play.google.com/store/apps/details?id=it.bordero.midicontroller&hl=en

iguana

#2
Arlo,

The USB device _is_ listed in the MIDI status window.

I just tried Midi Commander - doesn't seem to be able to send SS messages. PC, CC, Note On and SysEx, nothing else.

Using Repertoire, I can send PC messages to another device. Works awesome! But the SS messages from Repertoire to the DR-3 don't work. Or, at least, they don't make it through. (And SS messages to the DR-3 from my Windows PC do work, so I know it can be done...)

I have a couple more things to try to try to isolate the issue. Need to try to send different message to the DR-3 (i.e., Note On) to see if any messages are making it through from Repertoire.

Edit: I should add that I'm just demoing Repertoire at this point, but it seems like it will do everything I need. Loving the app!

arlo

You said, "The MIDI log panel shows that the SS messages seems to be going out" -- what specifically do you see there?

If you are indeed sending the song select messages, and the USB interface is connected, and it can pass song select messages sent from another app, I don't know where else the problem could be. I think you've covered all the options in your troubleshooting.

iguana

Just to update on this, did some more testing:

Using the same dongle in all tests.

From my Windows 10 box, testing via MIDI-OX:
- To DR-3 - no issues noticed. PC, Song Select, MIDI clock, song stop all work
- To other device - no issues. Only tested PC

From Android laptop, using Repertoire
- To DR-3 - PC messages work! Song Select and Song Stop messages don't! Repertoire's MIDI log shows messages are generated, and the outgoing light on the dongle blinks, seemingly confirming this. But only PC has an effect on the DR-3
- To other device - PC messages work.

From Android, using MIDI Commander
- To DR-3 - PC messages work. But can't test Song Select or Song Stop.
- To other device - PC messages work.

On a lark, I switched to another dongle and repeated the tests - got exactly the same results.

My conclusion would be that somehow, Repertoire is not formatting the Song Select and Song Stop messages properly, even though the log seems to indicate the correct behavior. Likely that conclusion is wrong, as you would have heard about issues with Song Select long before now.

Clearly there is a message being sent, but it is just not being understood for what was intended. Unfortunately, I don't have a way of logging the message as it appears on the out cable of the dongle, which would probably help immensely in understanding :-( The only thing I can think of is that PC messages are to specific channels, whereas Song Select and Song Stop do not have channel information attached.  ????

Here's the Repertoire Log:

- found RTP port BandHelper - TravelMate 8210
- adding port BandHelper - TravelMate 8210  for input
- adding port BandHelper - TravelMate 8210  for output
- found USB port USB2.0-MIDI Port 1
- adding port USB2.0-MIDI Port 1 for input
- adding port BandHelper - TravelMate 8210  for output
- found USB port USB2.0-MIDI Port 1
- adding port USB2.0-MIDI Port 1 for input
- adding port USB2.0-MIDI Port 1 for output
- found USB port USB2.0-MIDI Port 2
- adding port USB2.0-MIDI Port 2 for input
- adding port USB2.0-MIDI Port 2 for output
- adding port USB2.0-MIDI Port 1 for output
- found USB port USB2.0-MIDI Port 2
- adding port USB2.0-MIDI Port 2 for input
- adding port USB2.0-MIDI Port 2 for output
- sending data [F3, 02] to all ports
- sending data [C3, 01, C1, 02] to all ports
- sending data [F3, 03] to all ports
- sending data [C3, 02, C1, 03] to all ports
- sending data [F3, 01] to all ports
- sending data [C3, 00, C0, 01] to all ports
- sending data [F3, 02] to all ports
- sending data [C3, 01, C1, 02] to all ports
- sending data [F3, 03] to all ports
- sending data [C3, 02, C1, 03] to all ports
- sending data [F3, 02] to all ports
- sending data [C3, 01, C1, 02] to all ports
- sending data [F3, 01] to all ports
- sending data [C3, 00, C0, 01] to all ports
- sending data [F3, 01] to all ports
- sending data [FC] to all ports
- sending data [F3, 01] to all ports
- sending data [FC] to all ports
- sending data [F3, 02] to all ports
- sending data [C3, 01, C1, 02] to all ports
- sending data [F3, 03] to all ports
- sending data [C3, 02, C1, 03] to all ports
- sending data [F3, 01] to all ports
- sending data [C3, 00, C0, 01] to all ports




arlo

Your outgoing data looks fine ... F3 xx for song select, and Cx xx for program changes.

Just for testing, you might try sending just a song select message from a song ... remove the MIDI presets from a song, then select the song, so that only its song select message is sent ... in case the two being sent together are interfering with each other somehow.

Otherwise I'm not sure what else to suggest. I could do a test here with a MIDI monitor on the other end to make sure the song select messages really are sent as the app says they are being sent. I wouldn't be able to do that until after the July 4 holiday next week.

iguana

Apologies in advance for the long post!

Synopsis
- Song Select (and Song Stop) messages appear to be logged as outgoing, but are not being understood by the external device.
- PC messages, however, do work.
- Song Select messages are not being sent from the More Controls layout - expected behavior?
- Song Select messages are not being fired from the first song in a set list (but are fired if the set list cycles through to the first song again) - expected behavior?
- When MIDI commands are fired manually from the song list, a Song Select message always goes first. Expected behavior?

The rest: TL;DR

Had a chance to do some more testing:

Test baseline
   - 3 songs, all with different MIDI song numbers (1, 2, 3)
   - Set list created with all three songs
   - Configured layout to Send MIDI

Removed all my MIDI presets from songs, then cycled through them in a setlist. Using layout More Controls. Does not appear to send the Song Select command! And nothing happens on the external device.

MIDI Log:
- found RTP port BandHelper - TravelMate 8210
- adding port BandHelper - TravelMate 8210  for input
- adding port BandHelper - TravelMate 8210  for output
- found RTP port BandHelper - TravelMate 8210
- adding port BandHelper - TravelMate 8210  for input
- adding port BandHelper - TravelMate 8210  for output
- found RTP port BandHelper - TravelMate 8210
- adding port BandHelper - TravelMate 8210  for input
- adding port BandHelper - TravelMate 8210  for output
- found USB port USB2.0-MIDI Port 1
- adding port USB2.0-MIDI Port 1 for input
- adding port USB2.0-MIDI Port 1 for output
- found RTP port 192_168_1_188, RTP 2
- adding port 192_168_1_188, RTP 2 for input
- found RTP port BandHelper - TravelMate 8210
- adding port BandHelper - TravelMate 8210  for input
- adding port 192_168_1_188, RTP 2 for output
- found RTP port BandHelper - TravelMate 8210
- adding port BandHelper - TravelMate 8210  for input
- adding port BandHelper - TravelMate 8210  for output
- found USB port USB2.0-MIDI Port 1
- adding port USB2.0-MIDI Port 1 for input
- adding port USB2.0-MIDI Port 1 for output
- found USB port USB2.0-MIDI Port 2
- adding port USB2.0-MIDI Port 2 for input
- adding port BandHelper - TravelMate 8210  for output
- found USB port USB2.0-MIDI Port 1
- adding port USB2.0-MIDI Port 1 for input
- adding port USB2.0-MIDI Port 2 for output
- adding port USB2.0-MIDI Port 1 for output
- found USB port USB2.0-MIDI Port 2
- adding port USB2.0-MIDI Port 2 for input
- adding port USB2.0-MIDI Port 2 for output


---

Then, tried the same, just using layout Big Lyrics. This time, the log shows that song select message is being sent. However, it does not appear that the song select message was sent on the first song. (I repeated the test to make sure - the song select is not being sent on the first song). Regardless, nothing happens on the external device. Watching the activity light on the dongle seems to confirm that there is no SS message on the first song when the set list is loaded.

MIDI Log: (I'm going to skip all the found/adding port messages).
- sending data [F3, 02] to all ports
- sending data [F3, 03] to all ports
- sending data [F3, 01] to all ports
- sending data [F3, 02] to all ports
- sending data [F3, 03] to all ports
- sending data [F3, 01] to all ports
- sending data [F3, 03] to all ports
- sending data [F3, 02] to all ports

---

Double checked the layout settings - the only difference between the two is that the Play Tempo option is set to on for the Big Lyrics layout. So I set it to on for the More Controls layout, and still no messages going out. Is that a bug or feature that I missed? Will continue testing using Big Lyrics layout.

---

Re-added MIDI presets to the songs. Each song now has 3 presets. A PC, a SS, and a Stop Song (Raw: FC) command. This is effectively where I was.

Return to the song list, cycle through the songs. Log shows expected activity - the SS message is sent, followed by the three MIDI presets I've added per song. The PC messages do have the expected effect on the external device while the SS and Song Stop messages do not have any effect:

(I've inserted line breaks to indicate when songs were switched)

- sending data [F3, 02] to all ports
- sending data [C3, 01] to all ports
- sending data [F3, 02] to all ports
- sending data [FC] to all ports

- sending data [F3, 03] to all ports
- sending data [F3, 03] to all ports
- sending data [FC] to all ports
- sending data [C3, 02] to all ports

- sending data [F3, 01] to all ports
- sending data [F3, 01] to all ports
- sending data [FC] to all ports
- sending data [C3, 00] to all ports

- sending data [F3, 02] to all ports
- sending data [C3, 01] to all ports
- sending data [F3, 02] to all ports
- sending data [FC] to all ports

- sending data [F3, 03] to all ports
- sending data [F3, 03] to all ports
- sending data [FC] to all ports
- sending data [C3, 02] to all ports

- sending data [F3, 01] to all ports
- sending data [F3, 01] to all ports
- sending data [FC] to all ports
- sending data [C3, 00] to all ports

----


Last test is to go into the song list and try firing off the MIDI presets manually. Result is that PC messages work, Song Select and Song Stop do not. Dongle activity light indicates activity.

Also, observe that the default song select message is being sent every time any MIDI command is manually fired. Expected behavior?

- sending data [F3, 02] to all ports
- sending data [C3, 01] to all ports

- sending data [F3, 02] to all ports
- sending data [FC] to all ports

- sending data [F3, 02] to all ports
- sending data [F3, 02] to all ports

- sending data [F3, 01] to all ports
- sending data [C3, 00] to all ports

- sending data [F3, 03] to all ports
- sending data [C3, 02] to all ports

- sending data [F3, 03] to all ports
- sending data [FC] to all ports

- sending data [F3, 02] to all ports
- sending data [F3, 02] to all ports

- sending data [F3, 03] to all ports
- sending data [F3, 03] to all ports

- sending data [F3, 01] to all ports
- sending data [F3, 01] to all ports

- sending data [F3, 01] to all ports
- sending data [FC] to all ports

- sending data [F3, 01] to all ports
- sending data [C3, 00] to all ports

---

Not sure what else I can try. Any suggestions?

To get my rig working properly, I've ordered a MIDI hub. Hoping I can use that to log the outgoing commands to see the data actually going on the wire.

arlo

#7
I just tried this with an Android 5 tablet connected to a Mac through a USB MIDI interface, with the MIDI Monitor app running on the Mac. Song select messages sent from the tablet were received and recognized correctly by MIDI Monitor. So I don't think anything is wrong with the formatting or sending of the song select messages.

I don't have any experience with Android on a laptop, so I don't know if that is related to the problem, but I'm guessing not because my app doesn't currently use any of Android's built-in MIDI functionality, which was only added in Android 6. That leaves your USB MIDI interface, and I have seen cases where those will alter or drop data passing through them. So it's possible that's happening only when using it with Android, not with Windows. Trying a different USB MIDI interface would test that idea.

MIDI is only sent when you select a song if the Send MIDI song selection action is turned on for that layout. It sounds like this wasn't on in the layout that wasn't sending MIDI automatically. Also, song selection actions aren't triggered for the first song when you first open a set list -- you have to explicitly select the first song when you're ready to trigger its actions.