Older blog entries for Rippit (starting at number 7)

Ogg Frog

I'm hoping to release an alpha test version of Ogg Frog around the middle of February. Leading up to that, I'll be posting a series of diaries outlining Ogg Frog's architecture - it's audio architecture in particular - in my Kuro5hin diary. After some further editing, these will become The Ogg Frog Programmer's Guide that will be supplied along with the source code.

The first entry is:

ZPCMQueue is a FIFO buffer for storing decoded PCM samples. It's implemented as a two-ended circular buffer.

Ogg Frog

It's been a long time since I posted as I forgot my password. Many thanks for the new password-reset feature.

Ogg Frog's development was interrupted by my search for a new job, moving to a new city and then getting used to my new home. But I'm actively working on it again now, almost every day, and most of the days on weekends.

I have quite grand plans for what my program will eventually become, but those will take a long time to achieve. I'll release it in stages, so users won't have to wait too long to get some use out of it.

I've settled on the 1.0 feature set. In brief, it will be a music player, decoder and cue file splitter.

Ogg Frog, in the long run, will burn CDs, but 1.0 won't support that yet. A stopgap measure will be to decode all the supported audio formats to WAV, which can be burned with any burner.

One can play Ogg Vorbis in iTunes with the Xiph QuickTime Components, but not burn. With my decoder one will be able to burn the WAVs output by my decoder.

The cue file splitter will split BIN/CUE files, WAV/CUE or FLAC with embedded or separate cuesheets into separate tracks. Again this will allow one to burn separate tracks with burners that don't support cuesheets.

I'm expecting to release an alpha test in early February. I have quite a bit of work ahead of me to achieve that, but it's looking good so far.

Ogg Frog

Please help Rippit make his case better. I am often asked "Why not just use Grip?" when I tell people I'm writing yet-another CD ripper and encoder. I give my answer in:

However, I don't think I make my case as compellingly or clearly as I could. That's why I'm asking for your constructive criticism. If you don't want to reply here, email me at rippit@oggfrog.com

The consensus at Kuro5hin was that I should devote my time to writing software, not essays, but I feel every Free Software project needs a manifesto. Why?

I was so impressed with my first encounter with Free Software not because I had the source code to Emacs, but because I read the GNU Manifesto that came with it. That was what told me why having the source code to Emacs was so important.

I fully expect most of my users will be high school or college students who run Windows or Mac OS X. Without explaining what Free Software is, or why its important that Ogg Frog be a Free Software application, they're likely to think it's just one more of the many free-as-in-beer audio applications they presently use. They won't understand that by writing Ogg Frog, I aim to make not just software, but music, Free as in Free Speech.

My essay will be placed under the Creative Commons Attribution-NoDerivs license when it is ready.

Thanks for your help!

I just created a Technorati Profile. Posting this link lets Technorati know this is really my diary.

Ogg Frog

I've just finished the first in a planned series of Digital Music How-To Articles:

It has the Creative Commons Attribution-Sharealike 2.5 license, as will all the future How-Tos. Not everything on the site will be licensed that way, but everything that's strictly informative will be.

These articles are inspired by the many Linux HOWTOs but are meant for a much broader audience: I aim to make technical material accessible to extremely non-technical people, and to the extent possible, the articles cover multiple platforms, not just Linux. Thus I explain how to tell whether a CD is in CD-DA or CD-ROM format on each of Windows, Mac OS X and Linux.

In other news, I just quit my programming job to devote myself full-time to working on Ogg Frog, both the software and the website, as well as to my piano studies. It's back to eating bugs for Rippit! In the long run, I aim to earn my keep through advertising published on the website, such as Google AdSense text ads as well as Amazon Associate affiliate ads for Ogg-compatible portable music players.

I am thus putting Richard Stallman's claim to the test, that one can earn money through writing Free Software.

Here's hoping I don't run out of bugs before the ad revenue kicks in.

Ask Advogato: MP3 id3 tagging software?

Or Christian Gangsta Rap 1, Contemporary Piano 0

Can someone direct Rippit to a Free or Open Source MP3 id tagging program that's better than those available in Debian Sarge? What I'd like is a command-line tagger that takes all its tag info either from the command line, or that will read them from a text file.

I've been able to encode MichaelCrawford's music into various formats, and to tag each file appropriately, but am having trouble applying id3 tags to the MP3s.

lame won't let me apply a genre name that is not already in its hardcoded list. Thus it will allow me to say a file's genre is "Christian Gangsta Rap" but it won't allow me to say its genre is "Contemporary Piano".

I tried various means of adding a comment tag to the files, but none of the programs I tried would make a comment that would show up in iTunes 4.9 for Mac OS X. Finally, just trying to get the job done, I finished my tagging with iTunes.

The last thing I did was use Creative Commons' ccPublisher to tag the mp3s as having a Creative Commons Attribution-Sharealike 2.5 license. ccPublisher then deleted ALL my id3 tags, added its TCOP tag with the licensing info, and rendered my mp3s unplayable, either in iTunes or in VLC Media Player. Now I'm re-encoding them all over again.

I couldn't find a contact address on ccPublisher's web page so I just emailed my bug report to Lawrence Lessig.

Ogg Frog

Since it's going to be a long time until I have a software release, I thought it would be cool to host some torrents of Creative Commons music at www.oggfrog.com, so I set about encoding MichaelCrawford's album Geometric Visions (it has the Creative Commons Attribution-Sharealike 2.5 license) into a variety of formats (Ogg Vorbis, FLAC, MP3 and AAC) after recapturing it from the original analog master tape.

I was able to make a good digitization, and get all the formats encoded using Free Software, but it was pretty hard and I spent a lot of time pondering man pages and "--help" info. I used Audacity 1.0 on Mac OS 9 to digitize (because my old 8500 has the best audio hardware of any of my machines, and there is a painful but effective way to enable real-time audio processing on Mac OS 9, by writing an interrupt task), Audacity 1.2 on Mac OS X, flac on Debian Sarge, and VLC Media Player on Mac OS X. I'm still planning to use oggenc and faac.

I can see that a single program that could encode to any format, with a consistent user interface, would be very popular. I had been wondering if Ogg Frog ought to offer command-line tools, and I think I will, not just because they will be easier for scripting than a GUI but because I can ship something useful sooner while I write the easier-to-use GUI version for the teeny boppers to download.

Do You Offer Creative Commons Music?

I'd be happy to host torrents of your album in all the above formats. But I don't have any kind of automated way of accepting submissions. For now, if you'd like me to host torrents of your music, contact Rippit the Ogg Frog at torrents@oggfrog.com and we'll make arrangements. I'd need to get your music via snail mail as an audio CD, or a data CD containing WAV or FLAC files.

Music Writing

Again, because I have no software to offer yet, I am writing articles on the general topic of ripping, encoding, playing and backup of digital music. My first offering is:

It has the Creative Commons Attribution-NoDerivs license.

It's about how Rippit decided to back up his CD collection after Twiggy the Ogg Dog chewed up his brand-new U2 CD.


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

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!