Syncing Nanoloop with Pure Data via Reaper

Nanoloop is a great little portable music making app that is deceptively capable given its minimalist interface.

One of the many nice features of Nanoloop is support for MIDI clock as master or slave. This lets it sync up any application with MIDI clock support.

I would love to set up a jam with Nanoloop and some nice minimalist Pure Data patches I've been working on, but MIDI clock support on PureD ata is in pretty bad shape. Surprisingly, it appears to be completely unsupported in the latest version pd-extended (0.43.4 as of writing) on Mac.

I came up with a slick little workaround using Reaper.

Reaper can not only act as a MIDI clock master, it also sends a verbose set of OSC messages for most operations.

I set Reaper as MIDI master to get it synced up with Nanoloop, then built a simple PD object to receive the Reaper transport /start and /stop OSC messages and dropped it into a percussion patch I'm working on.

PD patch

Nanoloop and PD start running together instantly now when the Play button is clicked is Reaper.

Note that this isn't perfect - there is no OSC tempo data being received by PD yet, so timing is internal to the patch and needs to be set ahead of time. Reaper does send timing info (via the /beat OSC message) but the format is a little off and I'm working on a clever way to have PD parse it. In the meantime, this works well enough to get everything kicked off at the same time.

You can check out my PD patch collection - including this one - on Github.