3D printing some sweet music


If you don’t mind ending up with oddly shaped 3D printed parts you can get your printer to sing to you. The exhibit shown above is doing just that. The Lulzbot is being driven specifically to produce a certain frequency of sound with its stepper motors. The results of a few different songs are what’s hanging on the wall to the right. You can hear it printing Bizet’s Carmen in the clip after the break.

[Rickard Dahlstrand] hacked together a Python script capable of parsing a MIDI file and outputting a G-code equivalent that will produce the frequencies and durations necessary to hear the audio on a stepper motor. As we mentioned, he uses a Lulzbot but the script appears to include setting for Cupcake, Thingomatic, Shapercube, and Ultimaker. The parser script as well as the example G-code files for a library of classical music can be downloaded from his repository.

Now if you’re looking for some other crazy CNC music ideas you can’t beat this wineglass music hack.


  1. henry says:

    I wonder what the project looks like not through an iphone 4 display.

  2. 01wtnt says:

    what a waste of plastic

    • Zac says:

      its “art” i guess….
      that being said, just run the printer sans plastic, get the same tunes with zero mess.
      better still, listen to the REAL audio, much better quality :P

    • Pun says:

      It would be cool if, instead of moving the head randomly across the build surface, the machine was actually making a model related to the song as it moved. It would sound the same, but the model produced in the process could then be put into a device (maybe Kinect based) that could look at the model and then replay the song from the model alone.

      • With a high enough resolution you could make something like an Edison cylinder, sort of like the 3D-printed LPs I’ve seen here before. Though that would somewhat limit the final output shape…

      • Greenaum says:

        I bet you could do it. you’d just need to alter the speed of the motors, on their usual course, to play the notes. Might require a few pauses to sync the music with the build.

        Tho with the speed of 3D printers, 4 hours of low-quality MIDI squawking might be more than you could cope with.

        • eric says:

          its pretty challenging to do this because the relative speed of each axis (in relation to the others) is dictated by the 3D model. The easiest way I could imagine doing this is printing an object made up entirely of 45 degree angles — that way at least the X and Y will be operating at equal speeds.

          I think it would be very difficult or impossible to make a printer play nice sounding music while printing an arbitrary object.

  3. rickarddahlstrand says:

    Just to clarify and give credit to the right people. The python script mid2cnc.py was originally written by Miles Lightwood and adapted after that by lots of other smart people. I just hacked it to not only play the music but also extrude and print the results.

    Glad you liked it!!


  4. solipso says:

    Great! Would be even better if somehow made to play songs when printing ANY object. Of course, id would cost the speed, but would be adorable to listen songs while waiting for parts beeing printed…

  5. they made it also with a singing laser cutter
    http://www.youtube.com/watch?v=C4OV2UofPFg _O_

  6. EFH says:

    This is really silly; why do this to a 3D printer when you could just use a regular inkjet or something.

    • Because they’ve done that, along with literally every other electronic thing on the planet. (Even memory. Some early computer techs used writes to core memory to interfere with an FM radio, producing music.)

    • static says:

      Unfortunately too many in the hacker community & in the DIY community at large don’t or may never “get it”. Those who embrace 3D printers for “artistic ” or trinket/do-dad production for profit are going the be that sector that determines the fate of more inexpensive 3D printers being market to all of us. In the event I had access to 3D it’s highly unlikely that I’m employ this process, although I would buy print made by another if I liked how it looked. My point being, don’t to dismiss how others use tools, they are our companions so the economy of scale can result in less expensive 3D printers

    • static says:

      Unless there are inkjet printers that can place really thick layers of ink, that wouldn’t be the same. This makes an image that has depth to it & I suspect it’s appearance changes as you look at it from different angles & directions

  7. baordog says:

    Crud, I’ve be beat to the punch. I’ve been working on a Ruby midi parser for 3D printers. Maybe I’ll finish it anyway.

  8. Roklobsta says:

    I seem to recall the Commodore 1541 drive’s head stepper motor was made to play that Daisy tune (also sung by HAL as he sort of died) in just the same way.

  9. Sirironduke says:

    Makerbot did that a while back when they had their cupcake out. Something like 20 songs or so. all in Gcode and didntuse the extruder, so no wasted plastic.
    They used a python script to convert it. Here is the latest one https://github.com/michthom/MIDI-to-CNC

  10. BB42 says:

    History repeats.

    There was a program for the Commodore 64 that played “Bicycle built for two” using the stepper motor in the floppy drive.

  11. Johan G says:

    If extruding something edible, say sugar, one could indeed 3D-print sweet music.

    I’ll take Flight of the Bumblebee, thank you! Yum, yum.

  12. while its really hard to do that with a e.g. ultimaker (too quiet), a fat cnc machine has superior sound: http://www.youtube.com/watch?v=w1_h_LNCJ94

  13. Keith Greene says:

    This is sort of reminiscent of playing songs on the Commodore 1541 drive back in the 80s.

  14. Mario Lukas says:

    Works great on my Prusa i3. https://www.youtube.com/watch?v=g8h5oD8ppmw

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,725 other followers