New MC8 User, Odd Behavior

I’m seeing odd behavior with my new MC8 and been trying to track down the source. I’m hoping somebody can tell me if I’m doing something to cause this or if they’ve seen anything like it.

I implemented a very simple bank that I’m using to test things. I only use this one bank (bank one) and I’ve only programmed presets A-H. The presets are programmed to produce a CC on release and a different CC on Long Press Release.

At least half a dozen times over the weekend the Long Press Release codes stopped working. Like the unit forgot it was programmed for long release. Sometimes this would just happen to a few of the switches, sometimes to all of them.

When that behavior happens I re-connect with the editor over USB and the actions still show up the way they are programmed: one on release, one on Long Press Release. But when I go to the MIDI monitor I can see they are not happening. The MC8 is ignoring the Long Press Release action and only sending the Release action.

To correct the behavior all I have to do is “Save Preset” again. Then it starts working, even though I didn’t change anything.

Coincidentally, in the “Toggle Preset Name” in the editor there is scrambled data. As if something corrupted just that portion of the preset. The scrambled data only ever shows up in the Toggle Name field.

I am using USB for power, and this “corruption” for lack of a better term seems to happen when I unplug the USB and plug it back in.

I have tried copying this Bank to a couple other Banks to check if it happens to all of them or just one. Same behavior for all of them, although the corruptions happen to different presets within them. On one bank preset A, E, and H may become corrupt after a power off/power on and on another bank it may be B, C, D, E and G.

The very odd thing to me is that when I plug back in and go to the editor again the Actions are still listed there, exactly as programmed. The MC8 just doesn’t do the Long Press Release part. For testing purposes I tried changing the Long Press Release to Double Tap and the same behavior occurs. I tried changing the CC’s to Note On messages and still the same behavior. It ignores the Long Press or Double Tap, even though they still show up on the Actions list. And all I have to do to restore it is save the preset again.

Any thoughts?

Can you share your controller “all banks” backup file (from the controller backup tab), or your preset data file (from the edit preset tab), so I can see how you have programmed your preset?

Yes, file attached.
Morningstar_MC8_All_Banks_Backup_20220822_111444.json (1.3 MB)

Let me just add that it’s possible the “corruption” is related to me using the SysEx API to change preset names. As you’ll notice in the attached file, all of the preset names I’m using are blank. In use I have those being written to by an external application (GigPerformer).

If the problem I am describing is unique to me, it’s possible it’s related to using the SysEx interface to write to the display. I spent a lot of time this weekend monitoring and inspecting exactly what SysEx I was sending, to make sure I wasn’t doing the corruption myself. My SysEx looks good, works as expected, and all return “SUCCESS” indicators when I do it through the first midi port. (On the other midi ports I do not receive return SysEx codes, which I assume is by design?)

However, I traced the “corruption” behavior back to disconnecting and reconnecting the USB (which is my power source) so that’s why I wanted to see if this was a known “removing power” thing before getting too deep into the SysEx stuff.

Here is the dump of all banks after the corruption happens.

I’m not sure if it will work the same for you, but I just downloaded this from my MC8 and when I go into the Midi Monitor page on the editor I can see that it is not honoring any of the “Long Press Release” actions even though they are still there on the preset pages. But like I said above, all I have to do is hit “Save Preset” again for each of them and they start working again.
Morningstar_MC8_All_Banks_Backup_20220822_115753.json (1.3 MB)

Thanks for the file. I’ll check it out tomorrow in office.

When the preset is in a state where the “Long Press Release” isn’t working, does it revert back to working when you change banks? i.e. bank up and then bank down again to reload the bank. When you load the preset data into the editor, the actions are all appearing as expected? i.e. long press release is still programmed in the preset?

When it is not working it does not revert back to working when changing banks.

In the two bank dumps I attached above there are three identical banks saved. I did this so I could test whether bank switching fixed things. What I found was that after switching to another Bank the same behavior happened with the other banks.

After some more experimentation, I think I’ve identified what is required to reproduce the problem:

  1. send the clean working bank to the MC8 using the editor
  2. disconnect the editor
  3. send SysEx codes to the MC8 with Opcode 2 = 0x01 to Update Preset Short name. These are all executed properly and reflected on the MC8 display
  4. using the MC8 and these SysEx codes works for as long and as many SysEx’s as I care to send. The presets send all of the Actions specified, including Long Press Release and regular Release.
  5. disconnect power/USB from the MC8
  6. upon powering back up the presets and multiple banks are “corrupted” as previously described. e.g., the Long Press Release actions no longer trigger and there is random text in some Preset Toggle Name and Preset Long Name fields

I am uploading here just a single “corrupted” bank here, but I’m not sure what it’s going to look like for you. I just pushed it back to my MC8 and when viewed in the editor everything at first looked fine, with no scrambled data and the Long Press Release actions working as programmed. After pushing each of the switches in the MIDI Monitor view, including the Long Presses, I went back to the Edit Preset view and the scrambled Preset Toggle Names were back but the Actions still worked.

It looks to me like something about the SysEx commands is corrupting some part of the MC8 memory space that doesn’t get exposed until the unit is powered off and back on.

Morningstar_MC8_Bank_Backup_GigPerformer Extension_20220822_133915.json (46.3 KB)

I hope you will be able to replicate this issue with one of the above banks and the following MIDI sequence, which I captured using Bome’s midi translator.

Should be obvious, but the MIDI OUT lines show what is going to the MC8, the MIDI IN lines show what is coming back (on the second port).

1: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 00 00 00 00 00 00 00 00 28 43 68 6F 72 75 73 29 20 20 31 F7
2: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 01 00 00 00 00 00 00 00 28 53 63 72 65 61 6D 65 72 29 3C F7
3: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 02 00 00 00 00 00 00 00 54 72 65 6D 65 6C 6F 20 20 20 6A F7
4: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 03 00 00 00 00 00 00 00 28 52 65 76 65 72 62 29 20 20 36 F7
5: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 04 00 00 00 00 00 00 00 28 41 74 20 33 29 20 20 20 20 23 F7
6: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 05 00 00 00 00 00 00 00 41 74 20 37 20 20 20 20 20 20 27 F7
7: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 06 00 00 00 00 00 00 00 44 69 6D 65 64 20 20 20 20 20 67 F7
8: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 07 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 07 F7
9: MIDI OUT [MC8 Virtual In]: B0 01 7F
10: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 01 00 00 00 00 00 00 00 53 63 72 65 61 6D 65 72 20 20 3D F7
11: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 04 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 04 F7
12: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 05 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 05 F7
13: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 06 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 06 F7
14: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 07 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 07 F7
15: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 00 F7
16: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 01 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 01 F7
17: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 02 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 02 F7
18: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 03 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 03 F7
19: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 10 00 00 00 00 00 00 00 00 47 69 67 50 65 72 66 6F 72 6D 65 72 20 45 78 74 65 6E 73 69 6F 6E 20 20 67 F7
20: MIDI OUT [MC8 Virtual In]: 
21: Closed MIDI OUTPUT 'Morningstar MC8 2'
22: MIDI OUTPUT 'Morningstar MC8 2' unplugged. It is set to 'pending'.
23: Vanished MIDI INPUT   : Morningstar MC8 1,Morningstar MC8 2,Morningstar MC8 3,Morningstar MC8 4
24: Vanished MIDI OUTPUT  : Morningstar MC8 1,Morningstar MC8 2,Morningstar MC8 3,Morningstar MC8 4
25: MIDI INPUT 'Morningstar MC8 2' does not exist. It is set to 'pending'.
26: MIDI OUTPUT 'Morningstar MC8 2' now successfully opened.
27: MIDI OUTPUT 'Morningstar MC8 2' now successfully opened.
28: Opened MIDI OUTPUT 'Morningstar MC8 2'
29: MIDI INPUT 'Morningstar MC8 2' now successfully opened.
30: MIDI INPUT 'Morningstar MC8 2' now successfully opened.
31: Opened MIDI INPUT 'Morningstar MC8 2'
32: Discovered MIDI INPUT : Morningstar MC8 1,Morningstar MC8 2,Morningstar MC8 3,Morningstar MC8 4
33: Discovered MIDI OUTPUT: Morningstar MC8 1,Morningstar MC8 2,Morningstar MC8 3,Morningstar MC8 4
34: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 00 00 00 00 00 00 00 00 28 43 68 6F 72 75 73 29 20 20 31 F7
35: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 01 00 00 00 00 00 00 00 28 53 63 72 65 61 6D 65 72 29 3C F7
36: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 02 00 00 00 00 00 00 00 54 72 65 6D 65 6C 6F 20 20 20 6A F7
37: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 03 00 00 00 00 00 00 00 28 52 65 76 65 72 62 29 20 20 36 F7
38: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 04 00 00 00 00 00 00 00 28 41 74 20 33 29 20 20 20 20 23 F7
39: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 05 00 00 00 00 00 00 00 41 74 20 37 20 20 20 20 20 20 27 F7
40: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 06 00 00 00 00 00 00 00 44 69 6D 65 64 20 20 20 20 20 67 F7
41: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 07 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 07 F7
42: MIDI OUT [MC8 Virtual In]: B0 01 7F
43: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 01 00 00 00 00 00 00 00 53 63 72 65 61 6D 65 72 20 20 3D F7
44: MIDI OUT [MC8 Virtual In]: B0 07 7F
45: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 04 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 04 F7
46: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 05 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 05 F7
47: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 06 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 06 F7
48: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 07 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 07 F7
49: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 00 F7
50: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 01 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 01 F7
51: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 02 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 02 F7
52: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 03 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 03 F7
53: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 10 00 00 00 00 00 00 00 00 47 69 67 50 65 72 66 6F 72 6D 65 72 20 45 78 74 65 6E 73 69 6F 6E 20 20 67 F7

This is a description of the event sequence corresponding to the line numbers in the MIDI log above:
I’m starting out here with the MC8 having been freshly programmed with the bank in the files above.

1-8: Initial SysEx sent from GigPerformer to set Preset Short Names on the MC8 display
9: Single button press of “B” on the on the MC8 sends the correct CC message to GigPerformer
10: GigPerformer responds by re-writing a new Preset Short Name to button B
11-19: I shut down GigPerformer, and in the process it re-writes to clear all 8 Preset Short Names on the screen and writes “GigPerformer Extension” to the Current Bank Name
21-33: disconnect and re-connect the MC8
34-41: GigPerformer restarted and sent the MC8 the same 8 lines at 1-8 to set up the display, which still works fine
42: Tap switch B on the MC8 and the Preset Long Name field on the MC8 fills with symbols and gibberish

At this point the Long Press Release or Double Tap actions no longer work. Whatever is getting glitched is already glitched.

43: GigPerformer re-writes the Preset Short Name for switch B, which shows correctly on the MC8
44: I gave a Long Press on button H just to verify it wasn’t sending the Long Press CC
45-53: I shut down GigPerformer again, which clears the preset Short Names and again writes “GigPerformer Extension” on the Current Bank Name

I can now open Chrome and go into the MC8 editor and see that preset names B-H are filled with gibberish and in the MIDI Monitor I can see that none of my Long Press Release Actions are working.

I hope that helps track down whatever is happening.

Thanks for the detailed info. The SysEx lines fro 34-41 definitely looks correct. I’ve ran them into my MC8 and the names are all updated and managed to reproduce the gibberish characters, although not consistently:

Definitely something going on with the External SysEx API - will need more time to troubleshoot.

Great, thanks for the prompt attention and confirmation!

I will continue trying to narrow it down, but as you indicated, it does not seem to be consistent.

I think I’ve identified the issue. Can you try this attached firmware and let me know if the issue still persists?

2022-08-24_MC8_Firmware_v_3_10_2_Test.hex (569.3 KB)

Hi james.

I’m sorry to report I get the exact same behavior.

After updating the firmware I re-saved the banks and presets to make sure it was “clean”. I then unplugged the MC8 and plugged it back in. Connected to the SysEx API and sent the following:

1: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 00 00 00 00 00 00 00 00 43 68 6F 72 75 73 20 20 20 20 30 F7
2: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 01 00 00 00 00 00 00 00 53 63 72 65 61 6D 65 72 20 20 3D F7
3: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 02 00 00 00 00 00 00 00 54 72 65 6D 65 6C 6F 20 20 20 6A F7
4: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 03 00 00 00 00 00 00 00 28 52 65 76 65 72 62 29 20 20 36 F7
5: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 04 00 00 00 00 00 00 00 28 41 74 20 33 29 20 20 20 20 23 F7
6: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 05 00 00 00 00 00 00 00 41 74 20 37 20 20 20 20 20 20 27 F7
7: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 06 00 00 00 00 00 00 00 44 69 6D 65 64 20 20 20 20 20 67 F7
8: MIDI OUT [Morningstar MC8 2]: F0 00 21 24 04 00 70 01 07 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 07 F7
9: MIDI OUT [MC8 Virtual In]: B0 01 7F

At that point I got the gibberish on the MC8 screen in the Long Preset Name section and the Long Press Release actions did not work.

Just to be sure I went through the process again, re-uploading the firmware and re-saving a clean bank. Same result.

Edit: just an incremental thought here… When I was initially doing all this I thought the sequence required to produce the bug was “write SysEx to MC8 → cycle power → write more sysex → push button → screen displays gibberish.”

It doesn’t appear the first part is necessary. It’s just “cycle power → write sysex → push button → screen goes to gibberish”. Something appears to happen during the cycling of power the puts the MC8 in a state where receiving SysEx corrupts it in a way that doesn’t happen before power is cycled. The power cycle seems to be the event that breaks the SysEx API.

Thanks for testing. I was only able to reproduce the problem randomly. I just did another fix and so far have not experienced the same problem. Can you give this a go and let me know if it works for you?
2022-08-25_MC8_Firmware_v_3_10_2_Test.hex (569.1 KB)

Sorry, I’m still getting the same problem.

Updated the firmware, got a “success” notification, went into the editor and everything was working fine on the midi monitor.

I exited the midi monitor, pulled the USB to power cycle the MC8, sent the same series of SysEx messages to set the display (which worked fine), but as soon as I touched a button I got gibberish in the Preset Long Name field.

I made some changes to the preset bank I’m using, which I am attaching, but nothing significant other than utilizing Page 2 as well.
Morningstar_MC8_Bank_Backup_GigPerformer Extension_20220825_001401.json (45.9 KB)

Thanks for the update. I downloaded Gig Performer to test and send the SysEx messages and managed to reproduce it again. Let me check it out.

Ok, hopefully this fixes it. Let me know!
2022-08-25_MC8_Firmware_v_3_10_2_Test_01.hex (569.0 KB)

1 Like

Thank you! Works perfectly now! (At least from 20 minutes or so of testing.)

I’m glad to hear you downloaded GigPerformer. By itself it’s not going to do much with the MC8, but it’s built such that it accepts “extensions” in the form of DLLs to expand its basic functionality. I’ve written one for the MC8, which is what led to this thread. I have a few quirks left to address, but I’m aiming to have it up on GitHub in the next week or so, along with a few Rackspaces that demonstrate the capabilities.