music projects pictures linkage about contact


I suck at programming, but it sure is fun and rewarding to create something that does what you need and want it to do, and then see it get used by others. Hence, possibly why you're here, even.

This isn't really a programming project as much as some summer work I did for a private school back in 2003~2004. Basically they wanted to be able to create uniform system installs for their OSX machines and deploy them across a network easily. My job? To figure out what the hell was up with OSX, why it was broken/didn't work with their own netboot thing, and then implement a working solution.
Here's a link to the instructions I came up with.

Back in Oct 2005, I acquired a 10 year old network data CD server (picture). With the advent of something called "large hard drives", this thing became obsolete, and started collecting dust at a school. I thought to myself after looking at it, "hey, I could do something neat with that." I took it home and it sat around for awhile, and then it hit me. I have loads of CDs around the house, I've been meaning to rip them so I can box them up, and I could turn the tower into a CD ripping thing. I ripped out the server board and ran the SCSI cables up to another computer on top, installed Slackware, and began my search.

After looking at CD ripping packages, though, it became apparent that no one package supported all of the features I needed. To the coding board it was, and a victory was had. The result is cdevour, about 200 lines (8K) of bash scripting that:
  • continually polls your cdrom drives for discs
  • determines what CD it is
  • ejects a CD if it has already been ripped
  • rips your cds, making sure it has enough disk space to do so
  • monitors disk usage of running rips
  • queues discs for ripping when not enough disk space is available
  • gets all the information it needs to name your rips later
  • ejects when finished with a CD
  • applies cheese or peanut butter spread to discs if desired
cdevour also spawns its own separate encoding script which:
  • encodes any finished rips into ogg vorbis, one track at a time
  • removes raw data when finished with a track to save disk space
  • tags the encoded file with artist, album, track number, title
  • renames the file (by default, to my personal liking)
  • moves encodes of finished albums to an artist/album directory structure
And, last but not least, you get all the stats on a neat little web page.

Please Note that cdevour does not untar into its own cdevour-version/ structure because it is meant to be used as its own user. Create an account ("rip" perhaps) and untar this into that user's directory to use cdevour properly.
screenshot 15900 bytes 9 May 2006
source code, version 1.01 10817 bytes 5 Jun 2006

This is a cute little script to bust up not-so-cute single-file CD rips. Basically, at least a few people have gotten into the habit of ripping a CD into a CUE file and a lossless format of their choice. So, you'll end up with WAV/CUE, APE/CUE, or FLAC/CUE sets. All the times (and possibly track names) are in the cue file, and all you want is individual tracks you can skip around and listen to.

Inspired by a similar CUE/APE->FLAC converter by HEx, this will give you split Ogg Vorbis tracks from a CUE/lossless set with a simple command: filename.cue
All you need is python, a file to break up, and decoder binaries.
download 2720 bytes 16 May 2006

Sometime shortly after the millenium change, I discovered the genre of dancing games, and quickly became addicted. I ordered a parallel port (ew) dance pad and I wanted to get it working on a computer so bad that I even installed Windows on one of my computers, only to find out the drivers were terrible and the clone of Dance Dance Revolution was even worse (and it didn't work with the pad)!

I got to thinking: I had been quite the Linux zealot lately, why not put my code where my mouth is? I looked around online for some neat game-writing tools/libraries to write my first "multimedia" app/game since my DOS days and discovered Python, along with the wonderful pygame. Two days later I had arrows on a screen, keyboard handling, and music playing in the background. I was feeling like a champ. After a few months and even more code rewrites I had a real, full-fledged game to call my own.

After totally random, awesome, positive experiences with taking the game to MAGFest (a video game convention) with preset dance steps for two songs by the Minibosses and watching them play it, then to HOPE, then to Linux World Expo, going to Brandeis in Massachusetts to talk to a DDR club, and then getting written up in MacWorld, I began receiving more and more code from outside sources, and accepted Joe Wreschnig into the CVS tree. Between all the things I had going on (another bout with kidney stones, keeping the bills paid, and having purchased MAGFest), Joe was a welcome sight.

After more overhauling, Joe not only helped my dream come true, but also helped me give back to the Linux community that I benefit from the works of on a day-to-day basis. These days, pydance does pretty much everything we intended it to, and we kind of burned out on it, but it fully imitates several popular dancing games and controllers and should entertain for quite awhile.
check out the official website.