SoundProp – Sound Effects with Processing & MIDI

Sometimes you forget to document things, and sometimes you try to get ahead of the game. Back around 2009 I was one of the organizers of Web414, Milwaukee’s Web Community Meetup, and at some point Gabe and I turned it into a live talk show. Yeah, I don’t know how we managed to do that, but… it happened. We had guests and we interviewed them, and even had a musical guest once! Anyway, one of the things I did was add sound effects to things because… well, I love that kind of shit. So yeah, my first “Sound Effect Board” was a web page on my web site I called ShowProp which used Flash to play some sound effects at the push of a button. (Still there, still mostly works. Here’s another silly web/sound thing from 2010, Evil-O-Mator.)

Where was I? Oh yeah, sound effects! Typically I was the co-host while Gabe was the primary host, so I would work the sound effects board at the appropriate (or inappropriate time.) It was fun.

And then I started messing around with Processing in 2010 and eventually started a re-write of ShowProp that would run locally on my computer rather than a Flash-enabled web page. (Flash is Dead! Sort of…) Processing is still very much alive, and I use it fairly often for creative coding, and hey, I figured since it’s 2020 it was time to update things.

I should mention that in 2019 I got my first “real” MIDI device, an Arturia Beat Step. A local synth guy was selling it for… wow, less than half the price of a new one. (I guess I got a deal!) I say my first “real” MIDI device because I’ve built them before, for myself, for museum exhibits, etc. but I had never bought a commercial unit before. Since I had this around, and I enjoy screwing around with MIDI, I dug into MIDI support in Processing, and…

I ended up redoing my old ShowProp sketch to be SoundProp, which is a Processing sketch that accepts MIDI input and plays sounds. It’s the second fanciest sound board style device I’ve used this year. (Yeah, I use others.) I also discovered the sound playing capabilities of Processing have greatly improved over the years, so that was an added bonus.

So basically, my sketch has a bunch of audio files, and each is mapped to a MIDI pitch which is sent by one of the 16 pads. Now, because it’s MIDI and not key commands it always works, no matter what application is in the front. No fumbling around to pull up the right window before you press a key or click a mouse. All the Sounds! All the Time!

The UI is quite minimal. It’s just a window that is 250 pixels by 130 pixels. I typically just launch the application and minimize it. (And hey, this will run as a native—well, Java—application on macOS, Windows, and Linux… in theory.)

If I get around to it I’ll clean it up and upload the code, and maybe create a video showing it work, though it’s not really that exciting, but hey… 2020, whaddaya want!?


micro:bit Powered Xylophone

A recent fun project over at Brown Dog Gadgets is this automated xylophone controlled with a micro:bit… Check out the build guide.

Full instructions including code and some helpful tips on choosing a (toy) xylophone that will work for this project. (There’s maths and angles involved.) We’re basically controlling two servos to move a mallet left and right and then down (and back up) to strike a bar.

You can control it by playing it like a keyboard, just press the buttons, or you can program and store songs for automated playback later.

The (toy) xylophone isn’t really tuned very well, so we may be working on a larger project that uses a larger instrument. Also of note is the fact that the micro:bit out of the box can only handle three servos (without extra hardware) so we might switch to another board for the next iteration.

As usual, and since we’re using LEGO compatible servos, there are LEGO bits involved, which made building things quick and easy. (And don’t worry if you don’t have the needed LEGO parts on-hand, we’ve listed the parts we used and linked to where you can get them for cheap.)

Here are a few slightly out of tune songs…




One of the projects I built for Maker Faire Milwaukee this year was AUDIO FACE [APC-320], which consists of the following things.

  • A cabinet built from scrap wood and plastic found at Milwaukee Makerspace and Brinn Labs
  • An Atari Punk Console that Kathy C. from Milwaukee Makerspace gave me for my birthday (which was already assembled!)
  • A 320 watt car stereo amplifier that someone donated to Milwaukee Makerspace, that I then gave to Jon H. for Disco Dalek, and he then gave back to me a year later
  • A really nice car stereo speaker I got from Andy A. from Milwaukee Makerspace for about $10
  • Some LED lights from Les, a long-time Maker Faire Milwaukee volunteer
  • A hefty 12 volt power supply and a 12v to 9v buck converter, which I purchased from Amazon for about $25
  • Some random arcade button I had lying around, a handful of drywall screws, and probably a few more miscellaneous things I forgot…


The concept behind this “noisemaker” is a continuation of what Maks, Dustin, and I did back in 2017, which was a series of devices that made sound when action was taken. Typically this was pressing a button, and often with potentiometers of some kind to alter the sound. I ended up building a lot of Arduino-based sound devices. Are these synths? Maybe… Are they noisemakers? I guess so.


When you press the button you are responsible for the creation of the sound. If creating weird noises embarrasses you, you have to deal with that. If you are getting into it and everyone else hates it, it’s on you. Only momentary switches are used so no one can turn them all on and walk away. If you’re there, you’re the cause of the sound.

Many of the devices from 2017 were somewhat fragile, built from small pieces of scrap material, and they sat on a table. For AUDIO FACE [APC-320] I wanted a large cabinet, which was pretty much a requirement due to the large speaker, amp, and power supply. While all of the 2017 devices were extremely cheap (built from scrap, found and scavenged speakers and components, and $3 Arduino boards or ATtiny chips) AUDIO FACE [APC-320] was a bit more expensive, probably costing close to $40 USD.


As a sculptural piece, I think AUDIO FACE [APC-320] is interesting because of the contrast. Some of the build material is really nice laminate material or higher quality plywood, but it’s assembled in a slapdash method. There are rough edges that don’t line up, and there’s very roughly drilled holes on each side. While I love precisely designing things, I also love just building with no plans on occasion. Just getting to work and figuring it out as I go. This cabinet is that. At least one person mentioned this at Maker Faire, seeing this as quite a contrast to my other pieces which tend to follow a specific grid or use mathematical concepts. It’s not by accident.


One other interesting thing about AUDIO FACE [APC-320] is that it’s sort of a bench. I mean, you can sit on it, and if you dial in the right sound and then sit on the button it makes your insides feel funny. I really like this part and may explore this in the future. I also like the fact that it’s sort of a table or a stool. A weird table or stool with controls in the middle of the top surface that makes noise and vibrates, but still… could be a table or a stool.




For this year’s WMSE Art & Music event, I created a new board I call OctoNoise. It’s an eight note piano featuring capacitive touch pads, LEDs, a Teensy LC microcontroller, and some fine woodworking. This is somewhat similar to last year’s piece.


You may know me for my work with decagons, but I also work with octagons, and this pattern is known as a 16 cell and it worked well for my design which utilizes 8 touch pads and 8 LEDs.


I’m not an amazing woodworker, but after laser cutting wood I can typically sand it, stain it, and add some polyurethane. At least it looks (somewhat) nice. I didn’t alter the bottom piece, and I just left it as a square, the way I received it from WMSE. My original design for this piece (over a year ago) was a bit different, but I wanted this to match the style of last year’s WMSE piece (and I was a bit rushed getting this done.)


The OctoNoise features and on/off switch, which is handy because it runs on batteries. I can’t tell you how many times I’ve made electronic things for myself and not included and on/off switch. It’s nice to have one! When you turn it on the touch pads calibrate for about 5 seconds. There’s a startup sound that happens during calibration. (I added a note about that on the back of the piece.)


There’s a “somewhat” hidden control knob on the side that ajusts the delay between notes. The way the code is written, it plays one note at a time, but you can alter that to very quickly (or slowly) oscillate between multiple notes. You can get some interesting variances in sound by turning the knob.

Note that it is difficult to turn the knob while also touching the pads to make sound. This is by design, as it’s also difficult (if not damn near impossible without using various parts of your body) to play all the notes at once. This was done to encourage collaboration and playfulness.


Here’s a side view. The height was determined by the speaker that was chosen. Once again we’ve put the electronics on display as part of the piece rather than hide them inside an enclosure. They are mean to be celebrated! (Each wire has a label showing what it connects to, if needed.)


Here’s the Teensy LC, which runs the code. The board has built it capacitive touch pins, which make writing the code fairly easy. The notes used are C5, D5, E5, F5, G5, A5, B5, C6. This is real piano, and you can play actual songs. I based the code on a project I did for Brown Dog Gadgets a while back. You can check out their Touch Piano on Github.


This device also contains an built-in amp with a volume control. Again, a sometimes rare feature in the things I build. Often amps require 12 volts and that’s not always fun to deal with, but I’ve found some that work on variable voltages from 3 to 12 volts, so running them at the same voltage as a microcontroller becomes very easy.


Besides all the wood and electronics, there are some 3D printed parts that pull it all together. The on/off switch, delay control, amp, and battery holder all have their own 3D printed part that they attach to and then easily attach to the wood with some #4 screws. Once again, things are left “open” to celebrate rather than hide the electronics.


The other 3D printed pieces are the custom standoffs that raise the top piece above the bottom piece to (partially) enclose the electronics. I created a 2D profile from the original artwork used to laser etch & cut the piece to create the correct angle. I then extruded that design to make the tall standoffs and printed 8 of them.

As usual, I encourage you to check out my Instagram account if you’re interested in seeing confusing photos of these sorts of things coming together.

Oh, one thing I forgot to mention. I liked this piece so much, I made another one so I could keep one for myself. As the old saying goes “If you’re gonna make one, make two!” So I did.

Finally, here are some videos, including one showing me playing both of them at once, which might never happen again!


Sleepy Noise Machine


Now that summer is over and the cold months have arrived we no longer sleep with fans running, but that means we sleep without the sound of fan running, and who can sleep with all that quiet?

The wife asked if I could make something that sounded like a fan, which if you know me, is right up my alley. I grabbed a Raspberry Pi Zero and got to work. I found an audio clip of an oscillating fan (wow, there are tons of fan videos on YouTube!) and dropped it onto an SD card with Raspbian and mpg123 and had something working.

The Raspberry Pi Zero has no built-in audio output so in the past I’ve tried using a USB audio dongle, but the one I tested failed miserably in The Sonic Titan so I decided to go a different route. I used a 1080P HDMI Male VGA Audio Video Converter Adapter Cable for PC Laptop PS3 Xbox I got from eBay and then sent the audio out via HDMI so it would go to the adapter. I also needed a Mini HDMI adapter for that to plug into. It works fine, and I’ve not seen the same audio problems I did with the USB dongle.

As you can see from the photo I used a custom enclosure designed by SparkFun and modified with a stabby knife. ;)

I also used a set of powered speakers, and a dual USB power supply from Monoprice. This was hacked together rather quickly, but it all works quite well. We just plug it in before bedtime and within 30 seconds we’ve got our noise. (It also helps drown out the sound of my cat trying to wake us up at 6am.)

The thing I find most amusing about this project is that even though the Raspberry Pi Zero is a “$5 computer” it comes out to almost $30 when I add in the power supply, SD card, speakers, and HDMI audio adapter. Still, I think it’s a better option than running a full desktop computer or laptop with white noise all night. (Which apparently some people do. I’ve also heard that an old phone or tablet is a good option.)

The thing I like most about “Sleepy Noise Machine” is that is was something I could easily slap together with existing parts I had around the house. I mean, you can buy a white noise machine, but why bother when you can make your own?