Introduction: Matrix Sound Machine: Generative Music With a Particle System
Creating emergent patterns that can be converted into sounds fascinates me. So this is my first experiment in building an arduino platform for creating such patterns. This version uses a Gameduino as its sound processor and uses particles that bounces around on a led matrix as the interactive sound generators. You can add more particles by pressing the joystick down for two seconds and the joystick serves as a drawing pen to create elements for the particles to bounce on.
As you can see in the video the code is still a little crude and only the first proof of concept for the platform.
Of similar projects I would recommend you look into: Bloom an iPhone app made by brian Eno and Otomata by earslap.
Step 1: Components Needed
- Prototyping shield.
- Pin headers
- Joystick
- Wires.
- Led Matrix.
- Wooden box (I got mine from the container store in San Francisco).
- Female Jack.
- Audio wire.
- Pieces of scrap wood.
- Semi transparent Acrylic plate.
The electronics can be done with basic soldering tools. The enclosure was made with a laser cutting some acrylics and a drillpress to make holes in the wooden box
Step 2: Mount the Led Matrix
Adafruit has made a toturial for how to wire up the led matrix. You can find it here. Please refer to how I wired it up in diagram in step 1. If you are going to wire it up according to the Adafruit toturial (see the picture with the jumper wires), then Red = 5v, Black = Ground, White = Pin3, Orange = pin4, Yellow = pin5.
If you want to use your own custom pins you should change this section in the code:
#define DATA 4
#define WR 5
#define CS 3
Step 3: Connect the Joystick
As shown in the diagram Xout is connected to analog 4, You connect to analog 3 and button (sel) is connected to analog 2. A 10k resistor is connected from analog 2 to ground - this functions as a pull down resistor.
Step 4: Upload the Code
- http://arduino.cc/en/Guide/HomePage
- http://www.youtube.com/watch?v=4HqXAmV_Ock
- http://www.ladyada.net/learn/arduino/lesson1.html
The 3 things that usually cause trouble:
- On windows you have to install the proper drivers (sometimes also on mac).
- Remember to select the right serial port in the gui.
- Remember to select the right board in the gui.
Below are the simplified steps to uploading the code to your Arduino board:
- Download Arduino: www.arduino.cc
- Connect the Arduino board to the computer via usb.
- Download the code from here.
- Move the libraries in the libraries folder into your Arduino libraries folder. If you do not know how to this please refer to this toturial
- Upload the code to the Arduino board.
Step 5: Debug With Guino
I am using Guino to visualize the code. Guino is a new program to visualize data coming from the arduino board and it enables you to calibrate it on the fly.
You can find the the instructable here on how to use it. It is really simple to get up and running and it enables you to control some of the internal values. Download the program from here and run the program (you have already installed the libraries in the previous steps.
Step 6: Make an Enclosure
- Laser cut the acrylic plate based illustrator template found here
- Drill a hole in the enclosure for the jack connector.
- Drill a square hole for the Arduino usb board.
- Cut a couple of pieces of square wood in the right thickness to mount the matrix and the joystick.
- Connect an audio wire from the GameDuino to the jack connector (or you can of course just use the jack connector mounted on the GameDuino.
Drilling a square hole:
Drilling a square hole in a wooden box has proven to be a tricky task. I have yet to find the perfect solution for it. My solution in this case was to use a drill press, a tiny drill bit and a larger drill bit.
Start out by marking with a pen the approximate area where the hole should be. Then drill many, many tiny holes inside this area. Since it can be tricky to get the precise placement of the square hole I usually compare it to the arduino board to see what areas I am missing. When you have drilled enough holes for the wood to be porous then use the larger drill bit to remove all the loose bits.
I would love to hear if anybody has a better way to do this?

Participated in the
DIY Audio
17 Comments
1 year ago
I cannot edit this instructables so here is the link to the code: https://drive.google.com/drive/folders/19HUqA8He_fBAWXy58ULTmBvqIGfDndtp?usp=sharing
3 years ago
Hello! Could you please put a video of the operation? We were interested in this project to carry it out, but our teacher, and we too, want to see how a finished project would work. If you have a link, please, it would help me a lot! thanks since now.
5 years ago
Has anybody tried to make this project recently? I am having trouble with it and would like to know if a gameduino board will be needed or if the arduino board will do everthing.
10 years ago on Introduction
two questions
1. Is it suppose to start on it's own or does it need a command to start?
2. Where does the female audio jack attach to?
thanks
11 years ago on Introduction
Hi, great instructable.
Regarding your square hole question, I know of two methods:
Firstly, there is a machine designed for cutting square holes for mortise and tenon joints. Imagine a drill bit surrounded by four chisels, that's basically it. The hole will be perfectly square.
Secondly, a far more home-friendly option. Drill a hole, the diameter of which should match the length of the side of the square you wish to drill. Then proceed to square it off using a sharp chisel. It's extremely easy to do, especially with the thicknesses of wood you are using here. In thin wood the results will be very good, though not as good as can be achieved with a mortiser as described above. In thicker stock, the chisel has a habit of wandering, so results will be less good with the second method. The first method is largely unaffected.
Reply 11 years ago on Introduction
There's another method, you can actually drill square (or other multi-sided) holes with a special bit(s). just google 'drill square hole'
Reply 11 years ago on Introduction
Indeed, I believe it is based on the releaux triangle. The system is rather expensive unless you have one size hole that you wish to drill.
Reply 11 years ago on Introduction
Indeed, I believe it is based on the releaux triangle. The system is rather expensive unless you have one size hole that you wish to drill.
Reply 11 years ago on Introduction
"machine designed for cutting square holes for mortise and tenon joints."
Interesting - Do you know what it is called? Links?
Have to try the chisel solution.
Reply 11 years ago on Introduction
It's called a mortiser. Just google images it, you'll get both the machines and the bits.
11 years ago on Introduction
have you messed around with giving each particle to its own note, which is triggered every time it hits a surface? Then you could pick out a bunch of notes from one chord and have a kind of generative arpeggiated chord played out when the particles are bouncing around.
Also check out the pentatonic scale:
http://en.wikipedia.org/wiki/Pentatonic_scale
tends to sound pretty good no mater what you do with it.
11 years ago on Introduction
I'm also very interested in seeing a video of this. The pictures are fantastic but I think I need a vid to really understand what it does.
Reply 11 years ago on Introduction
Managed to upload a lower resolution video through the free wifi at San Francisco airport.
Reply 11 years ago on Introduction
Hey yes uploading videos within the next two days. Just need to travel across the ocean. So 20 hours until I have decent internet again.
Right now the software is crude. It not there yet, but has the potential to become something interesting. You will see when I upload the video.
The gameDuino is a pretty good sound generator so it is "merely" a matter of programming something interesting.
11 years ago on Introduction
Can you make videos of this (and your other boxes) in operation? It looks really cool, but I can't tell what it sounds like.
Reply 11 years ago on Introduction
Managed to upload a lower resolution video through the free wifi at San Francisco airport.
Reply 11 years ago on Introduction
The gameDuino is quite powerful, I have programmed a little experiment video. Videos shortly - see above.