Is csound right for me?

Hello everyone,

Last week I asked the Linux Audio Users mailing list if there was a synthesizer available for Linux that could be run completely from a text console. One suggestion I received was to check out csound. I want to tell you my specific needs and get your opinions as to whether or not csound is right for me. I am a Linux user, I am NOT a programmer, but I can "glue together" things with basic scripting. I am comfortable reading documentation and compiling programs on my own. With that out of the way, here's what I want:

I've been itching for a hardware VA or analog synth for some time, but don't have the money to get one, so I'm turning to software. Since I am not a programmer, I want to use existing work (code, ladspa plugins) as building blocks for a synth. I want to be able to chain this blocks together in any config that I want (simple mono synth, Moog copy, etc.). Finally, I just want to play it from a MIDI keyboard. It has to be 100% rock-solid with jackd since I would be using this live on gigs.

I guess the big question here is, do I have do write the building blocks (like oscillators) by hand, or can I reuse other people's work?

Is csound appropriate for this use?

Thanks for your time in reading this, I hope I've written it clearly enough to make sense to you. If anything is unclear, please let me know.

Thanks!

Josh

Almost an answer...

I hate to hedge here, but I have to say 'It Depends'.

I've been having a lot of good experiences with Csound and JACK. It's not totally foolproof -- it took me a while to find the right set of configs that made things work. Still, if you run Linux, and you even remotely speak JACK, you're definitely the right type of person for it.

Second, I've found that realtime Csound actually works MUCH better from the console than from any sort of GUI platform. With all those other graphical obligations out of the way, the CPU can be on your side full time.

Third, you don't have to write basic oscillators. However, almost all the instrument design is up to you. This has the disadvantage of taking a lot of time, but the advantage of complete and total control over the sound. You don't have to deal with anyone's arbitrary control value curves or preset limits -- you set the literal acoustic parameters for each option in real world terms.

All I can say is, try it. It's not like you have to pay thousands of dollars to test it out . . . the main price is time. The more you put in, the more worthwhile it will become.

And a big hint: a lot of people I've spoken to about Csound initially flinch when they see the syntax of the language. It looks about like old school 6502 Assembly, at times ;-) But once you learn to read it, it suddenly turns from variables-and-opcodes to patchcords-and-synth-boxes. When you read the tutorials and see where Dr. B has drawn a patch cord chart for the given csound instrument, study it. Every time. Then, one day, you'll find you can look at a (well written) instrument and see the connections yourself.

---
http://www.jamendo.com/en/artist/bruce.h.mccosar
http://bmccosar.wordpress.com/

And a boatload of opcodes

One more thing . . . Csound has been around a long time, and there are opcodes that almost stand for entire instruments. You really don't have to reinvent the wheel every time. On my computer, Csound 5.08 has 1,403 individual opcodes -- many new worlds to explore!

===
http://www.jamendo.com/en/artist/bruce.h.mccosar
http://bmccosar.wordpress.com/

Not much more to add...

... to what Bruce has already said, but maybe a couple of other points can be mentioned.

First, be prepared for a steep learning curve. As Bruce said, the language is very archaic looking -- after all, it does really date back to the sixties! Added to that is a not very accessible manual [sorry], and quite a few non-obvious traps in the opcodes. (Conditionals in particular can hang you up quite easily!) Be prepared to spend quite a bit of time figuring out why your 'simple' instrument doesn't behave as you expected.

On the other hand, once you've learnt where you have to keep your eyes peeled, Csound is very flexible and expressive. And there are lots of ready-built instruments to explore. Many of them will be designed for playing by score-file rather than real-time MIDI, but conversion is usually not hard.

Note that there is a subtle difference between a score and MIDI. The nice thing about a score is that the length of the note is included in the event, so the instrument can do things -- a timbre sweep maybe -- based on that length. With MIDI you don't know this, so any such effects have to be predetermined.

It probably helps, when learning Csound, to have specific goals. I had the system kicking around on my machine for a couple of years without doing much with it. [Couldn't be bothered with that 'learning curve' (:-)] However, I acquired an urgent desire to emulate the sound of a Hammond, and I'd found nothing that sounded remotely like it, until I came across Hans Mikelson's Csound emulation. I immediately flipped, took it in, and worked on it some more, until now I can play a pretty-darned-close-to-B3! That was the learning experience that let me trip over all those traps without giving up...

Solidity

Oh yes, one thing that didn't get mentioned. I don't think Csound has ever crashed on me unexpectedly. When you're developing an instrument, lots of things can go wrong, but once it's running, it'll run -- always.

The only little idiosyncracy is that you always have to specify how long the program is to run (in the score file, which is always required whether using MIDI or not). You can give it as much time as you like, so make sure it isn't too short, or your performance could suddenly go very quiet!

cialis uk kamagra uk cheap generic viagra buy viagra uk z-pack buy zithromax generic viagra zpack Canadian pharmacy cialis online Canadian pharmacy viagra z pack zpak staxyn z-pak z pak pharmacy uk avanafil generic cialis viagra uk ed pills ed drugs viagra online