DJ Pi 5: Habemus Sonum!

November 4, 2017

After four posts we still haven’t produced any sound. Let’s change that! I’m going to start with the aural equivalent of “Hello, world!”, which is changing the volume of the output. I’ll also go through a refactor I did to allow each effect component to be linked to multiple parameters. You can find the code for this post here. Setup So, I’m using the Audio Injector stereo hat to handle audio input and output on my Pi.

Read more »

About me

October 14, 2017

Hi, welcome to my site. I’m an experienced full-stack developer based in London. This blog is a space for me to document what I’m working on and write about things I find interesting. Hopefully you’ll find it interesting too! By day I write APIs and web apps using Golang and Ruby, but am always keen to learn about new languages and technologies. My current project is Goboy, a Gameboy emulator written in Go.

Read more »

Goboy

October 14, 2017

Scroll down for a browser version of Goboy using Webassembly. The buttons are as follows: Gameboy Keyboard start enter select backspace up up arrow down down arrow left left arrow right right arrow A Z B X It might take a little bit to load as the file is large.

Read more »

DJ Pi 4: doing C++ properly

October 11, 2017

Having updated the Arduino code to output more complex messages, we now need to update the Pi app to be able to understand these messages. Remember that we’ll have a set of audio effect components running, each linked to a physical control made up of a potentiometer and button. The task that now befalls our Pi app is to parse the binary messages coming across on the serial and then dispatch the message to the correct effect component.

Read more »

DJ Pi 3: improving Arduino code

October 8, 2017

So far in the blog series we’ve set up the basic hardware structure and got everything talking. The next step is to expand the Arduino code so that it can handle multiple controls and send more useful messages. Remember that each virtual effect component running on the Pi will have a single potentiometer and button for control. I’m working on the basis that I’ll end up with six effects simply because my Arduino only has six analogue pins but the code will be able to handle more.

Read more »

Listen to your iTunes library from anywhere

October 8, 2017

Continuing my theme of ‘things to do with a Raspberry Pi involving music’, I have turned my Pi and external HDD into a little NAS. My iTunes library now sits on the HDD and is shared over Samba to my laptop. The cool thing about this is that it makes it possible to access my music library from anywhere over the internet. In the age of Spotify and other streaming services this is a lot less cool than it would have been, but it’s still pretty useful if you value having control over your music files.

Read more »

DJ Pi 2: receiving serial input

October 4, 2017

In the previous post we looked at how to use an Arduino to read an analogue control and transmit it to a Raspberry Pi over serial. Now it’s time to look at how to handle those values on the Pi. We’ll also look briefly at how the C++ application uses the JUCE framework and its multi-threaded approach. You can look at the complete C++ code here (MainComponent.cpp will be of most interest).

Read more »

DJ Pi 1: analogue controls with Arduino

October 3, 2017

In this series of posts I’m going to document building a digital DJ effects box using a Raspberry Pi and Arduino. The inspiration for this project came from the combination of me having a crappy mixer with no built-in effects, a Pi and Arduino (both in need of a purpose) and a desire to learn more about audio programming and digital signal processing (DSP). In terms of hardware I’ll be using the aforementioned Raspberry Pi 3 with this sound card to handle audio inputs and output and the Arduino Uno to handle the analogue control inputs.

Read more »