I'm very interested in the idea of electro-mechanical music. We've all heard machines playing human instruments and machines synthesizing sound, but very few machines built to be novel accoustic instruments in themselves.
During the build, we noticed the sound of the stepper motors was unusually melodic. The sound it made while tracing an arc was inescapably musical.
One night, I just hacked up a Ruby script to translate a simple ASCII music notation into movement commands. This is actually quite simple. Feed rate * DPI gives you pitch and distance / feed rate is note duration. All the axes are intersected to create a single list of movements. When multiple axes are moving, a bit of trig is used to calculate the right feed rate.
The acceleration limits also have to be disabled on the machine.
Here is the code. It should work with any G-code based CNC machine:
If you haven't seen this yet, this is probably the best example of a hack like this that I've seen. It was submitted for a contest that radiohead held, and I believe was the winner (it takes about a minute to get rolling):
I did something similiar by switching on and off (with BASIC code) the relay in a BBC B, which turns the tape machine on or off. It kind of goes clickety click very rapidly.
27 comments
[ 1.9 ms ] story [ 18.1 ms ] threadIt was the famous B:\ drive discs, they could keep 1.44Mb of data, yes that stands for Megabytes
I had a game called Rex Nebular that was 25 discs :D hahaha it toke forever to install.
(5.25" were 360kB and 1.2MB).
Man, I feel so old right now just for knowing that...
http://www.youtube.com/watch?v=Fq4VLwLFXaE
I'm very interested in the idea of electro-mechanical music. We've all heard machines playing human instruments and machines synthesizing sound, but very few machines built to be novel accoustic instruments in themselves.
http://www.andrewkilpatrick.org/?p=laser_cutter
During the build, we noticed the sound of the stepper motors was unusually melodic. The sound it made while tracing an arc was inescapably musical.
One night, I just hacked up a Ruby script to translate a simple ASCII music notation into movement commands. This is actually quite simple. Feed rate * DPI gives you pitch and distance / feed rate is note duration. All the axes are intersected to create a single list of movements. When multiple axes are moving, a bit of trig is used to calculate the right feed rate.
The acceleration limits also have to be disabled on the machine.
Here is the code. It should work with any G-code based CNC machine:
https://github.com/jedediah/lasermuzak
http://www.youtube.com/watch?v=pmfHHLfbjNQ
The sound of the scanner is pretty awesome.
And the original by radiohead in case you need some context.
http://www.youtube.com/watch?v=1ky1td3_6LY
http://www.youtube.com/watch?v=cEeWtBAE5LY