BPM Menu Parameters for Widgets (Presets, Ratios, Nudge, Tap)
under review
C
Costas Constantinou
Description:
Add native BPM controls as first-class
widget parameters
so any button/stepper/menu can set, step, multiply/divide, or tap tempo with quantized, show-safe behavior—plus quick preset menus (e.g., 90/100/120/128), dotted/triplet ratios, and coarse/fine nudges.Problem:
Tempo changes live require digging into actions or building custom macros. Common needs—tap tempo, ±1/±0.1 BPM nudges, x2/÷2, dotted (×1.5), triplet (×2/3), or recalling a preset—aren’t available as drop-in widget parameters with guard rails, feedback, or per-page defaults.
Proposed Solution:
- Widget Parameters (attach to Button/Stepper/Radio/Dropdown):
-
Set BPM (absolute)
, Nudge ±Δ
(0.1/0.5/1/2/5), Multiply/Divide
(×2, ÷2, ×1.5, ×2/3, custom), Cycle Presets
, Select Preset by Index/Name
, Tap Tempo
with adaptive averaging. -
Quantize change
to Beat/Bar/Loop
; optional deferred apply
HUD (“Tempo at next bar”). -
Coarse/Fine modes
via long-press/modifier; min/max clamp
and “safe range” per page. - Preset System:Per-project/pageBPM Preset List(named values, e.g.,Ballad 72,Club 128). Widgets can show aBPM menu(dropdown/stepper) sourced from this list.
- Ratios & Math:Built-in ratios (×2, ÷2, dotted, triplet, 3/2, 4/3) and custom expressions (e.g.,bpm * (swing ? 1.5 : 1)).
- Tap Tempo Enhancements:Weighted moving average, outlier rejection,minimum taps(2–4),timeout reset, and optionaltap quantize.
- Feedback & UI:LiveBPM readouttoken for labels ({tempo.bpm}), blink/pulse during apply, and conflict guard when other tempo sources are active.
- Actions & Variables:
- Actions:
Set BPM
, Nudge BPM
, Multiply/Divide BPM
, Apply BPM Preset
, Tap Tempo
, Quantize Tempo Change (on/off)
. - Vars:
tempo.bpm
, tempo.targetBpm
, tempo.changePending
, tempo.lastTapInterval
, tempoPresetIndex
. - Safety & Integration:Works withMinimum Count-In,Late-Toggle Guard,Cycle-Synced Ramps; option tolock tempoglobally; full undo.
Benefits:
- One-tap, musician-friendly tempo control directly on the canvas.
- Cleaner layouts (no macro sprawl) and safer, quantized tempo changes on stage.
- Consistent presets across projects/pages with clear feedback and limits.
Examples:
- A stepper widget: short press ±0.5 BPM, long-press±2 BPM; changes apply at thenext bar.
- A dropdown shows BPM Presets(90 · 100 · 120 · 128); selecting queues the change with a HUD countdown.
- A “Feel” button toggles dotted(×1.5) echoes by multiplying BPM-synced delays whileBPM ÷ 2for halftime breakdowns.
- A tap widget with 3-tap averagesets tempo; if tapped < 1/8 beat before the bar, itdefers to next barto avoid stutters.
This summary was automatically generated by GPT-5 Thinking on 2025-09-26.
Original Post:
Add BPM menu parameters to widgets
I wanted to create a simple halftime and double time button. I assumed this would be easy - but widgets only allow specific BPM info - not concepts like divide and multiply BPM.
ultracello
under review