Pete Goodliffe Interview

related links: anthem sequencer tse3 Libs article on anthem

Mstation:

> OK, well first up I'm interested in the software development > trail that leads from the acorn to Linux. How did that come > about?

Pete Goodliffe

Anthem has always been a labour of love for me. I started the project years ago when I was at Uni - I'd just bought a spanky new keyboard and an Acorn RiscPC, but couldn't afford to buy a sequencer. So I started to write one.

Thanks to that decision, over the years I've written very little music and far too much code! The Acorn sequencer grew and grew. It became a very competent program on that platform (and got me a good degree along the way). However, the Acorn market has kind of bottomed out these days.

I'd practically migrated to Linux already, and wanted to really stretch my C++ programming ability - although the Acorn version is C++, the compiler is really old CFront technology; not exactly state of the art.

I started the Linux port of the TSE library to teach myself STL and real C++ techniques. The problem is once I start something, I can't really stop...

> ... and related to that are questions of where you see the future > with Linux. Do you have any thoughts of commercial flavours of > anthem?

The bottom line is that I really want to see my code used by real people. That's the kick. Open sourcing it really opens it up to a wide audience. I guess that I made the first version commercial because that /was/ how to make the work look competent and of a professional standard. In these enlightened times, it really is the quality of the code that does the talking.

So, no: I have no plans for 'commercial' version of Anthem. (However, if anyone wants to sponsor me to add specific facilities to the codebase, then that's a different thing...)

> What do you think are the main advantages of using C++ for a project > like the tse3 libraries? (as opposed to C) ... or the sequencer app > itself.

Well, naturally everything you can do in C++ you can do in C. However, the design and implementation of the TSE3 library has taken careful advantage of many C++ facilities. Examples range from use of the STL (to exploit code reuse and prevent any silly errors from writing basic list handling) to sensible class design to aid comprehension.

Certainly the TSE3 APIs could have been written in C. The C++ implementation, however, exploits language-supplied and compiler sanity-checked language facilities to ensure that the library is as consitent as possible.

As far as the sequencer application goes, I wanted to use the KDE libraries so the choice of language was pretty much a given. The KDE API is really very rich, clean and powerful.

I hope that other application writers will create sequencers based on TSE3 that exploit other desktop toolkits.

Perhaps we will see other language bindings for TSE3 - a Python binding is already being proposed.

> Right at the moment I seem to be asking everyone about plugins ... does > anthem use them? Have you had a look at the LADSPA plugin architecture? > (www.ladspa.org)

Both TSE3 and Anthem will see some plug-in interfaces, however at this point I have not considered exactly what you are talking about.

There will be 'plug-in-able' editors for the Anthem application (score editing will be provided by a separate plug-in app, for example. This will allow me to keep the core Anthem logic sensible and extensible. TSE3 will also allow arbitrary media types to be plugged-in. Audio handling, for example, will be provided this way. The API is currently being discussed (any experts are welcome to colaborate on this).

The LADSPA interface is in the realm of the Audio plug-ins, however it looks like a very sensible route to go down.

> Did you just prefer the KDE API to the others or where there > other reasons (as well) for going with the KDE API?

No, the reason that I chose KDE over Gnome (in the Good Old Days) was because I much preferred the programmer's API. Qt is a very nice toolkit to work with.

Perhaps we will see other language bindings for TSE3 - a Python binding is already being proposed.

> What do you think about the words 'python VM' and 'audio' > in the same sentence? heh heh, small prejudice showing here. > (I like and use python however)

Well, obviously for maximum performance you wouldn't choose Python, but it does allow some interesting possibilities for application development.

Let's not close the door on anything without at least looking at what's standing on the doorstep :-)

> When you set out the functionality of the sequencer anthem, did > you gather design hints from other software or did you mostly > build it with a particular method of working in mind?

The original Anthem development (i.e. the RISC OS version upon which this Linux version is based) was purely crafted for the way I wanted to work. When I started the project I hadn't really had a chance to see how other compositional tools worked, so the fundamental design follows my particular preferences.

I'm glad of this now, since the Part/Phrase structure of TSE3 really is novel and neat, and had I looked at other software packages I would have lost this edge and followed a croud.

Now that's not to say TSE3/Anthem is radically different from what else is out there - its just 'better' (for some definition of the word better which depends on what you think of Parts/Phrases) in some particular ways.

> Just going back to STL, would you like to elaborate a bit about what > it is and how it might aid code reuse?

The STL is a large part of the C++ standard library. STL stands for Standard Template Library. It's a library of software components such as lists, queues and other foundational data structures and algorithms. Using it means that I don't have to write so many algorithms from scratch. Clearly, there are many benefits from this - less places for bugs to lurk, speed and ease of development, etc.

> On the sequencer side of things, what do you think about something > like Cubase 5.0 - too much? or something to be aimed at?

Sure, Cubase is a nice piece of software. It's so popular that any sequencer writer cannot avoid their work being compared to Cubase. Now, as I said, I'm not out to write a Cubase clone. However, another developer will definitely able to write such a clone using the TSE3 library, if they so wish.

However, the level of functionality that is in Cubase is definitely something to be aimed for. I'm currently working out some audio issues, for example, and there are a number of other good open source projects underway that I should be able to interface with, to provide for example real time audio effects.

As Linux gains in popularity, we will undoubtedly see the level of competance of our software improving. This will include music composition software. It's an exciting time...

> Thanks a lot Pete.

 home  music  news  opinion  software  tips  email