Play a song with a 3D printer.

Related tags

Hardware midi2gcode
Overview

MIDI to GCODE

Play a song with a FDM 3D printer. SLA printers don't have motors, so they cannot play music.

Warning: Be ready to turn off the 3D printer in case the motor reaches the axis limit.

Usage:

python main.py ...

Args:

  • -i: Input MIDI file.
  • -o: Output G-code file.
  • -p: Pitch multiplier.
  • -l: Length of axis (currently ignored).
  • -a: Axis to use e.g. "Y". Normally, the Y axis is loudest.
  • -r: Axis to use for rests. The "X" and "E"xtruder axes are quietest, but some printers don't move the extruder unless it is heated.
  • --home: Move to home position before playing.

Copy the gcode to the printer and print it. The gcode flavor is Marlin.

Example command:

python main.py -i a.mid -o a.gcode -a Y -r X --home

How it works:

The 3D printer moves motors, and usually makes noises. These noises are arbitrary in most prints, but if you move the motors at certain speeds, the resulting sounds may form a song.

The script computes the speeds based on a MIDI file (the song).

Future features

  • Multiple simultaneous voices and timbres using all axes.
  • Compute direction of move to stay roughly in the middle.
You might also like...
Basically Play Pauses the song when it is safe to do so. when you die in a round
Basically Play Pauses the song when it is safe to do so. when you die in a round

Basically Play Pauses the song when it is safe to do so. when you die in a round

3D printer / slicing GUI built on top of the Uranium framework
3D printer / slicing GUI built on top of the Uranium framework

Cura Ultimaker Cura is a state-of-the-art slicer application to prepare your 3D models for printing with a 3D printer. With hundreds of settings and h

OctoPrint is the snappy web interface for your 3D printer!
OctoPrint is the snappy web interface for your 3D printer!

OctoPrint OctoPrint provides a snappy web interface for controlling consumer 3D printers. It is Free Software and released under the GNU Affero Genera

Tool to create 3D printable terrain with integrated path/road part files (Single material 3d printer)

BACKGROUND This has been an ongoing project of mine for a few months now. I run trails a lot and original the goal was to create a function to combine

The goal of this project is for anyone with an old printer to be able to double-sided printing.
The goal of this project is for anyone with an old printer to be able to double-sided printing.

Welcome to PDF-double-side! Hi! I'm 15. I have a old printer so I can't print double-sided outs. The goal of this project is for anyone with an old pr

Python library for the Phomemo m02s bluetooth thermal printer

Phomemo M02S Python library This is a basic Python library for controlling the Phomemo M02S bluetooth thermal printer. It probably only works on Mac &

OctoPrint is the snappy web interface for your 3D printer!
OctoPrint is the snappy web interface for your 3D printer!

OctoPrint OctoPrint provides a snappy web interface for controlling consumer 3D printers. It is Free Software and released under the GNU Affero Genera

Python code for working with NFL play by play data.

nfl_data_py nfl_data_py is a Python library for interacting with NFL data sourced from nflfastR, nfldata, dynastyprocess, and Draft Scout. Includes im

Play a game of Phazed with a bot or with other players or watch bots play with each other
Play a game of Phazed with a bot or with other players or watch bots play with each other

Phazed Game and Player play a game of Phazed with a bot or with other players or watch bots play with each other Live Demo hosted on repl.it (makes su

ANKIT-OS/TG-MUSIC-PLAYER a special repository. Its Is A Telegram Bot To Play To Play Music In Voice Chat
ANKIT-OS/TG-MUSIC-PLAYER a special repository. Its Is A Telegram Bot To Play To Play Music In Voice Chat

๐Ÿ”ฅ ๐ŸŽถ TG MUSIC PLAYER ๐ŸŽถ ๐Ÿ”ฅ The owner would not be responsible for any kind of bans due to the bot. โ€ข โšก INSTALLING โšก โ€ข โ€ข ๐Ÿ› ๏ธ Lแด€ษดษขแดœแด€ษขแด‡s Aษดแด… TแดแดสŸs ๐Ÿ”ฐ โ€ข

Pyrdle - Play Wordle in the CLI. Write an algorithm to play Wordle for you. Ruin all of the fun you've been having
Pyrdle - Play Wordle in the CLI. Write an algorithm to play Wordle for you. Ruin all of the fun you've been having

Pyrdle - Play Wordle in the CLI. Write an algorithm to play Wordle for you. Ruin all of the fun you've been having

Download song lyrics and metadata from Genius.com ๐ŸŽถ๐ŸŽค

LyricsGenius: a Python client for the Genius.com API lyricsgenius provides a simple interface to the song, artist, and lyrics data stored on Genius.co

Spectrum is an AI that uses machine learning to generate Rap song lyrics

Spectrum Spectrum is an AI that uses deep learning to generate rap song lyrics. View Demo Report Bug Request Feature Open In Colab About The Project S

Changes the Telegram bio, profile picture, first and last name to the song that the user is currently listening to.

TGBIOFY - Telegram & Spotify integration Changes the Telegram bio, profile picture, first and last name to the song that the user is currently listeni

Mousai is a simple application that can identify song like Shazam
Mousai is a simple application that can identify song like Shazam

Mousai is a simple application that can identify song like Shazam. It saves the artist, album, and title of the identified song in a JSON file.

A code to match you with the perfect Taylor Swift song for your mood and relationship status.

taylorswift A package for matching your current mood and relationship status to a suitable Taylor Swift song. Requirements: Python 2 or 3, and the num

 ๐Ÿ“บ YouTube Song Downloader Bot For Telegram ๐Ÿ”ฎ
๐Ÿ“บ YouTube Song Downloader Bot For Telegram ๐Ÿ”ฎ

๐Ÿ“บ YouTube Song Downloader Bot For Telegram ๐Ÿ”ฎ Powerd By TamilBots.

PyLyrics Is An [Open-Source] Bot That Can Help You Get Song Lyrics
PyLyrics Is An [Open-Source] Bot That Can Help You Get Song Lyrics

PyLyrics-Bot Telegram Bot To Search Song Lyrics From Genuis. ๐Ÿค– Demo: ๐Ÿ‘จโ€๐Ÿ’ป Deploy: โค Deploy Your Own Bot : Star ๐ŸŒŸ Fork ๐Ÿด & Deploy -Easy Way -Self-h

Tune in is a Collaborative Music Playing Systems where multiple guests can join a room and enjoy the song being played

โœจA collaborative music playing systems๐ŸŽถ where multiple guests can join a room โžก๐Ÿšช and enjoy the song๐ŸŽง being played.

Owner
Patrick
10th grader in California. My interests are ML, computer graphics, robotics, and piano. Big supporter of free software and freedom in general.
Patrick
Tool to create 3D printable terrain with integrated path/road part files (Single material 3d printer)

BACKGROUND This has been an ongoing project of mine for a few months now. I run trails a lot and original the goal was to create a function to combine

null 9 Apr 26, 2022
The goal of this project is for anyone with an old printer to be able to double-sided printing.

Welcome to PDF-double-side! Hi! I'm 15. I have a old printer so I can't print double-sided outs. The goal of this project is for anyone with an old pr

DejaVu 4 Dec 28, 2021
Python library for the Phomemo m02s bluetooth thermal printer

Phomemo M02S Python library This is a basic Python library for controlling the Phomemo M02S bluetooth thermal printer. It probably only works on Mac &

Stargirl Flowers 28 Nov 7, 2022
OctoPrint is the snappy web interface for your 3D printer!

OctoPrint OctoPrint provides a snappy web interface for controlling consumer 3D printers. It is Free Software and released under the GNU Affero Genera

OctoPrint 7.1k Jan 3, 2023
This allows you to record keyboard and mouse input, and play it back using pynput.

Record and Play with Python! This allows you to record keyboard and mouse input, and play it back (with looping) using pynput. It allows for automatio

George Jensen 45 Jan 2, 2023
Play music on Raspberry Pi Pico Without CPU involvement

MicroPython_PIO_Music_DMA Play music on Raspberry Pi Pico Without CPU involvement This is based on PIOBeep (https://github.com/benevpi/pico_pio_buzz)

null 3 Nov 27, 2022
An arduino/ESP project that can play back G-Force data previously recorded

An arduino/ESP project that can play back G-Force data previously recorded

null 7 Apr 12, 2022
๐Ÿฑ๐Ÿ–จCat printer is a portable thermal printer sold on AliExpress for around $20.

Cat printer is a portable thermal printer sold on AliExpress for around $20. This repository contains Python code for talking to the cat printer over

null 671 Jan 5, 2023
Fully Automated YouTube Channel โ–ถ๏ธwith Added Extra Features.

Fully Automated Youtube Channel โ–’โ–ˆโ–€โ–€โ–ˆ โ–ˆโ–€โ–€โ–ˆ โ–€โ–€โ–ˆโ–€โ–€ โ–€โ–€โ–ˆโ–€โ–€ โ–ˆโ–‘โ–‘โ–ˆ โ–ˆโ–€โ–€โ–„ โ–ˆโ–€โ–€ โ–ˆโ–€โ–€โ–ˆ โ–’โ–ˆโ–€โ–€โ–„ โ–ˆโ–‘โ–‘โ–ˆ โ–‘โ–‘โ–ˆโ–‘โ–‘ โ–‘โ–’โ–ˆโ–‘โ–‘ โ–ˆโ–‘โ–‘โ–ˆ โ–ˆโ–€โ–€โ–„ โ–ˆโ–€โ–€ โ–ˆโ–„โ–„โ–€ โ–’โ–ˆโ–„โ–„โ–ˆ โ–€โ–€โ–€โ–€ โ–‘โ–‘โ–€โ–‘โ–‘ โ–‘โ–’โ–ˆโ–‘โ–‘ โ–‘โ–€โ–€โ–€ โ–€โ–€โ–€โ–‘

sam-sepiol 249 Jan 2, 2023
Play any song directly into your group voice chat.

Telegram VCPlayer Bot Play any song directly into your group voice chat. Official Bot : VCPlayerBot | Discussion Group : VoiceChat Music Player Suppor

Shubham Kumar 50 Nov 21, 2022