View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001727 | OpenMPT | Feature Request | public | 2023-09-06 14:34 | 2024-03-23 16:38 |
Reporter | Messyblue | Assigned To | Saga Musix | ||
Priority | normal | Severity | minor | Reproducibility | N/A |
Status | resolved | Resolution | fixed | ||
Platform | x64 | OS | Windows | OS Version | 10 |
Product Version | OpenMPT 1.31.04.00 / libopenmpt 0.7.3 (upgrade first) | ||||
Target Version | OpenMPT 1.31.06.00 / libopenmpt 0.7.6 (upgrade first) | Fixed in Version | OpenMPT 1.31.06.00 / libopenmpt 0.7.6 (upgrade first) | ||
Summary | 0001727: Extend assignable notes for Note Column keyboard input to benefit users of custom tunings | ||||
Description | Related: 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 |
| ||||
Additional Information | 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 |
|
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. |
|
I made an account here to suggest the same thing! I sometimes use a custom 19edo keyboard layout and almost all the keys can be bound but still a few are out of range. For EDOs larger than this, if you have a tuning file with all the possible pitches, you might not have enough keys on the keyboard to keybind them all, but the ones you do bind still need to be in range, which is limiting. The range could be expanded in either direction; if keys could be assigned below Base Octave C, then my layout could start at Base Octave -1 A instead, so that the Z key would be assigned Base Octave C, and the highest note, backslash/pipe key would be Base Octave +2 A#. Or if it was expanded upward, then my layout could start at Base Octave C and go up to Base Octave +3 C#. Attached is a picture of the keyboard layout and what keys can and can't be bound. Thank you so much to the developers for making such a wonderful tool for xenharmonic music! :) |
|
As of r20224, available shortcuts now go up to base octave + 4 B. Please give it a try, as it hasn't been tested very much. You can download test builds from https://builds.openmpt.org/builds/ (should show up in a few hours there) or set the update channel to "Development" (ditto). |
|
I'm able to assign a full 31-edo C-to-C scale to different keys using r20224. Thank you! |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2023-09-06 14:34 | Messyblue | New Issue | |
2023-09-06 14:40 | Messyblue | Note Added: 0005776 | |
2023-09-06 14:40 | Messyblue | File Added: 31edo.zip | |
2023-09-06 16:47 | Saga Musix | Note Added: 0005777 | |
2023-09-06 23:44 | Messyblue | Note Added: 0005778 | |
2024-01-16 22:56 | amimifafa | Note Added: 0005828 | |
2024-01-16 22:56 | amimifafa | File Added: 19edo keybinds.png | |
2024-01-16 22:58 | amimifafa | Note Edited: 0005828 | |
2024-03-03 18:35 | Saga Musix | Assigned To | => Saga Musix |
2024-03-03 18:35 | Saga Musix | Status | new => assigned |
2024-03-03 18:40 | Saga Musix | Note Added: 0005852 | |
2024-03-03 18:40 | Saga Musix | Status | assigned => feedback |
2024-03-03 18:40 | Saga Musix | Target Version | => OpenMPT 1.32 / libopenmpt 0.8 (goals) |
2024-03-03 18:41 | Saga Musix | Note Edited: 0005852 | |
2024-03-07 03:32 | Messyblue | Note Added: 0005866 | |
2024-03-07 03:32 | Messyblue | Status | feedback => assigned |
2024-03-23 16:38 | Saga Musix | Status | assigned => resolved |
2024-03-23 16:38 | Saga Musix | Resolution | open => fixed |
2024-03-23 16:38 | Saga Musix | Fixed in Version | => OpenMPT 1.31.06.00 / libopenmpt 0.7.6 (upgrade first) |
2024-03-23 16:38 | Saga Musix | Target Version | OpenMPT 1.32 / libopenmpt 0.8 (goals) => OpenMPT 1.31.06.00 / libopenmpt 0.7.6 (upgrade first) |