[linux-audio-dev] Re: score languages

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: [linux-audio-dev] Re: score languages
From: Paul Barton-Davis (pbd_AT_Op.Net)
Date: ke tammi  26 2000 - 08:38:51 EST


>OK, I'm intrigued. I've just gone searching for info on Scorefile
>(or ScoreFile) and all I can find out is it's part of MusicKit. Does
>anyone have any sample ScoreFile files handy? Preferably with
>comments?
>While I ponder pysco, it's good to see examples of musical score
>languages, particularly ones people actually *like*. :)

take a look in Rhoads "The Computer Music Tutorial". He has a little
section on it. Oh, what the hell, I'll save you the searching. Here's
the example from that book:

--------------------------------------------------------
info tempo 84
part soprano;

soprano synthPatch:"Fmlvi" midiChan: 3;

waveTable wave1 = [(1,1) (3, .1)];
waveTable wave2 = [("onePeriodOfASoprano.snd")]

BEGIN

t 0 /* time is in beats */
soprano (2) freq:c4 amp: -30dB waveform: wave1
t 1
soprano (2) freq: d4;
t + 1;
soprano (2) freq: e4 waveform: wave2;

print "Score is finished"

END;
--------------------------------------------------------

The annotation says:

"The synthPatch declaration indicates that the score is to be played
on the NeXT internal DSP, the instrument to be used is Fm1vi - one of
the standard instruments. The midiChan declaration indicates that if
the score is played over MIDI it is to be transmitted over MIDI
channel 3. Both frequency domain and time domain envelope declarations
are shown. wave1 is the sum of sines in the form (harmonic number,
relative amplitude). wave2 takes its values from a sampled waveform in
the named file in quotation marks".

The annotation does *not* say "the number in parentheses after the
part name is the duration of the voice, in beats".

------------------------------------------------------------

Important (and cool) things about scorefile:

 * no hard-to-intepret p-field nonsense. parameters are named and can
   be listed in any order

 * it allows you to alter the values of an existing voice, which
   Csound's score language does not. You can also use noteUpdate to
   convey new parameter values to a voice without (re)triggering
   envelopes.

 * supports real-time quite naturally:

   violin (noteOn, 4) ...other params ... ;
   violin (noteOff, 4);

   the "4" is a "note-tag" that connects the noteOn and noteOff events.
   they also can do legato rearticulation with multiple noteOn's.

Its not perfect, but compared to Csound - wow!

--p


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : pe maalis 10 2000 - 07:23:27 EST