Finger Powered Record Player

Introduction: Finger Powered Record Player

I got the title for this instructable from an audio sample used in the excellent 'Nufonia Must Fall' Album by Kid Koala.

The turntable was made for my son (5 years) who was totally amazed when he saw a turntable for the first time. Ever since he wanted one. Below is an interpretation of a turntable for children without the expensive hardware, mixer, needles, records etc. :-)

Components:

plywood (4mm) for knobs/sliders/decoration/discfibreboard(18mm) for the table itselfplexiglass (4mm) for the disc/inside discan excellent manager at the local fablab.. Dance Danny dance!!

Electronic Components:

1 Arduino Uno2 potentiometers2 slider potentiometers1 rotary encoder

Audio Software:

Javascript + browserWeb audio API

Communication:Node Js+ libraries (socket.io, node-serialport)

Step 1: Turntable and Disc / Record

Model / decoration

The model for the turntable and the decoration for it was done in NodeBox 3 by EMRG.

NodeBox is an open source application for generative design (and much more) that allows to create vector graphics by connecting functions in a modular interface. On top of that it allows to create user nodes (I used one to export the shape to machine readable g code).

The turntable consists of two parts:

1 part was done by using a CNC milling machine. (the structure)1 part by using a laser cutter (the decoration and the knobs/sliders/disc)

Attachments

Step 4: Software

Communication

In order to establish communication between the arduino and a browser, you need to install some things.

I followed Tom Igoe's post on setting up the communication. It involves installing node.js and a few extra libraries on top of that. When done you should be able to access your computer’s serial port and read to and write from it in a browser environment.

I used the Web Audio API which "provides a powerful and versatile system for controlling audio on the Web". It works on most recent browsers and you can code it in JavaScript which makes it easy to use.

The audio section has two main audio parts:

1. beats: are controlled by potentiometer 1 (change beat) and is coded as such that it loops.

2. scratches: are controlled by the two slider potentiometers (1 for gain / volume cutoff and 1 for pitch). Samples can be changed by controlling the second dial potentiometer.

Below is the html file with JavaScript code. The audio files are not included. I used some battle records for the beats and scratches. Any audio file will do of course. My son likes playing with recordings of his own voice.

The visualisation is done in a html canvas tag, the locator is a coloured html div tag.