Csound Csound-dev Csound-tekno Search About

[Csnd] the score-preprocessor scot

Date2022-12-29 20:39
FromHlöðver Sigurðsson
Subject[Csnd] the score-preprocessor scot
I've been exploring some of the utilities that lay hidden in csound, one is scot, which I always felt was one and same as the score sort program. But it seems to be a potential hidden "treasure", and I'd love to find some documentation on how to use it.
The only information I could find from google, was a repost of an old paper posted on some wordpress website http://michaelgood.info/publications/music/scot-a-score-translator-for-music-11/
In that article, there's a full example in the appendix. And I tried running it, but it complained that the orchestra was incorrect, which I fixed, along with some formatting issues. But the full example, which I'm including below here, gives me an error. So I'm just wondering, if the development of scot went away from the backwards compatibility train, or perhaps the example is wrong, or something broke? I'd love to know if someone uses this and understands how to write score with scot.

The error I'm currently receiving is this

random.sc(16) Invalid pitch class
  =d4 < f4 < (=b8 b)
      ^
random.sc(16) Invalid pitch class
  =d4 < f4 < (=b8 b)
           ^
random.sc(17) Invalid pitch class
  f4 < r4 < (b8 b)
     ^
random.sc(17) Invalid pitch class
  f4 < r4 < (b8 b)
          ^
random.sc(18) Wrong number of beats in bar
  f < r < (b b) / ; end of measure
                ^
random.sc(23) Instrument not defined
  $k "#fc" ; must specify again, just
   ^
scot processing terminated
scot: 6 errors.

The full example I'm running, with scot full-example.sc is:

orchestra { ; list of all instruments
  right = 1
  left = 2
  twink = 3
  clarinet = 4
}

functions {
  f1 0 256 10 1 ; sine wave
}

score { ; Figure 1–Chopin excerpt
  $right ; right hand
  !key "#fc" ; key signature
  !time "3/4" ; time signature
  =d4 < f4 < (=b8 b)
  f4 < r4 < (b8 b)
  f < r < (b b) / ; end of measure
  d < f < (b b)
  d < f < (b b)
  d < f < (b b) /
  $left ; left hand
  $k "#fc" ; must specify again, just
  !ti "3/4" ; like traditional notation
  =,,b16 d f b d4 c8. d16 / ; notice octave following
  b4. f8 d c /
  }
  score { ; Figure 2–Twinkle, twinkle
  $twink ; instrument name
  =, b-8 b ‘f f g g f4 ; accidental carries
  ; and octave following done
  }
  score { ; Figure 3
  $twink
  =,b-8 [10000] ; p6 = amplitude
  b [12000]_’f[10000] ; add slurs
  f [12500]_g[10000] ; a little more
  g [12000]_f4[10000]
}

score { ; Figure 4, example 1
  $twink
  =,b-8__b ‘f__f g__g f4 ; ties added
}

score { ; Figure 4, example 2
  $twink
  !acc “off” ; turn off accidental carrying
  =,b-8__b ‘f__f g__g f4 ; same as above
}

score { ; Figure 6
  $twink
  !acc “on” ; turn on accidental carrying
  !k “-be” ; B flat major
  =,b8 b ‘f f g g f4 ; no accidentals
}

score { ; Figure 7–Bartok excerpt
  $right ; right hand
  !k “-e” ; e flat only
  !ti “3/4” ; time signature
  t 72 ; M.M. quarter note = 72
  =c8 d e4. f8/ ; don’t need initial =
  e8 d c4. b8/
  $left ; left hand
  !k “#fg” ; different key signature
  !ti “3/4” ; same time signature
  =’c4. b8 c b/
c4. b8 a b/
}

score { ; Figure 8
  $clarinet ; instrument
  !tr ",b-" ; B flat below middle C
  =c8c ‘gg aa g4 ; spacing is irrelevant
}

score { ; Figure 9–Babbitt excerpt
  $left ; left hand
  t 108 ; M.M. quarter note = 108
  !acc "off" ; turn off carrying of accidentals
  ; per composer’s instructions
  !oct "off" ; turn off octave following
  ; for convenience
  !time "3/4" ; time signature
  =,,b-16 c- f d c4__ c16 d- r8 /
  g16 b f# a__a4 a-16 e16__e8
  $right ; right hand
  !time "3/4"
  r4 =,e16 a ,b ‘a- ‘f#8 ,g16 r /
  r4 ‘d-16 ,f ‘c ,e-__e8 ‘d16 b-32 r /
}

end

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here