How do you currently deal with midi clock messages?

How do you overcome this issue in the meantime?

The current nightly Firmware has the fixes for this, is being prepared for release as we speak. Release version will be out together with a new Editor update, ETA next week!

If you would like to try it in the meantime, download the latest nightly Editor and update your firmware to the nightly version from there to test the new feature.

2 Likes

yaayyyyyy thanks, I must have missed that I check the nightly every week

Is there any documentation or a sample profile I can take a peek at? I’m going to upgrade my device.

I’m curious if we are going to get transport, position pointer, and clock. I have a few good ideas and improvements I’d make for my profiles.

Thanks again for trying to listen to the users! I can see there is a lot on your plates!

FW release got delayed as we caught some bugs last week. Hopefully this week is the week.

Haven’t had the chance to take a look at the clock sync code myself yet, but I can share what I know for now. There is also a working config (a sequencer) that uses it, I’ll try and share the code form it tomorrow.

I do know that clocksync uses a similar callback structure to MIDIRX and SysExRX. I also know that it needs to be explicitly enabled at init to be accessible, as it is turned off completely by default to save bandwidth.

I’ll be back with more soon!

1 Like

@narayb I figured it out. The PRs from the nightly builds of the firmware gave me the syntax/usage pattern I was looking for.

Here is my example:
A 3 snapshot 12 CC Morpher with Free and Midi Sync timing for EN16 (probably best with the detent version)

12 CC Morpher

You must be on the nightly build for the Editor and the Firmware.

There are probably still bugs in this, but it’s pretty much working at least as proof of concept until we have a stable build I can refine against. --Edit. I think it’s properly working atm. Will freeze the profile above.

Cheers, and THANK YOU for open-sourcing everything!

1 Like

Thank you for your wonderful work as always!

I will share the small bit of code for the clock sync as well here:

-- rx_mode(int type [, int mode]) Get or set RX routing. 
-- type: 0=MIDIVOICE 1=MIDISYSEX 2=MIDIRTM 3=EVENTVIEW. 
-- mode: bitmask 0x01=forward_from_usb 0x02=handle_external 0x04=handle_internal

-- Eaxmple: enable handling and forwarding of clock messages received from USB
-- Note: must be added to USB connected Grid module only
rx_mode(2, 0x01 | 0x02)

-- Example: enable handling of clock messages received via Grid connection
-- Note: must be added to all modules on the Grid
rx_mode(2, 0x02)

-- Example: callback for printing received clock messages
self.rtmrx_cb = function(self, header, rtm_byte)
  print("RTM RX: "..rtm_byte)
end

It’s a bit technical, but there’s a guide on the way!

2 Likes