Add play-current-bar-only

Ctrl+Alt+Space plays the cursor's bar and stops at the next bar line, so the
same bar can be fired repeatedly while nudging a note without reaching for
stop. Alt+Space keeps its play-onwards behaviour.

The stop is performed by the preview daemon rather than the action script: a
script that stayed alive waiting for the bar to end would bring back REAPER's
"already running" prompt on the next press, which is the problem the daemon
exists to avoid. Stopping transport can move the edit cursor depending on
preferences, and the edit cursor is the grid cursor, so the daemon restores it.

A short arming window covers the gap between requesting playback and the
transport reporting as playing, so the pending stop is not cancelled instantly.
This commit is contained in:
2026-08-14 20:04:20 +02:00
parent 8fd1b4755f
commit fc378e733b
6 changed files with 71 additions and 14 deletions
+16 -5
View File
@@ -81,7 +81,8 @@ actions by hand in Actions → Show action list. That always works.
| `Alt+Shift+Up` / `Alt+Shift+Down` | Velocity up / down | — |
| `Alt+G` | **Toggle grid mode on/off** | — |
| `Alt+H` | Toggle hold mode | — |
| `Alt+Space` | Play from start of the current bar | works in both modes |
| `Alt+Space` | Play from start of the current bar, onwards | works in both modes |
| `Ctrl+Alt+Space` | Play the current bar only, then stop | works in both modes |
| `Alt+A` | Repeat current cell (speak + sound) | — |
| `Alt+S` | Set root and scale | — |
| `1``9` | Grid size — REAPER's own grid actions | same |
@@ -152,8 +153,13 @@ off afterwards.
## Hearing it in context
`Alt+Space` plays from the **top of the bar the cursor is in**, and says which
bar. Stop with `Space` as usual.
Both of these play from the **top of the bar the cursor is in**, and say which
bar:
- **`Alt+Space`** — plays from the bar line and keeps going. Stop with `Space`.
- **`Ctrl+Alt+Space`** — plays that bar **only**, stopping at the next bar
line. Nothing to stop by hand, so you can fire it repeatedly while nudging a
note and hear the same bar each time.
Auditioning a cell tells you what a note *is*; playing from the downbeat tells
you whether it is in the right *place*. At 16ths or 32nds that difference is
@@ -163,8 +169,13 @@ Your position is preserved. The edit cursor doubles as the grid cursor, so it
is moved to the bar line only long enough to start playback and then put
straight back — you carry on editing exactly where you were.
This one works whether or not grid mode is on, since it is a listening aid
rather than an editing action.
Both work whether or not grid mode is on, since they are listening aids rather
than editing actions.
The bar-only stop is carried out by the preview daemon, not by the action
script — a script that stayed alive waiting for the bar to end would trigger
REAPER's "already running" prompt on the next press. Stopping can move the
edit cursor depending on your preferences, so the daemon puts it back.
## Shifting notes in time