Monday, April 20, 2009


Listen here: to this file

Subscribe here: to this RSS feed

This is a work in progress...

Tobiah wrote on the Csound mailing list a challenge to write a score for a very simple Csound orchestra file.

I have an idea for a brief informal contest. Given a simple,
one-oscillator orchestra, provide a score which produces the
most beautiful piece.

I offer an orchestra that I crafted for the purpose
of this event. One can make use of very limited
envelope an pan controls. Obviously, the craft will
be in the score generation program (although one is
welcome to hand edit her entry!).

If there is interest, I suggest a seven day window
for this challenge. Only the scores should be
submitted at first. We can look at source code
later. For large scores, a URL might be best. I can host
scores if you send them to me in an archive format.



sr = 44100
ksmps = 1
nchnls = 2

giSineFunc ftgen 1, 0, 65536, 10, 1

instr 1

;***** INIT SECTION *****
iDur init p3
iVol init p4
iStartPitch init p5
iEndPitch init p6

iAttack init p7
iDecay init iDur - iAttack

iPanStart init p8
iPanEnd init p9

;***** SYNTH SECTION *****
kEnv linseg 0, iAttack, iVol, iDecay, 0
kPitch expseg iStartPitch, iDur, iEndPitch
aSig oscili kEnv, kPitch, giSineFunc

kPan linseg iPanStart, iDur, iPanEnd

aLeft = aSig * kPan
aRight = aSig * (1 - kPan)

outs aLeft, aRight


Never one to shirk a contest, I made some modifications to my Csound preprocessor to write the fields that his orchestra expects, and the results sounded kind of like all my other music made with my Csound preprocessor. The input to the preprocessor is here, and the Csound score is here. There are lots of debugging messages in the score as comments. When I've had more time to work on it, I'll remove them. I had to make one modification to the sine wave generator function. I replaced giSineFunc ftgen 1, 0, 65536, 10, 1 with an equivalent ftable entry f1 0 65536 10 1 .

My version of Csound is 4.19, which is many levels back from the current version. It doesn't support giSineFunc. But since I wrote the preprocessor in Turbo Pascal, which is still running today with a last touched date of May 2, 1989, I can't complain. Software currency is for losers.

No comments: