2 Dec 2005 Rippit   » (Apprentice)

Fr15t Ps0t!

Hi Friends,

Rippit the Ogg Frog here. I signed up at Advogato just now so I could register Ogg Frog as a new project. It is to be a GPL compact disc ripper, encoder and backup program, that will make ogg vorbis, flac , WAV and cue files, as well as burn both audio CDs and data CDs and DVDs using any of those formats.

I'm going to make it easy for the user to add MP3 support by compiling in lame, but I can't distribute binaries because of Fraunhofer's patent on the MP3 compression algorithm. I'd like to know if anyone else has found a graceful solution to that. I don't want to try flying under the radar like some projects do, as I aim for Ogg Frog to have mass appeal. I expect that if I tried to distribute MP3-enabled binaries without a patent license I'd be hearing from their attorneys pretty quickly.

Why does the world need yet another CD ripper? I tried to rip my collection of two hundred CDs for a trip to a lake out west, but was stymied by the available software. For one thing, I'm a cross-platform developer, so my computers don't all run Linux, I also run Mac OS X and Windows 2000. There is no one program that works well for all.

Many of the programs I tried were either unreliable, had poor user interfaces, or were not suitable for bulk CD ripping.

What I propose is a CD ripper with the professional polish and ease of use of Ogg Drop but with the power and automated bulk ripping capability of abcde.

I also aim for performance: while easy to use, Ogg Drop is as slow as molasses. It encodes at significantly less than 1x CD speed on my 400 Mhz Blue & White G3 Mac. I understand there are some x86 assembly code patches for libogg. Rippit can write PowerPC assembly code, and enable Altivec support (which can be done in C or C++) for G4 and G5 (64-bit) CPUs.

It's not just for faster ripping, but to allow one to encode to multiple formats or bitrates while continuing to listen to tunes from one's library on hard disk. None of the rippers I tried could do that, but I don't see why I shouldn't be able to support it.

I have a roughly designed yet informative homepage for Ogg Frog up already. It's going to be quite some time before I have a release, so I figure in the meantime I'll post articles on digital music there, that for the most part I will release under Creative Commons licenses.

I'm aiming these articles for non-technical end users, to help them understand better what Free Software is and how to use Free Software tools to make digital music. But while Ogg Frog will (if I'm successful) have a simple and easy to use user interface, it's implementation will be anything but simple and non-technical.

To rip and burn CDs there are many technical standards documents one must understand in great detail: SCSI, ATAPI, IDE, IEEE1394, USB, SBP-2, MMC3. One must understand many data formats, which are more complex for multimedia than for static documents, because of the need to interleave different payload streams, for example for a video to have a parallel audio track. There are requirements for real-time performance to keep the sound from stuttering. There are device drivers, and kernel debugging. To rip, encode and play audio at the same time, one must use threads, and deal with issues of locking and resource contention.

Happily Rippit has some experience with most of those, and as I proceed with development and understand some of the issues better, I'll write some technical articles as well, which should enable anyone wanting to do multimedia development with Free Software libraries to either have an easier time or to do a better job. I'll be publishing those in a Tech section at oggfrog.com, but I expect at least some of them would be appropriate for Advogato as well.

Finally, Rippit is experimenting with a way to earn money by writing Free Software. Richard Stallman once proposed a software tax, so Free Software could be developed with government support, but that hasn't happened so far. Most commercial Free Software earns money either through support, consulting, or by using it in ways that one doesn't become bound by licenses that apply when one distributes binaries, for example by writing web applications.

For reasons I won't go into right now, Rippit might need to save up a lot of money over the next few years. Frogs get by mostly by eating bugs, so we don't have a lot of spare cash. Before announcing Ogg Frog's development, Rippit spent a lot of time thinking long and hard over whether to make Ogg Frog a proprietary program, and to try to earn money by selling copies of it.

In the end I decided, no, my conscience requires me to release Ogg Frog as Free Software. But a frog has to make a living somehow. Thus my solution - just an experiment so far - is to earn money from advertising on the Ogg Frog website. That's why it's hosted at a commercial hosting service rather than SourceForge; SourceForge doesn't permit revenue-generating advertising on SourceForge-hosted websites.

For now, I'm just publishing Google AdSense Firefox referral ads on the site. I think they're pretty tasteful as web ads go, and FireFox is free software. Ogg Drop flogs portable players from Amazon on its page. I might give that a try, as Rippit is already an Amazon associate.

Finally, at least until the first release, Ogg Frog will be developed as a Cathedral project, rather than a Bazaar one. That's another reason I'm not hosting at SourceForge. I'm going to install subversion on my own linux box and keep the code private until I'm ready for my first release. Rippit has some pretty specific and somewhat controversial ideas about how Ogg Frog should be implemented, and I don't want to deal with the politics every Free Software collaboration experiences.

I will release source, and invite others to join in the development, but only once I've laid a solid foundation. At that point, I expect I'll ask my hosting service to install subversion. I can install bugzilla myself, as they offer MySQL hosting.

My estimate is that my first release will be in the Summer of next year. I will offer binaries for Windows, Mac OS X and both PowerPC and x86 Linux. What I release then may not have all my planned features implemented, but should be completely useable and reliable.

Release 1.0 should be in about a year, and will also support BeOS, Haiku, if it's mature enough, and Mac OS 9.

In the long run, I plan to support 68000-based Macintoshes as well. The reason is that they can be had used extremely cheaply, and often in perfect working condition. I want every one in the pond to be able to use Ogg Frog, even if they only make their living by eating bugs.

I'm expecting to start development proper on Saturday afternoon. I'll post my first progress report here on Saturday night or Sunday.

Later! -- Rippit the Ogg Frog

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!