View Issue Details

IDProjectCategoryView StatusLast Update
0010386ardourfeaturespublic2026-06-30 05:58
Reportersciurius Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
Status newResolutionopen 
PlatformLinuxOSFedoraOS Version44
Product Version9.7 
Summary0010386: Please add action to nudge playhead with 1 second steps
DescriptionThe generic Mackie control surface nudges the playhead with 1 second steps when using the jogwheel.
There is, however, no user accessible action (https://manual.ardour.org/appendix/menu-actions-list/) that implements this operation. This makes it impossible to bind this operation to other keys/controls.

Suggested names:
"Common/nudge-playhead-forward-1sec"
"Common/nudge-playhead-backward-1sec"

Thanks.
Tagscontrol surface, midi_map

Activities

x42

2026-06-08 22:33

administrator   ~0030482

You can use the nudge clock to do that. When there's no selection nudge moves the playhead by the distance set in the GUI's nudge clock.

sciurius

2026-06-09 05:41

reporter   ~0030483

That's right. However, since I would like to bind this action to a dial control I would like the nudging to be independent of the setting in the GUI nudge clock. There are already standard key bindings for nudging (e.g., Alt-Left and Alt-Right) so adding this functionality to a dial is not very useful.

AFAICS the code for the default Mackie control does this by temporarily overriding the nudge distance to 1 second.

x42

2026-06-30 01:19

administrator   ~0030565

In that case a Lua action script would work. That can be bound to a key-binding, and actions can also be triggered from ctrl surfaces.

e.g.

ardour { ["type"] = "EditorAction", name = "Nudge Playhead 1 sec",
  license     = "MIT",
  author      = "Ardour Team",
}

function factory () return function ()

  if (Session:transport_rolling()) then
    -- transport is rolling, don't nudge
    return
  end

  local pos = Session:transport_sample() -- current playhead position
  local sr = Session:nominal_sample_rate ()

  Session:request_locate (pos + sr, false, ARDOUR.LocateTransportDisposition.RollIfAppropriate, ARDOUR.TransportRequestSource.TRS_UI)

end end

sciurius

2026-06-30 05:58

reporter   ~0030566

Excellent!!!

Beginners question: How can I bind a lua function in the midi map?

Issue History

Date Modified Username Field Change
2026-06-08 17:06 sciurius New Issue
2026-06-08 17:06 sciurius Tag Attached: control surface
2026-06-08 17:06 sciurius Tag Attached: midi_map
2026-06-08 22:33 x42 Note Added: 0030482
2026-06-09 05:41 sciurius Note Added: 0030483
2026-06-30 01:19 x42 Note Added: 0030565
2026-06-30 05:58 sciurius Note Added: 0030566