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 'maj7
, 'maj6
and '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 s
and 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