jcsteh / osara

OSARA: Open Source Accessibility for the REAPER Application
GNU General Public License v2.0
127 stars 46 forks source link

Key map update for June 2024 #1076

Open ScottChesworth opened 4 months ago

ScottChesworth commented 4 months ago

This is where we'll be discussing and tracking work on the next OSARA key map update, aiming to merge at the end of June 2024. All changes are documented in this top post, feel free to try a test build below. Please raise any concerns or alternative suggestions in the comments. Note that we're now only considering urgent issues, as we're nearing the end of the month. Download OSARA for Windows with June key map changes Download OSARA for Mac with June key map changes

Main Section Additions and Changes:

pitermach commented 4 months ago

Fitting in the theme of removing/replacing SWS related actions what do you think about #737? It will probably require some further discussion and development time but personally I think it would be useful.

ScottChesworth commented 4 months ago

what do you think about #737?

I like it. Having dry run variants available as actions is great of course, but there's no way we can map them all. A single keystroke acting on context would be something I'd use a lot and I think could make checking loudness less intimidating for new users. Hmm, the menu structure presenting all the available options feels like it's a bit beyond the scope of OSARA, but that could also be a gut reaction to me being horrible at writing that sort of C++ at the moment lol. Re the key mapping, if we add this new action, what do you think about putting it on Control+Alt+U seeing as it applies to both items and tracks? That would mean switching "Item: Move items to subproject (non-destructive glue)" to Control+Shift+U instead, because generally working with items is on Control.

pitermach commented 4 months ago

Yeah, CTRL+Alt+U makes sense. It'll probably take getting used to for anyone used to getting loudness the old way, but so will the change to what O does given I use the LFO generator more than tempo markers ☺️

On 11 May 2024, at 20:13, ScottChesworth @.***> wrote:

what do you think about #737 https://github.com/jcsteh/osara/issues/737?

I like it. Having dry run variants available as actions is great of course, but there's no way we can map them all. A single keystroke acting on context would be something I'd use a lot and I think could make checking loudness less intimidating for new users. Hmm, the menu structure presenting all the available options feels like it's a bit beyond the scope of OSARA, but that could also be a gut reaction to me being horrible at writing that sort of C++ at the moment lol. Re the key mapping, if we add this new action, what do you think about putting it on Control+Alt+U seeing as it applies to both items and tracks? That would mean switching "Item: Move items to subproject (non-destructive glue)" to Control+Shift+U instead, because generally working with items is on Control.

— Reply to this email directly, view it on GitHub https://github.com/jcsteh/osara/issues/1076#issuecomment-2105980064, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABAABTP3DIQUHAHCPLEWUJ3ZBZNU5AVCNFSM6AAAAABHSC53CWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBVHE4DAMBWGQ. You are receiving this because you commented.

ptorpey commented 4 months ago

--Pete

ptorpey commented 4 months ago

what do you think about #737 https://github.com/jcsteh/osara/issues/737 ?

[PT] Agreed. The dry render options are very useful. I already have them mapped to some of the unmapped “Y” + special keys. I generally use the actions to do the dry render within a selected area, but having the entire track done automatically would be even better. But if you add a hotkey for some of these options, then I can free up the “Y” hotkey combinations again for my custom actions!

One note: When highlighting all tracks for a dry render, I don’t think the Master track will produce any output. The Master track has to be done separately.

I like it. Having dry run variants available as actions is great of course, but there's no way we can map them all. A single keystroke acting on context would be something I'd use a lot and I think could make checking loudness less intimidating for new users.

[PT] That wouldn’t be bad, but could be a lot of work. For some people it would be nice to easily get to all of those options, but for others, they just might want to have a single keystroke to perform an action.

ScottChesworth commented 4 months ago

For some people it would be nice to easily get to all of those options, but for others, they just might want to have a single keystroke to perform an action.

The people who need all the options can get to those using the actions list, they could also set up render presets if they're not comfortable with remembering all the terminology and variants. A single keystroke that could dry run acting on context is what I'm more likely to try working on here, got a hunch that adds something new and useful. IE,

  • Select the master track and hit our new action, it dry runs master for entire project length.
  • If you select master and there's a time selection set, then we dry run master within time selection instead.
  • Select an item and hit it, we dry run that.
  • Ditto track or multiple tracks.

What I can't work out is how we'll report what's being dry run reliably. I think I see a way to speak a summary soon after the dry run has started using a recently added callLater function, but hmm, the process starting then we report what's happening seems weird to me. I do think there's something in this though, will keep thinking.

ptorpey commented 4 months ago

Very useful and flexible functionality if you can get that all to work! That would certainly save hotkeys and/or searching through the actions list.

--Pete

pitermach commented 4 months ago

Well, while the calculation is running you see the standard reaper rendering progress screen, so knowing what's happening is mostly apparent. If you're calculating loudness of specific tracks or items their names also show up, the only thing I guess could be less clear if the calculation is for the time selection and not the whole project because that still just shows the names and nothing else.

On 11 May 2024, at 22:43, ScottChesworth @.***> wrote:

For some people it would be nice to easily get to all of those options, but for others, they just might want to have a single keystroke to perform an action.

The people who need all the options can get to those using the actions list, they could also set up render presets if they're not comfortable with remembering all the terminology and variants. A single keystroke that could dry run acting on context is what I'm more likely to try working on here, got a hunch that adds something new and useful. IE,

Select the master track and hit our new action, it dry runs master for entire project length. If you select master and there's a time selection set, then we dry run master within time selection instead. Select an item and hit it, we dry run that. Ditto track or multiple tracks. What I can't work out is how we'll report what's being dry run reliably. I think I see a way to speak a summary soon after the dry run has started using a recently added callLater function, but hmm, the process starting then we report what's happening seems weird to me. I do think there's something in this though, will keep thinking.

— Reply to this email directly, view it on GitHub https://github.com/jcsteh/osara/issues/1076#issuecomment-2106026901, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABAABTONQCXIZTF3WEMFA6TZBZ7G7AVCNFSM6AAAAABHSC53CWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBWGAZDMOJQGE. You are receiving this because you commented.

ScottChesworth commented 4 months ago

while the calculation is running you see the standard reaper rendering progress screen, so knowing what's happening is mostly apparent.

On a decently powerful computer, yeah. However, I've seen plenty of machines where trying to navigate when that screen is being shown was like dancing in quicksand with a shoe full of glue.

FelipeZanabria commented 4 months ago

I think that the Close this project tab action mapped to ctrl+F4, could be mapped to ctrl+W, being consistent with Windows with respect to tab and shift+tab, which moves through the project tabs. Currently the action "Automation: Write the Moves that have just been made in all Write envelopes from the cursor to the end of the project", is mapped to ctrl+W, which could be mapped to ctrl+alt+W. What do you think?

MatejGolian commented 4 months ago

I'd have a MIDI editor suggestion. Could we map "Edit: Insert CC event at edit cursor in current lane" to plain C and remap "Edit: Toggle selection of all CC events under selected notes to Shift+C"? Remapping the latter action to use Shift as a modifier feels logical since the Shift key is often associated with selection.

MatejGolian commented 3 months ago

In case the CC lane update makes it into a public release, could we map the action Select all CC events in last clicked lane (ID 40668) to Ctrl+Alt+A?

ScottChesworth commented 3 months ago

I've added those MIDI editor suggestions to the top post, thanks. One concern, "Edit: Insert CC event at edit cursor in current lane" requires REAPER 7.16. It was released on 21st May. Feels a bit soon to assume all users will have that. Any advice @jcsteh?

jcsteh commented 3 months ago

I mean... that action just won't work for users who are running 7.15 or earlier. It is what it is. I don't know what you want me to say, LOL.

jcsteh commented 3 months ago

Unless you're concerned that 7.16 bindings will break 7.15 and earlier? I don't think they will. My guess is it'll just be like a binding for an action in an extension which isn't installed, which just means that binding does nothing.

MatejGolian commented 3 months ago

@ScottChesworth, I have suggestions for more MIDI editor changes if you don't mind.

  1. Ctrl+Alt+A - Edit: Select all notes
  2. Ctrl+Alt+C - Select all CC events in last clicked lane
  3. Ctrl+Alt+Shift+C - Unselect all CC events in last clicked lane
  4. Ctrl+Shift+C - Edit: Select all CC events in time selection (in last clicked CC lane)
  5. Shift+C - Edit: Copy events within time selection, if any (smart copy) I think you see the pattern here (A for notes and C for CCs in the last clicked lane). Regarding the Shift+C command, that should than be in line with what you're planning to do outside of the MIDI editor.
MatejGolian commented 3 months ago

@ScottChesworth, I've updated my wish list in my previous comment a bit. 🙂

ScottChesworth commented 3 months ago

Top comment updated, couple of questions to think on in the MIDI Editor section. Any entries with an unchecked check box at the beginning are things I'm not so sure about.

MatejGolian commented 3 months ago

Good idea about swapping the commands for selecting CCs as it really feels more logical, but in that case I would propose using Ctrl+Alt+Shift+A for note selection instead - consistency is key. Could Edit: Toggle selection of all CC events under selected notes be mapped to Ctrl+Alt+Shift+U? "U" as in under selected notes? The Ctrl+Alt+Shift modifier would make it consistent with those other 2 commands plus probably that's not such a widely used action so better keep the simpler modifiers free for something more essential.

ScottChesworth commented 3 months ago

Hmm I don't love the amount of Control+Alt+Shift that's creeping in here man. Multiple people have griped that they find that a tricky combination of modifiers, plus we have more users who have some difficulties around dexterity nowadays. Let's both keep thinking...

MatejGolian commented 3 months ago

I can definitely see that point. Anyway I hope we manage to find a solution that will result in the key map being reasonably consistent. IMO we probably won't be able to avoid the Ctrl+Shift+Alt modifier anyway - it's just a matter of what commands we will be using it with. BTW, I bet that Ctrl+Shift+Alt+A annoys you the most. It annoys me as well, it's just that I think it would feel nice if there was an analogy between selecting all notes and selecting all CCs in the current lane. Regarding CCs, we could also use Alt+Shift+C for something, and there's also room for using a different key/modifier for toggling CC selection under selected notes, but as you know maintaining consistency can get difficult - like in the aforementioned case. Ctrl+Alt+A feels right for selecting all notes, but than it's incosistent with selecting/unselecting CCs.

MatejGolian commented 3 months ago

I've got another one for ya. It's not that consistent, but perhaps it isn't all that bad after all: Ctrl+Alt+A - Edit: Select all notes Alt+Shift+C - Select all CC events in last clicked lane Ctrl+Alt+C - Unselect all CC events in last clicked lane Ctrl+Alt+Shift+C - Edit: Toggle selection of all CC events under selected notes Ctrl+Alt+A would be back and all the CC commands would use the C key in one way or another.

Timtam commented 3 months ago

Another thing that just came to mind @ScottChesworth. I often run into a situation where I, either intentionally or unintentionally, unplug a MIDI device while REAPER is open. There are two ways to resolve this, I think, either restarting REAPER or opening preferences, going into the MIDI device category and hitting the Reset all MIDI devices button. Both of them are really tidious to do, and I have seen various students doing the same thing when things like these happen. Wouldn't it be more convenient to:

  1. Add speech feedback to the action and
  2. map it to some key on the main keymap? It doesn't need to be prominently placed, just so that you have quicker access, anyone who frequently needs it will remember it anyway.
ScottChesworth commented 3 months ago

I don't think I knew there was an action for that. Neat! Will get that done.

ScottChesworth commented 3 months ago

Another one, should add feedback for "Send all-notes-off and all-sounds-off to all MIDI outputs/plug-ins" while I'm at it. That's been on F3 forever. Resetting can go on Shift+F3.

MatejGolian commented 3 months ago

@Timtam, great idea. I didn't know about that action either. That one will be a game changer. And @ScottChesworth (and everyone else), what do you say to the suggestions in my previous comment?

MatejGolian commented 3 months ago

If Shift+C gets mapped to Edit: Copy events within time selection, if any (smart copy), shouldn't Edit: Cut events within time selection, if any (smart cut) than be remapped to Shift+X? Unfortunately though, the action Edit: Paste preserving position in measure that's currently mapped to Ctrl+Shift+V can't be remapped according this same logic. Not saying that Ctrl+Shift+X or V absolutely have to be remapped - just have been wondering about this.

MatejGolian commented 3 months ago

Another thing I'd suggest regarding CC actions is dropping Edit: Toggle selection of all CC events under selected notes and mapping Edit: Select all CC events in time selection (even if CC lane is hidden) instead. Of course the latter action behaves different, but it allows you to do the same thing plus more since you have more precise control over which section you want to select CCs from.

ScottChesworth commented 3 months ago

Top comment updated. This is likely what I'll build for wider testing unless there are any objections soon. Most amount of changes are in the MIDI Editor section.

Timtam commented 3 months ago

This one is in there twice:

• Added "Select all CC events in last clicked lane" on Control+Alt+C.

Thats all though. Still thinking about where to put the Solo in front actions though, thats the only thing open atm right?

ScottChesworth commented 3 months ago

DOH! Fixed it, thanks. It's solo previous and next track exclusive we need new homes for, not solo in front.

Timtam commented 3 months ago

Yeah, thats the one I meant, had a decently stinky brainfart there.

MatejGolian commented 2 months ago

If it's OK, I'll rather comment here instead of starting a new issue. For a future update, could we add the CC movement commands to the key map? It seems that people do want to use them. Dunow about the letter to use though.

jcsteh commented 2 months ago

This issue is still open, but it should probably be closed since the PR associated with it is merged. I would suggest filing a new issue, since otherwise, this request is likely to get lost.

MatejGolian commented 2 months ago

@jcsteh, thanks. 😉