Conventions
This section defines the basic notation conventions used in OpenScofo, including how pitches, time values, and comments are represented in a score.
Pitch
On OpenScofo pitches are represented by MIDI or PitchName.
MIDI
When using MIDI, each note corresponds to a specific MIDI number, where middle C (C4) is 60.
- MIDI numbers increase by one per semitone:
- C4 → 60
- C#4 → 61
-
D4 → 62
-
Microtonal pitches are supported using decimal values. For example:
60.5→ a quarter-toneC4;61.25→ a eight-tone sharpC#4;
Pitch Name
Pitch names are organized into three components: class, accidental modifiers, and octave.
Class
We follow the standard seven note classes of Western music: C, D, E, F, G, A, B. These are the natural notes, forming the diatonic scale. Each note class can be modified by accidentals to indicate pitch alterations.
Accidental Modifiers
| Symbol | Effect |
|---|---|
# |
Increases class by 1 (sharp) |
b |
Decreases class by 1 (flat) |
## |
Increases class by 2 (double sharp) |
bb |
Decreases class by 2 (double flat) |
+ |
Increases class by 0.5 (quarter-tone sharp) |
#+ |
Increases class by 1.5 (sharp + quarter-tone) |
- |
Decreases class by 0.5 (quarter-tone flat) |
b- |
Decreases class by 1.5 (flat + quarter-tone) |
Octave
The octave in a pitch name defines its position on the keyboard. OpenScofo follows the Scientific Pitch Notation (SPN) convention, where C4 represents middle C (the central C on a piano).
On OpenScofo, C4 refers to middle C (the central C on a piano).
Time Definition
On OpenScofo you represent <DURATION> using number of tempos relative to the Time Unit. Fractions like (1/2), (1/1), (1/8) are not supported.
Because that OpenScofo uses time representation relative to the value of BPM define previously. For example, if in your score you have the BPM set as = 60 this means that
- duration value is
2; - duration value is
1; - is
0.5, - is
0.25 - is
0.75
if in your score you have the BPM set as = 60 this means that
- duration value is
4; - duration value is
2; - is
1, - is
0.5
Comments
You can also create comments on OpenScofo language. For one line use // and for multiple lines use /* to start and */ to finish it.
// This is a piece of Charles K. Neimog
/*
In this piece we have a lot of different events and actios that happens
with the computer.
*/
BPM 80
NOTE C4 1
REST 2
NOTE D5 1