Freeze on receiving MIDI IN with "Handling Simple CC"

Just received my Electra One mkii and started getting into its LUA scripting possibilities. Using the preset “Handling Simple CC” from here, my Electra One mkii freezes when receiving a MIDI data ramp on channel 1 CC1 and CC64 on its virtual “Port 1” via the USB Type B port. The freeze is persistent and no restart or firmware reflash will help.

It looks like line 26 of the lua script is causing this as commenting that line avoids the freeze:

        --parameterMap.set(deviceId, PT_VIRTUAL, controllerNumber, value)

The only way I found out to unfreeze the Electra One is to boot into the firmware flash mode (keep the bottom-right button pressed when starting the device), enable the USB disk and deleting all files from ELECTRA/ctrlv2/slots/.

Why is the freeze happening?
Why is the freeze persisting reboots and firmware reflashes?
Is there a better way to unfreeze the device than deleting the ELECTRA/ctrlv2/slots/ directory?

Hi there,

I was able to replicate the part when E1 gets stuck when this preset is loaded at the boot time. I will review that today along with other few issues.

I was not, however, able to freeze it by sending it CC data. When you say “MIDI data ramp on” what does that mean? Is there a way for me to replicate. Thanks!

Martin

Hi martin,

thanks for looking into this!

Here is the REAPER project file that causes the freeze when the “Handling Simple CC” preset is loaded:
electra-one-simple-cc.RPP.zip (2.2 KB)

Not sure if that will replicate the MIDI out routing on your machine. The essential step is to make track 2 named out-cc1/cc64 to output its MIDI data to Electra One Port 1.

The Midi data ramp is just a ramp on the ModWheel from 0 to 127, like this:

As soon as the first ModWheel value is received on the Electra One with the parameterMap line being active, the device freezes. Disabling that line doesn’t cause the freeze anymore on incoming ModWheel messages.

1 Like

ok, I am working though the backlog of recent things and questions.

@Mint-Gecko - I identified the problem. It was actually the pages.setActiveControlSet(2). The fix will be included (with other few fixes) in the upcoming release.

2 Likes

Thanks, really looking forward to the fix.

I can confirm that commenting pages.setActiveControlSet(2) also fixes the freeze. So that was the culprit and parameterMap.set() was just taking the fall for it?

resolved in firmware update v3.3.1

2 Likes

The freeze when receiving MIDI CC ramps from the uploaded project is still happening with v3.3.1 and the Simple MIDI CC template. I even had line pages.setActiveControlSet(2) commented out and it still froze on receiving MIDI data.

Any additional info you need to fix this?

Redid some of the tests with v3.3.0 and v3.3.1 and the factory state of the sdcard. On both versions, commenting out pages.setActiveControlSet(2) doesn’t prevent the freeze. Only commenting parameterMap.set(deviceId, PT_VIRTUAL, controllerNumber, value) prevents the freeze.

What has improved with v3.3.1 is that the freeze is gone on the next bootup. With v3.3.0, the freeze would persist on restart. But the freeze when the LUA code calls parameterMap.set(deviceId, PT_VIRTUAL, controllerNumber, value) is still happening for both versions. Is this a bug or is something wrong with my device?

nopes, not your device. I am looking at that already. What I am seeing is that it gets into troubles with play is hit in Reaper. I can see that Reaper sends bulk of “reset midi” messages to set pitchbends and several controllers. With 3.3.1 I was testing the release with Reaper constantly playing, that seems to work just fine.

A capture of messages from reaper:

I will let you know as soon as I understand what is happening there.

3 Likes

Although I didn’t get it in the captures I gave you for the WIDI Thru6 BT.

I have seen a similar Ch1-16 CC123 flurry thrown off in some situations when it resumes from power cycle.

Normally though it’s the behaviour I sent you in the quick test the other day.