Skip to content

Transport Controls

The transport bar at the top of the window controls playback, recording, tempo, timing, and synchronization. All transport actions are available via keyboard shortcuts and the Lua API.

ShortcutCommandDescription
Spacetransport:toggle-playToggle play / stop
Returntransport:playPlay from current position
0transport:stopStop playback
Entertransport:to-startReturn playhead to start
,transport:backMove back one bar
.transport:forwardMove forward one bar
Hometransport:go-homeGo to bar 1 and scroll timeline
Endtransport:go-endGo to project end and scroll timeline
-- Toggle play/stop
pl.cmd("transport:toggle-play")
-- Play from current position
pl.cmd("transport:play")
-- Stop playback
pl.cmd("transport:stop")
-- Return to start
pl.cmd("transport:to-start")
-- Seek to sample position
pl.cmd("transport:seek", { position = 48000 })
-- Navigate by bar
pl.cmd("transport:forward") -- next bar
pl.cmd("transport:back") -- previous bar
-- Jump to start/end
pl.cmd("transport:go-home")
pl.cmd("transport:go-end")
PropertyTypeDefaultDescription
is_playingboolfalseCurrent playback state
tempof64120.0Tempo in BPM (20–999)
time_sig_numu84Time signature numerator (beats per bar)
time_sig_denu84Time signature denominator (beat value)
cycle_enabledboolfalseCycle (loop) mode on/off
cycle_starti640Cycle start position in ticks
cycle_endi6415360Cycle end position in ticks (default: 4 bars at 4/4)
metronome_enabledboolfalseMetronome click during playback
metronome_recording_enabledbooltrueMetronome click during recording
metronome_volumef320.7Metronome volume (0.0–1.0)
count_in_enabledboolfalseCount-in before recording
count_in_barsu81Count-in length in bars (1, 2, or 4)
noise_enabledboolfalseWhite noise test signal
record_armedboolfalseRecording armed
automation_armedboolfalseAutomation recording armed
mtc_enabledboolfalseMIDI Time Code output enabled
mc_enabledboolfalseMIDI Clock output enabled
-- Check playback state
local playing = plinken.get("transport", "is_playing")
local tempo = plinken.get("transport", "tempo")
local cycle = plinken.get("transport", "cycle_enabled")

Press R to arm recording. When armed, pressing play will record input to the armed tracks.

ShortcutCommandDescription
Rtransport:toggle-recordToggle record armed state
transport:toggle-record-autoToggle automation record armed

Plinken supports three recording types:

  • Audio recording — Records audio input to WAV files
  • MIDI recording — Records MIDI note and CC input
  • Automation recording — Captures parameter changes as CC events
-- Arm recording
pl.cmd("transport:toggle-record")
-- Arm automation recording
pl.cmd("transport:toggle-record-auto")

The default tempo is 120 BPM. Click the tempo display in the transport bar to change it. Valid range is 20–999 BPM. Tempo changes affect the grid, metronome, MIDI playback, and MIDI Clock output.

-- Set tempo to 140 BPM
plinken.set("transport", "tempo", 140.0)

Default is 4/4. The numerator sets beats per bar, the denominator sets the beat value.

-- Set to 3/4 time
plinken.set("transport", "time_sig_num", 3)
plinken.set("transport", "time_sig_den", 4)

Toggle the metronome with K. The metronome provides an audible click on each beat.

ShortcutCommandDescription
Ktransport:toggle-metronomeToggle metronome on/off
SettingDefaultDescription
Playback clickOffMetronome during normal playback
Recording clickOnMetronome during recording
Volume70%Click volume (0–100%)
Count-inOffPlay count-in bars before recording starts
Count-in bars1Number of count-in bars (1, 2, or 4)
-- Toggle metronome
pl.cmd("transport:toggle-metronome")
-- Set metronome with specific settings
pl.cmd("transport:set-metronome", {
enabled = true,
volume = 0.5
})
-- Enable count-in
pl.cmd("transport:toggle-countin")
-- Set count-in to 2 bars
pl.cmd("transport:set-countin", { bars = 2 })
-- Enable count-in explicitly
pl.cmd("transport:set-countin-enabled", { enabled = true })

Toggle cycle (loop) mode with Shift+C. When enabled, playback loops between the cycle start and end points.

ShortcutCommandDescription
⇧Ctransport:toggle-cycleToggle cycle mode
transport:set-cycle-startSet cycle start position (ticks)
transport:set-cycle-endSet cycle end position (ticks)

The default cycle region is 4 bars (15,360 ticks at 4/4 time).

-- Toggle cycle mode
pl.cmd("transport:toggle-cycle")
-- Set cycle region to bars 5–8
pl.cmd("transport:set-cycle-start", { tick = 15360 }) -- Bar 5
pl.cmd("transport:set-cycle-end", { tick = 30720 }) -- End of bar 8
-- Read cycle state
local enabled = plinken.get("transport", "cycle_enabled")
local start = plinken.get("transport", "cycle_start")
local end_pos = plinken.get("transport", "cycle_end")

The transport provides built-in test signals for monitoring and calibration.

CommandDescription
transport:toggle-noiseToggle white noise at −20 dB
transport:set-noiseEnable/disable noise with optional volume
transport:set-toneEnable/disable test tone with optional volume/frequency
-- Toggle white noise test signal
pl.cmd("transport:toggle-noise")
-- Set specific noise level
pl.cmd("transport:set-noise", { enabled = true, volume = 0.1 })
-- Play a test tone
pl.cmd("transport:set-tone", {
enabled = true,
volume = 0.3,
frequency = 1000 -- 1 kHz
})

Plinken can send MIDI synchronization signals to external hardware and software.

ShortcutCommandDescription
transport:toggle-mtcToggle MIDI Time Code output
transport:toggle-mcToggle MIDI Clock output

Sends SMPTE timecode for positional sync. External devices can lock to Plinken’s timeline position.

Sends tempo-based clock pulses (24 ppqn) for beat sync. External sequencers and arpeggiators can follow Plinken’s tempo.

-- Enable MTC output
pl.cmd("transport:toggle-mtc")
-- Enable MIDI Clock output
pl.cmd("transport:toggle-mc")
-- Check sync state
local mtc = plinken.get("transport", "mtc_enabled")
local mc = plinken.get("transport", "mc_enabled")
CommandShortcutDescription
transport:playReturnStart playback
transport:stop0Stop playback
transport:toggle-playSpaceToggle play/stop
transport:to-startEnterReturn to start
transport:seekSeek to sample position
transport:back,Move back one bar
transport:forward.Move forward one bar
transport:go-homeHomeGo to bar 1
transport:go-endEndGo to project end
transport:toggle-recordRToggle record armed
transport:toggle-record-autoToggle automation record
transport:toggle-cycle⇧CToggle cycle mode
transport:set-cycle-startSet cycle start (ticks)
transport:set-cycle-endSet cycle end (ticks)
transport:toggle-metronomeKToggle metronome
transport:set-metronomeSet metronome state/volume
transport:toggle-countinToggle count-in
transport:set-countinSet count-in bars (1/2/4)
transport:set-countin-enabledEnable/disable count-in
transport:toggle-noiseToggle white noise
transport:set-noiseSet noise state/volume
transport:set-toneSet test tone state/volume/freq
transport:toggle-mtcToggle MTC output
transport:toggle-mcToggle MIDI Clock output