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:
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!
Bitbucket have shut down their Mercurial support, so I’ve moved the Vurfx sourcecode to GitHub instead, available here:
Dead chuffed that I managed to get this sucker working (in the end)!
Based on the ARMSID SID replacement chip, with an Arduino Uno handling the USB, MIDI and chip-controlling bits.
Also includes an FLStudio dashboard to control it with and enable saving presets etc. Flashed the bootloader with USBMidiKliK to make it appear as a class-compliant MIDI device and now I can just plug it in to USB and my default FL template has the generator all set up and ready to go with a preset loaded ready to start tweaking and recording!
Code over on github, featuring an adaptation of Notes and Volts‘ LFO to enable LFO modulation of filter cutoff and pulse width. Forked from ‘therealjaypo’ SIDI which appears to be unmaintained and I haven’t heard back from the author. There are some blog posts over at http://hatestheinternet.com/kraslophone/midi-sid-arduino/sidi [although the site seems to be down as of 2020-05-11]