This page serves as a quick reference when working with MusicString, for detailed description of listed constructs, please refer either to the online documentation or download documentation from downloads section. Not all features are currently implemented, these that are not are marked light gray.

  • a – Z Each letter represents a tone of a different pitch
  • 0 – 9 Changes duration of following tones
  • . Pause – silent tone
  • ~ Set instrument “~” (sine wave for default soundfont)
  • - Set instrument “-“ (square wave for default soundfont)
  • ^ Set instrument “^” (triangle wave for default soundfont)
  • / Set instruments “/” (sawtooth wave for default soundfont)
  • | Set instrument “|” (pluck wave for default soundfont)
  • * Set instrument “*” (noise wave for default soundfont)
  • (s0, s1, … , sn)
    Fork – all statements from s0 to sn, begin execution at once, used for chords and channels
  • {name; body}
    Defines a subroutine with given name and body
  • {name: a0, a1, … , an}
    Subroutine usage with arguments a0 to an, arguments are optional
  • $n Argument usage, n is the argument number in base 36
  • [body:repeats]
    Anonymous loop that will repeat specified amount of times
  • [name:body:repeat]
    Loop with specified name that will repeat specified amount of times
  • [name]
    Stop all loops with given name
  • &n Shift the pitch scale, n is alphabet letter determining shift
  • &+n Shift the pitch scale, n is alphabet letter determining shift, plus one
  • &-n Shift the pitch scale, n is alphabet letter determining shift, minus one
  • @bpm; Set new tempo
  • #soundfont; Set new soundfont
  • > Set volume envelope to fadeout
  • < Set volume envelope to fadein
  • = Set volume envelope to linear
  • %n Set the volume, n is alphabet letter determining the volume
  • ?n Skip over following statement if argument n is true
  • !n Skip over following statement if argument n is false
  • ?(n=x) Skip over following statement if argument n equals x
  • ?(n=x) Skip over following statement if argument n doesn’t equal x
  • ?($n@y=x) Skip over if result of operation equals x
  • ?(y@$n=x) Skip over if result of operation equals x
  • !($n@y=x) Skip over if result of operation doesn’t equal x
  • !(y@$n=x) Skip over if result of operation doesn’t equal x