the music box

An elegant solution for streaming media to old stereos

 
musicBox-cover-ps.jpg

the music box

the problem

My stereo receiver is from the 70s and has a single AUX input. As a result, there is no easy way to play music through the stereo without unplugging TV connection, plugging in an RCA to 1/8” Stereo cable, plugging in a device directly, and leaving it next to the receiver.

my solution

Design and fabricate an intermediary streaming device that outputs via RCA to the receiver. Several of these already exist on the market, but most are ugly, plastic-y, and lack the ability to be customized. I wanted something that would match the hardwood and polished metal look of my stereo receiver.

Physical Design & Fabrication

The music box is made of a single piece of cherry wood, milled on a Roland 4 Axis CNC Mill. The front and back faceplates were machined from a sheet of 6061 aluminum on a OtherMill Desktop CNC. All 2D & 3D CAD was done in Vectorworks, 3D CAM was done in Roland’s proprietary SRP Player. Initial prototyping of the music box was done in cork and acrylic.

After milling, the wood shell was sanded, and polished via a 3 stage lathe buffing mandrel. Threaded brass inserts were added to the front and back of the shell to allow faceplates to be screwed in. The screw holes on the aluminum faceplates were countersunk on a drill press to allow for a clean, flush finish.

electronics Fabrication

The guts of the music box are a Raspberry Pi Zero W, Pimoroni pHAT DAC, 3 to 5v logic converter, rotary encoder, RCA plugs, and DC barrel jack. The Pi runs raspbian lite with a startup instance of shairport-sync providing AirPlay audio player functionality.

The rotary encoder panel mounted to the front of the music box is connected to the GPIO header of the Pi via the logic converter. A custom python script running in the background modifies the system volume programmatically via the ALSA mixer when a user turns the knob. The volume level is displayed on the LCD as it is changed.

A second python script scrapes the shairport metadata, parses it, and outputs the artist and song title to the LCD when a song is being streamed to the music box.


TOOLKIT

  • Raspbian / Linux

  • Python

  • Vectorworks

  • Roland CAM & 4-axis mill

  • OtherMill desktop CNC

BILL OF MATERIALS

  • Raspberry Pi Zero W

  • pHat DAC

  • Rotary encoder

  • Cherry wood

  • 6016 aluminum

CATEGORIES

  • Physical computing

  • Industrial design

  • Software development

  • Fabrication

  • Milling