View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001727||OpenMPT||Feature Request||public||2023-09-06 14:34||2023-09-15 10:57|
|Product Version||OpenMPT 1.31.04.00 / libopenmpt 0.7.3 (current stable)|
|Summary||0001727: Extend assignable notes for Note Column keyboard input to benefit users of custom tunings|
Currently, the Keyboard settings for Pattern Editor - Note Column allows assignment of note numbers of -12 (Base octave C) to 21 (Base octave +2 A), where note 0 is middle-C (when base octave is 4). This means that in a 31-edo custom tuning for example, the scale is broken up into two C-to-C octaves, which is inconvenient for input. For even bigger scales like 41- or 53-edo it's impossible to assign keys to all the degrees of the scale.
Extending the assignable notes in the Note Column keyboard input settings would solve these issues. Allowing assignment up to "Base Octave +3 B" (note number 35) would enable a full 31-edo C-to-C scale for example. Going up to "Base Octave +5 B" (note number 59) would fit 53-edo, although I assume most users would probably assign a smaller sample of scale degrees (the diatonics) and make small adjustments using the transpose keys.
In addition, adding note numbers to the command name in the keyboard settings UI would help all users of custom tunings. Something like this:
"Base Octave C" becomes "Base Octave C (-12)"
"Base Octave +1 C" becomes "Base Octave +1 C (0)"
"Base Octave +2 A" becomes "Base Octave +2 A (21)"
Code-wise I see that the CommandID enum in CommandSet.h and the CommandDefinitions struct in CommandSet.cpp would need to be extended and updated. There might be more I missed.
Thank you for making OpenMPT a great tool for creating xenharmonic music!
|Steps To Reproduce|
I've attached a 31-edo tuning file for testing purposes.
|Tags||No tags attached.|
|Has the bug occurred in previous versions?|
|Tested code revision (in case you know it)|
Here's the tuning file
31edo.zip (360 bytes)
Practically speaking, where are you taking those extra keys from? I have considered extending the number of assignable note key shortcuts before but it didn't seem practical at all given the limited number of available keys.
For 31-edo, I was thinking of assigning Q-\ as notes 0-12, A-; as notes 13-22, and Z-. as notes 23-31. This fits the C-to-C scale on the keyboard while removing the negative note numbers.
For 53-edo, assigning some sample of notes across the scale (for example 0/4/9/13/18/22/26/31/35/40/44/49/53) to the keyboard and using the transpose shortcuts to reach the other notes could work. Adding the note numbers to the command names in the settings would help here. I imagine different people would have their own preferences on which notes to include for easy access.
I think the natural extension of this idea would be to allow assigning arbitrary note numbers to keys. In the 53-edo example, using only 12 assigned notes per scale, you could fit 2 octaves on the keyboard if you allowed assignment of notes -53 to 53. Allowing assignment of the full -64 to 63 range would make for a really long options menu, but that might open up options for other tunings.