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 156Next »

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 :)

Is this similar to your 3D printed Record?

KonradC122 days 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!

rmd650225 days 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!

rolandjays1 month ago

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

amandaghassaei (author)  rolandjays1 month ago
At the top of the processing window it says run
peigan1 month 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)  peigan1 month ago

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

mslee made it!3 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)  mslee3 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.

hiraeth4 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 :)

amandaghassaei (author)  hiraeth4 months ago

cool! I've actually made this work on a minihelix before, though I don't remember the exact settings. You will definitely need to cut in vector mode, not raster. I had a lot of trouble with corel draw, for some reason it doesn't like the vector paths, you need to set up adobe reader on your computer and print from there. If you have the epilog drivers set up for corel, you should have no problem, just open the file in reader and press print, you should see the same advanced print menu for the laser. The only thing about adobe reader is that you cannot edit the paths, so make sure to edit the script for the correct bed size (12"X24" right?) before you generate the files. does that make sense? let me know if that works!

Hi again, thanks for the advice! I've also tried increasing the spacing between the grooves to 100 and cutting the file in half in rhino so that there is less information for the laser cutter to deal with and this seems to be working! I'll let you know what the finished product is like!

amandaghassaei (author)  hiraeth4 months ago

you can also lower the number of grooves per file (numGroovesPerFile), and run each file through the laser one at a time.

spenhoo4 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)  spenhoo4 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...
amandaghassaei (author)  spenhoo4 months ago

Try 5-6 min and see if that works.

This is awesome, Amanda. I'm using this project as inspiration for a series of rapid prototyping workshops I'm doing at Makerhaus in Seattle. Thanks for the inspiration AND the excellent documentation. Seriously.

Quick question for you: were there any possible extensions for this project, e.g. future explorations you considered? I'm more than happy to take a pass at one of them in my classes.

Thanks again. I'll repost whenever I finish the results.


amandaghassaei (author)  wunderkidchaos5 months ago

very cool, I'm actually from Seattle. Some ideas i have (but will never have time to try) are working with different materials, I never really got the paper records working great, but I liked the idea a lot. If you want to get into the code more, I think it would be cool to try to do some interesting things with the vector paths - "non-linear" records, records whose groove splits into two parallel paths with different songs depending on which direction the needle falls, maybe using this technique to recreate a recording on a cylinder, for an edison player, or maybe scaling this up and using something other than a record player to "read" off the sound....

let me know how your workshops go! sounds really cool

Seattle? Whoa, no way. Small world.

Different materials? Non-linear, random records? Edison-player? Yes! (Mind explodes).

All great ideas. :) I'll get through your original work and try to extend it in one of these directions. I'm starting first with the sine wave tests to understand the type of output I can expect. Will definitely keep you updates. Thanks for the inspiration.

Oh and one other interesting thing I stumbled upon: a paper record player. Could you imagine your paper record playing on something like this?!

amandaghassaei (author)  wunderkidchaos4 months ago

very cool!

phillipppp1 year ago
First off, I'm very excited to try this! I will be making one within the next week or so.

I seem to be having the same problem, when I create the .pdf files, import them to illustrator and try to combine them to one, there is a huge gap between the 3 sections. Should I try scaling the lines to match up?

On our laser cutter, we import Illustrator files to CorelDraw and print from CorelDraw. I've never had any problem with file size, I have run some very large jobs, mostly etching, that run for hours. 

Thanks for the project! I look forward to some feedback. 
amandaghassaei (author)  phillipppp1 year ago
there seems to be an issue with importing these files into illustrator. try opening them up in preview or in adobe reader, you will see that there is actually much more information there. can you try this and let me know. there should be five sections and each of them is much thicker than the sections shown in this file. they will line up with each other
I do not have CorelDraw on my personal computer, only the workstations at work. I opened them in photoshop and they seemed to line up properly but they are no longer vector art. Any idea whats going on? I only got 3 PDF files when it was generated as well.
amandaghassaei (author)  phillipppp1 year ago
yeah, that's the problem with photoshop. I'd say try opening them in corel and see if the import works ok. did you use a short piece of audio? that might be why you only have three files. If you use the full 3min you will end up with five files. let me know how it works
amandaghassaei (author)  amandaghassaei5 months ago

did you get it to work? another strategy is to grab the most recent code off github and change the line:

int numGroovesPerFile = 20;

to 10 or something. This will break the record up into many, smaller files, and I believe you will be able to import this into illustrator. As long as you see no gaps, you are good. If you still see gaps, try 5.

Opened the files in CorelDraw, same as Illustrator. Weird! Any ideas?
amandaghassaei (author)  phillipppp1 year ago
that's strange, can you just print from adobe reader? that's what I've been doing.

Did you ever have any luck with the gap problem, I have come across a similar problem and no matter what file I convert it too or which program I put it in it doesn't work

amandaghassaei (author)  phillipppp1 year ago
have you tried opening them in corel draw?
jamesburkill5 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?

amandaghassaei (author)  jamesburkill5 months ago

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

garyaourt8 months ago
I've got a problem when using the file
TypeError: 'map' object is not subscriptable

what should I do?
Thank you for this tuto, I really like this way of using a laser cutter :)
suisan garyaourt5 months ago
hey garyaourt, same problem here.. could you find what went wrong?
amandaghassaei (author)  suisan5 months ago

what version of python are you using?

amandaghassaei (author)  garyaourt7 months ago

huh, did you resolve this? did you put the .wav file in the same folder as

25thFloor6 months ago

Dear Amanda, thanks for the great tutorial. I was trying these days to engrave one record. But I found some problems. First I'm using a Trotec Speedy 300 ( laser cutter. Have tried with different machines? I tried to slow down the speed of the laser, but it's simply not engraving. I'm not a great expert in laser cutters. Any idea or suggestions? Thanks again.

amandaghassaei (author)  25thFloor6 months ago

I haven't tried it on anything other than epilog. what do you mean it's not engraving? will the job not start? or is the laser not turning on?

1-40 of 156Next »