Closed truj closed 1 year ago
Also adding support for inline options and patterns in compact syntax.
Options in the form (name=value)
e.g.:
0: (v=127) (d=50%) c:/4 (l=text) d e - c+2:/8 d+ e+ -:/2+/8
More options can be combined like this: (name1=value1,name2=value2)
E.g.: (v=127,d=50%)
Patterns can be used instead of length strings, e.g.
0: c:4 d e,f,g:pat a b cmaj:pat
(If the pattern pat
and the chord cmaj
have been defined)
Or with parameters:
0: c:4 d e,f,g:pat(a,b) a b cmaj:pat(c,d)
With a
, b
, c
, d
as arbitrary parameters consumed by the pattern pat
.
Consequently the next step would be to enable compact syntax in pattern definitions as well. E.g. like this:
PATTERN pat
: (d=50%) 0:/8 1:/8 (d=20%) 2:/4
END
Which would be equivalent to:
PATTERN pat
0 /8 d=50%
1 /8
2 /4 d=20%
END
Two more things missing until this can be merged into master:
0:
In MidicaPL, add a simplified syntax to play several different notes with different lengths in one single line. It could look something like this:
0: c:/4 d e - c+2:/8 d+ e+ -:/2+/8
what is equivalent to:If the note length is omitted, the last used length of the channel is assumed.