Picture of 3D Printed Record

In order to explore the current limits of 3D printing technology, I've created a technique for converting digital audio files into 3D-printable, 33rpm records and printed a few functional prototypes that play on ordinary record players.  Though the audio quality is low -the records have a sampling rate of 11kHz (a quarter of typical mp3 audio) and 5-6 bit resolution (less than one thousandth of typical 16 bit resolution)- the songs are still easily recognizable, watch the video above to see the process and hear what the records sound like.  Also check out my laser cut records, made on wood, paper, and acrylic.

This past year I've been posting a lot of audio projects, specifically, I've been experimenting with using relatively simple tools and techniques and very little memory to approximate and recreate digital audio signals.  A great example is my Arduino Vocal Effects Box, where I used an Arduino to perform realtime pitch-bending on an incoming audio signal.  Through these projects, I've learned that audio is a very resilient medium, it can take a fair amount of abuse (in the form of distortion and compression) while still maintaining most of the integrity of the original sound.  The key is as long as you loosely approximate the overall shape of an audio signal, the output will sound reasonably recognizable.  We have evolution to thank for this: as we hear audio, some complicated processing goes on in our brains that makes us very good at ignoring noise and focusing on the important pieces of information coming through.  We can work off of relatively few cues (sometimes these even include contextual or visual cues) to piece together mangled or noisy audio and make sense of it; this is how we are able to focus on one voice in crowded room or decipher a message sent over a cheap walkie talkie. 

This project was my first experiment extending this idea beyond electronics.  I printed these records on a UV-cured resin printer called the Objet Connex500.  Like most 3D printers, the Objet creates an object by depositing material layer by layer until the final form is achieved.  This printer has incredibly high resolution: 600dpi in the x and y axes and 16 microns in the z axis, some of the highest resolution possible with 3D printing at the moment.   Despite all its precision, the Objet is still at least an order of magnitude or two away from the resolution of a real vinyl record.  When I first started this project, I wasn't sure that the resolution of the Objet would be enough to reproduce audio, but I hoped that I might produce something recognizable by approximating the groove shape as accurately as possible with the tools I had. 

In this Instructable, I'll demonstrate how I developed a workflow that can convert any audio file, of virtually any format, into a 3D model of a record, and how I optimized these records for playback on a real turntable.  The 3D modeling in this project was far too complex for traditional drafting-style CAD techniques, so I wrote an program to do this conversion automatically.  It works by importing raw audio data, performing some calculations to generate the geometry of a record, and eventually exporting this geometry straight to a 3D printable file format.  Most of the heavy lifting is done by Processing, an open source programming environment that's often used for 2D and 3D graphics and modeling applications.  Here's a basic overview of my Processing algorithm:

use raw audio data to set the groove depth- parse through the raw audio data, this is the set of numbers that defines the shape of the audio waveform, and use this information to set the height of the bottom of a spiral groove.  This way, when a turntable stylus moves along the groove it will move vertically in the same path as the original waveform and recreate the original audio signal.
draw record and groove geometry- A 3D model is essentially a list of triangles arranged in 3D space to create a continuous mesh, use the data from the last step and some general record parameters (record diameter, thickness, groove width, etc) to generate the list of triangular faces that describes the record's shape and the detailed spiral groove inscribed on its surface.
export model in STL format- the STL file format is understood by all 3D printers, export the geometry calculated in the last step as an STL file.  To get Processing to export straight to STL, I used the ModelBuilder Library written by Marius Watz (if you are into Arduino/Processing and 3D printing I highly recommend checking this out, it works great).

I've uploaded some of my complete record models to the 123D gallery as well as the Pirate Bay.  Check Step 6 for a complete listing of what's there and what I plan on posting.  Alternatively, you can go to Step 7 to download my code and learn how to make printable record models from your own audio.

Special thanks to Randy Sarafan, Steve Delaire, Arthur Harsuvanakit, Phil Seaton, and Audrey Love for their help with this project.

Here's another video that gives a great overview of the printing process and shows the printers at work:

Remove these adsRemove these ads by Signing Up

I'm not sure that i understand this fully, but well done anyway

Just so i've got this right, we will be able to print our own vinyl's and add our own music to that vinyl? if that's right, then that is amazing!

Yes RobertGoldring, you are correct printing our own vinyl's, so exciting!

Hi Amanda, thanks a lot for this great tutorial and for sharing all the amazing experimental work you're doing. I've been getting my head around it all day and I'm hopefully very close to output the STL file to try 3D printing it next. I'm curious to see what audio quality/resolution 3D printers can output these days, in comparison to the time where you made your demos.

I was looking at the video and noticed that in Audacity, you invert the curve in the equalisation effect and then apply a low pass filter. However, none of these steps seem to be mentioned in point 7.

Are you able to explain what these steps are for and whether they are required?

Thanks in advance! Charly

amandaghassaei (author)  charliecheese5122 days ago

yeah that was the riaa eq step, I made that video after I published this instructable. You can find more info about that step in this project:

step 7

3D printing is just round the corner, this will be a bigger hit to the high street.

NoPegs1 year ago
I am thrilled at your enthusiasm and technical know-how. But I couldn't help but notice you don't seem to be aware of how phonographs apply the RIAA equalization curve to the signal prior to amplification. This would explain why you get so much Bass and nearly no Treble. (IMHO you haven't yet hit the physical printing resolution barrier yet.) You should try applying the inverse RIAA emphasis curve to your audio data prior to your current processing steps and see how it goes, this way when played back the deck itself will apply the RIAA emphasis to your "pre-de-emphasized" signal and hopefully the result is increased fidelity.

She actually applies the RIAA (as well as invert the curve and apply a low pass filter) in the video but just doesn't mention it in step 7, and coincidentally I asked her why she was doing this just a few minutes ago, so the en

amandaghassaei (author)  NoPegs1 year ago
yes, this was a little oversight on my part. I haven't had a chance to go back and print out a record with RIAA eq, but all my laser cut records are properly eq'ed:
NavinJ1 month ago

Finally, I can download my records from pirate bay and print them out.

This is pretty amazing! Just imagine the quality and posibillities a few years into the future..

I agree Julie - this is just the tip of the ice's a POC the next stage is to take this into production - and mash up the flat form factor grooved records of the past/present with the 3D possibilities of the present / love to explore further with any other enthusasts of music/tech
shafrir6 months ago

Hello, all- I'm working on this project now and I'm having some trouble. The stl file output from Processing is huge! (500 MB). My printing lab advisor says that the Objet will struggle with such a big file. Did I do something wrong in my process? What should I do to fix it? The source recording is 2:28 and its text file is 28.8 MB.

amandaghassaei (author)  shafrir6 months ago

you'll notcie that all of my records only have about 1 min of audio on them - this is bc the files gets too big after that to print. The max the objet can do is about 300mb, you'll have to trim your song.

Hi Amanda - how do I go about messaging you directly ? I'd love to explore further with you?

So to make sure I understand you well, we could technically have a better result in terms of quality of sound but we need a printer that would be able to handle bigger file than 300MB? Or are there other restrictions in terms of details we could reach with the actual tools or materials available?

Thanks for replying, Amanda! I've tried making it smaller (150-250mb stl files). The files look fine in meshlab, but still crash the CatalystEX software we use on our printer. What do you think I should try next?

amandaghassaei (author)  shafrir6 months ago

that's a bummer! are you using a dimension printer? what is the max resolution of your machine? Since it's not as high res as the objet, you can lower some of the res settings in the script (by default I have it set up for an objet) to lower the size of the mesh. Ideally you want to fit in all the geometry that your printer will be able to print and no extra. let me know and ill help you find the right settings.

i am attempting this project also, but i am currently having trouble creating the txt file i get a line of code saying

SyntaxError: Non-ASCII character '\xe2' in file /Users/alford_charlie/Desktop/3DPrintedRecord-master/Processing3DPrintedRecord/ on line 21, but no encoding declared; see for details

Has anyone else had this problem or could help me remedy it.

All answers much appreciated.

Charlie I've been researching this as well - if you want to collaborate drop me a line!
Russellhope2 months ago
An amazing article and I applaud you for your great taste in music - I am a DJ and regularly drop Daft Punk, New Order and JoyDivision into the same set! I have some questions about some of the approaches you took and would love to explore further - by the way I found your blog entry when I was researching the idea of 3D printing records myself and found that you'd already done it! High 5! You can read my blog I wrote here I'd love to hear your thoughts
BryanG22 months ago

Hi, this is awesome. it has a really hard work, congratulations.

davidbarcomb2 months ago

I commend you for this idea. Interesting and well explained.

Awesome =)

pirobot6685 months ago


You know, the 'mastering' process for making a vinyl record mold is a form of 3d micro-sculpting; master record turns under a vibrating stylus which cuts the groove.

Would it be too hard to make such a stylus that is operated by a high-resolution printer system?

Rather than try to build the entire disk layer by layer, make a long spiral of 'vinyl' for a base, then trace that same spiral with a vibrating stylus....

3d printing is groovy and all (pun intended) but a hybrid 'lay down and take back' system can give 'finished' results with only a quick tool-change. Or turret-mounted tooling.....

Hey all! I'm writing an article about 3D-printing. It's for the website (focusses on electronic music and DJ-culture). It's been a while since the first 3D-printed vinyl came to life, we're wondering if there is any progress in the technique and we want to write about that. Are there any enthusiasts who are working on this project and trying to improve it? Let me know cause I'd love to talk to you about it ( Good luck to you all!

NolanCnolan11 months ago

Awesome instructable, although i ran into a problem with the wavtotext file. I went through all the instructions and created a text file of the song and eventually ended up making both a laser cut version and a 3d print version. When i went back to look at my text file, it ended up being just a copy of the code for the wavtotext python code. Any ideas? It went through the process of creating it but the laser cut and 3d print files both have no information on them, just the cutlines.


amandaghassaei (author)  NolanCnolan11 months ago

did you use stereo audio in .wav format for wavetotext?

I changed it to a .wav file in audacity from an mp3, i then changed in the python code to fetch the file and it did so, kind of weird problem, i'm gonna try it with a different song and see if it changes anything
amandaghassaei (author)  NolanCnolan10 months ago

yes it only works with .wav

codegamc11 months ago

the plastic records look so cool!

Broker Reviews11 months ago

This is amazing. I think we haven't even seen the tip of the iceberg here. 3D printing will change the way we view resources.

gazumpglue11 months ago

This is just Fantastic your project is trully exciting !!!

You're a wonderfull woman ! I wish you the best !

TP_inc1 year ago
I think I may have seen this on popular science
chatrooms TP_inc12 months ago

You definitely did, I saw it there too.

This is just Fantastic your project is trully exciting !!!

You're a wonderfull woman ! I wish you the best !

salyhp1 year ago

Hey this is truly incredible, I've been trying to follow too but last night (10pm-7.50am) was how long it took to create the .stl file after running it on processing (the .stl file is 975.5MB) and whenever I go to open it on MeshLab it comes to the end of the loading bar and it freezes. Is the file too big, (my audio file was 51.8MB/ 04.54min long)? Should I open this file on another programme? Can anyone help please, it would be appreciated

amandaghassaei (author)  salyhp1 year ago
sounds like the file is just too big for your computer. Is their a computer with more RAM that you can use?
Mistwalker1 year ago
This is very interesting. I wonder if it might be easier to make a 78 than a 33 1/3RPM record. 78s hold between three and five minutes of music per side, depending on the size of the record. I would think that this would mean everything would be larger.

Also, I could then play one of these very modern records on my 90 year old vv-80 victrola. Though, likely not for long, as the heavy steel needle would likely chew up the plastic (78s have ground up stone in them to make them harder than the steel in the needles).
amandaghassaei (author)  Mistwalker1 year ago

yes I'd really like to do this eventually!

A lot of modern record players have a setting to play 78s. You might be able to play them on yours.

Fantastic! I am blown away. Best instructable ever :)

amandaghassaei (author)  ChippMarshal1 year ago


T0BY1 year ago

I wonder if anyone can help me, I am a bit stuck! When I run the Processing Sketch I keep getting the error 'The function close() does not exist'. I have checked some forums and have made sure all the [ and ] brackets are in pairs and that the file name doesn't include the word 'close' but it's still not working. can anyone help?
amandaghassaei (author)  T0BY1 year ago

did you figure it out? it sounds like there's something wrong with your import of modelbuilder?

nerd74731 year ago
kjm26721 year ago
I think the 3-D printed record is a great idea!

I think I can help with some issues. Believe it or not, the issues that you are having are the same issues that engineers had when they were in the process of developing the first microgroove record, the earliest of which were made available to the public in 1948.

The reason why it sounds thin and the stylus wants to hop out of the groove whenever there is bass is because it's physically impossible to record the entire spectrum of sound within the physical confines of a record groove.

The way they get around this is by using what is called an equalization (EQ) curve.

The standard curve for all vinyl microgroove records since around 1953 or so is the RIAA (Recording Industry Association of America) equalization curve.

What it does is it decreases (compresses) the sound level peaks of the bass frequencies on a graduated scale across the sound spectrum. The lower the bass frequency, the more the sound levels produced at the frequency are decreased (compressed).

This allows the long wavelengths that are characteristic of bass frequencies to still be recorded, while keeping them at a proportional size small enough to produce what is known as a "trackable groove".

Your RIAA phono preamp (can also be the "phono" input on your receiver) that your phonograph is connected to then boosts (expands) the bass frequencies upon playback in the exact same amount they were decreased (compressed) during the recording process.

This puts the bass frequencies back up to full level as they originally were recorded, and therefore allows the full wide range of sound to be reproduced when the audio from the phonograph is sent to an RIAA standard phono preamp or "phono" input and amplified.

You can add RIAA equalization to any audio file by using the free, downloadable audio editing software Audacity.

It is recommended that audio files have a "flat" EQ prior to adding the RIAA EQ curve.

This is to ensure that when the record is played back through the RIAA phono preamp (or input on receiver marked "phono), it will recover the wide range and flat response of the original recording.

If it is something that has already been professionally mastered, such as a premastered audio CD, tape or any other source and the tonal characteristics of the audio hasn't been altered in any way then it will already be "flat" and you can then apply the RIAA EQ curve to the audio file.

If it is not a recording that was ever mastered and mass produced, then it may need to be equalized "flat" so that all of the audio frequencies in the recording peak out at the same level.

Doing so would then allow the audio frequencies to be equally recorded and therefore make it possible to produce sound with the widest range and fidelity.

This also explains why only a phonograph can sound right when connected to the "phono" inputs on the receiver.

If any other source is connected to the "phono" input, then it will sound distorted and have too much bass.

If the phonograph is connected to something other than a "phono" input, it will hardly have any volume, sound weak and tinny with no bass.

The only exception to this rule are professional DJ turntables that have a built-in switchable RIAA phono preamp that when switched on, allows the phonograph be connected to any preamp level input.

When records are mastered, they can also do things like vary the spacing of the grooves to allow for a variant amount of recording time.

The further the grooves are spaced apart, the louder the sound level that is fed to the cutter can be, yielding a shorter recording time.

Likewise, the closer the grooves are spaced together, the lower the sound level that is fed to the cutter has to be, yielding a longer recording time.

To make the most efficient use of the recording surface otherwise, the groove spacing will vary to accommodate louder or softer passages.

That's why if you ever look at a record closely, in particular a recording that has both soft and loud passages, you will find that the loud passages will reveal a greater amount of space between them, while the soft passages will be spaced more closely together.

I sincerely hope this helps.

Kevin J. Mzyk
San Antonio, Texas

P.S. I also know how to make the groove capable of producing STEREO sound as well!
kjm26721 year ago
There is also a way to do STEREO as well.

You have the sound waves for left and right channels recorded (RIAA EQ,ed of course....) could be 3-D printed into a groove that has 45 degree angled sides.

Whatever sound waves that are the same in both left and right channels will produce singular side-to-side modulations that produce mono sound from both channels.

Whatever sound waves that are different in both left and right channels will produce two separate modulations that produce stereo sound from left and right channels separately.

Stereo records started to be mass produced on a wide scale since about 1958, although since about 1955 they were in the process of developing stereo records with some of the earliest released to the public in late 1957.

Kevin Mzyk
JoaCHIP1 year ago
This is such a brilliant proof of concept, and because I was just talking with a bunch of musicians about 3D printing LPs, I remembered this page.

And how about the future? I can only imagine that the resolution of 3D printing will improve over time. When that happens, printing LPs should also improve in both signal/noise ratio and reproducable frequency range. I can hardly wait! :D
Love all your work!
I really want to print a 3D record but i'm failing with the final step. When I want to input my max ram memory in processing which is 4 GB I can only go up to 2000 MB. If it's higher there is an error. But it works fine with 2000 MB so thats okay but then when he is done building the STL file and I open it in Cura, (the only 3d viewing program I have on this laptop) I see that it is reeeaaaaaaally small. Like 10 mm or so. What did I do wrong?

Ohyeah and also I want to print it on a objet30 3D printer, is it capable to print this?
amandaghassaei (author)  merijnhaenen1 year ago
I had the same thing happen on my machine (4gb ram, processing only allows 2000mb), if you need something bigger you'll have to move to a machine with more ram. STLs have no units, so it sounds like you are importing the stl in mm. See if there is a setting that let's you import as inches. I know that objet studio has this setting, maybe try that. You can print on an objet, but be sure to print at high res (600dpi 16 micron steps), regular res will work, but you'll only be able to hear the drums and bass, high frequencies will get lost.

send me a video if you get this to work, I'd love to see it!
Is it possible that objet studio is only for windows? what other program can I use that is available for mac? I watched the other questions and I also have to change the size to 8" and the radius of the outermost groove to 3.8"

And what exactly in processing do I have to change for the 600dpi 16 micron steps?

Thanks for helping!
amandaghassaei (author)  merijnhaenen1 year ago
if you just want to view the stl, download meshlab. Sounds like you are changing the diameter and outermost groove radius correctly.

by default I have the settings for 600dpi 16 microns steps. If you want to change this find the following lines:
float dpi = 600;//objet printer prints at 600 dpi
byte micronsPerLayer = 16;//microns per vertical print layer
ScottVinyl1 year ago
Amanda, I've been trying to figure this out for like 3 hours so far, but I'm still getting an error. TypeError: 'map' object is not subscriptable. Please help. I'll really appreciate it.
amandaghassaei (author)  ScottVinyl1 year ago
this is in python? what version are you running? you might also reach out to fabacademy in the comments below, looks like they might have solved this.
I just saw your comment. I already looked through the comments and realized i was using the wrong version. I did processing and got my Stl file, but it doesn't open in any of the 3D programs I've tried. It didn't even open when i used the computer to put it in the tray for the 3D printer. I changed a few things make it on a 7 inch record, but im sure that isn't the reason for it not working cause i did try the one you gave me without changing anything except the file name and like I said it still wouldn't open in any program. Thanks.
amandaghassaei (author)  ScottVinyl1 year ago
what happens? does it crash the software? try opening it in meshlab - it's really lightweight. also how big is the file?
By the way, In Processing; All i did was change the rpm and changed 11.8 to 7 If this is even possible. Let me know what else I need to change. Still need help opening my .stl file. Do I need to click "Export Application" in Processing?
Win951 year ago
I can record two channels in the file?
This line says 2 channels, but only half of the file:
frameOneChannel[i] = frameInt[2*i+1]*2**8+frameInt[2*i]
amandaghassaei (author)  Win951 year ago
this line is supposed to merge the two channels together into one mono channel - frameOneChannel. However, there is a bug in my program that is not mixing these together properly. I haven't had a chance to address it, for now the workaround is to make your audio mono in audacity and then copy it and export a stereo track consisting of two identical mono channels. Sorry about that!
amandaghassaei (author)  bubblewrathful1 year ago
cool! definitely post a video if you do it!
wdoyle19801 year ago
Had a hard time sifting through the hundreds of comments, so I apologize if this is a duplicate -

My build area is only 8x8". What's the easiest way to scale this down to print a 6" or 8" record instead of the 12" ? I've only got about 2.5min of audio I wish to print.
amandaghassaei (author)  wdoyle19801 year ago
you need to change two lines:
float diameter = 11.8
this should be 8 instead of 11.8"

float outerRad = 5.75;//radius of outermost groove in inches
make this something like 3.8
maxhirez1 year ago
Cool Amanda. I almost expected to hear "Getting Away With It" by Electronic in the mix!
_jubjub_1 year ago
hi amanda,

great job with this (and the laser cut record instructable). i have a few questions about customizing your code for a less precise 3d printer than your objet.

i've gathered i should be changing this code:

//convert everything to inches
float micronsPerInch = 25400;//scalingfactor
float dpi = 600;//objet printer prints at 600 dpi
byte micronsPerLayer = 16;//microns per vertical print layer

and replace the dpi and layer thickness with specs from the target printer.

do you (or does anyone else reading this) have any experience printing this with with a stratasys uprint plus? it has a layer thickness of 254 microns, so i'm not sure how drastically i might break your code if i increase the micronsPerLayer variable exponentially. are there any other portions of the code i should be careful of in this case?

also, this might be more of an open question to anyone else reading this, but how would i convert the x y resolution of the uprint plus, which gives a minimum wall/feature thickness of .036"/914 microns (and a supposed .020"/508 microns bead diameter) into a DPI value?

thanks again for these two great projects!

- jasper
amandaghassaei (author)  _jubjub_1 year ago
cool! I'd recommend changing to these variables:

float amplitude = 24;//you'll want something between 2-5
float bevel = 1;//bevelled groove edge
float grooveWidth = 2;
float depth = 2;/depth of tops of wave in groove from uppermost surface of record

float recordHeight = 0.1;//height of record in inches

//convert everything to inches
float micronsPerInch = 25400;//scalingfactor
float dpi = 50;// 1.0/0.02 = 50
byte micronsPerLayer = 254;//microns per vertical print layer

I'd also recommend changing the rpm to 45 or 78 to get the most out of the lowered x/y res you are printing with.

I'm not sure it will work, but it's definitely worth a try! be sure to pisk something very bass-heavy to start, lower frequencies hold up better to this process than higher ones.

airbuff1 year ago
Hi Armanda,

I love your very impressing project, I thought of it and I might know the reason the sound quality is that  poor. Here is my guess:

Basically a record is able to hold two separated information in form of vertical and horizontal modulation. Due to certain concerns (mainly compatibility issues with existing mono record players with only horizontal modulation used) the left and right stereo signals are not split into:

vertical modulation = left
horizontal modulation = right

but into MS (mid side) stereophonic encoding:
M = L + R = horizontal modulation
S = L - R = vertical modulation

This is realized by turning both, the cutting stylus and the reproduction stylus coils, by 45°, which you can see very well in the link you posted.

How I understood, your 3D model is based on modulating the vertical depth of the groove only with no horizontal modulation at all. If so, your record holds side information only.

Here is an example of the resulting effect:

Given a mono Nirvana track with an imaginary amplitude of 200 (L = R = 100):

A real record would hold the following information:

horizontal modulation = M = L + R = 100 + 100 = 200
vertical modulation     =  S = L - R  = 100 -  100 = 0

After reproducing the information by playing the record, the reversed happens:

M + S = (L + R) + (L - R) = 2L   => M + S = 200 + 0 = 200 = 2L   => L = 100
M  - S = (L + R) - (L - R) = 2R   => M  - S = 200 - 0 = 200 = 2R   => R = 100

Your printed record holds the following information:

horizontal modulation = M = L + R = 0
vertical modulation     =  S = L - R = 200

After reproducing the information by playing the record, the reversed happens again:

M + S = (L + R) + (L - R) = 2L   => M + S = 0 + 200 =  200 = 2L    => L =  100
M  - S = (L + R) - (L - R) = 2R   => M  - S = 0  - 200 = -200 = 2R   => R = -100

The right signal is inverted, which means a complete cancellation in case of a mono signal.

Changing your 3D model by modulation the groove horizontally with fixed vertical depth, the sound should be highly improved.
amandaghassaei (author)  airbuff1 year ago
thanks for the comment! Yes I did consider this, the problem with lateral modulation for these records is that the resolution of the x/y axes is about 1/3 of the z axis of the printer. So I decided that it would still be best to go with vertical modulation. In my final audio sample I actually inverted the right channel and mixed the two signals together back to mono, Otherwise, yes, much of the signal gets cancelled out, it's actually really interesting to listen to the records as stereo and then unplug one of the channels to hear the huge difference it makes. I did go with lateral modulation in my laser cut record project, you can find that here:
Hey Amanda, great idea, i think it's a great proof of concept, and also a great proof of how awesome 3D Printers are (considering how precise they have to be to even print a recognizable sound wave/groove). But as far as the quality goes, how about printing a record with blank (straight) grooves, that are a little smaller than planned, and then building some kind of "record recorder" with maybe a small sewing neddle and old small speaker or something like that, where the sewing needle gets heated and melts the Audio signal into the groove?! I believe that could give you a cleaner groove and perhaps a better sampling rate, and therefore not such a "hollow" sound...
amandaghassaei (author)  delphino-9991 year ago
that could be cool. the material I'm using isn't heat sensitive, but maybe this could be done with a plastic blank or something.
Lasivian1 year ago
Ok, I have a homemade 3D printer, design my own models, etc. And even I think this is totally awesome. Excellent work :)
chenty1 year ago
Hello Amanda,
i was wondering if its possible to alter the processing code you have written to make the record grooves come out in a straight line instead of a spiral ?

amandaghassaei (author)  chenty1 year ago
I've also just posted this:
amandaghassaei (author)  chenty1 year ago
yes this is definitely possible, and could turn into a really interesting project! you should take a stab at the processing code and let me know if you have questions.
eon9971 year ago
This is incredible. I have made a 3D model, but I don't know where I can get it printed...can some one get me a link to place where you can get a model shipped to you? Thanks!
rm321 year ago
This is really cool.

Have you considered having a custom stylus made for these records by someone like Expert Stylus UK? I know they make 5 mil styli for early 78s, but they might be able to make a 10 mil stylus (or whatever the groove width for these 3D records is) as well. I imagine you would be able to reduce surface noise significantly.
This is very interesting!
as you are looking into making records from things other than vinyl, I thought you might be interested in hearing about a friend of mine who (a very
long time ago) successfully made a near perfect (although probably not very good for needles) fibreglass copy of the Beatles revolver, using alginate moulding compound to take an impression straight from the existing record. Although this technique is only useful if you have a vinyl copy already, it might extend your, and anyone elses, research... Lovely to read your posts anyway, very excited to see where this is going!
Nicapizza1 year ago
This is going to sound really weird, but I absolutely LOVE the way that "Smells Like Teen Spirit" and "Debaser" sound on that, but I'm afraid that my Prusa Mendel will not be able to print those, is there any chance that you would sell them?
amandaghassaei (author)  Nicapizza1 year ago
I just don't have the resources to do it unfortunately. try the laser cut version maybe?
sorry I couldn't help more
Thanks anyway! There is a FabLab in my area, and they have a Stratasys printer... Ill look into renting some shop time. Great project by the way! The grungy sound really works with those songs.
amandaghassaei (author)  Nicapizza1 year ago
awesome! good luck!
fabacademy1 year ago
Hi amandaghassaei,

I assume a lot of people are contacting you, so, I will be quick.

When I try to convert the stereo file into a mono file via Python, the .txt file never shows up in my folder. I have a TypeError message from Python saying :

'map' object is not subscriptable

Do you know how I can fix that ?
Bests from France.
amandaghassaei (author)  fabacademy1 year ago
what version of python are you running?
eric m1 year ago
Would like to see photo of the 3d grooves.
amandaghassaei (author)  eric m1 year ago
we're getting a macro lens in the office soon, maybe I'll post it then.
toxonix1 year ago
Amanda, this is flippin cool. I used to have a record label and we had our vinyl cut at Columbia Record's plant, which has been closed for a while. There was all kinds of trouble getting long playing records with big, thumping kick drums and bass lines to track properly and not bump the needle right out of the groove. We had to adapt our mastering techniques to get the vinyl to sound the way we expected. Eventually we did no more than 7 min per side for the maximum dynamic range and volume output.
I really like the idea of printing records on something other than vinyl, which isn't a very nice material except that it can be thermo-molded at least once in a very accurate way.
One of the problems with vinyl was always the thickness and warping. Nobody liked floppy records, ideally they'd all be 1/4"+ thick and flat as a pane of glass. As long as you don't have to carry 100 of them around to gigs etc...
I'm really interested to see where this goes.
amandaghassaei (author)  toxonix1 year ago
wow, 7 min per side. were you spinning them at 45rpm? thanks for the comment!
Nope, 33 1/3!
chenty1 year ago
Not to worry, I worked it out :-)
amandaghassaei (author)  chenty1 year ago
you might also check out this technique:
chenty1 year ago
22.0 mb, but the stl mesh is a pain to work with, as it doesn't want to stick to anything
is it possible that you could change the processing code in the linear strip file so it builds a box base, similarly to how the record generator builds the the record for the grooves to be applied too.
chenty1 year ago
hey amanda,
sorry i haven't replied in awhile, been up to my eyeballs in stuff
the processing code works brilliantly, thank You :-)
however i'm now having issues trying to plant it in to surfaces so now i'm going to print it them and place them in to object manually.
Have you tried to placing them in to 3d model ?
amandaghassaei (author)  chenty1 year ago
I haven't. how big are the files you're exporting from processing?
SG1Oniell1 year ago
This. Is. Amazing! Fantastic work! Now I have to convince my Dean to let me use our 3D printer in the college of engineering.
T0BY1 year ago

This is amazing, you're a genius!

I'm having trouble, I keep getting the following response;

Traceback (most recent call last):
File "C:\Users\Computer\Downloads\F0Y8Y6VHAUNM3D4\", line 34, in
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

What do you think I'm doing wrong?

amandaghassaei (author)  T0BY1 year ago
thanks! did you load a stereo wav file into python? did you change anything in the code? I'm curious, what are you going to use it for?
I did, it's just a few seconds of sound which I converted exactly as you mentioned in Audacity. I didn't change the code other than that. I tried exiting and reloading it to make sure I hadn't changed anything by accident.

I'm gripped by the idea of making my own record and making a record player to play it on.

Thanks for your input!

amandaghassaei (author)  T0BY1 year ago
cool! I just tried it and it worked fine for me, are you using the code included in the "RecordGenerator" zip file? what version of Python are you running? operating system?
I am using the included code. I've been through everything many times and I can't see anything wrong with it. I'm using Python 2.5.4 as you suggested, on Vista. I'm wondering if Vista might be the problem, I'll start again on another computer. Has anyone used this on a Mac?
T0BY T0BY1 year ago
Just tried on my VPS running Windows Server, with a different .wav file, getting the same response. I'll try on my Mac. I must have missed something!
T0BY T0BY1 year ago
Sorry about the multiple posts, I'm very keen to get this working! Same results on my Mac as well. The results I listed earlier are from opening the file within the Python GUI; if I right click 'Open' using the standard Python a window opens and just closes again straight away.
amandaghassaei (author)  T0BY1 year ago
Hmmm, so on the Mac you can't even open the python file? Can you upload the wav you're working with? Click on rich editor when you reply, it will give you an option to upload a file.
Sorted it! I made a schoolboy error; I thought the .wav I was using was stereo but it was mono! I've got the text file but now I'm stuck with Processing! I've followed you instructions to the letter, except I can't find a way to import files as you have described so used 'Add file' which seems to add it but when I hit run nothing happens. I've tried versions 2.0b7 and 2.0b8 and I'm using vista. Thank you for your patience!
amandaghassaei (author)  T0BY1 year ago
you need to find this line in the procesing sketch:
String filename = "your_file_name_here.txt";
and change your_file_name_here.txt to whatever the name of your txt from python is. this is the same way you should have imported the wav into python.
Watch the video at the very beginning of the instructable, you'll see what I mean.
Thank you, I've got it now!
T0BY T0BY1 year ago
What would be the best way to create a mono record?
amandaghassaei (author)  T0BY1 year ago
this script only does mono, it takes the stereo file and converts it to mono, then incorporates it into the record geometry.
amandaghassaei (author)  amandaghassaei1 year ago
hey, just a heads up, I realized I make a mistake in the code "final code" I posted, the rateDivisor variable should be set to 4, not 40.
amandaghassaei (author)  amandaghassaei1 year ago
in case that's confusing, I've uploaded a new version of
Thank you for all your help.
Thank you for all your help.
chenty1 year ago
Oh thank Amanda,
I've been playing with the code for the past week but i am a noob at writing code, hence why i messaged you because i was starting to think it was impossible :-( but i really would like to get this working as i agree it could open up into something different and interesting :-). Is it possible you could highlight the parts you think i would need to change ? also i'm looking though processing's reference page to help me gain a better understanding of its code but is there any where you feel could help me understand ?

thank you so so much

amandaghassaei (author)  chenty1 year ago
try the files attached. I've made it very adjustable, set the dpi and vertical step height (in microns) of your printer, amplitude, bevel, groove width, groove depth, and the speed that you plan on "reading" the grooves. You can also invert the groove so that it sticks out from the surface. The output should be one long linear groove.
Screen Shot 2013-03-17 at 10.51.30 AM.pngScreen Shot 2013-03-17 at 10.51.36 AM.png
BeYourself1 year ago
Well, I can say that this so cool. 3D printing is an amazing innovation ! I really like it because it opnes not even to create things like you have been written but other print from cookies to guns.. This is amazing ! It is not cheap but I think when time goes by it will be cheaper. But now I am printing 3D model army, little weapons, military , downloaded from webs to make action movie ! :) Cool !
Hey, can you help me with some things? I can't seem to open the wavtotxt file with python, it pops up and closes instantly. What's wrong?
amandaghassaei (author)  StevenHoong1 year ago
what version of python are you running, what os?
Jan.H2 years ago
And for proper RIAA equalization, before amplifying the recording in Audacity in step 7, go to Effects>Equalization. Then, from the "Select Curve" list box, select the RIAA preset, and afterwards, hit the "Invert" button, because you want to create a new record (with bass attenuated, and high frequencies boosted), while Audacity's preset is intended for playback.
amandaghassaei (author)  Jan.H1 year ago
thanks for the tip! I hope to post some eq'ed tracks soon!
TD2262 years ago
Very interesting for me as a vinyl collector! One comment to the required resolution of the printer hardware to achieve the quality level of a standard vinyl record:
The 0dB level for a 1 kHz Signal has a stylus velocity of 10cm/s according to the RIAA specification. This can be transformed into a maximum amplitude of about 16 µm.
A good and cleaned record is able to provide 60dB signal/noise ratio (even more reported). This means 16 nm amplitude for a signal on the noise floor. And even below the noise floor signals are perceptible and significant to the ear/brain.
The critical dimension in the leading edge semiconductor industry is currently around 22nm ...
amandaghassaei (author)  TD2261 year ago
thanks for the info, I had a had time tracking this type of information down online
miamibeach1 year ago
What an amazing work. Congrats!
Klaudiuszm2 years ago
I heard that your instructable has been featured on BBC World Service. Congratulations!
amandaghassaei (author)  Klaudiuszm2 years ago
Sweet mother of bastard! This is absolutely the best thing ever. I am completely blown away. This is exactly the kind of project I love! I have been telling people that 3D printing is going to be the future. And I found this through the Pirate Bay, browsing through the physical section. (We are SO close to downloading objects as well as files. Soon everyone will have a 'Fabber'.) Seriously, I am blow away on so many levels. I also LOVE LOVE LOVE "Processing." I am making a mixed-media RPG with it, and I find it to be the best Java environment ever. And WTF! How is your taste in music the exact same as mine? Radiohead? White Stripes? Nirvana? Are you a more productive and intelligent clone of me? May Buddha bless your works, sir. I'm going to go have a nerdgasm now.
Dreitakt2 years ago
Steveidosound, I should have read your Jan 2 comment more carefully. Now I understand that the cartridge wiring of the turntable is correct to the standard but the cutting direction Amanda is using is not standard. Was it mentioned why Amanda is using vertical modulation instead of horizontal. I could imagine that it is easier to find enough room for bigger Amplitude in horizontol firection than in vertical. With the 3D Printer horizontal resolution of 42 microns vs 16 microns vertical resolution numbers speak for her choice, but I think with the possibility of greater horizontal modulation amplitude the results could be possibly comparable. Amanda, do you think it is worth a try to change to horizontal mono or even combined horizontal vertical stereo modulation?
amandaghassaei (author)  Dreitakt2 years ago
you're right, I stuck with vertical modulation bc of the increased resolution, also bc it allows me to fit as much audio on a side as possible (right now I'm limited to 5-6min per side at 33rpm). it would be interesting to try out horizontal just to see what it sounds like, it wouldn't be too hard to edit the code for this. first I want to experiment with higher rpm and riaa equalization, but hopefully I will get a chance to try this out as well. I've actually just cut my first laser cutter tests, all those cuts use horizontal modulation only, it will be interesting to see how the audio quality compares. I'll be posting that project soon.
JoaCHIP2 years ago
Magnificent! By the way, I've made a free VST plug-in that allows for an easy way to make a linear EQ "tilt", which I believe might be a useful tool to apply a RIAA curve and it's reverse counterpart:
I believe a value of +20 should be the correct setting for cutting vinyl.
The plug-in has been tested with 96000 and 44100 Hz samplerates, but I think anything from 44100 and up should fine. Feel free to grab it.

Speaking of samplerate, I believe the 11025 rate is the major reason your experiment sounds "muffled". Low samplerates are rather devastating, compared to low bitrates or added noise, as this removes information that the ear cannot recreate.
amandaghassaei (author)  JoaCHIP2 years ago
agreed about the sample rate, I've processed some audio with audacity for riaa and anti aliasing, hoping to print that out soon, hopefully it will help!
berin2 years ago
Amazing but I cant help but LOL over the stepper motor sounds encoding them selfs into the print. wonderful job.
SkeptiCol2 years ago
This is amazing, and folks like yourself are what is driving progress with this type of stuff!! the things you figure out and apply heple drag the rest of us along with you!! This is Awesome, and i'm Soooo Jealous!
Hi, Me again.
If you do your modeling with the RIAA record curve it will also help you with your maximum feature size as large low frequency features will be made smaller on your record thus helping you to record louder without bouncing the stylus out of the groove. The playback reversal will be automatic with any standard phono preamp.
Regarding phase again, all you need is a "L-R" differential output. If you switch the wires as Dreitakt suggests, then combine the outputs to mono, it should work.
With normal wiring, combining the channels yields "L+R" or only lateral modulation. This was originally done to provide normal playback of mono laterally cut records with stereo playback cartridges, resulting in 2 channels of in phase audio from the mirror image groove walls (no difference = no stereo = no vertical modulation which is _all_ your records should have)
amandaghassaei (author)  steveidosound2 years ago
thanks for the comment, I think I'm going to try a 45rpm RIAA eq test this weekend. we'll see how it goes!
Dreitakt2 years ago
Great Idea!!!
Concerning the Phase of the two cartridge outputchannels: My experience is that there are four connectors, that are two for each channel (Left and Right). I think that the two connectors of one channel just have to be swapped providing the mono output to be in phase for both channels. Then, and this is normal way, no phase correction by Op-Amp or Software is is needed.
Good Luck
amandaghassaei (author)  Dreitakt2 years ago
you're right, i didn't know this, I'll have to try it out. I've just been recording as stereo on my comp and inverting one channel of the recording.
Dreitakt2 years ago
As I dont know how to edit my comment here is a short enhancement:
I think that the described 180 degrees phase shift is a faulty behaviour of the used turntable which can be corrected by the mentioned swapping of the two connector leads of only one channel ( left or right) directly at the cartridge outputs so that the other one is connected to signal ground.
agouiller2 years ago
Hi Amanda ! This is a really amazing work you made here ! Congratulation !
I tried to make my own 3D model with processing but I have some trouble with step 10. "Change the name of the import file in the Processing sketch to your txt file name: String filename = "your_file_name_here.txt";"

Should we write "String filename = "your_file_name_here.txt";" in the text editor of Processing or make file>open and open the .txt file ?

Thanks in advance for your advices !
amandaghassaei (author)  agouiller2 years ago
cool, glad to hear you're messing with the code! I just changed that line to whatever the name of my file was. so if I had a file called daftpunk.txt, I changed the line to read:

String filename = "daftpunk.txt";

does that make sense?
Good ! That makes sense. You could, in fact, play back your record in stereo and record the outputs to your computer as 2 files one for L and one for R, then invert the phase of one of the files and combine them. While you are at it you might try applying an inverse RIAA curve since the playback preamp is adding it and you didn't "record" with the pre-emphasis. Be interested if it sounds better.
One more thing, special styli are made for odd groves for collectors of old non-standard records. One of those or even just a "78" 3mil. one might give better sound from your big groove geometry.
amandaghassaei (author)  steveidosound2 years ago
Awesome, thanks!
Hi, so congratulations and a question.
Your records contain only vertical (up and down) audio modulation as per your described modeling process. A normal mono signal on a record is only lateral or back and forth modulation. Stereo recordings contain horizontal as the mono sum and vertical as the stereo difference between the 2 channels. I was wondering if your playback process is accounting for this?
I have not seen it brought up in any of the comments or your info.
If you are not doing so, setting up the playback cartridge to provide an output of only vertical modulation might dramatically increase your signal to noise ratio. Anything that describes how to wire a stereo cartridge for playback of Edison vertical (hill and dale) discs would be appropriate. Here is a link to a forum discussion -
It basically involves combining the left and right outputs out of phase however it is done.
amandaghassaei (author)  steveidosound2 years ago
good question- yes I had to stick to only vertical movement because the z axis resolution of the objet is 3x higher than the x and y resolution. as you mention, the stereo cartridges can still pick up the vertical movement, though they're not exactly optimized for it. When I looked at the outcoming stereo audio from the turntable I noticed that the signal on one channel is the inverse of the opposite channel. This means if you play the record in stereo it sounds horrible because most of the signal gets cancelled out and you're left with just noise. to counteract this you either have to plug only one channel in and play back as mono, or you can invert one of the channels, sum them and then play back as mono. The later is easily done with op amps, though I haven't actually set it up.
Attmos2 years ago
Calling all DJs.... Now DJs around the world will be able to print their own music on a record to spin at parties. This is HUGE.
APblackcat2 years ago
Amazing project and also great music taste!
I am very interested in printing a record, but I don't have access to any type of 3D printer, do you know any kind of supplier that could print at this kind of detail?
amandaghassaei (author)  APblackcat2 years ago
I think at the moment it's not really a possibility, shapeways has some pretty high resolution printers, but they won't print out files w/ more than 1 million faces I think. That would get you about 30 seconds of audio.
rmiyo2 years ago
I've been looking for this! Great job! Please tell us more about your laser cutting experiment.
Thank you.
ryebreadz2 years ago
I like you music taste!
ysatoh2 years ago
mukelarvin2 years ago
I'm so glad to see someone follow through on this concept. I investigated it a little bit back when I was doing my thesis project but I couldn't pull it off.

It's cruel but I really like imagining the pain on the face of an "audiophile" when you tell them you printed a record from a compressed mp3.
thassaj2 years ago
Amanda this is genius! The ability to come up with ideas like this is rare - you should aim very high in your future career.
McM-Chriis2 years ago
You Are a sensation on Internet WEBs!!! You Discover that !!! lol
Truly epic!

I was thinking, for a higher mechanical resolution, you could use the rapid prototyping machines as used in photonica labs (e.g. high precision milling).
amandaghassaei (author)  masynmachien2 years ago
there's talk of that, I'm going to start with a laser cutter, but I'm interested in a milling option too
Yes, laser cutting sounds like an interesting approach. It is probably more accessible than milling with very small cutting tools.
A while back, I actually thought about this concept, 3D printing records. Nice to see that other people do aswell and even go ahead and realize that.
dlebryk2 years ago
Amanda - Beautifully done, well researched, great approach.

It might help if you did the recordings in 45RPM. For a given wavelength reproduced, a 45RPM track is longer (ability to pack in more information given the resolution limit you have with the printer) versus a 33RPM track. Most every turntable around will run at 45RPM (you are correct 78RPM is hard to find) - move the belt to the other pulley or flip the switch. A lot of vinyl albums are pressed at 45RPM now - they are theoretically higher fidelity.

The longer length would allow you to use a higher resolution sound file. The RIAA curve would help a little bit, but it wouldn't be as dramatic as increasing to a higher resolution file.
amandaghassaei (author)  dlebryk2 years ago
yeah I talked about this a little in step 2. I plan on trying it out, I'm sure it will sound better, I have some files scaled to 45rpm, but haven't had the time to print them yet
With 3000rpm, dithering and low pass filter, you could achieve a few seconds of studio quality sound :-)
Good work, great idea.
Gratz you have made national headlines!
amandaghassaei (author)  Grasshopper12212 years ago
Nice thanks for the link! Getting kind of tired of being referred to as "he" but whatever.....
mariuswatz2 years ago
I'm very happy to see such a great use of my Modelbuilder library! I'm currently updating it for Processing 2.0, will post it on GitHub very soon:
amandaghassaei (author)  mariuswatz2 years ago
glad you liked it, thanks again for posting the library!
This is really awesome.

BTW, the process of turning up the gain without clipping is called "compression" or "companding" and you should use it instead of just turning up the gain and then clipping. You can use a Volume Maximizer plug-in or a compressor followed by a limiter. See and

Again, awesome! My MakerBot has some catching up to do.
amandaghassaei (author)  Dithermaster2 years ago
cool, I'll try that
tootall11212 years ago
I don't really understand all of this, so that being said, let me ask a question. Why couldn't you take a real record, somehow put every nuance into a file, then reproduce it with your digital printing thing? You wouldn't lose the warmth of the original sound
The sound quality is low because of the resolution of the printer, it can't make details small enough; and the needle is hitting bumps in the sides of the grooves because of the grid pattern they are printed in. The low quality has nothing to do with the audio source.
amandaghassaei (author)  J-Ri2 years ago
exactly, also I don't have the tools to make that file.
The only way to make that file would be to convert it to digital at some point, that's the only way to get it into the printer. An MP3 file is just a digital approximation of the depth of the groove, and at a much higher resolution than the printer can possibly print.

I doubt that the majority of people could actually tell the difference between a 128 kb/s MP3 and a vinyl record played on the "average" sound system. At any rate, There are 3-hundred some kb/s MP3s and codecs like FLAC that I believe reproduce the sound as accurately as vinyl, to my ears.

One thing that would have to be done is to print the record in a spiral, this would eliminate the repetitive sound. In a grid pattern, the resolution would need to be so high to eliminate the unwanted noise, that I don't see 3D printing ever being able to print a record that sounds good. The frequency of the bumps would need to be raised to where the frequency was above human's hearing range

I think the best way to make your own record would be to use a solenoid and a recording needle on a turntable and advance it inward as the record spins.
Okay I see you're still not understanding what I'm saying. The file would be digital for the printer thing, the difference would be how you arrive at having that file. Take the original record, maybe the early direct to wax recordings, and make the file based on a laser measurement of the record itself, not by inputting a digital file of the music and or vocals. Do you get what I'm saying? It would be as if you mapped a valley very precisely, including every rock, tree ... whatever. Not a recording of a band or whatever that's digitized.

Yeah, most people can't tell the difference in digital and analog, nor do they care.
I understand what you're saying, and I do understand the potential benefit, however I doubt that having a slightly better input would significantly improve the output, or justify the time/expense. The groove on the record is essentially being mapped, the record player outputs a voltage which corresponds to the depth of the groove, which is converted to a number which best approximates that voltage (which is the depth of the groove). The original recording is like a row of rolling hills, and the digital recording is like the same hills if someone built steps up the sides of the hills. The bit rate determines how big the steps are. The printer has to make one big bump for each, lets say 10 steps or the equivalent distance up the hill. As long as the steps are smaller than what the printer can print, it doesn't matter if you have 10 or 100 or 1000 small steps, they will be printed as one large step

It would be like taking a picture on a 1 megapixel camera, printing it on a dot matrix printer, and re-taking the picture using a 2 megapixel camera and expecting significantly better results. The accuracy of the lower frequencies in these recordings suggests to me that the method for converting the mp3 to "bumps" is correct, and I don't see any benefit to measuring the depth directly.
better equipment might be needed. I just think he's going about it wrong, starting with digital recordings. Use a real record as a source, copying each ridge and groove exactly. Maybe the equipment can't do it yet. I don't know.
GarthBock2 years ago
To GrfxGawd:

Uh...this was a know....something that requires a sense of humor.....there's an instructable on that..
kweinberg2 years ago
Very cool!!
Kiteman2 years ago
Outstanding job - even if some of the videos were painful to listen to.

("Test two" reminded me of the sound effects from Forbidden Planet)

Here's a thought - how compatible would 3D printing be with cylinders, the oldest "records"?

Or would it be possible to scan an existing vinyl record and turn the scan into a new record?

Oh, and what about putting other kinds of data into your conversion process? What would a picture sound like? Or annual rainfall data?

This is a really exciting project!
> Or would it be possible to scan an existing vinyl record
> and turn the scan into a new record?

That would be an absolutely BRILLIANT way to revive old, worn out records! Just bring the peaks back to their old positions, and fill in gouges. Possibly even 'repair' old broken records that are irreplaceable!

There may be a whole new industry here!
Oh, scan the shards and edit them together - brilliant idea!
Now I've gone and blabbed about it, I'll probably never see a dime. :_(
RDalenberg2 years ago
Excellent documentation. I can see your work being applied to the surface texture of other printed objects. Have you considered using a laser to READ the texture? I imagine a cheep laser scanner reading an object with printed 2d barcodes and audio data embedded in the surface texture.
daveclark52 years ago
I have an ancient edison dictaphone which used the wax cylinders. The thing about Edisons solution is that when one was done with dictation the cylinder could be scraped flat with a primitive lathe.

I think your project concept is excellent. You'd probably achieve higher fidelity by cutting a pre-formed with an inscribing tool (basically a 3D milling machine instead of 3d printing. cutting plastic than printing.

Perhaps by combining some precision robotics controllers, stepper motors, etc you could learn to cut plastic. This would be great for all types of users with 3D printers who want to take a second pass at the printed output and put a slot or grove or hole in it.

excellent concept - good luck!
edison wax cylinders.jpg
amandaghassaei (author)  daveclark52 years ago
very cool, yes I'm going to cut another record on acrylic with a laser cutter soon
madshobye2 years ago
Love it!
amandaghassaei (author)  madshobye2 years ago
baltika2 years ago
What if you could use a radial printer (assuming one was available)?
amandaghassaei (author)  baltika2 years ago
yes that would lower the noise in my signal for sure. The objet rasters each layer in, but getting some kind of vector printer would be great.
spange baltika2 years ago
I was thinking that if you could get the printer to print from the center out in a spiral motion, it might fix the sine wave problem. Might even get more fidelity out of it too.
lebeno2 years ago
Did you perform an RIAA correction on the audio beforehand? That would lower the intensity of the base and pull up the high end. The record player does the reverse of this, Read more on
amandaghassaei (author)  lebeno2 years ago
I didn't, lot's of people have suggested this, i think you're right, it would help to balance the signal out a bit
RC_tech2 years ago
Great idea, printing vinyls with a 3D printer! Hope you'll enhance the quality!

For now a tip: Try C64 tunes or other chiptunes for experimenting. Although the soundchip SID is a synthesizer, it is able to play digitalized sounds from about 5 to 6 bits, ideal for experimenting with your printed vinyls.

There is also a special cardridge for the C64, the MSSIAH. It's an all-in-one audio cardrigde which also allows to play MIDI-controlled samples in 6 bit. There's a big forum with musicians, maybe some people are even interested to get their tunes on printed vinyl ;)

Or try some of the over 42.000 SID songs from the High Voltage SID Collection ;)

Greets, RC.
amandaghassaei (author)  RC_tech2 years ago
I'll look into it thanks!
ledzurso2 years ago
It sounds like I'm on hold
zigzagchris2 years ago
I think your at the beginning of something great, good luck. Vinyls rock!!
you are a super hero.
Laia_bee2 years ago
I´m a dj and vynils are so expensive, this could change the future of the vynil industry! I really hope you succeed!! are you into kickstarter?
ahaase12 years ago
Very fascinating idea to print my own records
jeikmauf132 years ago
What if you were to use a laser engraver to cut on acrylic or a similar material?
amandaghassaei (author)  jeikmauf132 years ago
already in the works! check back in january, I should have it posted soon.
joecupojoe2 years ago
Would it be correct to assume that a 16 bit record would need to be a meter thick.
amandaghassaei (author)  joecupojoe2 years ago
haha, you're right!
PeoplesCar2 years ago
Very cool project! As an incurable vinyl collector with over 2,300 records in my collection, I've always dreamed of being able to just print my own from any source I wanted. One thing I wanted to clarify from your description:

I wanted to use the lower 33.3RPM speed in order to make this more like a real 12" record (45 RPM is only used for 7" records, and 33RPM for the full sized 12") 

Playing speed and disc diameter are independent of one another, and there are discs out there of several sizes, from as small as 4" diameter for the Hip-Pocket records to a whopping 16" diameter for transcription grammophones, with dozens of sizes in between those besdies the standard 7" and 12" we're all familiar with.  There are even some limited runs that go smaller than the 4" standard.  I have several 7" and 10" discs that play at 33.3 RPM (EPs), and conversely have several 12" discs that play at 45 RPM (mostly European singles, which also have much wider grooves than standard American vinyl).

If you pushed your speed up to 45rpm on the same 12" vinyl blank, you could feasibly increase your audio fidelity without increasing the precision at which the machine would have to print the bumps (more bits per second, just by using more physical vinyl running under the needle per second without having to make the bumps smaller or cram more onto the same space).
amandaghassaei (author)  PeoplesCar2 years ago
thanks for the info, I will definitely try it.
Mr Cheeseo2 years ago
You mentioned that the Daft Punk was causing the needle to bounce off of the record. Have you tried applying the RIAA EQ curve? It lowers the bass and boosts the treble (to remove surface noise) and is present on most all records. There is a preset in the Audacity EQ for it if memory serves me right.
amandaghassaei (author)  Mr Cheeseo2 years ago
yes, that's what a lot of people have been saying, I will try it out for sure
sbaldwin102 years ago
This is simply astounding. Thank you for sharing. With improvements in the technology in the years to come, we could be printing the records we've bought online.

What I really like is you chose some great sources for working with.
ffcabral2 years ago
This really impressed me! Kudos to you, always making cool stuff with tech and music!
ajoyraman2 years ago
I must compliment you on integrating so many technologies to demonstrate this wonderful concept.
rmd65022 years ago
As someone old enough to remember Analog Disc technology, I am very impressed!
benbradley2 years ago
@trg (I'm also having a problem replying directly to others' posts): You're right about 45RPM sounding better in theory, but most 7-inch 45s were made of polystyrene, a cheaper material than vinyl. It may sound good on first playing, but it wears out faster than the vinyl that LPs are made of.
Dear Sir, you have won my internets for this week. Well done and good on you for freely sharing you idea.
erqain2 years ago
simply awesome!
mrwolfe2 years ago
This is so exciting! I wasn't aware that digital printing had got to this level of resolution. It won't be long now before we will be able to print mirror finish surfaces. in hard materials such as steel.
trgz2 years ago
I'm truly amazed. One question: have you tried comparative tests for audio quality at 45rpm or even 78rpm? (I recall a 78 version of the Rega Planar 2.) Whilst it's a given that you'll get more on a 'long player' and that singles were generally inferior to LPs there's a voice in the back of my head saying higher RPM = higher sample rate (or something).
amandaghassaei (author)  trgz2 years ago
I haven't yet, it's easy to adjust this in my code and one of my next tests.... it will definitely increase the sampling rate (see step 2).
noahh2 years ago
Ever since I first learned of 3D printing, I've been waiting for someone to print records. Well done.
wolfgang642 years ago
Dear Sir I am very impressed. Do you think the dpi in printing can get much higher? Also Kiteboy's thought about scanning of records and directly printing a copy are possible?
What do you think the max dpi for scanning and printing is possible. Buy the way Good Job!
amandaghassaei (author)  wolfgang642 years ago
no idea what the max is. one day we might be able to print with atoms, who knows. we'll have to see what happens
james.m.k2 years ago
Very, very cool!

Disappointed by the apocalypse, but totally blown away by the Instructable!

The circle of life returns us to the beginnings (of audio anyway) again! ^_^

I can tell you put a LOT of work into this, and it's very interesting.

Oh, I think you put an equation in wrong. You wrote this:
revolutions per second = (revolutions per minute)/(minutes per second)
and I think you meant this:
revolutions per second = (revolutions per minute)/(seconds per minute)

(Because, there are either 0 minutes per seconds, or 1/60th minutes per second. However you want to calculate it.)

Too bad that you were limited by the technology, but it will improve. (Unless that Mayan Apocalypse hurries up and actually happens today!)

Very cool.
Thanks for the hard work, and even more thanks for sharing it!
amandaghassaei (author)  james.m.k2 years ago
you're right, I fixed it. thanks
I am stunned with the sound quality you got! I listened to a enough vinyl to know how nuanced and finicky the format is; what you have there is trully impressive. It also has a way cool modernist look.

Great job!
wolfgang642 years ago
Also Quickly, Did you know that the library of congress has determined that the best way to archive music is on vinyl? This technology still has legs.
ShamWerks2 years ago
Definitely one of the most amazing instructables I've read. Congrats!
Can't wait to see what we'll be able to print in 5 to 10 years from now! :-)
maboy2 years ago
Now records, tomorrow Laser Discs! Muah Ha Ha HA HA!
Up until now, I thought "I" thought outside the square.

3D Computing
maboy2 years ago
Da na *static* da na *weird squeeling noise* na na na na!
LucDaRocka12 years ago
GarthBock2 years ago
Wow ! You just rocked the 3D printer world. Now you done it......the guy who tried to print a gun had that removed and now the music folks are gonna prevent us from printing our own LP's.......LOL......Excellent job and excellent tutorial......
Do a little research and I think the last known mass casualty attack where the perpetrator actually manufactured ANYTHING was Timothy McVeigh. Pulling parts schematics was knee-jerk reactionary and childish. Law allows private individuals right to construct firearms. There are already existing laws covering this. If you choose to do something outside those specified and allowed practices, then you are a criminal, and laws are not going to stop you. And by the way, it wasn't a trial, and the man you refer to only printed the lower of an AR-15. Several have been printed, fitted, and successfully fired.
alzie GarthBock2 years ago
3D print a CD? Woah, thatd be something! Great job with the LP!
elabz2 years ago
This is amazing. Bravo! This will become my favorite instructable of 2012.

By the way, I have a 1912 record player and its quality of sound is about the same :) at least on those record I have. It is so mind boggling to see the technology coming full circle in 100 years, except this time fully in control of an individual (with a nice 3D printer)

I am very curious: what is that repeating wining artifact once per revolution heard on all records? Is this a result of digitalization or something mechanical? Or perhaps introduced by the printer? Thank you for the great instructable!
amandaghassaei (author)  elabz2 years ago
do you have any video/audio from your record player? I'd love to hear it. yes the repetitive high pitch frequency sweep is actually a byproduct of the printing process. The objet has an array of heads that it uses to print and it moves this array back and forth as it lays down material. At the end of the print the surface is covered with tiny 600dpi parallel lines caused by the space in between the individual heads. Each time the record needle passes perpendicularly over these lines it adds another frequency into the audio output. if you listen closely, you will hear the frequency of this sweep decrease as the needle moves to the inner grooves (because it does not move as fast across the surface of the record)
That's exactly what I thought about the frequency sweep - that it was the result of interpolating spiral grooves across a linear printing grid. Altogether, this is a brilliant project! Well done!
GrfxGawd2 years ago
For practicality, print blanks, use a controlled laser to etch the surface. You can keep all the fidelity you want that way. Well, all the fidelity available via the medium anyway.
This is an interesting coincidence. This morning on the BBC I saw a piece about some wax recordings they found from 1903. Apparently they are the oldest recordings of a family Christmas in the world. I noticed they were playing them like a record with a physical arm and needle. This must be incredibly destructive to something so old. I was wondering, is it possible to use some sort of laser to read a record service, especially if it is wax, as the old recordings were?
amandaghassaei (author)  thoughtfission2 years ago
it's definitely possible to use a laser to read the surface of a record. I don't know why they would do that either. can you post the article?
The idea they would touch the surface with a modern stylus is horrifying. I'm not going to make an attempt to try to explain the relative forces involved. Even photographing the surface of the discs at high enough resolution would provide the needed information to reproduce them. (And no, I don't advocate the use of a period reproduction to play the discs back either!) Not to mention, there's a reason in the 50s they called them stax-o-wax. Original masters were cut wax, pressings were made from them for vinyl masters.
warspyder2 years ago
How can something that sounds terrible sound to wonderful? This just blows me away, WOW! Great job, I am amazed! Now we just need some to create an audio filter to apply the noise to audio files. The noise is mysteriously captivating and haunting, it transports me back into my past.....

Thank you for sharing!
synthdust2 years ago
This is totally insane, and amazing! I can see artists making music specifically to be played back in this format. Especially if the process can be streamlined, or an adio file can just be sent to someone (you?) and for a fee get the resulting 'record'. LOVE IT!
p.s. I really liked that sync sweep sound at the very beginning of 'Smells Like Teen Spirit', very synthy!
ilpug2 years ago
+1 internets for you!
braxtron2 years ago
Probably the first time I read through an entire instructable out of fascination, cool project! I've been working with audio myself lately (attempting an analog vocoder), so your insight is appreciated. I'm excited for the laser version of this project, that's something I actually have access to!
amandaghassaei (author)  braxtron2 years ago
yeah that's why I'm so excited about it to!
ccrome2 years ago
Hilarious & awesome.

A couple of thoughts on improving audio quality:
* You should definitely downsample or lowpass filter your source signal before encoding & making your record. This will eliminate aliasing caused by your low sample rate on the physical side. Given your sample rate of 5 to 12 kHz, you should lowpass filter your audio at between 2.5 and 6 kHz, depending on where the signal is being laid down on the disc. To make things easy, just lowpass around 4kHz and be done with it. This is really simple in audacity, sox, or any other audio processing software. (sox in.wav -r 8000 out1.wav; sox out1.wav -r44100 out2.wav) is one simple command line way to do it.

* you also need anti-aliasing on the playback side. This isn't as easy, but it will definitely be necessary to reduce all the aliasing caused by the bumps in the record. The easiest way to manage this would be to turn your treble knob all the way down. Definitely non-ideal, but will help. Otherwise you can put an actual lowpass filter in between the record player and amp, but that's tricky because the record players have such a tiny signal level -- you'd need to shield the whole filter. And it's hard to make a sharp lowpass anyway.

* You should apply RIAA EQ to the file before processing. If you're a DSP kind of person, this will make sense: Otherwise, just draw the approximate EQ in audiacity equalizer before processing.

A few little tweaks and you'll have started the next audiophile revolution. ;-)
amandaghassaei (author)  ccrome2 years ago
great tips! I hope to try all of these when I get the chance.
nerys2 years ago
SO this begs the question. How much? how much would you charge to "make" records for people :-) hehe
amandaghassaei (author)  nerys2 years ago
hmm, that's something to about, no idea yet
WizenedEE2 years ago
Your link to "Objet Connex 500 printers" is broken --- you need to put a : after http
amandaghassaei (author)  WizenedEE2 years ago
thanks, fixing it
nerys2 years ago
yep that would explain why the price is not listed on their site :-) hehe
Love the idea, brilliant!
rimar20002 years ago
Amanda, you do not deserve a patch, you deserve a Nobel prize!
amandaghassaei (author)  rimar20002 years ago
you're too nice!
hemalchevli2 years ago
This is a beautiful proof of concept. It also makes necessary a new SPARS code - DDA.
*head explodes*
amandaghassaei (author)  bakunin2 years ago
cool! never knew this
bgepp12 years ago
Oh snap - this is sweet. Hats off to the chef!
poulps2 years ago
Congratulations. Good job!
Very interesting project. Thank you for share with us!
-A-N-D-Y-2 years ago
Best thing is it's not 1st April! else I don't think I would have even opened this :)
Black Magic I tell you! Black magic! Figures, you would post this on the day before the Mayan Apocalypse. :)
mrose162 years ago
Great choice of music as well! :)
bcolflesh2 years ago
You just won Instructable of the decade. Now if the printer didn't cost $250k+...
Spend a little time, looking for SLA (stereolithography) online services. I'm sure you can find something that will allow you, as a non-business entity, to get pieces made. You may even have someone local and just don't know it. A lot of companies that pick up equipment like this like to contract out side work to help pay for the things.

It'll still be a little pricey, I'm sure, but if hobbies were cheap, more people would have them. :) (or, at least, I like to think so!)
Good information - thanks for your comment!
jaywar2 years ago
Really great! Looking forward to updates to this project.
samurai12002 years ago
This is incredible. I'm going to read through this 'ible in all its detailed glory later, but first I'd like to comment that your taste in music is very good =)
ledartist2 years ago
Amazing! Interesting project.
Did you apply RIAA equalization to the audio? RIAA reduces the base and boosts the treble. Because music signal typically has much higher amplitude of base than highs, this helps "pack" lauder sound into the groove, and improves the S/N ratio. Sorry I haven't read the details, but if you haven't, this is worth trying.
Also, using 45 rpm would help getting a better high frequency range.

amandaghassaei (author)  ledartist2 years ago
I didn't know about this, it's a good idea! thanks, I'll look into that more
Actually, that may have been the reason why you weren't getting great S/N ratio in the first place. The RIAA equalization filter on the audio side may have been cutting your treble and amplifying your bass, which could have caused distortion if your bass was too loud in the first place and would have deeply attenuated your >1KHz signals.

How are you feeding the audio signal from the turntable into your amp? Through a phono pre-amp or straight to line levels?
lawsonuw2 years ago
@amandagassaei: the re-captcha for direct replies seems to be broken... so I'll reply here.

Makes sense. With a vector file you can leverage the interpolation built into the machine so that's one less thing to program.

@randofo: Hadn't considered "flame" polishing. (probably better to use a flash lamp in this case) With the UV cure, I assumed the print media wouldn't re-melt and flow.
Tomdf2 years ago
Hey alright!
jmatthias2 years ago
As an industrial designer turned developer, this is one of the best instructables I've seen in a long time. I'm fascinated with using programming to automate 3D modeling. Thank you for taking the time to write such an in depth explanation. Also, your intro photos are beautiful and your choice of song perfect!
amandaghassaei (author)  jmatthias2 years ago
thanks, yes this is the first thing I've done with automated 3d modelling and I really want to do more, you should download that library I mentioned, it's really great
Oh, definitely. I'm looking forward to playing with it!
So MP3's are now backward compatible and able to be played on the good old gramophone record player!
I guess the next step in 3D printing will be to print a working CD.
Thanks for this amazing Instructable.
randofo2 years ago
Very well done. WIN!
lawsonuw2 years ago
First off, Incredible job!

I do wonder if some micro-polishing would help the signal to noise ratio? Something like "jet polishing"? (just google those two terms) Or an "ultrasonic polish" by putting the record and some polish in a bag, and the whole mess in an ultrasonic cleaner?

Does the 3d printer have the ability to directly read a stack of layer bit-maps? A 12in x 12in x 600dpi binary bit-map should fit in about 6.5MB. A 20 layer stack would be about 130MB. (you'd need to repeat the bottom layer a lot of times to get a strong base though) Theoretically then, using a PC based layer slicer would let full records fit in the printer's memory.
amandaghassaei (author)  lawsonuw2 years ago
it doesn't unfortunately, has to be stl or obj I believe. before I decided to do this in processing I was doing the whole thing in python with a bitmap, then trying to use software to convert to a topography. it was a data disaster. ultimately I think the vector file way (stl) is actually better than a bit map because you can print in between vertices. So if two samples of your audio fall on either side of a pixel you don't just have to pick one of them, you can actually get a value in between. does that make sense?
The material is very heat-sensitive. Applying high heat in a short burst may smooth it out a little between layers which may improve the sound.

The printer is essentially converting the 3D files to thousands of individual bitmaps. You would need a 3D model to initiate the printing and generate the files, and it will probably make it unhappy to start changing those files on it. It keeps track of the layers.
nerys2 years ago
SO almost afraid to ask since their website does not list a SINGLE price.

but what does one of these objet printers cost?
amandaghassaei (author)  nerys2 years ago
six figures I believe, not sure though
capthraw2 years ago
This is incredible! Here's a thought: 78rpm. The increased speed would theoretically impart better fidelity, in the same way that recording reel-to-reel tape at a faster rate allows for more "data points" per second...
amandaghassaei (author)  capthraw2 years ago
yes, I've considered it, but it;s not really standard on a lot of record players. Also you could only fit 2 or 3 minutes on a side at 78. would be interesting to try though
rrwood2 years ago
This is brilliant!

Hey-- I blog for Wired Magazine's GeekDad section and would love to do a post about this. Could I re-use one or two of your pictures in the posting? Email me as "roy.wood" at gmail or reply here if that's okay. Thanks!
amandaghassaei (author)  rrwood2 years ago
sure, just credit me and Audrey Love for the photos.
xMSIx2 years ago
Forget MP3, I want this!
Javin0072 years ago
Absolutely... Amazing...
Harrymatic2 years ago
This is absolutely incredible. Congratulations on such an astoundingly impressive project. I never even dreamed you could 3D print records which actually play.
Teemus432 years ago
This is incredible! Great job.
Would this be in conflict with the anti-piracy laws ? :D
a=r2 years ago