So I setup an encoder to send CC 34 on ch.1 to update FX Param 1. It works just fine. I setup midirx to update the value of the encoder on element[0] with the value of CC34 when it’s received on ch.1 and it ‘works’ in that it updates the encoder and LED value accordingly.
But…
It crashes the module and it reboots. This going from a Knot to MIDI IN/OUT on the OT. So, bidirectional MIDI is working but receiving MIDI just crashes the module. I don’t think anything in my code is causing the problem either.
I’m also having to force close Editor on my Windows machine. It could be that I have MIDI-OX up to sniff the MIDI OUT from the OT. Maybe they’re not playing nice with the MIDI ports on my Windows box.
I also setup the button on the same encoder to send CC61, value 0 to the auto channel. I can see the full dump in MIDI-OX. It’s literally just sending the current value of all controls. I’m not sure why this wouldn’t work either to initialize Grid. If there’s a way to roll back to the previous firmware on my EN16, I’m going to do so. My other setup has been doing some flakey stuff on the newest firmware.
Lastly, I’m going to try this scenario with my Raspberry Pi MIDI host to see if Knot is being problematic. Unsure why it would be but I’ll rule that out as well.
Edit 1: Factory reset my EN16 and just connected it to a Knot with OT’s IN/OUT connected. Turning a single knob that’s send CC34 (or anything) just crashed the EN16. It reboots. I’m going to flash up the Raspberry Pi MIDI Host and see if it’s the same thing. While testing this, I’m running the OT MIDI OUT into a THRU box and sending it into MIDI-OX. OT isn’t sending anything other than CC 34 on ch.1.
Edit 2: I setup the Raspberry Pi MIDI Host/Router and it works without issue. I can control the OT FX PARAM 1 and use the knob on the OT and it updates the value of the LED and encoder so they stay in sync. I did notice that some of the auto-config code on the EN16 happened to line up with some stuff on the OT so I erased all code on all encoders except element 0 and the system midi_rx stuff. Connected through Knot again and tested. Receiving MIDI crashes the EN16. This does not happen through the Raspberry Pi.
I’ll see about shooting a short video later. I’ll also try this on an EF44s encoder to see if it’s an EN16 thing being flakey. I had some weirdness with an EN16 setup I was trying to use. It was sending odd values out.
Edit 3: Tested on an EF44 and receiving MIDI crashes the module when using Knot. All other elements have had all code deleted. It’s just the element 0 encoder/button and the system code.
Code:
-- Element 0 - 'Setup'
local ei, ev, bv = self:element_index(), self:encoder_value(), self:button_value()
led_color(ei, 2, 255, 0, 255, 1)
led_value(ei, 2, ev)
-- Element 0 - 'Encoder'
local ei, ev, ch, cc = self:element_index(), self:encoder_value(), 0, 34
midi_send(ch, 176, cc, ev)
led_value(ei, 2, ev)
-- Element 0 - 'Button'
local ei, bs, bv, ch, cc = self:element_index(), self:button_state(), self:button_value(), 9, 61
if bs > 0 then
midi_send(ch, 176, cc, 0)
else
end
-- System - 'Midi rx'
local ch, cmd, p1, p2 = midi.ch, midi.cmd, midi.p1, midi.p2
if ch == 0 and cmd == 176 and p1 == 34 then
element[0]:encoder_value(p2)
led_value(0, 2, p2)
else
end
Octatrack MIDI IN/OUT to Knot IN/OUT. Tested both Merge and Non-merge modes. Turning encoder updates FX 1 PARAM 1. Turning Knob A (which controls first parameter slot on active page) sends out its value correctly (tested in MIDI-OX). If you turn Knob A one or two values at a time, you can see the encoder LED updating correctly. However, it will crash after a few short turns. This doesn’t happen through a Raspberry Pi MIDI Host/Router. This image: