login

<     >

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
+