xi2

a plain text language that compiles to MIDI
git clone https://git.ce9e.org/xi2.git

commit
b425781fa9849d2ac9751cf6028c3022dc45813f
parent
207552a0984ddbb2447983f34530215ebc00f128
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2023-09-19 15:10
add README

Diffstat

A README.md 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

1 files changed, 56 insertions, 0 deletions


diff --git a/README.md b/README.md

@@ -0,0 +1,56 @@
   -1     1 xi2 is a plain text language that compiles to MIDI.
   -1     2 
   -1     3 # Usage
   -1     4 
   -1     5 Notes are expressed as numbers. By default, an offset of 60 is applied, so `0`
   -1     6 is 60 in MIDI, which is c3.
   -1     7 
   -1     8 Beats are separated by comma:
   -1     9 
   -1    10     0: 0,2,4,5,7,9,11,12,
   -1    11 
   -1    12 You can leave a beat empty or use `-` to hold the previous note:
   -1    13 
   -1    14     0: 0, ,0,0,7,-,-,-,
   -1    15 
   -1    16 Beats can be subdivided using parens. Notes that are grouped this way are
   -1    17 evenly spaced, so e.g. grouping 3 notes gives you triplets:
   -1    18 
   -1    19     0: (0,0),(4,4,4),(7,7,7,7),12,
   -1    20 
   -1    21 Notes can also be played at the same time (chords) using curly braces:
   -1    22 
   -1    23     0: {0,4,7},{0,4,9},{0,5,9},{2,7,11},
   -1    24 
   -1    25 Each track has its own line. Sections are separated by a blank line. Whitespace
   -1    26 inside lines is ignored, so you can align the tracks:
   -1    27 
   -1    28     0: 12,      (16, 21), -,       (23,19,14),
   -1    29     8: {0,4,7}, {0,4,9},  {0,5,9}, {2,7,11},
   -1    30 
   -1    31     0: (16,19), (16,21), (-,17),  (19,23),
   -1    32     8: {0,4,7}, {0,4,9}, {0,5,9}, {2,7,11},
   -1    33 
   -1    34 Macros allow you to reuse patterns without having to write them again and
   -1    35 again. xi2 supports both single-line and multi-line patterns:
   -1    36 
   -1    37     [C]: {0,4,7}
   -1    38     [G]: {7,11,14}
   -1    39 
   -1    40     [intro]:
   -1    41     0: [C],[C],[G],[C],
   -1    42     [end]
   -1    43 
   -1    44     [intro]
   -1    45     [intro]
   -1    46 
   -1    47 Instead of notes you can also include strings for lyrics. Be aware that
   -1    48 whitespace will be ignored, so you should use `_` instead:
   -1    49 
   -1    50     0: (9   ,,),(2    ,-,5   ),4  ,0   ,
   -1    51     l: (Pop_,,),(goes_,-,the_),Wea,sel.,
   -1    52 
   -1    53 # similar projects
   -1    54 
   -1    55 -   [drumscript](https://github.com/tepreece/drumscript/)
   -1    56 -   [lilypond](https://lilypond.org/doc/v2.24/Documentation/learning/simple-notation)