code,  electronics

Arturia Beatstep not sending or receiving MIDI data and clock with Arduino USB_Host_Shield_2.0 library

Got a gig coming up and wanted to avoid using my entire drum2musocv system. “I know”, I thought, “I’ll use that Arduino USB host shield that I’ve got lying around to make a simple device to sync my Arturia Beatstep and add some CV clock pulse outs, too. Should be easy!”

But after getting the USB Host Shield working (eventually), I found that the Beatstep wasn’t receiving any data, even though the library was detecting and identifying it perfectly. After asking on a thread with similar symptoms (https://github.com/YuuichiAkagawa/USBH_MIDI/issues/73) and applying the two-line fix by the author, I was getting MIDI notes and CC info transferring both ways, but still not MIDI clock.

Turns out that this is already solved in a pull request to the USB Host Shield library that is waiting to be merged into release: https://github.com/felis/USB_Host_Shield_2.0/pull/438

Since I couldn’t find any mention of this problem on Google, I thought I’d post this, in case it helps anyone else who runs into the same problem that I did.

Quick instructions for anyone who needs to patch their library:

cd libraries/USB_Host_Shield_2.0

wget https://patch-diff.githubusercontent.com/raw/felis/USB_Host_Shield_2.0/pull/438.patch

patch -p1 < 438.patch

The final piece of the puzzle: the Beatstep won’t respond to MIDI clock unless it has also already received an external MIDI start message – pressing its own start button isn’t enough!

Proof of concept code at https://github.com/doctea/usb_midi_clocker

Hope this helps someone!

Leave a Reply

Your email address will not be published. Required fields are marked *