The new (in 21.12??) black key highlighting in the Matrix Editor is
awesome! Wanting something like this instead of the old triad highlights
was one of the two missing features in 17.12 that prompted me to look
into the source code, so imagine my surprise when I found it had already
been implemented. Not that I can imagine anyone being interested my
motivations. ;)
What might be of interest is that IMO there's a bug (or missing feature)
in the new highlighting. The old triad version respected key changes and
also major-vs-minor, re-aligning the tonic triad's root to the new key
and switching the third between natural and flat.
I think the new black key highlighting should do something similar, both
aligning to the tonic of the current key, and highlighting "black keys"
that are the accidentals in that key depending on if it's major or
minor. I'm sure that's clear, but just to beat a dead horse I'm saying
tonic plus 1,3,6,8,10 semitones in major keys, and tonic plus 1,4,6,9,11
semitones for minor keys.
I also think that the tonic needs to be highlighted differently than the
other non-black/non-tonic keys. It was fine to have it the same with the
triad highlighting because the gap between the fifth and the next tonic
made it obvious, but with all the non-accidental scale notes the same
it's too cluttered and not immediately apparent.
I have a partly working implementation of the all the above, and will
submit a merge request for review, hopefully in a day or two. It's a
fairly easy change, but I'd also like to be presumptuous and do a little
cleanup in MatrixScene.cpp at the same time. On that subject, it seems
like the current black key highlighting code is a bit preliminary. For
instance, the triad highlighting is still in there, settable in the
user's configuration (I think. I'm not familiar with that subsystem). Is
the intent to add a "triad/black-keys" control to the GUI to allow
switching it on the fly (for users who liked it the old way)?
As a pure feature request, I'd also like to add user selectable scales
and modes to the Segment -> Add Key Change... dialog that (I assume) is
shared between the Matrix and Notation Editors. Instead of the current
"Major,Minor" pulldown menu. I'd like to see two: One for scales with
Major, Natural Minor, Harmonic Minor, Melodic Minor, Minor Pentatonic,
Major Pentatonic, Blues, Whole Tone, Whole/Half Tone ... the list can go
on forever, see sites like https://allthescales.org/. Or maybe have a
"Custom" entry with additional buttons to select any subset of the 12TET
notes. (Yes, melodic minor is weird. Just the ascending version because
descending is same as natural and I can't figure out how it could be
dynamically switched between the two.)
And then also a Mode menu: Ionian (default), Dorian, Phrygian, Lydian,
Mixolydian, Aeolian, and Locrian. Yes, Major+Aeolian is the same as
Minor+Ionian, but I don't think the redundancy is a problem, and despite
being an extremely unskilled/amateur musician my understanding is that
is does make sense to talk about modes of other-than-major scales. Also
yes, there's things like Aeolian and Locrian not making sense for the
pentatonic scales because there's not enough notes in them, but that
could be handled by forcing the offset back within range or just
wrapping around modulo scale size, with or without a warning message in
either case.
Unless I get a response of "This is the stupidest feature request we've
ever heard", I'll try to implement it and submit for review and possible
approval. That will take a bit longer as my Qt-fu (adding menus and
rearranging dialogs) is pretty weak, but the actual algorithmic code for
computing in-vs-out notes of scales+modes is trivial (and something I've
done many times before in simple ad-hoc MIDI utilities that I've written
over the past few years for my own use).
_______________________________________________
Rosegarden-devel mailing list
Rosegarden-devel@lists.sourceforge.net - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel