Custom Records for a 70's Toy Record Player




I recently stumbled across and old toy record player made by Fisher Price in the 1970s. I'm sure many of you will recognise this iconic toy and some of the older Instructables visitors may well have had one. As with many 40-year old toys, it was in a bit of a sad state and a couple of the records had been lost. Technology has moved on since it was manufactured and making some new records for it seemed like a nice way to merge old technology and new.

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.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: What You'll Need

f you want to produce your own record you'll need a few things.

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

Once you've got the necessary tools and materials, you'll need to download the attached gcode files. These files were created with CamBam CAD/CAM software and have the designs for creating the "blank" record that will fit on the player ready for your custom music to be added to it. I've also included the design files themselves. CamBam has a limited use demo version so feel free to view and play around with the design if you'd like.

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

You'll also need to download the attached music editing software. I've provided an executable but if you don't feel like running random software from the web you can also download the source code - compile it yourself or take a look how it works. It's all in C# so Visual C# 2010 Express is what you'll need.  This software will let you edit your tune and generate the custom gcode to engrave it on the blank acrylic sheet.

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

If you're lucky enough to have a mill that can create the whole disc in one go use the file ending "...(Full).nc". This mills the whole disc in one go. Unfortunely my mill can only do about 8cm x 16cm, so I also split the gcode in two. The file "...(Part 1 of 2).nc" and "...(Part 2 of 2).nc" are for those of us will smaller mills! You need to mill the first, rotate the workpiece 180 degrees and mill the second.

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 I've also managed the Star Wars theme

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

Well, that's the end of the Instructable, but I'm sure many of you are the naturally inquisitive type and don't just want to churn out a product using someone else's code. You want to know the how it was done!

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 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.

Make It Real Challenge

First Prize in the
Make It Real Challenge

Be the First to Share


    • Instrument Contest

      Instrument Contest
    • Make it Glow Contest

      Make it Glow Contest
    • STEM Contest

      STEM Contest

    67 Discussions

    It sounds like there are a few suggested edits, especially regarding the speed of the mill movement, and the full file cutting the record in half. If I'm reading your responses correctly, you've made edits based on rdarlington's first set of comments, yes? How about his second comments (In addition to the above fixes (M3, M5, M6, etc) I did a global search and replace for "G0 X" to "G1 X". This leaves)... do those feel like good suggestions and did you incorporate them into your files?

    I'm really interested in trying this project, and I just wanted to get a sense of what bugs had been worked through! Thanks!

    2 replies

    Reply 4 years ago on Introduction

    I made changes in response to rdarlington's very helpful comments. This was one of my earliest attempts at CNC so needed a few tweaks. For instance, my mill had been set to have a max speed of 100mm/min so I'd got away with the stray G0 and he hadn't. (I've just got a CNC6040Z so will soon be trying it on that machine that can do 2500mm/min rapids and cut a full disc in one go.)

    Whilst I've taken every care, I can't be sure how your mill behaves compared to mine. Look for things like crazy circles that might indicate a mismatch between relative and absolute positioning on arcs. It definitely suggest that you cut air first just in case, and don't leave it unattended whilst it's running.

    To be honest there was more interest in the 3D printed version as printers are more popular than mills. If you run into any specific issues I'd be more than happy to help.


    5 years ago on Introduction

    Wow, you are my hero!

    This is a ton of fun! The only problem I'm having is that I need to export the cambam file as a dxf and then import it into VCarve to geneate a .tap file for my CNC router. I find when I do that it doesn't recognize the shapes as vectors. It works fine when I draw the shapes in cambam myself, but when I import the gcode (.nc) file produced by the little executable file , the .dxf file doesn't get read as vectors by vcarve. Any ideas? Thanks, and thanks so much for putting all of this out there for us.



    Reply 7 years ago on Introduction

    If you had one of these back in the 70s then you'd know!

    Actually, considering the music is digitally encoded in pits engraved on a small disc you could probably say that this is a very early CD.


    6 years ago on Introduction

    someone get the 3d instructions for the toy too!!! that would be cool thanks!


    7 years ago on Introduction

    OMG! I remember haivng one of these as a kid. This is an epic ible.


    7 years ago on Introduction

    you could also possibly make these with photoeching techniques???


    7 years ago on Introduction

    OK - so there were a few people who'd prefer 3D printing to CNC milling and I can announce that this is now on!

    I can't add links in comments, but you'll find a link to a new Instructable on the first page - or copy and paste this.


    7 years ago on Introduction

    Don't try this at home! At least not before giving the gcode a good edit. Rapids in the middle of very slow cuts with a tiny 1mm cutter means you're buying more till you fix the code. Also, the "full" code will cut your record in half if you can get that far. Last several lines in the file need to be removed. Attached is the progress I made before giving up. I switched to the next smallest cutter I had and it was way too big for the project but at least didn't snap. My machine is not small and rapids on this thing are easily 120 inches per minute. Beware!

    2 replies

    Reply 7 years ago on Introduction

    Sorry to hear that you broke a cutter. I took a look and found the problem. Whilst the code that generates the files is OK, I'd left an old gcode file in there that had the problems you describe.

    I've now updated this and there shouldn't be any issues but if anyone is using this please check before you mill! I tried my best and it worked for me but I'm fairly new to this.

    CamBam is what I used to view and it helped a lot. I had some bugs where notes were packed so close that the second one started before the first finished and the "backwards" arcs my code created gave some large circles.


    In addition to the above fixes (M3, M5, M6, etc) I did a global search and replace for "G0 X" to "G1 X". This leaves the Z axis still at G0 but fixes all X/Y moves so they run at a more manageable speed. If I had to do it again, I'd probably change all the G0's to G1's, then go back and put back the G0 (rapid) command for any Z axis going above the material. Probably not a good idea to do a rapid down into the plastic but so far it hasn't snapped my larger cutter. When I do this again with a 1MM cutter, you can be sure I'm going to only do rapids on a Z axis retraction and anything above the material being cut.


    7 years ago on Introduction

    I need to get a record player to finish it off. Don't know the hole spacing and sizes in the middle.