The Game Boy As A Midi Synthesiser

In the world of chiptune music there are many platforms to choose from, each with their own special flavour tot heir sound. The Game Boy has a particular following, but it differs from some of its contemporary platforms in having a custom sound chip built into the same silicon as its processor. You can’t crank open a Game Boy and lift out the sound chip for your own synth project, instead you must talk to it through the Game Boy’s Z80 processor. This is something [Adil Soubki] knows well, as he’s completed a project that turns the handheld console into a MIDI synthesiser.

A Game Boy was designed to play games and not as a developer’s toy, so it doesn’t exactly roll out the red carpet for the hacker. He’s got under the console’s skin by mapping a section of its memory address map to the pins on a Teensy microcontroller board, and running some Game Boy code that reads the vaues there and uses them to configure the sound hardware. The Teensy handles the translation between MIDI and these byte values, turning the whole into a MIDI synthesiser. It’s a succesful technique, as can be seen in the video below the break. Best of all, the code is available, so you can have a go for yourself.

We’ve featured Game Boy synths before here at Hackaday, but usually they have been of the more conventional variety.

Continue reading “The Game Boy As A Midi Synthesiser”

A Baby Grand Gets MIDI

Like a lot of people, [Jacques] doesn’t think a big hunk of plastic light enough to carry under your arm is a piano, even if it does have 88 keys. A piano is supposed to be a hefty piece of furniture that you have to buy people pizza to help you move. So he bought a used baby grand piano. It wasn’t in very good shape, though, so while restoring it, he also added MIDI to it. You can see the finished result in the video below.

At $100, the price was right, although it cost more to move it. Between water damage, moth attacks, and storage in a garage, the piano — an old Zimmerman — needed a lot of tender loving care. When it came to MIDI, [Jacques] found a used Disklavier — a very expensive piece of kit — but it didn’t fit the Zimmerman or another piano at hand. The solenoids and optical sensors are set up for a particular piano, so what can you do? Easy! Rebuild the bar that holds the solenoids and sensors.

Continue reading “A Baby Grand Gets MIDI”

Less Rock, More Roll: A MIDI Barrel Piano

Strolling around a park, pedestrian zone, or tourist area in any bigger city is rarely complete without encountering the sound of a barrel organ — the perfect instrument if arm stamina and steady rotation speed are your kind of musical skills. Its less-encountered cousin, and predecessor of self-playing pianos, is the barrel piano, which follows the same playing principle: a hand-operated crank rotates a barrel, and either pins located on that barrel, or punched paper rolls encode the strings it should pluck in order to play its programmed song. [gabbapeople] thought optocouplers would be the perfect alternative here, and built a MIDI barrel piano with them.

Keeping the classic, hand-operated wheel-cranking, a 3D-printed gear mechanism rolls a paper sheet over a plexiglas fixture, but instead of having holes punched into it, [gabbapeople]’s piano has simple markings printed on them. Those markings are read by a set of Octoliner modules mounted next to each other, connected to an Arduino. The Octoliner itself has eight pairs of IR LEDs and phototransistors arranged in a row, and is normally used to build line-following robots, so reading note markings is certainly a clever alternative use for it.

Each LED/transistor pair represents a dedicated note, and to prevent false positives from neighboring lines, [gabbapeople] 3D printed little collars to isolate each of the pairs. Once the signals are read by the Arduino, they’re turned into MIDI messages to send via USB to a computer running any type of software synthesizer. And if your hands do get tired, you can also crank it with a power drill, as shown in the video after the break, along with a few playback demonstrations.

It’s always fun to see a modern twist added to old-school instruments, especially the ones that aren’t your typical MIDI controllers, like a harp, a full-scale church organ, or of course the magnificently named hurdy-gurdy. And for more of [gabbapeople]’s work, check out his split-flip weather display.

Continue reading “Less Rock, More Roll: A MIDI Barrel Piano”

Raspberry Pi Plays A MIDI Tune Wherever You May Roam

MIDI controller keyboards are great because they let you control any synthesizer you plug them into. The only downside: you need a synthesizer to turn MIDI notes into actual sounds, slightly complicating some summer night campfire serenading. Not for [Geordie] though, who decided to build the nanoPi, a portable, MIDI instrument housing a Raspberry Pi.

Using a Korg nanoKEY2 USB MIDI controller as base for the device, [Geordie] took it apart and added a Raspberry Pi Zero W, a power bank to, well, power it, and a USB hub to connect a likewise added USB audio interface, as well as the controller itself. As the nanoKEY2 has a naturally slim shape, none of this would ever fit in it, so he designed and 3D printed a frame to extend its height. Rather than wiring everything up internally, he decided to route the power and data cable to the outside and connect them back to the device itself, allowing him to use both the power bank and the controller itself separately if needed.

On the software side, the Pi is running your common open source software synthesizer, Fluidsynth. To control Fluidsynth itself — for example to change the instrument — [Geordie] actually uses the Termius SSH client on his phone, allowing him also to shut down the Pi that way. While Fluidsynth’s built-in MIDI router could alternatively remap the nanoKEY2’s additional buttons, it appears the functionality is limited to messages of the same type, so the buttons’ Control Change messages couldn’t be remapped to the required Program Change messages. Well, there’s always the option to fit some extra buttons if needed. Or maybe you could do something clever in software.

As you may have noticed, the nanoPi doesn’t include any speaker — and considering its size, that’s probably for the best. So while it’s not a fully standalone instrument, it’s a nice, compact device to use with your headphones anywhere you go. And thanks to its flexible wiring, you could also attach any other USB MIDI controller to it, such as this little woodwind one, or the one that plays every pop song ever.

Continue reading “Raspberry Pi Plays A MIDI Tune Wherever You May Roam”

Arduino Drums Bring The Noise, No MIDI Required

When looking through existing Arduino drum kit projects, [joekutz] noticed that most of them just used the microcontroller as an input for an existing MIDI device. That’s fine if you’re just looking to build your own hardware interface, but he wondered if it would be possible to forgo the MIDI device completely and actually generate the audio internally.

To be sure, this is a lot to ask of an 8-bit microcontroller, which is probably why nobody does it this way. But [joekutz] wasn’t giving up without a fight. One of the trickiest aspects was storing the samples: the 8-bit, 11.025 KHz mono WAV files ultimately had to be converted into C data arrays with a custom Python script.

Unfortunately, since the samples are essentially part of the drum’s source code, he says distributing the firmware is something of a problem. Though it sounds as though there might be a solution to this soon for those who want to play along at home.

But don’t get the impression that this project is just software. Check out the custom impact sensors lovingly crafted from popsicle sticks and metal cut from soda cans, which have been mated with sections cut out of old DVD-Rs. Actually getting the beats out of the Arduino required the addition of a R2R DAC circuit and a TDA2822 amplifier. In the video after the break, you can hear the results for yourself.

[joekutz] is no stranger to homebrew electronic instruments. When we last heard from him, he was turning a very pink keyboard into his own personal circuit bending playground.

Continue reading “Arduino Drums Bring The Noise, No MIDI Required”

Adding MIDI To An Old Casio Keyboard

Not content to rule the world of digital watches, Casio also dominated the home musical keyboard market in decades past. If you wanted an instrument to make noises that sounded approximately nothing like what they were supposed to be, you couldn’t go past a Casio. [Marwan] had just such a keyboard, and wanted to use it with their PC, but the low-end instrumented lacked MIDI. Of course, such functionality is but a simple hack away.

The hack involved opening up the instrument and wiring the original keyboard matrix to the digital inputs of an Arduino Uno. The keys are read as a simple multiplexed array, and with a little work, [Marwan] had the scheme figured out. With the Arduino now capable of detecting keypresses, [Marwan] whipped up some code to turn this into relevant MIDI data. Then, it was simply a case of reprogramming the Arduino Uno’s ATMega 16U2 USB interface chip to act as a USB-MIDI device, and the hack was complete.

Now, featuring a USB-MIDI interface, it’s easy to use the keyboard to play virtual instruments on any modern PC DAW. As it’s a popular standard, it should work with most tablets and smartphones too, if you’re that way inclined. Of course, if you’re more into modular synthesizers, you might want to think about working with CV instead!

Signal The End Of A Print With MIDI Of Your Choice

The end of every 3D print should be a triumphant moment, and deserves a theme song. [FuseBox2R] decided to make it a reality, and wrote tool for converting MIDI tracks to G-code that uses the buzzer on your 3D printer.

The tool is up on GitHub, and uses the M300 speaker command that is available in Marlin and some other 3D printer firmware packages. It takes the form of a static HTML page with in-line JavaScript that converts a midi track to series of speaker commands with the appropriate frequency and duration parameters, using the Tone.js framework. Simply add to your slicer G-code to add a bit of spice to your prints. You can also build a MIDI jukebox using the RAMPS board and LCD you probably have gathering dust somewhere. See the video after the break for a demonstration, including a rendition of the DOOM theme song, and off course Mario Bros.

For more quarantine projects, you can also play MIDI using the stepper motors on your printer, or build a day clock if time is becoming too much of a blur.

Continue reading “Signal The End Of A Print With MIDI Of Your Choice”