roger-dannenberg

Binpress Podcast Episode 33: Roger Dannenberg, Co-Creator of Audacity

On this episode we talk with Roger Dannenberg, co-creator of Audacity and Professor of Computer Science, Art, and Music at Carnegie Mellon University. If, by chance, you’re not familiar with Audacity, it’s a wildly popular open source audio editor and recorder, which this very podcast is post-produced with.

Listen to the podcast in the player above, or click here to download it directly. Subscribe on iTunes or do so manually by using this RSS feed.

Show notes

Transcript

Alexis: Roger, thanks for coming on the podcast!

Roger: Glad to be here!

Alexis: Before we get down to Audacity and all your other projects – again, as I mentioned before we started recording, I don’t want to just focus on Audacity because you’ve been working on a whole bunch of different stuff, which people who use Audacity may not really know of. Let’s take a step back here and tell us a bit about your background.

Roger: Okay, well I’m very interested in computers and have been for a long time. I think maybe before that, I started with musical interests. I’m a trumpet player – and still an active trumpet player – so all through high school and college, I was kind of going in two different directions: playing as much music as I could and also learning everything I could about computers and electronics.

My formal education is Electrical Engineering and Computer Science. I think that’s mainly because I just wasn’t enough of a musician to really pursue a professional musical direction. But interestingly, the work in computers since brought me to Carnegie Mellon University, which is among the best – if not the best – school of Computer Science.

When I came here, I found a really fantastic trumpet teacher who helped me over a lot of problems. Ironically, by pursuing Computer Science, I’ve become a much better musician [chuckling] and that’s enabled me to do a lot of things in music, play a lot of gigs, do a lot of performances, and I’m still playing very actively.

Alexis: So what are your instruments of choice?

Roger: Well, the trumpet is — It takes daily practice to keep your chops in shape, and that’s where I spend all my time.

Over the last… years I’ve finally gave up this idea that I could only play a Bb trumpet because I just didn’t have time to do anything else. I’ve been playing with an orchestra and have sort of graduated to C trumpet, which is what professional orchestra players play for the most part, and I play a piccolo trumpet and a flugelhorn as a jazz player. I’m really attracted to that. They’re all very similar and I don’t go outside of that.

Alexis: I’m already impressed, but middles school me – from sixth to eighth grade, while I was playing trumpet in the band – would be very, very impressed and would be peppering you with questions right now. But I have since given up the trumpet [chuckles] and picked up programming.

Speaking of programming though, how did you get into programming?

Roger: That’s a good question. I don’t know how old I was, but I had to be – let’s see. In Houston, when I lived there, so something like third grade, I believe, that my dad who was an engineer worked in a lab, and this was pretty much – not pre-computer.

Computers back then were very hard to come by; probably programmed with punch cards and a big computing center. And so engineers who just had to do engineering math and do calculations had electronic calculators, and my dad’s office had this really – for his time – probably pretty sophisticated calculator.

I think it was made by Wang. It was sort of programmable in the sense that it could execute sequences of instructions. Somehow, it had a memory and you could write down these sequences, and there must have been some kind of looping in there. So really, this was a programmable computer – it just looked like a desk calculator, and I’m sure it didn’t have much memory because memory was really expensive back then.

I remember going there, kind of learning how to enter sequences of instructions, and at some point I must have discovered loops. I just have this vague memory now of being completely fascinated by being able to tell this machine to just work its but off [chuckling] and just crunch numbers.

I don’t think I wanted to calculate anything – I just wanted to see this machine work hard.

Alexis: And go over and over the same thing.

Roger: Yeah, just repeatedly adding, dividing by zero, or adding one over and over again and I watched the display change. That to me was just the coolest thing I’ve ever seen.

Later in high school, I learned about synthesizers and I was really interested in taking what I knew about computers, which was not a whole lot, but using that to control synthesizers and make music was a real fascination from pretty early on. I think my studies in electrical engineering and computer science were largely motivated by the dream of putting that to go with music somehow.

Alexis: Okay. I guess I’ve got a question about merging those interests, but I think I’ll save that for later since it’s more of a broader scope.

How did you merge these practically? Or what did you do to develop that – your interest in programming?

Roger: Well, the first exposure to real computers I had was in high school, and there was a mini group at a local company. I think they were – I don’t know, maybe just really open-minded. This little company saw that they had some extra computer time and they thought it would be something maybe they would share with people, and maybe they saw it as a way of motivating young people to go into engineering and maybe come back and work for the company or something. I don’t know.

But I had some computer time on it – a mini computer that ran BASIC. I guess I had learned – oh, the other thing that happened was the National Science Foundation sponsored a summer science program and I applied for that and got in.

I didn’t really know what I was doing, or what I would be doing. It’s just science in the summer – that sounded really cool to me! And so I got there and there were two subjects – kinetic chemistry, which I don’t think I learned a whole lot about. I know very little about kinetic chemistry, although I guess I learned a few things.

The other thing was computer science and computer programming and we actually learned Fortran at the time, and I learned about programming to start doing some stuff on my own.

When this time-shared BASIC mini computer access became available, I just jumped on it and sort of figured out what to do.

Alexis: Okay. Now if we were to scoop straight to Audacity, we’ll be skipping quite a lot of time. So what were some of the projects and things that you worked on before then? What were these first forays and merging computer science and music?

Roger: Well, I would say, for a long time I was pursuing a PhD in Computer Science and playing music on the side, and just reading everything I could about computers and music but not actually doing that much.

Right about the time that I finished my PhD, I guess I felt like “Okay, now I’ve got some freedom to go off and looked at any other problem that seemed interesting.”

My PhD, by the way, was in the operating systems area and had nothing to do with music, and so I was kind of keeping those two areas separate. But anyway, once the PhD was finished, I went to a computer music conference and I saw someone talking about conducting computers the way that you would conduct an ensemble of musicians. I thought, from my musical experience, that that was never going to work, but it got me thinking about how humans and computers might synchronize and play together.

My first real research and work, which has turned out to be a pretty big thing, maybe eclipsed only by Audacity, is what I called computer accompaniment. This is getting a computer to listen to a live performer, follow along in a score and play an accompaniment synchronously with a player so that the player could play expressively – speed up, slow down, make mistakes – and the computer can still play along with them and support them with musical accompaniment.

That was done starting in 1983 and I actually had working systems in 1984. It took about ten years for the commercial consumer product world and just personal computers to catch up to the point where it was practical to make a product out of it. But it was the basis for a product that’s still very widely used called SmartMusic.

SmartMusic is mainly an education system, but it has a computer accompaniment capability that’s really fun to practice and there are hundreds of thousands of students using it now.

Alexis: Yeah, I saw a video on YouTube of you giving the demonstration and it’s pretty impressive how you slow down and the computer matches it, and you play the wrong notes and it still isn’t really fazed.

Roger: Yeah. There’s pretty interesting computer science going on in there. The computer has to match what it’s hearing you play and match that to a score that it has for what it expects you to play.

Of course, you know what you actually play and what it detects is going to be full of errors and small differences, so somehow in real-time, you have to consider all the possible matchings between the score and what it’s hearing and find the best match and make decisions based on that – all in real-time.

It’s maybe not so amazing now because computers are so incredibly fast, but back in 1984, when you had machines running at maybe a million instructions per second – probably slower – and having to do a whole lot of other work at the same time, just finding enough computer power to do this pattern matching was I think the innovation at the time.

Alexis: Well honestly even now, it’s so impressive in terms of speed, because when you’re doing the voice-to-text translation, that even takes a while. Add music to the equation – that still pretty much blows my mind.

Speaking of developing music applications – this question may lead down a dead end, so if you don’t have a good answer for it or you find it’s a strange question, feel free to tell me.

Roger: Okay.

Alexis: When I’m programming something – and I figured this is the same for others – you kind of build a mental model of what you’re going to build as you’re building it or before you build it. You sort of visualize the parts of the system and how they’re going to work together.

Now when you add music into the equation or audio or sound, something that doesn’t have a visual component except for maybe the frequency waves or whatnot that you see in the program, is that a unique thing that you have to grapple with? If you do, how do you do it?

Roger: [Chuckles] You know, that’s an interesting question. I think with experience you start to think of sound very computationally and constructively.

My first exposure to this was analog synthesizers. When I saw an analog synthesizer, to me, it was just like writing programs or something. You can start with an oscillator and you think, “Okay, if I vibrato, that would be frequency going up and down, you’ll need an up and down signal to modulate the oscillator. And then if I went down to get louder and softer, that’s some kind of multiplier, so I’m going to need a multiplication unit or route it through an amplifier.

And so you start thinking constructively about – each little aspect of the sound has some kind of computation that will get you there, and so I think when I’m thinking about programming and sounds, it’s a very structured or constructive view of music that is what gets you –.

Just imagine music or sounds in your head – the first thing is to hear the sound, but after you hear it you think, “What process would actually generate that sound?”

Alexis: Produce it.

Roger: And you program in terms of that process.

Alexis: Okay. Let’s see – you’ve mentioned synthesizers here a couple of times. This is making me wonder. Your taste in music at the time, maybe there was some Giorgio Moroder in there [chuckles]. How’s that changed over time?

Roger: Yeah, it has certainly changed a lot. I think when I was young, I wasn’t really exposed very much to experimental music or any experimental music. In fact, I remember listening to I think the classical music station in New Orleans where I was. In fact, I remember hearing something by Hindemith who is not really, by any means, a radical composer, but for even FM radio broadcast, he’s pretty far out there. That’s the first time I remembered hearing harmonies that were not the same kind of harmonies that you would hear in pop music.

You hear that in Mozart, in Beethoven and it’s not too far from there to the Beatles or something. And so to hear Hindemith with some dissonance and some chords based on fourths instead of thirds and just a different language, I thought, “Wow! That’s really incredible.”

And so later I started – some friends were into progressive rock where it’s a little more harmonically adventurous and I listen to that, but I think the really big transition point for me was I took a composition course that was taught by Paul Cooper at Rice University where I was an undergraduate.

I’m just really thankful to Paul for stepping up and putting a course together for non-majors, which I don’t think he had to do. It seemed unusual, I think, to have composition for non-majors, but he taught this course and it just brought in all of this mind-blowing stuff from discussions of Stockhausen and John Cage and Penderecki.

We talked about composers and their techniques and we listened to music and I just, at that point, realized that there was this whole world of experimental music that is so far out there compared to what you hear on the radio. It’s too far out for the general public, I guess, but I just found that stuff to be really interesting.

It’s funny, some of the signs of ideas in sounds were later coming at me through jazz – free jazz and experimental jazz players, which I am also attracted to, and to a large extent have kind of a very similar language in music. Later I combined all of that by writing compositions that involve atonality and different ideas about time and timbre and incorporating electronics, but then I kind of borrowed from the free jazz world to make interactive pieces that were very improvisational. That’s kind of been my musical inspirations and where I draw the musical language that I use.

Alexis: Okay. At what point does Nyquist come along?

Roger: Nyquist – around 1990 is when we started with this. Actually, even earlier. I’ve always been attracted to computer languages and language design, language principles. Special languages for computer music were developed starting with Max Mathews at Bell Labs back in the late ‘50s. There’s a long transition – I mean, I feel like a pretty old guy now [chuckles]. This is even way before my time [chuckles].

When I started learning about computer music and computer music languages, I read Max Mathews’ book and I read what people were doing. Since I was coming from a strong computer science background and a lot of progress had been made in programming languages over the early decades of computing, I looked at these programming languages for music and thought, “Wow, this is really primitive, crude stuff!”

From the standpoint of making music and signal processing, it was very fascinating, interesting stuff, but in terms of syntax and language design, it was really all based on assembly language and Fortran and really the early days. And so I thought, “Well, it’d really be interesting to try to distill the principles of the computation, which was the really interesting part, and figure out a much more modern, natural language for expressing those ideas and those principles.”

For example, embedded in the earliest language for computer music, there are ideas or concepts of instruments and of functions and applying functions to other functions for processing signals, and there’s kind of the idea of streams of sales rather than individual numbers being – what variables stand for and stuff like that.

I thought, “Well, if we could really make a language where a variable stood for a sound so a sound would become a first class data type in this language, just like integers and strings and characters – let’s have sounds and build a language around that. And also, instead of building a programming language where everything just runs immediately as fast as possible, let’s embed time into the semantics of the programming language.”

That was a very different way of thinking about languages, and it was something that led to a language where you could really express time and gestures and signals in a much more natural way – I think. And that started with some ideas in the mid-80s, and computers have been getting faster exponentially for a long time. I guess things are kind of slowing down and going at different directions now, but at that time, every year, you’d see computers getting twice as fast. Ten years go by and you have – well, maybe a little more than ten years to get a factor of a thousand, but there’s orders of magnitude where it seemed to be changing before our eyes.

When I started this work, I was thinking, “Well, I could write this really cool language, but we could never make sound with it. Maybe we could use it to control analog synthesizers or special hardware, and it’ll be really good for developing control functions.”

Five years later, people were already talking about actually computing digital audio in real-time on general-purpose computers, so it was kind of natural to take this language work and start doing sound synthesis with it – that being Nyquist.

Alexis: Correct me if I’m wrong here, but I think we’re towards getting closer to Audacity in the storyline here. How did Audacity come about?

Roger: Audacity was largely the result of frustration and not having tools for visualizing audio. We didn’t really start Audacity to be an audio editor; we started because we were doing research broadly on music information retrieval.

The project we were working on actually was query by humming, which means, “Can you hum a tune to a computer and have the computer go find it in a database?” There are some commercial ventures doing that. It’s a very hard problem and I don’t think anyone really does it well.

One of our conclusions was, “Wow, this is a lot harder than –.”

Alexis: “– than we thought.” [Chuckles]

Roger: “– than we thought it would be.” There are some papers that came out of this group I was working with that people cite in reference; we looked at a bunch of ideas and explored them pretty early on.

But anyway, getting back to Audacity. We had a lot of data. For example, we’d collect samples of people just humming tunes and then we needed to convert that to some symbolic representations. So we were building pitch analysis and segmentation algorithms, and we really wanted to display audio waveforms and the analysis of those waveforms side by side on some kind of timeline, so that we can just look at it and see – when things failed, we wanted to look at the signal and figure out why it failed. Maybe you look at other properties or attributes of the signal and show all this stuff graphically.

There just weren’t any good tools that we could find, so we thought it wouldn’t take that long to put together something that could read audio, like various representations upon a display and then side by side with that, show some other data, or maybe be able to hand-label some audio, which sort of turned into the Label Track that’s in Audacity now.

We put that together and then realized, “Well, it wouldn’t be that much extra work to add copy, paste, delete and save and then there’d be this audio editor that we could use and other people could use.” And that’s sort of how it happened.

Alexis: I guess it’s how you decided to open source it, but were you familiar with open source before? Is that something that you were a strong advocate of, as a computer scientist?

Roger: Yeah. Since I came up in the Computer Science department and mostly being an academic and focusing on research – as computer scientists, often published code or shared code made stuff available. When people started talking about open source, I heard that and said, “Oh, so that’s what they call it now.”

It’s like something that just happened; it’s so naturally – we didn’t really think of open sources being something special or something that even needed a name or a movement, or something that you would advocate for. It’s kind of what researchers mostly did.

And I think that’s where the openness of Audacity came out of – this academic environment and just the way people thought about software. Dominic Mazzoni, who was a graduate student at the time, and he’s a co-inventor/co-developer of the first Audacity. By the way, Dominic probably plugged a lot more hours into it than I did.

I’d put a huge amount of time into Nyquist, and ultimately, Nyquist became sort of an engine or an extension language living within Audacity. It’s still there in a pretty significant piece of the code, but all the display code and the user interface code and the stuff that most people really see was almost all originally done by Dominic.

Anyway, Dominic had some very strong ideas about using a GNU License and putting this thing out there clearly as a source – something that people could collaborate on and get for free. I was happy to go along with that.

Actually, most of stuff that I do, including Nyquist, have a more liberal license even than Audacity. Audacity has a GPL license, which means you can commercialize it, but if you make changes to the code, those have to go back into the open source. It has to be open and available to everyone.

The license for Nyquist is pretty much – you’re not restricted by that; you can do anything you want. So if you want to build a proprietary version of Nyquist for whatever reason, then you’re actually allowed to do that.

There’s been a lot of debate and discussion about open source and the GPL license and what the term should be. I’m a big advocate, in one way or the other. I think there’s a place for all of these different models.

For example – we’re getting kind of far afield from Audacity, but maybe –.

Alexis: It’s alright.

Roger: It’s interesting to throw this out. I see that Microsoft, over the years, has taken a lot because they were kind of the software goliath and did things their way. People were really fed up with Microsoft or really hated Microsoft for one reason or the other, I think largely just because they’re so big and have so much control.

Most of those people probably weren’t working with workstations 10 or 20 years before that, where workstations were – everything was proprietary. New operating system releases would come out for a thousand dollars or more. Software was just really very customized and very expensive.

Sure, Microsoft made billions of dollars selling Windows, but they were making billions of dollars, a hundred buck at a time. You could have an operating system as big and rich as Windows for a tenth or less the cost of what people were paying for much smaller, much less useful systems a decade before. It just puts a different perspective on things.

Alexis: I have to remember that next time I think badly of Microsoft for one reason or the other [chuckling].

Roger: And I mean, they’re not my favorite operating system. You have to have some perspective on this.

Alexis: So Audacity has spread far and wide, have there been any use cases that have surprised you. Like, “Man, I never thought that I’d see Audacity used for x or by this organization or these people.”

Roger: Let me thing – a couple of interesting things. One of which kind of had the Audacity team – what caught their eyes or their ears was, someone has been doing work with underwater recordings of mammals. I guess dolphins mainly, but recordings that go way up into ultrasound so that they’re captured at very high sample rates. There was this complaint, like, “How come Audacity only goes up to 500 kHz sample rates?” or something ridiculous like that. But actually, I think this person was using Audacity because it didn’t have a lot of assumptions built in about sample rates and sample size –.

Alexis: What could be heard, what could not be heard.

Roger: Yeah, right. So that’s been one interesting case.

Another one was, Audacity is used in a lot of science classes. I don’t have details of this, but I just heard recently that there are some lesson plans for using Audacity to measure the speed of sound in a school or a junior high school science lab type set up. I thought, “Oh yeah, that makes a lot of sense.” Just kind of using Audacity for things outside of music editing I think are the surprising cases that are interesting.

Alexis: I’ve got to say thank you, because this podcast will be edited using Audacity, as many podcasts are.

Roger: Oh, yeah. I was very glad to hear that Audacity was being used by Democracy Now!, which is my favorite news source and I have great admiration for the whole Democracy Now! team. If they got some use out of Audacity, that makes me really happy.

Alexis: I have to ask about the name. How did the name come about? Was that the grad students’ responsibility? [Chuckling]

Roger: Yeah, that came from Dominic. We talked about it and I don’t remember too much about candidates that we talked about, but I remember… from audio or maybe I guess AUD – you get those first three letters and you start looking in the dictionary what might resonate from that and Audacity came out. It just seemed like, “Oh, what a cool name.” It kind of alluded to audio, but not completely directly and it seemed like a good name.

Alexis: I agree, it’s a memorable name for a piece of software. What is the development process like nowadays?

Roger: Well, first of all, it’s very distributed. There’s a team in at least a few different countries. We never see each other; in fact, we had a conference or what we called Audacity Unconference last summer, which was the first time a lot of Audacity developers actually met each other face to face. This is after, in some cases, a decade or more of collaboration online.

People pretty much do what they want; people are interested in different aspects – some people have really focused on the user interface; some people, signal processing, and some people are just about fixing bugs. There are people very focused on documentation. They’re not software developers, but boy, they’re really critical. No one would be using Audacity if we had no help files and didn’t translate into different languages – all kinds of other tasks going on there.

I would say it’s very distributed, it’s very much people finding stuff that needs to be done and doing it, because they just feel the responsibility or they feel like that would be fun for them to do. There’s a lot of collaboration, of people helping each other with changes and getting things to compile and new operating systems and all that kind of stuff that needs to be done.

When releases go out, there is a fairly formal process of – someone is designated as a release manager and they are sort of temporarily given a whole lot of dictatorial powers, which is kind of interesting. The team is great, teamwork is great, having everybody do their own thing is great, but when you want to get something specific done like going from 2.05 to 2.06, somebody’s got to pull the switch that says, “Okay, this is 2.06” and somebody has to say “We are not going to incorporate these changes into 2.06 because I don’t think they are reliable or well-enough tested.” If we don’t draw the line somewhere, we keep testing and adding and testing and adding and debugging. We’ll never get to a clean point where we can actually put out a new release.

This temporary dictatorship is really important, too, and I think everybody recognizes that even if they don’t like the decisions and even though we get into fights over email and arguments, ultimately, you sort of have to have a designated leader to make decisions for the group.

Alexis: Right. That makes me think – over 15 years of Audacity in development, I imagine there are a lot of lessons along the way in terms of building an open source software that is used by – I don’t know how many users – a whole lot, that a lot of people rely on this kind of software. What are some of the key lessons that might help other folks that are developing open source software or help software in general?

Roger: Well I think one of the biggest things comes from Dominic. Dominic was the one that really wanted to take this thing out of the lab and tidy up the loose end to the point where it could be released to other people in a nice form.

Dominic sort of adopted the idea that the system just has to be really simple to use. It’s very easy to see how complicated tools – Pro tools is probably a good example. We can pick on Pro tools because they’re obviously successful; they sort of dominate the professional audio studio world, so there’s nothing I can say that I think will be interpreted as me thinking Pro tools is bad. It’s not, but it’s a tool for sophisticated users who are willing to put time into learning how to use it and how to get around that interface.

Dominic’s idea was that we should build an interface that people can just pick up and use immediately. If that means that we’re not going to support a multi-channel mixing bus and effects that plug in and sends all kinds of other things that people have talked about putting into Audacity – they’ve never gone in. The rule has pretty much been if it’s not simple, it’s better just to leave it out.

I think that’s resulted in millions and millions of users, and people almost always say how great Audacity is because they just opened it up and they started doing whatever task they had to do.

There are people – I also hear from people that Audacity would be really great, but it needs better spectral editing, or “I can’t really edit my 5.1 surround because it doesn’t have good support for that or any support for that” or whatever. That’s true – it’s not the tool for everyone, but I think it takes up a pretty good position. It’s not trying to be something for everyone; it’s trying to say that there’s a big set of tasks that Audacity is good for and we’re going to build a really easy-to-use interface that’s going to enable all of these tasks.

That’s one of my pet peeves for a lot of software, especially commercial software. I think commercial software – where there’s competition, the software developers try to distinguish themselves by adding features. Because then when consumers are thinking about buying it, they start comparing the list of features and whichever one has the most features, that’s the one that you buy because you think it’s better.

I know, from talking to people that develop commercial software, I’d ask them about some feature they have and I said, “I thought that was still a pretty big research problem” and they say, “Yeah, it doesn’t really work, but we have to put it in as a product or we’d be dead, because other people are also claiming to offer it, and they offer a very bogus implementation of this feature and they put it on their feature list.”

So there’s this escalation or Feature Wars going on; it’s making software really complicated and hard to use, and Audacity just doesn’t play that game, and I think that’s part of why it’s been so successful.

Alexis: A Feature Cold War, in a way.

Roger: But we’d have a hard time selling Audacity because we don’t have the big, long feature list. If you’re going to charge $100 or $200 or $500, then Audacity would be like – you’d probably be better off paying $200 for Audacity than a lot of things out there, but how do you convince the consumer that they should spend $200 in order to not get all the confusing features?

Alexis: Right. I’m going to try and wrap up here relatively quickly. I’ve got a few more questions. I asked some listeners and friends for questions. “I’m talking to the co-creator of Audacity. What do you want to ask him?” The top thing at the list was about – actually, would you care to guess? As users of Audacity, what would they want to know?

Roger: I have no idea.

Alexis: They were all asking about the UI. It was like, “We love Audacity. The UI gets the job done, but it’d be nice if it had a new coat of paint.” [Chuckles]

Roger: Yeah.

Alexis: I guess that’s not really a question so much as it is a “Why isn’t there an updated UI?” or “Is there one coming?” or that kind of thing.

Roger: That’s a good question. I think this comes back to the commercial versus open software area, that if we had a marketing department, a bunch of designers and probably a CEO, they’d be saying, “Hey, we need to put stuff that looks modern and new and looks state-of-the-art or whatever in order to sell this thing.” It matters, but ultimately I guess the focus is on functionality and not just pure looks.

One of the things that makes things hard is Audacity is cross-platform, and we use a cross-platform user interface development system –.

Alexis: Something like QT or –.

Roger: Yeah, so this is actually wxWidgets is what we use. In the early days, that was a major win for Audacity because when Apple switched from 68,000 processors to the Power PC, they went from 16-bit – this is also the switch form 16-bit to 32-bit code – and there were essentially no audio editors running on the 32-bit native hardware of the Power PC Macs.

Audacity was actually the first one because wxWidgets was imported really early to the Power PC and we just recompiled Audacity under wxWidgets for Power PC and suddenly we had a 32-bit native system. Everybody else was so performance-driven that they had written all kinds of assembly code that talked directly to the screen and did all this stuff.

That gave them a temporary performance advantage, but pretty soon, we were running native on a 32-bit RISC processor and delivering much better performance, and we were the first ones out. The number of people using Audacity just really shot up.

But that’s also been kind of as a result of building on top of wxWidgets, we kind of fallen into using the wxWidgets menus and window design and all sorts of other little details that might not be there otherwise.

Alexis: Okay. Second to last question here. This goes back to the question I mentioned earlier about having varying interests – computers, computer science, music and then finding the way to meld them, whether you intended to do that or not, you just kind of found a way to do that.

As somebody who studied archaeology and has been working with computers and programming and this kind of thing, I find a lot of things that I do whether in my spare time or for work, it has been kind of merging my interests together.

What have you learned about that? Do you have any tips on doing that? Do you have any insight as to how that has made life more interesting or more complicated?

Roger: First of all, I want to go back to the previous question because I left out something which is that there’s been some really amazing work, kind of a new interface approach to Audacity using a different kind of graphics library that does a very fast rendering and anti-aliasing. There’d been some beautiful, new-looking interfaces developed. It’s still at the experimental stage; it’s going to be a huge transition to move to that, but I think ultimately we’re going to get there and so there’s some really exciting stuff on the horizon.

Alexis: Is this a branch that we can take a look at?

Roger: I don’t think so. I think it’s not to the point where a branch is actually out there that people can grab and compile yet. It was shown at the Audacity Unconference and I’m sure we’ll be seeing more in the future, but it’s –.

Alexis: There’s something coming.

Roger: Yeah, there’s something coming. It’s not complete yet by any sense of the imagination, but we’ve seen some sketches and experiments that show that “Wow, this is probably worth putting a lot of effort to get there.”

Okay, and so then back to your question. I feel like I’ve been a very lucky, first of all, to be a computer scientist. Even though I’m academic and so I haven’t at all gone for the big money, it’s a comfortable life and it’s afforded me a lot of freedom and a lot of time, and I’ve been able to pursue music along with computer science and pretty much  do what I want to do.

I think back a lot, saying, “If I had been a little more talented early on in music and tried to go into a music career, I wonder what would have happened, because most of the professional musicians end up doing whatever they can possibly do just to make a living.

On the other hand, my living is sort of taken care of by the Computer Science side, so I get to do anything at all.

Last night, I was in a rehearsal band with Richie Cole. He was the lead alto player with the Buddy Rich band. Maybe that won’t mean much to a lot of people, but a truly world-class musician, and just to get to hang out with guys like that has been a real privilege for me.

I think it’s important to think about what you want to do and be passionate about it and find ways to do it and don’t be afraid to pursue crazy ideas like controlling synthesizers with computers or whatever you’re interested in and going in that direction.

One of the big things I learned in Computer Science after a kind of conservative operating system in a PhD thesis, as soon as I finished that and looked around and said, “Wow, I really want to do music” and I spent some time doing music. Within a year, I was pursuing music; I was doing the stuff that I was really passionate about, and my research was much better.

So I don’t think anybody knows about what I did for my PhD thesis, but everybody knows about Audacity and hundreds of thousands at least are using computer accompaniment and other things I’ve done.

I think it’s just really important to focus on the things that you’re passionate about.

Alexis: Alright. The last question here that I ask everybody – what is your text editor of choice when it comes to code?

Roger: Emacs.

Alexis: Emacs, okay. One of the Emacs holdouts here [chuckles].

Roger: [Chuckles] Again, Emacs has been around for a  long time and I’ve been writing code for a long time, so it was by far the most powerful and useful editor and after you use an editor like that for enough time, it really gets wired into your neurons, I think.

I couldn’t even tell you what most Emacs commands are. I just think, “Go to the bottom of the page or go to the end of the line” and my fingers –.

Alexis: They just do it.

Roger: I never think about, “Okay, to do this, I enter this command.” I just say “Do this” and it just happens. And when I switch to another editor, then I have to think about “Oh, what’s the command to do this?” I have to translate everything I want to do into some sequence of commands.

Alexis: It just slows you down.

Roger: Yeah, that translation’s gotten compiled into neurons and muscles for Emacs, so it’s great.

Alexis: What’s funny is that it’s similar for me and my second language, Spanish. When somebody asks me, “How do you say this?” and when they ask me that I just go, “Uhh – okay, yeah, that’s that word.” But when I need to say it, it just happens. [Chuckles]

Roger: Yeah. Do you ever translate for people and forget to change languages? [Chuckling]

Someone was translating French for me once and they listened to it in French and they turned to me and they spoke the same thing in French.

Alexis: I’ve done that with-

Roger: They didn’t really realize which language they were speaking.

Alexis: I’ve done that with good friends, for example, if they’re at my house and then I speak to my father or my mother in Spanish, and then I turn to them and then I start talking to them in Spanish. “Oh wait, I need to speak to you in English. Oops.”

Roger: Yeah. When things get really fluent that way, then you can sort of transcend the mechanics and focus on what you really want to focus on.

Alexis: Exactly, yeah. So where can people find you online?

Roger: Oh, I’m rbd@cs.cmu.edu. Email is probably the best way to contact me. I’m sure you can just Google for Roger Dannenberg – there aren’t too many of those [chuckling] and find my website. There are some videos out there and other things that might be interesting.

Alexis: No Twitter account where we can follow you and figure out what sandwich you’re eating for lunch?

Roger: I do not do Twitter and Facebook and all of these social media things. I find them kind of scary.

Alexis: [Chuckles] They can be. If you would like – listeners, that is – would like to be scary and figure out what Binpress is up to or myself, you can follow us @Binpress and myself @alexissantos.

Roger, thank you for taking time out of your schedule and your project that you’re working on to sit down and chat with me.

Roger: It was a pleasure, thanks for having me!

Alexis: And honestly, I can probably have you on for another hour and a half; I have enough questions to pepper you with [chuckles].

Roger: Well let’s do it again sometime.

Alexis: Alright! And for the listeners, we’ll catch you next week.

Author: Alexis Santos