Here are two ways it could work, with terribly-drawn mockups:
A simpler, but less flexible model. Clicking on one of the checkboxes cycles it between natural, sharp and flat. For instance, you can build Ionian ♭3 with this. “Save as name” would just add it to your list of presets and optionally use that name under the tonic in the mode selector.
A more flexible way, which could be used to construct many more complex scales, including ones with more or less than seven degrees. Essentially, you construct a scale by selecting which intervals are available in that scale, by choosing the notes that are part of the scale if it’s based on C. Hookpad can then transpose from there relatively easily, I imagine, although I obviously don’t know for sure. This would probably require a dedicated scale editor, though, unlike the previous mechanism, which could be put on the bottom of the current mode selector dialog if “Custom” is selected (as I drew it).
- More complex types of chords than Hookpad currently accounts for would be possible - the most obvious examples being the augmented triad and the fully diminished seventh chord.
- Scale naming would be tricky - but you could also just choose names like Ionian/Major ♭3 automatically based on which of the “native” modes the custom mode is most similar to.
- Any chord from a custom mode should be able to be borrowed into any other mode. Ideally, this could even replace the supermode system, although that would also require the ability to flatten or sharpen the root.
- Chord complexity ratings would need to be altered to accomodate these more complex chord types, although on the other hand, it doesn’t look like Hookpad is particularly concerned with assigning complexities to every chord. On the mutant third hand, magic chords are categorized by complexity; it might be easiest to just create an “expert” (or similar) category into which anything that can’t be categorized otherwise falls.
only with the stronger version
- It’s possible that suspended chords may take the place of triads diatonically. I think that’s a clumsy way of phrasing it, so an example will be better: in a scale C-D#-F-F#-G-…, the triad built on C is a Csus4. I have no idea how this plays with Hookpad’s chord naming system, or with actual naming.
potentially, but probably not? hmm
- I’m assuming magic chords are implemented by Markov chains, but only because that seems most natural to me. The only other way I can think of would be to write custom predictive logic and search for similar chord progressions in Theorytab, which would be… cumbersome, to say the least. Nevertheless, if magic chords have much logic beyond the Markov chains to them, that will need updating.
- I don’t use popular notation, but it might need additional treatment beyond thte adaptations made to both styles. I’m not sure.
This is probably the longest and most detailed feature request in Hookpad history, if you’ll allow me to toot my own horn for a second. It’s apparently a full five hundred words. To be fair, it’s a very complex feature, with lots and lots of subissues… Still, I probably missed something, just let me know what it is!