Hey all, it's a huge thread and I may have missed something.
I 100% love this. The idea that you can only invert a chord so far, aside from western theory heritage, doesn't follow the Zero-One-Infinity rule, and this is a very neat solution. I also miss a general
invert function (as in
invert 5 "0'min6")
edit: it would be dope being able to write "[0,2,4]'iN" for inverting anonymous chords
I wanna pitch in on this: music as data has benefits in itself. One can quickly try the same melody/voicing under different keys, for instance (good luck with that on a regular notation software).
About chords: this may sound kind of dumb, but how would you play an aliasless chord shape (
"[0,4,7,13]", for instance) over a pattern using just mini-notation? You can only really do
"<0 -4>" |+ "[0,4,7,13]" as far as I know. It's great to have
'maj9, but these are not a universal solution - I can't say
'majm13 and expect the engine to understand that (quote below). We could do this though:
"<0 4>'[maj,13]" by having the engine "stack" chord groups, and perform an addition when it matches an integer - the
' operator is really just a pattern addition with a lookup, if I understand it right.
This can be just personal, but one thing I find mildly frustrating is that
f are eagerly evaluated, meaning
scale "minor" "0 2s 4 7" is not a major arpeggio (evaluates to
"0 5 7 12"), when it feels like it should be (as in
"0 4 7 12"). This is because
s is evaluated before the call to
scale, but I don't really think that's what a user would expect to achieve. Similarly, typing
scale "major" "0 2b 4 7" feels like it should be minor - isn't that how key signatures work in sheet notation? (flattening/sharpening 'escapes' the current key)
Anyway, this is a great thread, and it makes me super excited for the next tidal updates