diff --git a/tool/humdrum/tool-humdrum-complex.txt b/tool/humdrum/tool-humdrum-complex.txt new file mode 100644 index 0000000..d700afa --- /dev/null +++ b/tool/humdrum/tool-humdrum-complex.txt @@ -0,0 +1,33 @@ +**one **two **three **four **five +1 2 3 4 5 +* *- * *- * +*v *v *v +1&3&5 +*- + +**one **two **three **four +1 2 3 4 +* * *v *v +* *x *x +*v *v * +1&3&4 2 +*- *- + +**one **two **three **four +1 2 3 4 +*v *v *^ *^ +1&2 3a 3b 4a 4b +* *v *v * * +* * *v *v +*- *- *- + +**one **two **three **four **five +1 2 3 4 5 +* *- * * * +*v *v * * +* *^ * +* * *+ * +* * * **six * +1&3 4a 4b 6 5 +* *v *v * * +*- *- *- *- diff --git a/tool/humdrum/tool-humdrum-diagnostics.txt b/tool/humdrum/tool-humdrum-diagnostics.txt new file mode 100644 index 0000000..79c0b66 --- /dev/null +++ b/tool/humdrum/tool-humdrum-diagnostics.txt @@ -0,0 +1,37 @@ + +| Error | Description | +| ----- | ----------- | +| ERROR 1: | Record containing add-spine indicator has not been followed by exclusive interpretation for that spine in line | +| ERROR 2: | Illegal empty record in line | +| ERROR 3: | Leading tab in line | +| ERROR 4: | Trailing tab in line | +| ERROR 5: | Consecutive tabs in line | +| ERROR 6: | Missing initial asterisk in interpretation keyword in line | +| ERROR 7: | Null exclusive interpretation found in line | +| ERROR 8: | Incorrect number of spines in interpretation record in line | +| ERROR 9: | Local comment precedes first exclusive interpretation record in line | +| ERROR 10: | Number of sub-comments in local comment does not match the number of currently active spines in line | +| ERROR 11: | Missing initial exclamation mark in local comment in line | +| ERROR 12: | Data record appears before first exclusive interpretation record in line | +| ERROR 13: | Number of tokens in data record does not match the number of currently active spines in line | +| ERROR 14: | All spines have not been properly terminated in file | +| ERROR 15: | First exclusive interpretation record contains a null interpretation in line | +| ERROR 16: | First exclusive interpretation record contains a spine-path indicator in line | +| ERROR 17: | First exclusive interpretation record contains a non-exclusive interpretation in line | +| ERROR 18: | Spine-path indicators mixed with keyword interpretations in line | +| ERROR 19: | Improper number of exchange-path indicators in line | +| ERROR 20: | Single join-path indicator found at end of interpretation record in line | +| ERROR 21: | Join-path indicator is not adjacent to another join-path indicator in line | +| ERROR 22: | Exclusive interpretations do not match for designated join spines in line | +| ERROR 23: | Leading spaces in token in line | +| ERROR 24: | Trailing spaces in token in line | +| ERROR 25: | Consecutive spaces in token in line | +| ERROR 26: | Multiple-stop contains null token in line | +| WARNING 1: | Local comment may be mistaken for global comment in line | +| WARNING 2: | Data token may be mistaken for global comment in line | +| WARNING 3: | Data token may be mistaken for local comment in line | +| WARNING 4: | Data token may be mistaken for exclusive interpretation in line | +| WARNING 5: | Data token may be mistaken for tandem interpretation in line | + + + diff --git a/tool/humdrum/tool-humdrum-example-01.txt b/tool/humdrum/tool-humdrum-example-01.txt new file mode 100644 index 0000000..cc876fc --- /dev/null +++ b/tool/humdrum/tool-humdrum-example-01.txt @@ -0,0 +1,19 @@ +**one **two **three +1 2 3 +* *+ * +* * **four * +1 2 4 3 +1 2 4 3 +* * *- * +1 2 3 +* *- * +1 2 3 +* *^ * +1 2a 2b 3 +1 2 3 +* *v *v +1 2&3 +1 2&3 +*x *x +2&3 1 +*- *- diff --git a/tool/humdrum/tool-humdrum-good.txt b/tool/humdrum/tool-humdrum-good.txt new file mode 100644 index 0000000..910be01 --- /dev/null +++ b/tool/humdrum/tool-humdrum-good.txt @@ -0,0 +1,34 @@ +!! This is a global comment. +!! The following line specifies three +!! interpretations called "inter": +**inter **inter **inter +!! The next line has three local comments. +! flute ! oboe ! fingering +We are ASCII +data tokens . +We are data as well. +!! The above three lines are data records. +!! More examples of data records: +76.3 x+y L(-)%4^ +___ __ _____ +> < ||| +!! The next data record contains +!! only null tokens: +. . . +!! Some spine-path exchanges: +!Spine1 !Spine2 !Spine3 +*x *x * +* *x *x +!Spine2 !Spine3 !Spine1 +Monday Tuesday Wednesday +4:00 5:00 6:00PM +!! Some null comments follow: +!! +! ! ! +!! New exclusive interpretations: +**foo **bar **ding +!! A tandem interpretation in spine #2: +* *bop * +More data tokens. +!! Some spine-path terminators: +*- *- *- diff --git a/tool/humdrum/tool-humdrum-options.txt b/tool/humdrum/tool-humdrum-options.txt new file mode 100644 index 0000000..350244b --- /dev/null +++ b/tool/humdrum/tool-humdrum-options.txt @@ -0,0 +1,6 @@ + +| Option | Meaning | +| ------ | ------- | +| h | displays a help screen summarizing the command syntax | +| v | verbose mode | + diff --git a/tool/humdrum/tool-humdrum-table-spine.txt b/tool/humdrum/tool-humdrum-table-spine.txt new file mode 100644 index 0000000..adf986a --- /dev/null +++ b/tool/humdrum/tool-humdrum-table-spine.txt @@ -0,0 +1,9 @@ + +| Token | Meaning | +| ----- | ----------------------------------- | +| `*+` | start a new spine | +| `*-` | terminate a current spine | +| `*^` | split a spine (into two) | +| `*v` | join (two or more) spines into one | +| `*x` | exchange the position of two spines | + diff --git a/tool/humdrum/tool-humdrum-terminology.txt b/tool/humdrum/tool-humdrum-terminology.txt new file mode 100644 index 0000000..88e14e1 --- /dev/null +++ b/tool/humdrum/tool-humdrum-terminology.txt @@ -0,0 +1,15 @@ + + +| Term | Meaning | +| --- | --- | +| *record* | A line of text; a sequences of (zero or more) ASCII characters terminated by a carriage return or newline character +| *data record* | Any *record* which is not a *comment* or an *interpretation* +| *comment* | A *global* or *local comment* +| *global comment* | Any *record* beginning with two exclamation marks (!!) +| *local comment* | Any *record* beginning with a single exclamation mark (!) +| *interpretation* | An *exclusive* or *tandem interpretation*, or a *spine-path indicator* +| *exclusive interpretation* | Any *record* beginning with one or more asterisks (\*\*) and having at least one active spine beginning with two asterisks +| *tandem interpretation* | Any *record* in which each active spine begins with a single asterisk, excluding spine-path indicators +| *spine-path indicator* | One of the following five *interpretations*: `*+`, `*-`, `*v`, `*^`, `*x`. +| *null token* | The period (.) either alone on a single *record* or separated from other characters by tabs +| *spine* | A column of information — including *data records, local* *comments*, and *interpretations.* diff --git a/tool/humdrum/tool-humdrum-verbose.txt b/tool/humdrum/tool-humdrum-verbose.txt new file mode 100644 index 0000000..b8c7192 --- /dev/null +++ b/tool/humdrum/tool-humdrum-verbose.txt @@ -0,0 +1,25 @@ +Inventory of Interpretations: HUMDRUM FILE SUMMARY + +Interpretations Occurrences +**inter 3 +**foo 1 +**bar 1 +**ding 1 +* 2 +*bop 1 + +Inventory of data token signifiers: %()+-.034567:<> +ACILMPSTW^_ +adeklnorstuwxy + +Number of global comments: 14 Number of local comments: 4 +Maximum # of concurrent spines: 3 Minimum # of concurrent spines: 3 +Number of data records: 10 Number of null tokens: 4 + + +Changes in number of spines: +New spines: 0 +Terminated spines: 3 +Split spines: 0 +Joined spines: 0 +Exchanges spines: 4