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

Hello! I’m a software engineer based near Sheffield, UK. I have a decade of programming experience across the full web stack. For the last four years I’ve worked at Amazon building the Prime Video app on your TV, using Rust and Typescript/React. It’s hugely rewarding due to the technical challenges of Amazon’s scale and the performance constraints of living room devices. I’ve led efforts to adopt AI internally and have built LLM tools that are used across Prime Video.

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 »