in reply to Composing Music with Csound and Perl

Can you describe CSound some more? How does it work? What OS's has it been ported to? Is it open source? Is it well documented?

I like the track you posted, and my first inclination was to ask for the source that created it. But not knowing what CSound is, I figured the source may not do me any good ;) So I figured I'd ask for you to fill me in more instead!

(I know I could google this stuff...I'm hoping you'll share your opinions as well as your music.)

  • Comment on Re: Composing Music with Csound and Perl

Replies are listed 'Best First'.
Re: Re: Composing Music with Csound and Perl
by jake (Pilgrim) on Aug 02, 2001 at 08:18 UTC
    Csound is a computer music language. It's an ancestor of the original computer music languages developed at Bell Labs by Max Mathews back in the late 50's.

    A person creates sounds and music by writing two text files. The orchestra (foo.orc) and the score (foo.sco). Csound acts as a compiler and generates a sound file based on the two files.

    The orchestra file is where a person defines his instruments. This part is like designing sounds on a commercial synthesizer. But because Csound has no fixed signal flows, the designer has totalitarian control over his instruments. Each instrument defined in the orchestra is like a musician in the orchestra pit.

    The score file is the counterpart to the orchestra file. The score tells the instruments when and what to play.

    example foo.orc
    instr 1 aosc oscil p4, p5, 1 out aosc endin
    example foo.sco
    f1 0 8192 10 1 i1 0 4 440 i1 6 10 262
    These two files will generate a sound file that will play a sine wave at time 0 for 4 seconds at 440HZ, then another sine wave at time 6 for 10 seconds at 262Hz. The "f1" in the score defines a table of all the discrete points in a sine wave. I know I'm not explaining everything... I can't possibly in one post. :)

    It's been ported to many OS's, including windows, mac and linux. It is open source. People in the Csound community actively improve and add functionality. It does have some what of a restrictive license, an MIT Educational purposes only type license (although that only applies to the Csound source code, not the generated sounds files).

    Today, it is very well documented. There are two sites, the Csound FrontPage and csounds.com. There is also the Csound book. When I started using it, information about it was hard to come by. I started by taking apart simple instruments and changing one parameter at a time.

    I have an online tutorial I wrote for from undergraduate student project. It is a bit immature, but I wrote it a long time ago. But all the information in it is still 100% useful.

    And finally... You can look at the Csound files to "isolation" here.

    --jake
    "This space intentionally left blank" -Zork
      Awesome, and thank you. I will look in the ports tree as soon as I'm done writing this reply. I am still interested in seeing your source code for the perl program that generated isolation, or at least hear more about how it worked - primarily because I think it's a neat idea. (I'm already thinking about what data would be represented in the most interesting manners, when presented musically...julia sets? monk locations? hmm...)

      Thanks again for the excellent description.

        I went ahead and put up the perl code. I must warn though, this is really disorganized. It's from 4 months ago and I have since started using OOP Perl for this type of work.

        Here it is... isolation.pl

        Thanks for taking interest...

        --jake
        "This space intentionally left blank" -Zork