In my previous post, the robotic glockenspiel played its first tune. This post is an update on transcribing more tunes.
I’ve been busily transcribing public domain Christmas carols from “The Oxford Book of Carols” and other sources of public domain carols, so the glockenspiel has more material to play. All the carols are checked into the SD folder of the Robotic Glockenspiel Git repository, and are part of that open source project.
In other news, I bought this edge guide for my router, so now I can cut the grooves that will hold the base of the glockenspiel. Next I need to learn how to make rabbet joints, so I can put the glockenspiel box together.
My next post is about crafting the cabinet for the glockenspiel.
In my previous post I pointed to some sources of information about how to read Midi music files. I’ve now Open Sourced my working code.
I’m a total newbie at Git, but even so I’ve managed to create repositories for the Robotic Glockenspiel and the Arduino Midi File Reader library it uses. See My GitHub repositories for the current state of things.
The repos are far from ready for prime time, but they have the essentials for this project-in-progress:
- The Arduino Midi File Reader library I wrote to deliver Midi events from the file in sequence. I’m hoping others will find this library useful. It currently has no documentation at all, other than the comments in the code.
- The Fritzing circuit diagram for the glockenspiel controller so far (no physical user interface)
- A Bill of Materials (parts list) for the electronics and a few other things. I still need to add the wood and work out e.g., the number of conduit pipes I needed to build the 19 chimes.
- The Robotic Glockenspiel Arduino program, as-is. It currently will play a hard-coded list of Midi files that reside on the MicroSD card, with what seems to be the correct timing (although I know it will end each song abruptly). There’s much left to add, such as using a network card to read the playlist and the Midi files from the net, and code to control the player using a set of pushbuttons.
As an added benefit, all this is now under a real revision control system rather than being backed up nightly to my USB fob.
In my next post, I show how I mounted the solenoids to the frame.
In my previous post I covered the Arduino-based circuit I built to strike the chimes. I’ve also, with a little effort, gotten the Sparkfun MicroSD shield to work with the Arduino Mega 2560, so I’m now in the thick of writing the software to read music files for the Robotic Glockenspiel.
Not happy with the Arduino Midi libraries I’ve seen (they seem not very file-oriented), I’ve written the bones of what will become a Midi file-reading library. This library will enable an Arduino Sketch to read events from a Midi file, one by one, so that it can play the notes with the proper timing.
The trick of reading the Midi file was the “running status”, which omits midi channel bytes when they’re repeated.
Here are some useful pages for understanding Midi file format:
My next post points to the code I wrote to read Midi files.