3D printing a record might seem like the obvious choice these days, but I decided to go with CNC milling.
Why a mill you ask? Not a laser cutter or a 3D printer? Well we can't use a laser cutter as the record needs slots in the surface but these don't go all the way through. Laser cutters are great if you don't need any partial depth cuts, but we do. 3D printing the record would seem to be a sensible choice and would definitely do the job. However, we will end up creating plastic pins around 1mm in size that trigger the music box hidden in the record player's arm. I was worried about whether the extruded plastic technique used by most printers would give it the required strength. That, and I don't have a 3D printer.
Also the CNC mill means I'm not limited to plastic. I can just as easily create the records from wood (a hardwood should be strong enough) or even metal, but let's start with plastic.
If you want to 3D print a record then my code will have to be adapted but it's all open and should be easy enough to convert. If I get a 3D printer then I'll definitely adapt the gcode generation part so that it can create the appropriate files for a printer. I'll be entering this in the "Make it Real" challenge, so you never know... In fact, if I win a 3D printer, I promise I'll update it so it can print records too. Anyway, what could sum up "Make it Real" more than taking something intangible like music and turning it into something physical.
UPDATE: I've now finished a 3D printed version of this project. As all but one of the steps are different, I've created a separate Instructable for it here. So if you don't have a CNC mill (that's everyone apart from rdarlington) then you can now create your own discs.
Continuing the spirit of Instructables, if you create the music and share it, I'll make it real for you. Download the music editor (see step 3) and send me the fpr file it creates. I'll pick the best, mill them and a send out some discs. I'm not very musical, so sure that it won't be hard do do better than my attempt. I have to limit it to 5 just because each one will take me a couple of hours to do.
Step 1: What you'll need
Firstly, you'll need a CNC controlled mill or router with a 1mm end mill. I understand that this is not exactly the sort of thing most people have lying around - but it should be! I bought a mill and converted for about £525 (€650 or $825) and it's been so useful for milling PCBs and creating random stuff like this.
If you're interested I've detailed my conversion in another Instructable here. Plenty of other people have documented their builds of this and similar mills too.
Secondly, you'll need a suitable sheet of plastic to mill. I used acrylic sheet in either 3mm (for single-sided record) or 5mm for a double-sided one. This easily available in A4 sheets that is enough to create 2 records. Another advantage of the mill is that we could make our records out of wood or even metal. Let's stick to acrylic for now though.
Step 2: Creating the blank
The machining is defined with a 2mm endmill and 5mm acrylic sheet in mind. If you have these then the gcode files will be fine. If you want to use a different tool or different material thickness, you'll need to open up the CamBam files, set the tool size and/or stock dimensions. Then select Maching / Regenerate Toolpaths and Machining / Produce Gcode. CamBam will make any adjustments to compensate for the tool width. It's an excellent piece of software and I thoroughly recommend it.
Step 3: Editing your record
The software is admittedly pretty basic. It's not exactly sophisticated music editing software but the player is not exactly hifi equipment. It does the job and I hope you'll find it easy to use.
Click where you want to add a note and click again to remove it. Click on the blue + if you want to add a gap. Click on the red X if you want to delete some notes and shuffle everything up. Click the Play button to preview your tune.
The left hand side of the musical stave shows all the note that the player can play. You'll find they are most of the notes from a C major scale and cover about 2 octaves. There are no sharps of flats and a few notes are missing. I guess that's because the original 10 nursery rhymes it can play just didn't need them.
Once you've finished your masterpiece (or more likely transposed someone else's tune) it's time to create the physical product. Click "Build / Create GCode" in the editing software. Three gcode file will be churned out. The will engrave the musical track and cut out the disc. The gcode is just a text file with instructions for your CNC machine, but you can view the toolpath in CamBam if you've installed it.
Step 4: Milling your record
An hour or two later, you will end up with a finished physical disc that you can pop on your record player and see how it sounds. Here's how mine turned out:
and if you want to see the process in action, here's a thankfully short clip of it being milled
Step 5: How it all happened
The toy is simple enough. A quick inspection reveals that the "head" of the record player's arm is a tiny musical box with 22 metal gears. The record has 11 groves and pins on either side that operate one of the 22 notes. Each groove forms a circle so the tune repeats once per revolution - there's no spiral track like we used to have on real vinyl records. It did take quite a while with some digital calipers to accurately measure the position of all the grooves and the holes that locate the disc on the turntable. All these measurements you'll find either in the 3D models I used to create the record blanks or the code that generates the music information.
The modelling software I used is CamBam. This is ideally suited to creating a model of something you're going to mill. The gcode this outputs is used to create the holes for the locating pegs and the groove required (along with the outer edge of the record) to locate the player head. You can get a fully-featured but time limited version of CamBam from http://www.cambam.info/ if you want to view or edit this file.
Next, a very basic text file to gcode conversion gave me an initial test record with a "scale" that played each note in turn. This let me test out a proof of concept and see whether it was possible to create a playable record. It also showed that the music box "head" wasn't quite in line with the centre of the record - I had to shift everything a couple of millimetres. I won't bore you with the maths, but there were lots of radians, sines and cosines involved. Check out the source code for details.
It also made it easier to work out what notes were available and what each pin represented. The box is not exactly hifi standard and with some help from a more musical friend we managed to work out that the 22 tracks are as follows working from the inside. The first 7 pins are D#, G#, A#, C#, D#, F, G. Then the follow 12 pins actually have each note repeated twice. Whether this is for durability (as these are used often) or a way for notes to be repeated in quick succession without jamming, I'm not sure. These are G#, A#, C, C#, D#, F. Finally we have G, G# and A#. This gives us most of 2 octaves from a G# major scale with a couple of extras at either end.
Finding music to put on the record in G# Major was going to be tricky so if this is transposed to a far more common C Major scale we can consider these to be: G, C, D, E, G, A, B, C x 2, D x 2, E x 2, F x 2, G x 2, A x 2, B, C, D. That's what I used in the music editor (no flats or sharps - very handy) and the preview.
So now we can try to get something a little less painful on the ears onto our shiny plastic disc. If you're at all musical you may find my music editor offensively basic. However it seems to do the job. You wouldn't believe the smile on my face when I finally heard a recognisable intro to "Stairway to Heaven" (as banned in all good guitar shops) coming from my little toy...
If you create your own record, please let me know. It would be great to hear that someone else found this useful. I'm also more likely to tweak the software if I know it's being used.