With this weeks project, you can create your own 3D printed beat cube and start composing new songs at a push of a button (or several).
Listening to music is great. Playing your own music is even better. But playing your own music on your own DIY musical instrument. Well, for must of us it doesn’t get much better than this. Look no further, with this weeks project you can create your own futuristic instrument and start dropping sick beats.
It operates on a Raspberry Pi, so you can set up your own sound mapping, allowing for lots of different tones and tunes. Plus the sound quality is top-notch, as it uses a BOSEbuild speaker cube. If you happen to have one of these at hand, this weeks project should be right up your alley. If not, no worries. You can order one online, along with the other parts needed, listed below.
To assemble the beat cube, you will need the following:
First an foremost, you will need the BOSEbuild. It is an educational speaker-assembly-kid, released by BOSE for kids and youngsters. Other than some Arduino kids projects though, Bose aimed for a system that a child could figure out without any guidance from a supervising adult. So we figured you shouldn’t have too many problems with the assembly. If you do run into problems, check out this manual.
Apart from the speaker cube, you will need:
For the printed parts, download and 3D print the parts listed below:
For the casing, the clips and the Pi holder, use your favorite PLA or mix it up with different colors. The printing itself is pretty straight forward. Layer height should be set to 0.3mm and infill at around 40 %.
When you have finished the casing, load up the conductive filament to print the pads. They will need to be printed with an electrically conductive component material. This can be used by almost any commercially available desktop 3D printer. However, best make sure that your 3D printer can handle flexible filament before purchasing it. For the slicer settings, you should go with layer height 0.2mm and infill 80 %.
Once you have put together the BOSE speaker and printed all the parts, it is time to set up the Pi and assemble the parts.
Now, the following part requires a bit of coding. But don’t worry. Even as a complete novice, this will be easy as Pi with this step-by-step guide at hand. So let’s jump right in.
Start off by flashing the latest version of Raspbian-lite .img on an SD card (Download the .img file here). Then connect the SD card to the Raspberry Pi and your Pi to your WiFi. If you do not have a monitor at hand SSH into the Pi, or hook it up to a monitor via HDMI and run the following commands:
sudo apt-get update sudo apt-get upgrade
It will update and upgrade the packages on your Pi. This might take a couple of minutes, depending on your internet connection.
Now, git clone and install the Adafruits MPR121 python library using the following commands:
sudo git clone href="https://github.com/adafruit/Adafruit_Python_MPR121 cd Adafruit_Python_MPR121 sudo python setup.py install
And then, to test that you are able to trigger the pads by touching, connect the alligator clips to the pads and the Adafruit Capacitive Touch HAT and run the following command:
cd examples sudo python simpletest.py
Now – after the coding – comes the fun part.
Start by threading the alligator clips through the left 3D printed part, as shown in the picture above. And then attach the pads to the 3D printed parts using hot-glue. We suggest that you attach the alligator clips before hot-gluing them, so you’ll get a sense of the spacing needed.
Do the same with the other panels and use the clips to hold the panels together. Also, connect the other ends of the alligator clips to the Pi.
Well, to all of you who thought the coding part is over, it is not. Let’s get right back at it.
You will have to test the sounds triggered by each pad, using the following command:
sudo python playtest.py
If you would like to change the mapping of the sounds to the pads, you can modify the SOUND_MAPPING section in the playtest.py file.
The next step is to create a system service, which will automatically run the program when the Pi restarts, by using the following command:
sudo nano bosebeat.service
Copy the lines below to the file and press ctrl+X to save.
#!/bin/sh Description=Pi BOSEBuild Beat box ExecStart=/usr/bin/python /home/pi/Adafruit_Python_MPR121/examples/playtest.py StandardOutput=null WantedBy=basic.target Alias=bosebeat.service
Now, put the file bosebeat.service in /lib/systemd/system/ and enable the service by:
cp bosebeat.service /lib/systemd/system/bosebeat.service systemctl enable bosebeat.service systemctl start bosebeat.service
to check the status of the service, and to confirm that it is running use:
systemctl status readouts.service
And finally, reboot your Pi to check that the services start automatically and you are able to hear beats when you strike the pads. Your 3D printed Beat Box is now ready and fully operational.
Go on and start your first jamming.
If you are interested in more DIY 3D printed instruments, check out this article.
License: The text of "[Project] 3D Print Your Own Beat Cube" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.
Subscribe to updates from All3DP
You are subscribed to updates from All3DP
You can’t subscribe to updates from All3DP. Learn more…