So it happened. I got a new album ripped and went to run Oggify on my Mac Mini. It didn't work. Audio::TagLib was no longer installed due to the OS X upgrade, and I really didn't feel like making a new, sub-par, patch. That and install TagLib again. So Oggify 2.0 is in progress. Here's an idea of the big changes to deserve a major version number bump:

  1. It's written in Python.

This change and being able to start fresh has provided a number of excellent benefits. These are also worth noting.

  1. Plugin architecture. Oggify provides a parent class, oggify.plugins.Codec, which if implemented provides everything for Oggify to use an input or output format. Currently I've got plugins done for flac as a source. Ogg and MP3 (vbr, cbr, abr) as output formats. So someone writes a file (flac.py), puts it in oggify.plugins, and then runs oggify with oggify -s flac to use it.

  2. subprocess. This is a great module for handling processes, and makes the plugin architecture easy to do. It should also make doing the GUI easy too. No more threads!

  3. 383 lines of code in the backend. This includes the plugins and all the core functions.

  4. 135 lines of code in the frontend. This is mainly just optparse code and simple task running.

  5. Complete tag copying. Audio::TagLib, as I used it, only copied the common tags. Now thanks to mutagen and my own wrapper library we have complete tag copying from format to format.

  6. Pure python. No hard to install dependencies. If you can run python, you can run oggify.

Oggify 2.0 is close to an beta release. I'd expect it by the end of the week. I'll get Mercurial repositories of Oggify and my mutagen tag_wrapper up soon as well. After this is done I'll probably start working on a python based tag management program.

Posted: Dec 26, 2007 | Tags: python oggify

Comments are closed.

Tags

42 | django | python | oggify | OSCON | OSCON07 | osx | utosc | mythtv | security | reading | music | gaming | programming | tips | shell | vim | pyobjc | cocoa | iphone | blog | git

Calendar

<< Dec >>
Mo Tu We Th Fr Sa Su
26 27 28 29 30 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6

Search

This space reserved for a search box

RSS Feeds

A Django site. Hosted on a Slicehost Slice