2020-09-12 15:22:01 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
doc: add spec for plain-text file
diff --git a/doc/file-txt.txt b/doc/file-txt.txt new file mode 100644 index 0000000..cfdfcdf --- /dev/null +++ b/doc/file-txt.txt @@ -0,0 +1,28 @@ +extension: .txt + +types: + N: a decimal number represented in ASCII + S: any ASCII string + +consts: + NL = '\n' + SEP = ':' + +file = header, tracks +header = ntracks, metadata +ntracks = "ntracks", SEP, ntrk:N, NL +metadata = kvpair* +kvpair = key:S, SEP, val:S, NL +tracks = track[ntrk] +track = name:S, NL, event* +event = noteset | metaev +noteset = durspec:N1, cell*, NL +cell = rest | cont | note:N2 +rest = ".." +cont = "==" +metaev = kvpair + +notes: + durspec = log2(denominator), e.g., 3 -> eighth + note = MIDI - 12, e.g., 48 -> middle C +