Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Feature Requests

Reply
 
Thread Tools Display Modes
Old 02-25-2009, 05:40 PM   #1
Marah Mag
Human being with feelings
 
Marah Mag's Avatar
 
Join Date: Sep 2008
Location: Here
Posts: 3,000
Default Rationalizing Keyboard Shortcuts

Arising from this thread: http://forum.cockos.com/showthread.php?t=32351
Which in turn arose from this one: http://forum.cockos.com/showthread.php?t=32272

The problem of running out of keys and modifier combinations for actions is pretty real. That's a shame given how extensively Reaper provides access to its commands.

Microsoft Word's macro system provides a really good model for getting beyond the modifier+key system.

When assigning a key to a native command or to a custom macro, in addition to using any combination of the Ctrl+Alt+Shift modifiers with a regular key, you can assign a secondary key to actually invoke the command. In this way, the key assignments function like a virtual menu+submenu system, and let you create better mnemonics.

Here's an e.g. of how this would work with Reaper. This would all be optional of course.

There are more split options than there are available modifiers for the S key. Plus, Alt+S is (by default) assigned to toggling Snap.

Under a Word-like system, pressing Alt+S by itself would not do anything, and Reaper would wait for the secondary key (the wait period would time out after about 2 seconds; could be interrupted with escape; and would not respond at all if the secondary key is not assigned to anything.)

In this case, toggling Snap would be Alt+S,S -- mnemonically, the first 's' would mean 'snap' and so would the second one: Alt-snap-snap, and would require just a single extra key.

Splitting items would work the same way. Instead of directly assigning the action 'Item: Split items(s) at play cursor' to Alt+Shift+S, you could assign it to Alt+S,P. Likewise, 'Item: Split at previous zero crossing could be Alt+S,Z.

'Item: Split item under mouse cursor' could be Alt+S,M.
'Item: Split items(s) at time selection' could be Alt+S,T.

And so on. A virtual Split menu with submenus.

This allows a kind of double-mnemonic system. When splitting is the task, 'Alt+S' means 'split', and the secondary letter references the type of split.

Currently, Alt+Shift+S splits at play cursor, and Ctrl+Shit+S splits under the mouse. Those both work fine and are easy enough to do. But they're kind of randomly assigned and could be just the opposite.

The downside to this system is that commands would (if so assigned by the user) require a second key. The upside is that you can assign more commands and macros to keys, and do it mnemonically, without running out of modifier keys.

This approach works extremely well in Word, which has a phenomenal customization that seamlessly integrates menus and toolbars with native commands and macros. In my Word template, Alt+M,P brings up a dialog of available macros for playback, and Alt+M,R immediately drops me into macro record mode. My entire Word environment is similarly customized. I'd be lost without it.

Would love to see something like that in Reaper.

Last edited by Marah Mag; 02-25-2009 at 05:59 PM.
Marah Mag is offline   Reply With Quote
Old 02-25-2009, 07:27 PM   #2
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 11,817
Default

If one is given the choice, which commands are simply one-key activations, as they are now, and the ones who open up to a sub-layer of commands, I'm all for it. There are things that I really don't need to be made of two layers, and some I would like to handle this way.

+1

Reaper could display this sub-layer in some way, like a tooltip that's even clickable if you wish, and appears after a preset time, just like tooltips. You can go from starting users, who needs a lot of initial help memorizing commands and learning workflows, to seasoned Reaper veterans, who need little or no visual feedback on such a sub-layer command structure.
__________________
Using Latch Preview (Video) - Faderport 16 setup for CSI 1.1 , CSI 3.10
Website
"My ego comes pre-shrunk" - Randy Thom
airon is offline   Reply With Quote
Old 02-25-2009, 07:55 PM   #3
Marah Mag
Human being with feelings
 
Marah Mag's Avatar
 
Join Date: Sep 2008
Location: Here
Posts: 3,000
Default

Yes, that's exactly how it would work. The 'sub-layer' would only be used if that's how the user set up the assignment, it wouldn't be required. The key assignment field would simply allow you to enter an optional second key if you wanted to.

In Word, there is an unobtrusive indication in the Status Bar that it's waiting for another key, though there isn't a prompt as to what that key would be.... it could be any other single key.

So yeah, it doesn't change anything from the way it currently works, it just adds the sub-layer option, which significantly increases the number of available custom assignments, and lets you organize them in a way that actually means something to you either mnemonically or semantically.
Marah Mag is offline   Reply With Quote
Old 02-26-2009, 01:59 AM   #4
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

A big +1 from me.

We are lucky to have many (potential) shortcuts in Reaper but that luxury does not make it easy (for me) to remember them easily. So some way of organising them would be great.

For me, the big plus of this suggestion is the ability to assign the actions freely to memorable mnemonics.

This approach essentially creates contextual sub-menus, with the context being set by the first key combination (Alt+S in this case). Then I just press a single key perform the action.

One valuable extension would be the Preference to pop-up the sub-menu (under the mouse cursor). So after I press Alt+S I could see the further shortcuts available: P, Z, M, T etc and their descriptions.

I could have the sub-menus turned on for a while until I remember the shortcuts then turn them off and use the shortcuts only.

Alt+Y, E, S !
__________________
DarkStar ... interesting, if true. . . . Inspired by ...

Last edited by DarkStar; 07-12-2022 at 04:46 AM.
DarkStar is offline   Reply With Quote
Old 03-02-2009, 08:27 AM   #5
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

and a March bump ...

<<attention seeking >>
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is offline   Reply With Quote
Old 03-02-2009, 09:55 AM   #6
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

??? could have sworn I already gave my ++1 for this. Must be in one of the other threads, but incase that no here it is again.

A well thought out solution to one of Reapers most serious bottlenecks.

EDIT: One question about it: Has the initial key to be held while the submenue-key is engaged, or would the first key sort of invoke sort of a 'split mode' (in your example) waiting for the second one?
Not sure, which method I'd prefer. I think the second, so I wouldn't need two hands for these combo-key-action-menues.

Last edited by gofer; 03-02-2009 at 10:01 AM.
gofer is offline   Reply With Quote
Old 03-02-2009, 10:30 AM   #7
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

... I'd go for the second method - it would be easier to use (and you could have sequences such as Alt+S,S)
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is offline   Reply With Quote
Old 03-02-2009, 02:02 PM   #8
Marah Mag
Human being with feelings
 
Marah Mag's Avatar
 
Join Date: Sep 2008
Location: Here
Posts: 3,000
Default

Quote:
Originally Posted by gofer View Post

EDIT: One question about it: Has the initial key to be held while the submenue-key is engaged, or would the first key sort of invoke sort of a 'split mode' (in your example) waiting for the second one?
Not sure, which method I'd prefer. I think the second, so I wouldn't need two hands for these combo-key-action-menues.
I totally agree. The fewer hands-per-action, the better.

The way it works in Microsoft Word (which is where I got this idea from) is that once the initial key (Alt+S) is pressed, then you release that and press an assigned secondary key. If the next key pressed is not an assigned secondary, then nothing happens. If no key is pressed, then the initial Alt+S just times out after a second or two.

What this means is that Alt+S cannot, by itself, run anything... it simply sets up the context for the secondary.

Basically, it works just like a menu, e.g., where Alt+F opens the menu, then pressing S will save the current file. If you press a key that's not assigned on the menu, nothing happens, or the menu closes (this seems to depend on how the program is set up.) In this case, the the "menus" are virtual and invisible, just key assignments. But they don't have to be....

In MS Word, you can actually put these individual assignments on existing top-level menus and their subs, or on top-level menus and subs that you create. (At least that's how it worked prior to Word 2007, which changed the menu system in significant ways, some better, some less so.)

In Word 2000, I created a top level menu called Go, accessed with Alt+G. Under Go, I have macros that go to frequently used folders, which run when I press the letter I've assigned to them in the menu: Go,L takes me to my Lyrics folder. Go,B takes me to Business. Go,G opens a sub menu called Google, where I've got macros that launch Firefox and perform different types of Google searches on words currently selected in the Word doc. Once it's set up, I never have to think about it. I just type Alt+G,G,G to perform my default Google search. It's all mnemonic. Fast, painless, brainless.

This is why it's so useful to have the macro system able to integrate with the menu system, which would also be customizable.

Currently in Reaper, T will switch you to the 'Next take'; Shift+T will switch to the 'Previous take'; Alt+Shift+T will do a 'Crop to active take'; and Shift+E will 'Show FX chain for active take'. But all the other take actions have no key assignments, including Delete and Duplicate, and have to be selected by the mouse. And why is Alt+Shift+T the Crop option and not the Delete command? Seems pretty arbitrary.

With a system like I'm describing here, you could make the following key assignments:

Next take = Alt+T,N
Previous take = Alt+T,P
Delete active take = Alt+T,D
Crop to active take = Alt+T,C
Duplicate active take = Alt+T,2 (because you end up with 2 of them)
Show FX chain for active take = Alt+T,S
Remove FX for active take = Alt+T,R
Explode all takes to new tracks = Alt+T,E (or Alt+T,X for eXplode)
Implode selected items across tracks into takes = Alt+T,I
Implode selected items on same track in takes = Alt+T, plus whatever makes sense to you.

This way, all of the Take commands are initialized with Alt+T, and are then invoked mnemonically.

The obvious problem with this is, Alt+T already opens the Track menu. But it doesn't have to. You could reassign the Track menu to whatever you wanted (when I need to do this, I choose either the second or the last letter of the word.)

Then, you could make a top level Take menu, Alt-T, and then make the same assignments as above.

Alternately, you could create a Take submenu under the top level Track menu which would open with, say, the letter T, and *then* make the same assignments as above. You never run out of mnemonics. You could even rename the Track menu to Track/Take, and Alt+T would then mean either "alt-track" or "alt-take" depending on your current work context. When you wanted to go to the next take without the mouse, you'd just do a Alt-T,T,N.

The idea is to be able to put any command anywhere you want, name it whatever you want, and assign any mnemonic you want.

Less mousing, more key assignments, less to remember, totally user configurable.

Makes things so much faster and easier.

Having the same kind of UI power in my "music processor" that I've got in my word processor would be like O.M.G!!!

Unlock the power baby!

Last edited by Marah Mag; 03-02-2009 at 02:11 PM.
Marah Mag is offline   Reply With Quote
Old 03-25-2009, 10:15 AM   #9
semiquaver
Human being with feelings
 
Join Date: Jun 2008
Posts: 4,923
Default

+1 .
semiquaver is offline   Reply With Quote
Old 04-23-2009, 11:03 AM   #10
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

and a bump for St George's day

This would make assigning memorable shortcuts much easier.
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is offline   Reply With Quote
Old 04-23-2009, 03:49 PM   #11
Evan
Human being with feelings
 
Join Date: Oct 2006
Location: Greece
Posts: 3,553
Default

There can be a floating info window which shows (live) the available keycommands + description, for the specific editor/section you are in. And say you press Alt, the info window will filter Alt and only show the list of keycommands with Alt in them. etc...

A small, resizable, optional info window.
Evan is offline   Reply With Quote
Old 04-23-2009, 04:09 PM   #12
Marah Mag
Human being with feelings
 
Marah Mag's Avatar
 
Join Date: Sep 2008
Location: Here
Posts: 3,000
Default

More sorting options, in for the Actions dialog, with sortable columns, would also be helpful. See pic below.

See also this thread: http://forum.cockos.com/showthread.p...780#post287780

Marah Mag is offline   Reply With Quote
Old 04-23-2009, 07:51 PM   #13
bogo
Human being with feelings
 
bogo's Avatar
 
Join Date: Jun 2006
Posts: 761
Default

That saimeng1r seems to be a spammer. His 5 post (to this date) are always completely off topic with commercial links. Please remove.
bogo is offline   Reply With Quote
Old 04-24-2009, 02:21 AM   #14
airon
Human being with feelings
 
airon's Avatar
 
Join Date: Aug 2006
Location: Berlin
Posts: 11,817
Default

Marah Mag, that's a nice idea.

I was searching for a particular key yesterday, and Reaper began displaying a list sorted by alphanumerics. Your idea would make it even easier than a natural sort.

The benefit of your idea for me would be a better overview on what is set for a particular key. With an alphanumeric sorting of key combos you get CTRL+G before G before SHIFT+G, so your idea will clear that up a bit.

Default sort priority would be Action->key->modifier. Sorting by key would yield Key->Modifier->Action. The modifier column is right-justified.

Would you agree?
__________________
Using Latch Preview (Video) - Faderport 16 setup for CSI 1.1 , CSI 3.10
Website
"My ego comes pre-shrunk" - Randy Thom
airon is offline   Reply With Quote
Old 04-24-2009, 09:29 AM   #15
Marah Mag
Human being with feelings
 
Marah Mag's Avatar
 
Join Date: Sep 2008
Location: Here
Posts: 3,000
Default

I agree right-justifying the modifier column makes visual sense. See pic below, sorted first by action then by key.

What would be nice is if the window retained the last sort when reopened.

Marah Mag is offline   Reply With Quote
Old 08-08-2009, 07:53 AM   #16
musicbynumbers
Human being with feelings
 
musicbynumbers's Avatar
 
Join Date: Jun 2009
Location: South, UK
Posts: 14,214
Default

posting this here as well for some additional ideas to ponder.. (as a bump too)


I love the idea of being able to make any key able to toggle between two different actions so pressing once gives one action then pressing again gives the other.

But my favourite idea is that pressing the key and releasing triggers one action BUT holding down the key for a little bit longer (option in preferences for amount of time) it can trigger another action complimentary to the first.

For instance quick press of "s" could cause solo (so you can go through tracks and solo them) but holding "s" for a long time could trigger the "solo exclusive" mode.

Things like this would be incredibly powerful and forward thinking.
musicbynumbers is offline   Reply With Quote
Old 08-08-2009, 11:37 AM   #17
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

It's in the Issue Tracker now:

http://forum.cockos.com/project.php?issueid=891

Go and Vote.
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is offline   Reply With Quote
Old 08-08-2009, 11:15 PM   #18
mabian
Moderator
 
mabian's Avatar
 
Join Date: Aug 2007
Location: Italy
Posts: 4,326
Default

Something like this?

http://forum.cockos.com/showthread.php?t=40626

As expressed in the thread, I think that there could be hardware problems preventing more than two simultaneous keypresses to work in any combinations.

- Mario
mabian is offline   Reply With Quote
Old 11-19-2010, 07:45 AM   #19
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

Copied from another Issue here:
http://forum.cockos.com/project.php?issueid=3081
Quote:
Originally Posted by IXix
If anyone has anything to add, my original (very old) proposal is in this thread.

With the ever expanding array of built-in actions, extension actions and user defined custom actions available to the REAPER user, there just aren't enough keys on the keyboard to assign useful shortcuts to all the actions that you might want to have available.

Let's take quantize as a fairly simple example. There are currently seven different quantize actions (two built-in, five SWS). Assuming for the sake of argument that I want quick access to all of them, it would make sense to group them around the 'Q' key...

Code:
Q,		Item: Quantize item positions to grid...
Ctrl + Q,	Markers: Quantize tempo markers to MIDI resolution
Ctrl+Shift+Q	SWS: Quantize item's edges to grid (change length)
Shift+Q		SWS: Quantize item's end to grid (change length)
Alt+Q		SWS: Quantize item's end to grid (keep length)
Alt+Shift+Q	SWS: Quantize item's start to grid (change length)
Ctrl+Alt+Q	SWS: Quantize item's start to grid (keep length)
Obviously it's possible to assign various combinations of ctrl/alt/shift + 'Q' but remembering which key combination triggers which action will be something of a nightmare even for a limited set of actions such as this. What happens if I want to find a key for 'File: Quit REAPER'? Ctrl+Alt+Shift+Q? How about 'File: Show render queue'? What if I have a bunch of custom quantize scripts?

My suggestion is that the user should be able to construct keyboard shortcuts from more than one set of keys. As well as vastly increasing the number of key combinations available for binding, this would also allow related sets of actions to be 'grouped' more logically under a common initial keystroke. Continuing with the quantize example, you could map the same actions as follows:

Code:
Ctrl + Q, G		Item: Quantize item positions to grid...
Ctrl + Q, M		Markers: Quantize tempo markers to MIDI resolution
Ctrl + Q, B		SWS: Quantize item's edges to grid (change length)
Ctrl + Q, Shift + E	SWS: Quantize item's end to grid (change length)
Ctrl + Q, E		SWS: Quantize item's end to grid (keep length)
Ctrl + Q, Shift + S	SWS: Quantize item's start to grid (change length)
Ctrl + Q, S		SWS: Quantize item's start to grid (keep length)
I believe the above is more logical and easier to memorise. All the related actions are grouped together under the common binding 'Ctrl + Q'. The similar actions for "Quantize item's start/end to grid" use the same basic keystrokes but with shift as a modifier for the actions that will change the item length. The second keystroke of the sequence can be assigned to a more easily memorable letter such as 'B' for 'both edges', 'S' for 'start', 'E' for end etc. Furthermore, I can now assign 'Shift + Q' to 'File: Show render queue' and 'Ctrl + Alt + Q' to 'File: Quit REAPER'

Each individual component should be either a key combination on the computer keyboard, a MIDI note or a MIDI controller to allow maximum flexibility in building your assignments.

Ideally combinations could be many levels deep but if more than two layers were allowed, a mechanism to avoid clashes would need to be found. I can think of two possible methods to do this:

1. Terminator key. Require a specific key/combo to end all combinations.
2. Timed input. Set a timer on each keydown and execute the received keystrokes when the timer elapses.
The original Issue, for your vote, is here:
http://forum.cockos.com/project.php?issueid=891
__________________
DarkStar ... interesting, if true. . . . Inspired by ...

Last edited by DarkStar; 11-19-2010 at 07:59 AM.
DarkStar is offline   Reply With Quote
Old 11-19-2010, 07:54 AM   #20
semiquaver
Human being with feelings
 
Join Date: Jun 2008
Posts: 4,923
Default

another possibility is for multi-key commands to start with a special character like ':'

that way you can still have a full set of single key commands as now in addition to multi-key ones without the need for a timing mechanism.
semiquaver is offline   Reply With Quote
Old 11-19-2010, 07:58 AM   #21
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

Ahem...

+1

IXix is offline   Reply With Quote
Old 11-19-2010, 09:20 AM   #22
semiquaver
Human being with feelings
 
Join Date: Jun 2008
Posts: 4,923
Default

just to clarify - its nice to have 2 tiers of commands - very frequently used commands like zoom in or next item need to be accessible with 1 key without a time lag. less frequently accessed commends are better done with more keys - ie :audio for 'audio device prefs'.

likewise families of actions ie ':fc' ':fs' ':fo' for folder close, folder small, folder open. for these an initial key + either 'enter' or a timer would great.

a further enhancement would be to have gestures like vi and vim -

ie: i for item t for track c for children p for parent f1 for first fx etc. so you could have:

:dt for delete track
:dch for delete children
:d4t for delete four tracks
:df1 for delete first effect in chain....

without having to set all these manually in the actions window...
semiquaver is offline   Reply With Quote
Old 11-19-2010, 12:01 PM   #23
Fabian
Human being with feelings
 
Fabian's Avatar
 
Join Date: Sep 2008
Location: Sweden
Posts: 7,416
Default

Quote:
Originally Posted by semiquaver View Post
another possibility is for multi-key commands to start with a special character like ':'

that way you can still have a full set of single key commands as now in addition to multi-key ones without the need for a timing mechanism.
OK, but we have also to think about keyboard layouts. For Swedish keyboards the colon (':') is keyed Shift+. and so would not be ideal as that special key. I think that Ctrl, Shift and Alt are enough.

No need to take us back 30 years in computing, I've done my time with vi
(and this last was meant humorously, not as flaming)
__________________
// MVHMF
I never always did the right thing, but all I did wasn't wrong...
Fabian is offline   Reply With Quote
Old 12-05-2010, 03:52 PM   #24
sly
Human being with feelings
 
Join Date: Feb 2009
Location: Denmark
Posts: 111
Default

Marah and y'all, I think this is SUCH a great idea. Voted manically.
sly is offline   Reply With Quote
Old 02-27-2011, 10:16 AM   #25
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 19,677
Default

Bump, for a second birthday.

With all the actions now (and soon) available, surely a powerful way of using / remembering multi-key shortcuts is essential.
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is offline   Reply With Quote
Old 02-28-2011, 06:58 PM   #26
Marah Mag
Human being with feelings
 
Marah Mag's Avatar
 
Join Date: Sep 2008
Location: Here
Posts: 3,000
Default

Yeah, happy birthday, old thread!
Marah Mag is offline   Reply With Quote
Old 03-01-2011, 01:34 AM   #27
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

I'm still hoping for this in v4. It becomes more necessary every day.
IXix is offline   Reply With Quote
Old 01-23-2012, 07:54 AM   #28
semiquaver
Human being with feelings
 
Join Date: Jun 2008
Posts: 4,923
Default

I've gotten deeper into vim in the last couple of years and I just have to say that the idea of gestures (not to be confused with multi-touch stuff) is very useful.

gestures are just key sequences that tell you "how much" to apply a subsequent action to.

So in vim common gestures are 'e' to word end '}' to block end ')' to end of paragraph '$' to end of line and 'j' to the next line. you can also add numbers to these so '4j' means to the end of the fourth line '4e' means to the end of the fourth word.

So in REAPER you could have keys to indicate, 'this item' 'this track' 'time selection' 'whole project' 'till the next track' 'envelope points' etc.

so if 'j' meant 'till the next track' and 'hide tcp' meant hide from tcp. you could type your leader':' followed by '6jhide tcp' to mean "hide the next six tracks from the tcp.

in the current scheme you have to first laboriously make a selection then choose the right action for the type of thing you have selected - think how fast it would be to select the next 5 items and nudge them 10 pix if you could just type :5in10px ?
semiquaver is offline   Reply With Quote
Old 01-23-2012, 08:10 AM   #29
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by semiquaver View Post
:5in10px ?
Fabian has written something above, and you continue using : , so as long as even such simple "conventions" can not be agreed to some common-standard, it will be very difficult to decide what the string commands should look like. But my suggestion would be, simple, supporting MANY different ways of triggering actions. Some could use ":", others "..", again others "ctrl,shift,alt only" or other forms. Same for "5in10px" or a different string. The format would be: prefix-string-arnold -> actions

arnold can be SPACE, ENTER, CONTROL-ENTER, I would choose SPACE.

Now let us flow the ideas here. It can be done for sure, via AutoHotkey for example. Why waiting if it can be done already?

Last edited by TonE; 01-23-2012 at 08:25 AM.
TonE is offline   Reply With Quote
Old 01-23-2012, 12:00 PM   #30
semiquaver
Human being with feelings
 
Join Date: Jun 2008
Posts: 4,923
Default

yes of course many leader characters are possible: I was just giving an example.

re: AHK not on mac...

could be at least implemented via reascript perhaps - you have to parse the input and then hopefully the functions you need are exposed...

but this would be much much cleaner if it is natively implemented.

the most basic issue is not the ui (which characters etc) but a grammer that lets you set the scope and quantities for actions and which works everywhere. so for example any action that can work on track/item/point/tab/project could accept 'tipbj' prefix etc.

I think that the best arrangement is:

leader - scope - action - argument(s)

so in my example

: 5i (next five items) n (nudge) 10px (ten pixels)

another possibility

:<>pn+3

:<>p (envelope points in time selection) n (nudge) +3 (up 3)
semiquaver is offline   Reply With Quote
Old 01-23-2012, 12:32 PM   #31
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by semiquaver View Post
track/item/point/tab/project could accept 'tipbj' prefix etc.
Ok, let us select for each of these items a single concrete example and try/discuss various possible implementation variants for the shortcut-language.

I would also prefer a longer-words-version-for-beginners which would be easier to remember and less cryptic. Typing is anyway quick, or could be if you are a long time computer user.

track: t or tr or track
item: i or it or item
point: p or pt or point
tab: b or tb or tab
project: j or pr or project

I think I would also add a "-" between each element, so we do not need any complicated intelligence in the parser.

:5in10px
: 5i (next five items) n (nudge) 10px (ten pixels)

..item5-nudge10 or
..i5-n10 (I am afraid with single character shortcuts soon everything will be another mystery) or
..it5-nd10
TonE is offline   Reply With Quote
Old 01-23-2012, 12:34 PM   #32
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by semiquaver View Post
re: AHK not on mac.
There should be similar tools, e.g. IronAHK. You can try quickly if it works there.

Code:
ReaperLove(ID)
 {
 global
 Postmessage,0x111,ID,,,ahk_class REAPERwnd
 return
 }

a::  ; goto previous marker
{
	ReaperLove(40172)
	return
}

e::  ; goto next marker
{
	ReaperLove(40173)
	return
}

Last edited by TonE; 01-23-2012 at 12:41 PM.
TonE is offline   Reply With Quote
Old 01-23-2012, 03:58 PM   #33
semiquaver
Human being with feelings
 
Join Date: Jun 2008
Posts: 4,923
Default

TonE - are you familiar with Regular Expressions ("regExp") ? This is the way to set up parsing I think - very powerful and pretty straightforward - in Python use "import re" ...

so better not to add any "formatting" characters (like '-' in your example) I think
semiquaver is offline   Reply With Quote
Old 01-23-2012, 04:08 PM   #34
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by semiquaver View Post
so better not to add any "formatting" characters (like '-' in your example) I think
I think so, too. But let us collect more ideas, we can change anyway everything. Update: Hmm, maybe having "-" or any other character e.g. "," would be not so bad, as we could display after such separator all possible further commands. So you never need to remember anything. After typing "..item5-" you would get a list with possible continuations like nudge and more. If there are millions of commands this might be handy.

Last edited by TonE; 01-23-2012 at 04:17 PM.
TonE is offline   Reply With Quote
Old 01-23-2012, 05:33 PM   #35
semiquaver
Human being with feelings
 
Join Date: Jun 2008
Posts: 4,923
Default

I like the list idea - autocomplete menu - a lot...
semiquaver is offline   Reply With Quote
Old 01-29-2012, 03:16 AM   #36
alanofoz
Human being with feelings
 
alanofoz's Avatar
 
Join Date: Sep 2009
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 943
Default

Here's an AutoHotkey script demonstrating TonE's ReaperLove. It allows you to create your own menus and shortcuts for Reaper. The actions may be macros if you wish, written in AutoHotkey rather than reaper. There is no need to change Reaper in any way; i.e. by adding shortcuts or macros - it's all done in the AutoHotkey script.

Hopefully the script and its usage will be clear once you get started. If not ask here.

This is not at all comprehensive, it's just meant as the introduction of an idea. Each user will take it in his/her own direction.

Change the extension to .ahk and run the script. (Assuming you have AutoHotkey installed - worth it anyway).

As explained in the script you then have the hotkeys Ctrl+Alt+Shift+Win+T, Ctrl+Alt+Shift+Win+F, Ctrl+Alt+Shift+Win+V and Ctrl+Alt+Shift+Win+M. Try the first mentioned first.
Attached Files
File Type: txt ReaHotkeys.txt (10.1 KB, 432 views)
alanofoz is offline   Reply With Quote
Old 01-29-2012, 07:48 AM   #37
IXix
Human being with feelings
 
Join Date: Jan 2007
Location: mcr:uk
Posts: 3,889
Default

Quote:
Originally Posted by various people
AutoHotkey stuff
While that's all very clever, this thread is supposed to be about how REAPER's built-in keyboard shortcut system could be improved. AHK is a useful tool but has nothing to do with the actual feature request under discussion.
IXix is offline   Reply With Quote
Old 01-29-2012, 12:16 PM   #38
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

I am with IXix. Let's return to use this thread for discussion how Cockos can improve keyboard shortcut handling within Reaper and create an own thread for your AHK advertizing. Not thinking limited, but concentrating on the matter the thread was intended for.
gofer is offline   Reply With Quote
Old 01-29-2012, 05:49 PM   #39
gofer
-blänk-
 
gofer's Avatar
 
Join Date: Jun 2008
Posts: 11,359
Default

Nobody said AHK is bad. You have already mentioned that AHK can help with realizing some of what the request is intended to solve, that's good and appreciated. This thread is a feature request where people ask for something to be implemented in Reaper, not a question how things could be solved using third party programs.

You are very welcome to open a thread about AHK and leave a link here.
gofer is offline   Reply With Quote
Old 01-29-2012, 08:27 PM   #40
Amazed
Human being with feelings
 
Amazed's Avatar
 
Join Date: Nov 2009
Location: Perth, W.A.
Posts: 1,708
Default

I'm very fond of mnemonics. I think it's an intuitive approach and can certainly make a package easier to learn.

As in (T)rack (W)ipe or (I)tem (S)plit (L)eft
or (T)rack (R)ename 38

The alt key is not necessary to drive a system like this. Every alpha character is a trigger but it has a limited lifespan. Say two seconds.

In this example (T)rack (W)ipe if you don't follow the t key with a w key within 2 seconds you would need to rekey the t key. If the w key followed the t key after two seconds elapses, the w key would be the trigger key for something like (W)indow (M)inimise.

Hope that makes sense. I worked on a package for the medical industry not so long ago that utilises this mechanism and it works very very well.
Amazed is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 08:17 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.