
First off, major, major kudos to hackaday for providing an extensive how-to on controlling Csound with MIDI. Csound is a free, text-based synthesis environment, directly descended from Max Mathews’ original digital synthesis environment introduced in the late 1950s. (See CDM’s brief history of Max, including how his instrument wound up on the cover of Playboy.)
Here’s my only objection: Csound is free, academics love it because it’s what they’re used to, but is it really the best audio environment — even for learning? Csound can’t begin to compete with even free audio environments like Pure Data by Miller Puckette. I’m not knocking anyone using it — whatever works for you creatively is great — but I think it’s time for Pd and other environments to get their proper due. The only reason I’ve heard from Csound fans for why it’s supposedly “superior” to alternatives is that it has a text interface. My response to that: whether you’re patching boxes on the screen or typing in characters, you’re still dealing with an abstraction — and the constraints of the development environment. If one works for you creatively, of course, use that. But my experience has been that most people will find software like Pd to have a broader set of capabilities, more flexible interaction (by far), and an easier learning curve. So if you’re looking for a way to get your hands dirty, give Csound a try, but make sure you check out the alternatives. (Incidentally, before I get too over-excited, I should point out that yes, you can integrate Csound with Max/MSP and get the best of both worlds.)
If you’re still reading — thanks for listening to my rant. And I better go work on a Pd tutorial, huh? 🙂
I’m even more excited to see what Fabienne Serriere does with the next installment, which promises to be a DIY MIDI hardware clinic. Build your own controller? Now we’re talking.
PD tutorial would be great… I downloaded the software and it looks very interesting. Do you know where I can find some PD 'getting started' tutorials? 😕
It's very easy to write your own programs to control CSound. Geeks love to write code to control text files.
While I agree that Csound isn't the end all of computer music, you have to keep in mind that many of the alternatives simply don't have the volume of examples that csound does. (or at least I'm not aware of such examples) Personally, I would love to use nyquist, or to a lesser extent clm, supercollider, or pure data, but I don't know much about any of those alternatives other than nyquist or clm. Of course, two of the languages I mentioned are now used as "plugin" languages for sound wave editors, so I might change my mind in the future.
I think that realtime is the way to go, but I'm curious if really, really complex synths can be run in real time, without implementing most of the code in C. Personally, what I would like to see is something like Nyquist ported to a native-code or a scheme or lisp compiler, so then I could write "compiled" intruments fast enough to run in real time, without using C, and then interpret when necessary for expressiveness.
I've recently heard about pure data — I'm not sure if I like the idea of graphical programming for music, personally, I think if the language is simple, it should be easy to develop a 1:1 graphical representation of what is going on, assuming graphical dsp languages really do have the same expressivity/clarity of the more "verbose" text. Nonetheless, I would rather use a textual representation solely because I hate the mouse.
There is an issue of realtime performance, for me, though. For what I have in mind I'd need lots of keyboards, midi sliders and/or complex on screen interfaces to change parameters as intruments are played.
I never get why people always mention the "descended from music 5 "(sounds quite similar to Unix users boasting about "descended from system 5") phrase when they mention csound, as if that somehow makes it technically superior. I guess it implies to them some sort of classical tradition, which is in a sense a good thing, but it just sounds rhetorical to me. I would assume that bugs you as well.
I think people choose Csound for it's community more than anything else. But I do agree with you that csound lacks a lot of functionality that other sound languages have. Well,
As for commercial dsp stuff, I don't doubt the existence of incredible vst plugins, but I don't think they are very good for learning unless the source code is available to study.
So in that sense, I would consider sound languages to be a better idea, since I would assume that the most expressive vsts are probably like sound languages anyway. I can already think of one commercial vst that sounds exactly like a reinvention of pure data, for example.
By the way, I meant to say "native-code scheme or lisp compiler, rather than "native-code or a scheme or lisp compiler."
Graphical vs script programming is like the flowchart vs coding in programming languages. Flowcharts are good in formal environments that run large projects. They are both abstractions but scrips are closer to the assembler and much more practical and effective. Once you get going in scripting you would never look back to graphical interfaces which are usually for beginners.