3D Printer Printers #
We have 3D printers that can take a description and print an object. Some 3D printers are capable of printing everything needed to make another 3D printer.
This reminds me of programming language implementations.
An interpreter takes a description (a program) and prints some output. A meta-circular interpreter is an interpreter written in the same language that it inteprets.
With programming languages we also have compilers that translate a program into another program that does the same thing but better (smaller and faster).
What's the equivalent for 3D printers? I think it'd be a 3D printer that prints another, more specialized printer. That specialized printer might work faster or produce higher quality output or work with materials that a general-purpose 3D printer can't work with.
The analogy isn't perfect but I'd like to see 3D printers that print more specialized printers.
Labels: speculation, structure
Annotating MP3 files with BPM #
I wanted to tag my music library with the BPM of each song. There are commercial products for doing this through iTunes, but I wanted to do it from the command line, because I also use my music library outside of iTunes, and I don't want to be tied to iTunes anyway.
The bpm-tools package can calculate bpm for a song. On Mac, it's easy to install with Homebrew. The base package only includes the analyzer; I wanted something to tag my MP3 files too, so I used the =-with-bpm-tag=
option. It ends up installing dependencies: mad, sox, id3lib, id3v2, flac, libogg, libvorbis, libao, vorbis-tools.
brew install bpm --bpm-tag cd Music/iTunes\ Music/ find . -name \*.mp3 -exec bpm-tag '{}' ';'
However, the id3v2
command (on Mac/Homebrew, anyway) doesn't work the way bpm-tag
wants, and for some reason sed
wasn't cooperating with me, so I changed one line of /usr/local/bin/bpm-tag
from
BPM=`id3v2 -l "$FILE" | sed -n 's/^TBPM.*: \([0-9\.]\+\)/\1/p'`
to
BPM=`id3v2 -l "$FILE" | sed -n 's/^TBPM.*: //p'`
This made it skip files that already had a BPM tag.
It took a while to run, but now all my MP3 files have a BPM, and iTunes picks that up too. Yay!