Justin Frankel is the programmer of the legendary Winamp. We were interested in the “early days” of the Winamp from the beginning in 1997 until just before the Winamp went bloated with the releases after Winamp 3 in the time after AOL bought Frankel’s Nullsoft.
“Winamp, It really whips the llama’s ass!”
We talked with Justin about the early days of the Winamp, the design, the time and the decisions he made. Yet he also talks about this recent audio-tool REAPER, also in terms of design and community. In other words: things of interest for the designing developer! If you are more interested in the Winamp AOL buyout and the time Justin left… scroll down. There are some related readings linked at the bottom of this interview.
Back on 1997 Justin started his first company “Nullsoft” with the first software called “Winamp“. Winamp went so famous, that AOL bought Nullsoft in 2001 for about 80 Million Dollar. Still Winamp is one of the most popular music applications on Windows PCs. Especially the releases smaller than Version 3 (V2.6 – V2.91) are still often used and I also power it on regularly. This piece of software is one of the most loved and distributed independent music applications in the world, not only in history, but still at present.
Nullsoft also made lots of other software that is also widely in use, or had revolutionary impact, software like the SHOUTcast streaming server, the Nullsoft installer, the first decentralized peer-to-peer network Gnutella, or the high-secure closed peer-to-peer network WASTE.
Winamp. V0.2a. The first release. Memory usage: 1.3 MB.
Hi Justin, let’s start at the beginning. Why did you started doing the Winamp?
I started making Winamp, and actually pretty much all software I’ve ever created, because it was software that I wanted to be able to use. Often there is something you want to do on a computer, and no way to do it or at least no way to do it that you will enjoy.. That’s the joy in programming, you can make things to use. Winamp grew out of wanting a good, enjoyable way to listen to mp3s on a computer. It wasn’t the first mp3 player, but the mp3 players around before it were hard for me to want to use.
Likewise, my current project, the digital audio workstation software REAPER, was created because I didn’t particularly like the other available software for recording music. As a programmer and software designer, I think the most important thing for developing applications is that you USE the software you are working on. Oh, and I also think that it’s essential for the people designing the software to have an understanding of how things work and can be built – just in case, not that anybody asked!
Winamp V0.92. Memory usage: 2.6 MB.
Did you at any point expect such overwhelming success with a relative small application like Winamp?
I didn’t.. At the time I started Winamp mp3s were very much an underground phenomenon.
How important was the community for the development, design and success of Winamp?
Community is such a tremendous resource for software developers. Of course much of this varies depending on the kinds of users – for both Winamp and REAPER we did or do have quite a few advanced users, enabling more of this:
- Quality Assurance (QA): Having vocal users who test software in their day to day use and have easy means to communicate back to the developers is fantastic. Both Winamp users and REAPER users have played this part fantastically, and to be honest since there are more of them and using different techniques, they do this job far more comprehensively than having a big dedicated QA staff. Modern software is so huge and can be in so many states, it’s pretty absurd to think that a small team can properly test it. Sure, dedicated QA can help, but at the end of the day the users are an order of magnitude more powerful.
- Feature suggestions and design: If you have a community, people will tell you what they think. It can be a lot of work sorting through suggestions and complaints, even more work to figure out how they fit in with the vision of the total product and yet more work to figure out how to make them happen. Often we sit on suggestions and ideas for months or even years before it is clear how to implement and/or integrate them – then once we do all usually goes very quickly. At any rate, having tons of feedback on design is a huge plus for us.
- Customization: Winamp supported skins and plug-ins, REAPER does as well. Having users overjoyed to help make our products better is a huge plus. Everybody wins, too! It’s great stuff.
The best way I’ve found to get this to happen seems to be “forums”. Forums seem to really work well for this kind of software. Of course you have to create the right environment – encourage people to act cool, try not to control things too much… Give respect, get respect, that sort of thing.
REAPER audio work station V2.2. Memory usage in idle mode: 23.6 MB. Space required on harddisk: 11MB.
I think for many people the “old” Winamp (before version 3+) is one most precious pieces of software that was ever written and I see the old winamp still on many PCs. What made the Winamp so good? What do you think were the key-criteria that made this application in particular not only successful, but also loved by so many people?
*laughs*. Well, I think everybody uses iTunes now anyway… I think what made Winamp nice was, that I was pretty stingy about what I’d do, which may have been a fault… I mean, you look at a lot of music playback software, and they’re trying to do so much at the expense of the basics. There are about 20 things in iTunes that drive me NUTS, which means I can never really use it, except for putting music on my iPhone once every few months…
Winamp V0.99. Memory usage: 2.6 MB.
You did not only the Winamp, but also other revolutionary software, at least in technical or conceptual terms. I think of applications like “SHOUTcast”, “Gnutella” or “WASTE”. What is your driving force in developing software? Do you have still more “revolutionary potential” going at the moment?
Like I said before, I make stuff I want to use.. So who knows? *smiles*
SHOUTcast wasn’t terribly revolutionary, if you ask me… and the most interesting part of it, like the automatic directory listings etc., actually was Tom Pepper’s idea, anyway. I just wanted a way to broadcast episodes from the radio show Loveline online since they didn’t play it where I lived.
Why didn’t you changed the original Winamp-skin for years?
The default skin was its identity, though. It changed a little bit here and there! Quite a bit actually if you compare 2.x to 1.0. Had we changed to some other skin, you wouldn’t be able to recognize it. We did change it vastly for the “modern” look for Winamp 5, but I still use the classic mode most of the time myself.
Winamp V3. Memory usage: 9.6 MB.
Writing applications seem to play a very central role in your work. What do you like so special about writing tools?
I’m pretty lazy. Not TOO lazy, but reasonably lazy. For example, after a month or two of dealing with some repetitive task I’ll usually go write a script for it… What I really like is being able to make things easier. It’s also pretty gratifying to have a positive impact on other peoples lives. The final thing I should mention that’s great about software, is that the author can write something once (OK well it’s continuously, but you get the idea), and then people can enjoy the benefits of it indefinitely. It scales infinitely. Which is AWESOME.
What inspired you to the name “Nullsoft”?
Well at the time I came up with the name, it was both a play on Microsoft, and also accurate since the company, and my skills as well, didn’t exist.
Music seems to be a driving force to your software-development. Is this true? Why or why not?
I like music a lot, and more and more as life goes on. Music wasn’t a big part of my childhood, until highschool when I started listening to stuff that had a big impact on me. I wouldn’t say that it’s really a driving force, but it’s a part of my life no less…
The Winamp. V2.90 with custom Micromusic skin. Memory usage: 8.6 MB.
Also can you tell me something about beauty-of-code or light”weightiness” of the technologies you developed? How important is it for you? Who is responsible? What is the design/aesthetics behind it?
Well we try to keep things small, which has numerous benefits besides the obvious “generally less bloat/ram use/disk thrashing”:
- Faster compile times, speeds up the development process
- Easier to get updates posted
- Easier for end-users to get updates
Obviously sometimes you have to do things to make things bigger, and that’s OK, but to the extent that you can save size and/or complexity without really compromising functionality, why not?
Really it’s just the attention to these details and the making compromises of with this in mind that gets you there. For example, we still use VC6 because the newer versions of MSVC can’t dynamic link to the classic msvcrt.dll (which is on all systems Win95b+), so you either have to ship a big runtime or static link everything. This sounds hideously boring, but for an application like REAPER with many plug-ins included it’s probably the difference between a 3MB installer and a 5MB installer.
What important parts played Tom Pepper in the development?
Tom was essential in making Winamp what it was. He designed most of the artwork for the user interface, hosted the website and was responsible for a huge amount of the overall Winamp experience. We also created SHOUTcast together which ended up being huge.
Just turn back the time. What you would have done different on the development of Winamp? What would you do other with the experience you have now?
That’s tough… Winamp was probably my first real Windows application, other than little ports of graphics engines and whatnot, so it evolved quite a bit. Perhaps you should ask people who maintain the code now what they’d like to be different!
How did you released and delivered the first versions of Winamp?
The very first versions were distributed on IRC in channels such as #mpeg3 on EFNet. Soon after we set up a website and so on… But initially it was just something for me and some friends to play with.
Thanks Justin for your insights especially on the development of Winamp the recent project you are working on. I’ll bet many will enjoy it.
Text and Interview: Martin Wisniowski, April 2008