Picture of Laser Cut Record
laser copy.png
wood record 1.png
wood record2.png
paper record 1.png
paper record 2.png

A few months back, I wrote about how I used a 3D printer to transform any mp3 into a physical record.  Though all the documentation for that project is available here, and the 3D models could potentially be printed through an online fabrication service, I knew that the barrier to entry for normal people interested in trying out the process themselves was prohibitively high.  With this project I wanted to try to extend the idea of digitally fabricated records to use relatively common and affordable machines and materials so that (hopefully) more people can participate, experiment, and actually use all this documentation I've been writing.

These records were cut on an Epilog 120 Watt Legend EXT to a theoretical precision of 1200dpi (the kerf of the cut and some tricks I used to avoid crashing the laser cutter dropped the actual precision down by ~1/6).  The audio on the records has a bit depth between 4-5 (typical mp3 audio is 16 bit) and a sampling rate up to about 4.5kHz (mp3 is 44.1kHz).  So far I've successfully cut audio on wood (figs 1-2), acrylic (figs 3-4), and paper (figs 5-6), and I'm sure there are many more materials that would work.  I wrote the Processing sketch that generates the record cutting paths so that it can be modified for any song, material, cutting machine, record size, and turntable speed (skip ahead to download the code and learn how to make your own records).

You should also note that in this Instructable I'll demonstrate specifically how I used a laser cutter for this process, but the cutting files I'm using are standard vector graphics in a PDF format, so they can be extended to many other digital fabrication tools. For example, I'm curious to see if it's possible to use a CNC mill or a CNC razor blade paper cutter with my cutting files (a group of people were able to cut out some sine waves on paper using a Cameo in this Instructable).

Below are some of my final results, read on to see how they were made and how you can make your own.

Joy Division - Love Will Tear Us Apart on clear acrylic (download vector files):

Radiohead - Idioteque on wood (download vector files):

The Velvet Underground and Nico - Femme Fatale on maple (download vector files):

Remove these adsRemove these ads by Signing Up
1-40 of 178Next »
spenhoo8 months ago

I'm getting this error, not sure what to do about it. Any suggestions?

Traceback (most recent call last):

File "/Users/....(directory)........../", line 21, in <module>

frameInt = map(ord, list(frame))#turn into array


Is it just that my file is too big to do this way?

amandaghassaei (author)  spenhoo8 months ago

haven't seen that one before. how many min is your song?

It's 30 minutes - I know that exceeds vinyl limit I think for one side
But maybe I'll try it again.. Could've been a glitch in my process...

If it exceeds the vinyl limit it means the groove pitch is too narrow and cuts will overlap. That may cause the error.

amandaghassaei (author)  spenhoo8 months ago

Try 5-6 min and see if that works.

KonradC14 months ago

Nice proof of concept but falls far from being listenable. Now I don't know much about laser etching a record but I used to be a lathe operator for the cutting of vinyl records back in the 90's. There are a few things you haven't taken into account it seems. the lower rotational speed of the inner groves is the reason the sound degrades so much near the end of a song. It happens on regular records as well but it's not as noticeable. It looks like your grooves are too wide as well...

Best of luck with this!

I guess you could get a lot better quality if you modified the laser cutter to accept a turntable and cut along the axis of the record in a tangential tracking manner. After all, that's how *actual* masters are cut.

soulomon28 days ago

Someone should hack a DVD-R firmware to print 4.7" flexi discs!
Thank you for your amazing work Amanda.

You know, that *could* work if you have a LightScribe or LabelFlash burner and compatible discs.

Hello Amanda,

I am so blown away by this work. I would rather like a copy of a record of the Beach Boys Pet Sounds album on this wooden record. How much would you charge to make one of these for me? At your convenience. How much ? even the Velvet Underground would be cool too. Please let me know I would really appreciate it. I am not so technical so I could not do it myself. Please let me know if you would be able to do for a charge :) Thank you, Peter and you can contact me best at Thank you again in dance :)

jamesburkill9 months ago

Hi, When I go to open the Python wavtotext file it flashes up for a second then disappears, do you know why this would happen?

I had this problem to so I had to open python idle

amandaghassaei (author)  jamesburkill9 months ago

did you figure it out? what version of python are you using?

I am confused on step 10 what do I rename in processing?

george.titsworth made it!23 days ago

Thanks for the instructable! This is going to make a really nice Christmas gift!

I did mine on a mini-helix. The current record does not play very well.. lots of noise, a little skipping, but you can make out the tune and it looks great. I'm going to ply around a little more with it when I can to try to clean up the sound.

soulomon28 days ago

Someone should hack a DVD-R firmware to print 4.7" flexi discs!
Thank you for your amazing work Amanda.

Great project, I must try this

Jrisby1 month ago
Hey there. I Have recently tried this and it had cut 3/4 of the grooves then preceded to cut the inner and outer circles. Do you know why it might be stoping?

hey i thought i sent a message already but i cant find it!
I'm having trouble when i get to the cutting stage, it seems to just skip some (most) of the files? it seems to not recognise that there's any data being sent. is this just because the files are too big?

yeah I've seen that to. are you using illustrator to send files into the laser? The workaround is to grab the latest code and decrease the variable numGroovesPerFile until you can import each file without losing info. Or if you open the files in adobe reader and "print" from there it should work, but you won't be able to edit/move anything.

CasualTuxedos3 months ago

Do you need a 120 watt, 1200 dpi laser? What is the minimum laser requirement?

amandaghassaei (author)  CasualTuxedos3 months ago

the wattage doesn't matter - as long as you can cut through the material. You will have to play around with the settings to get the groove etching just right. I wasn't really taking full advantage of the 1200 dpi because the kerf of the laser is so wide, I'm sure it would work with something less than 1200, but I haven't tried.

Hi, thanks. Does it have to cut THROUGH the material? Does engraving not work?

amandaghassaei (author)  CasualTuxedos2 months ago

you'll want to cut through for the profile of the disc and the center hole.

peigan5 months ago

im getting an error on python:

Traceback (most recent call last):

File "/Users/eidtecnico/Downloads/LASER RECORDS/LaserCutRecord-master/LaserCutRecord/", line 26, in <module>

frameOneChannel[i] = frameInt[4*i+1]*2**8+frameInt[4*i]#separate channels and store one channel in new list

TypeError: 'map' object is not subscriptable


amandaghassaei (author)  peigan5 months ago

did you put the audio file in the same folder as the python script?

Hello! I'm also getting the same problem when I run the file in Python 3.4.1. When I run the file in Python 2.7.8 it says

Traceback (most recent call last):

File "/Users/flaviawilson/Desktop/UNIVERSITY/CCDN244 Expanded Photographics/Project Two - Lomo/LaserCutRecord-master/", line 26, in <module>

frameOneChannel[i] = frameInt[4*i+1]*2**8+frameInt[4*i]#separate channels and store one channel in new list

IndexError: list index out of range

Do you have any ideas? The audio file is definitely in the same folder as the python script. Sorry to be a bother, I'm new to python but super excited about this instructable! You've done an awesome job, thanks so much :)

FlaviaW FlaviaW3 months ago

Figured out the problem - I'd already converted the audio track to mono, so the python code was getting confused because it was thinking the track was in stereo.

Also the code does only seem to work in 2.5.4, but I might be wrong.

amandaghassaei (author)  FlaviaW3 months ago

cool, yeah I haven't tested other versions.

use 2.5.4. I tried using other python releases as well and they didnt work

This is super great. Looking to work with this in some manner (hopefully some really nice wooden records?) for my art degree (and of hold onto this idea throughout my practice). I've known since I started thinking about this that quality of sound would never really be 100 hundred percent, but I'd thought I'd only be able to attempt to mimic vinyl records somehow, and that it would be very manual and probably not work :) This post is a lifesaver honestly, and I really appreciate how much more control I have over the project now, so thanks heaps :)

cool, I'd love to see how it turns out!

rmd65024 months ago

Just wondering - how long do needles/cartridges last playing these sorts of records - I want to try this out, but not sure how expensive equipment to use it with!

amandaghassaei (author)  rmd65023 months ago

it probably wears down the needle, but it shouldn't affect anything else. I'd get an extra needle, usually that's not too expensive - $10-15

Is this similar to your 3D printed Record?

rolandjays4 months ago

when you say " hit run, run module" where is that?

amandaghassaei (author)  rolandjays4 months ago
At the top of the processing window it says run
mslee made it!7 months ago

Hi Everyone!

I also love this project :) Worked on it with my friend @kamielynn but our first attempt wasn't too hot due to the same problem of missing audio waves when I opened the PDF in Illustrator. Plan to try again cutting straight from Acrobat. Keeping the settings I used, power 12 and speed 100, since they seemed to have a good grip when it did play those parts. I'm using the Trotec Speedy 300 with max resolution 1000.

Here's the video for attempting to play ...

photo 1.JPGphoto 2.JPG
amandaghassaei (author)  mslee7 months ago

cool! let me know if you need help getting those files to cut properly, you can also try lowering the numGroovesPerFile variable to pull all the data into illustrator.

hiraeth8 months ago

Hi amandaghassaei, this is just incredible! Thank you so much for sharing all this with us :) I'm a student at the Albert College of Art and Design in Canada and I'm currently working on making a glass record of the English national anthem 'God Save The Queen' (which i've attached!). I haven't tried glass yet but I made a couple of 1/4 inch acrylic prototypes a few days ago. Unfortunately it didn't work exactly as I had hoped-they made a sound but nothing remotely recognisable!

The only laser cutter that's available to me is a 50 watt epilog minihelix but i know that you have been using a 120 watt-will that have caused problems?

The software that the laser cutter uses is corel draw but it didn't really seem to like my PDF files very much-is there a step I'm missing?

The first try, I used the recommended manufacturer settings for raster engraving on 1/4 " acrylic which were 600 DPI 100/35 which created a very shallow engraving that was barely distinguishable, even by touch. The second go I tried to use the vector cutting setting instead (30/100/5000) but for some reason the laser cutter didn't like that very much and only cut the outline of the record-it seemed that the grooves didn't register somehow? So, for the grooves I then tried 80/35. I'm not sure if the grooves were just too shallow because when i tried playing it, the stylus seemed to be unable to catch the grooves and just skimmed right over them making a 2 second sound.

Just wondering if you have any suggestions or advice for me??

Georgie :)

1-40 of 178Next »