Csound: more on “sloppy packaging”

…Just an inflammatory headline to get you interested in reading my ideas.

I had some more thoughts about the Csound packaging discussion. As mentioned before, the big problem I see with Csound is its huge scope and tons of leftover and no-longer-supported components due to its age.

I’ve thought about a couple other software systems and how their developers managed this.

Unix

The history of Unix, GNU, Linux, etc. is a lot more complex that I can deal with here, but for our purposes Unix was originally developed at Bell Labs and not really intended to be publicly distributed for free. But students at (e.g.) UC Berkeley extended and developed it and the “BSD” distribution started to be seen everywhere.

Many companies took Unix concepts and “productized” it for sale. For instance, Sun developed “SunOS” (later renamed Solaris) which was basically just a Unix port that was guaranteed to run on their hardware and was supported.

Ironically, you can now get Solaris for free and it’s ported to a number of platforms.

StarOffice and OpenOffice

Late in the 90s and to date, Sun produced a program suite called “StarOffice” designed to compete with/replace Microsoft Office which was an expensive licensed product of Microsoft. Sun actually released a version called “OpenOffice” which is completely free and unsupported.

The point is that now the user has a choice. If you (or your company) can afford MS Office, you’re free to buy it. It will probably amount to a few hundred dollars (US) depending on the configuration you choose. But if you want to save money and don’t absolutely need to use the MS products, you can get StarOffice for USD50. If even that’s too much, you can download OpenOffice which has the same functionality for whatever it costs you to download a few hundred megabytes.

And my point is…?

What I’m obviously getting to is: would a Csound user pay a small amount for a stable, well-documented, software suite that did 90% of what Csound is capable of, if it meant no hassle in installing and using it?

I think a part of this equation might involve something like Steven Yi’s blue Csound frontend / composition environment. Although it’s been very interesting for a few years, it is suddenly at version 2.0.x and more stable and powerful than ever before (why? because it’s being actively developed; by a real software engineer; who is managing the project himself (or with a small group of other volunteers.) )

There are many competing factions at the Csound table. There are the grizzled veterans for whom Csound’s cruftiness is part of its charm; the Linux stalwarts who have to build it from source before using it; the students who are forced to study it in their electronic music curriculum, the fascinated hobbyists, the experienced computer music gurus, etc.

Wonderful thoughts. So who is going to pay for all this fine work?

Well, that is the crux, isn’t it? Look at the example of the amazing music application called “chuck.” My guess it was developed by a couple of amazingly talented grad students at Princeton, who are now probably trying to pay their rent and student loans. It hasn’t had a new release since (I think) mid-2008. That’s not to say it isn’t amazingly powerful and functional as it is — in fact, its forum is still very active. But without dedicated, professional, paid staff it’s hard to see how it can thrive, get bugs fixed, new features implemented and tested and so forth.

It’s not just me…

The nabble discussion group for Csound continues to be lively and informative. There’s (what I consider to be) a really healthy and spirited discussion about the packaging and ease of installation of Csound.

In a posting, Jim Aikin suggested the possibility of there being some institutional support for at least a little professional staff. Although it’s hard to imagine who would be the “angel” for Csound (it would certainly be me if I were hugely wealthy.) The problem with Open Source is that without coherent leadership things can get — diffuse. All the developers of Csound are volunteers, and Herculean work they do accomplish. The software is truly awesome in the real sense of the word. Just to give a tiny idea of the scope of Csound and cognates: the PDF version of the manual is over 2400 pages. Just imagine that.

The universe of Csound is so old and venerable now, that it’s analogous to a huge factory, with workshops and warehouses strewn all over the landscape, some features dead or moribund, and others only partially working. The users of Csound are also incredibly diverse. Some just want to do simple sound or music design writing orchestras and scores in text editors, some want to program it using other languages, others are doing audio and acoustics research and not using it for music at all; others are working on front ends (QuteCsound) and complete composition environments in which Csound is just the engine (e.g. blue.)

Then you have users on not only the Macintosh and Windows platforms, but Linux versions as well.

I think Mr Aikins’ idea is good; but it’s hard to imagine this happening realistically. Chuck (cs.chuck.princeton.edu) ongoing development is languishing as well–labors of love are romantic but they don’t put top ramen on the table.

Perhaps a model might be OpenOffice. This was supported by Sun (now Oracle). It is extremely solid, full featured, trivial to install, well-documented and evolving. Maybe like it (cf. StarOffice) and Linux, there could be an inexpensive “supported” version and a free “all the source code you can eat” version.

Short attention span blues: Java and Csound

I wanted to find a small program I could run to give me statistics about audio files. I can get the data from Sound Forge but thought it would be nice to be able to run a custom app. After a lot of research, I thought I would give Java a try.

All the tools you need to develop it are free (similar to many Gnu tools and Microsoft Visual Express systems). But Java appeals to me since it’s pretty open, mature and runs pretty well on all platforms. And the clincher is that there are Java wrappers for the Csound API. There are a couple sample programs in the Csound distribution but (once again) the documentation is nonexistent. I hit on a website of a guy writing a modular synth program in Java to run Csound underneath it, and the excellent blue composition environment appears to be in Java. So there is some precedent that can be mined. Hopefully I’ll be able to provide some pointers for people who want to do this.

Update on 28 Aug 2009

Well, like 1000 other things in my life, I have put this on the back burner while occupying myself with other more interesting things in life. I still would like to revisit this project though.

Anyway, I wanted to add that my researches indicate that there are two major free development environments for Java: NetBeans and Eclipse. Both have their own strengths and weaknesses, and a little research should unearth some papers comparing them. For my purposes, NetBeans seems perfectly serviceable, so I downloaded it and started experimenting with it. Nothing significant to report yet.

Netbeans can be downloaded here: http://www.netbeans.org/downloads/ and Eclipse coincidentally enough here: http://www.eclipse.org/downloads/

Although the more I look at Java the more convoluted a language it seems to be. There’s a humorous essay about how to shoot yourself in the foot in numerous programming languages. It’s all over the web but I tracked an early (original?) version down to here: http://www.fullduplex.org/humor/2006/10/how-to-shoot-yourself-in-the-foot-in-any-programming-language/

The problem with Java (after you’ve worked with simplistic syntaxes like Perl) is that it’s terribly convoluted. One comment to the above article suggested this construct for how to shoot yourself in the foot using Java:

Foot foot = new Foot();
Gun gun = new Gun();
gun.bullets.Add(10);
gun.fire (foot);
Result:
NullPointerException at : gun.bullets
or
java.lang.OutOfMemoryError at: gun.bullets.Add(10);
ClassNotFoundException at: Gun gun
-You have placed the Gun.class in the classpath?

This sort of gives you the flavor.

Returning the favor

The folks at thumbuki graciously linked over to here for Csound beginners. Once you’re a little comfortable with writing and reading Csound instruments and scores, you should study the stuff on his site as well. It’s chock full of interesting experiments and tips. And besides that it’s a WordPress blog which is nice.

QuteCsound and blue experiences…

Browsing through the Nabble Csound forum, I see frequent mentions of the Csound frontend QuteCsound. A version 0.4.1 was recently announced so I thought I’d plunge in. I added some notes about my current experiences trying to get this to run on my Windows XP system which you can read about here .
The frontends I’ve been using have all been partially OK, but no single one really fills the bill for me.
A very powerful system, really incorporating a timeline for musical events and everything, is Steven Yi’s blue, which I’ll set up a page for separately. But for now I just want to get some placeholders down for adding to as I find out.
I regard myself as a typical Csound “hobbyist” level. Amateur, not connected with any academic institution, some background and knowledge of software synthesis and electronic music.

Csound: licensing and jargon

An issue that’s been batted around quite a bit on the mailing list is that of external libraries whose licensing status is not clear/not OpenSource, but Csound and/or its various components rely on. To include the compiled versions makes things very complicated, but there might not be permission to include the source code. I’m not sure where that all stands at the moment.

In a way I don’t want to know too much about the internal guts of Csound; but it is a huge and vast collection of software tools and it probably is good to have sort of an overview of it.

Someone, somewhere ought to make a big list of all the names associated with Csound and explain, on one line, what they are, what their status is, for instance to name a few off the top of my head:

  • QuteCsound
  • blue
  • Cecilia
  • FLTK
  • WinXound (?)
  • ATS Opcodes
  • Loris opcodes
  • Tcl/Tk interface
  • etc. etc. etc. etc.

and so on…

last edited 20100910

Holy cow…the Mac G3 still works.

Digging into the tim p scott archives, I found a CD-R from 1996 or so that I wanted to look at. I wrote it back when I was using MacOS, and it wasn’t readable under Windows, which I’ve been using exclusively for several year.

I did save my ADB keyboard and the display adaptor (so I could plug it into a standard VGA display). I blew the dust off it, plugged everything in, and pressed the power key. Lo and behold, it started right up (“*!chime!*”). And I was able to read the disk I wanted. I also cruised around and was actually able to bring up old PageMaker 6 versions of the CD artwork of the first tim p scott release (“Jack of Shadows”) so I could put the PDF of the insert poster online…Hopefully I’ll be able to do that in the CCMW blog/website now that I’ve bought the media/space/CSS upgrades from WordPress.

Anyway, I was just pleased that the old Mac still runs. I was worried that leaving it sit there, the hard drive would be frozen or maybe an internal battery would have run down and it wouldn’t start up (I know some of the older Macs I had had that problem.)