Modular Music Box – Synthesiser Control
We’re starting to make a serious push at the sound programming for the Modular Music Box.
The audio hardware is a Rev. 1 Fluxamasynth, a bare-bones Arduino board hosting an Atmel ATSAM2195 General MIDI chip with rudimentary onboard effects. The chip interfaces to the Arduino via the standard serial-port library, which makes communication between the board and a host computer a bit of a problem: loading up Arduino sketches works fine, but the serial link is then used for MIDI. (The example code even brings up the link at the MIDI speed of 31.25 Kbaud, which might just be an in-joke; I very much doubt that the synth chip is opto-isolated!)
While it’s probably possible to get USB serial and MIDI serial communications running independently, that seemed like too much fiddling around. Since the Music Box relies on I2C for communication between its components, it made sense to bring up an I2C link between the Fluxamasynth and an Arduino Mega which I happened to have lying around. This was pretty much just a case of loading the Fluxamasynth with a basic sketch which passes all I2C bytes verbatim to the synth chip (I2C is 8-bit clean, so no armouring or wrapping is needed). The Mega uses a modified version of the Fluxamasynth “library” – in reality just a collection of MIDI message formatters – to put completed MIDI messages onto the I2C bus rather than serial. The breadboarding looks rather like this:
Yes, the power, ground and I2C lines to the Fluxamasynth are held in place by miniature G-clamps since I’m in no mood to try and solder up pin strips right now. (more…)