Skip to content

Sync

The Sync tab configures timecode format, frame rate, start offset, and timing compensation for MIDI synchronization. These settings affect how Plinken communicates with external hardware and software via MIDI Time Code (MTC) and MIDI Clock (MC).

Open Settings with ⌘, (macOS) or Ctrl+, (Windows/Linux), then select Sync in the sidebar.

The frame rate determines the timecode format used for MIDI Time Code (MTC) output and display. Choose the rate that matches your video or broadcast standard.

OptionFPSDrop FrameUse Case
24 fps (Film)24.0NoCinema, film post-production
25 fps (PAL)25.0NoEuropean broadcast (PAL/SECAM)
29.97 fps NDF29.97NoNTSC non-drop — continuous count
29.97 fps DF29.97YesNTSC drop-frame — matches wall clock
30 fps30.0NoDefault. Music production, some broadcast

The default is 30 fps. For video work, match the frame rate of your video project. For music-only projects, 30 fps is standard.

Set the SMPTE timecode value at the start of the timeline (position zero). This shifts all timecode display and MTC output.

FieldRangeDefaultDescription
Hours (HH)0–231Hours component
Minutes (MM)0–590Minutes component
Seconds (SS)0–590Seconds component
Frames (FF)0–(fps−1)0Frames component (max depends on frame rate)

The default start time is 01:00:00:00 — standard for broadcast and post-production work.

Each field supports three interaction methods:

  • Scroll wheel — hover over a field and scroll up/down to increment/decrement
  • Click & drag — click and drag vertically to adjust (drag up to increase)
  • Double-click — enter direct text editing mode (type digits, press Enter to confirm or Escape to cancel)

Compensate for MIDI hardware latency. These sliders add or subtract milliseconds to sync message timing, ensuring tight synchronization with external gear.

SettingRangeDefaultStorage KeyDescription
Input−10 to +10 ms0.0 mssync.input_compensation_msCompensate for latency in incoming MIDI
Output MTC−50 to +50 ms0.0 mssync.output_mtc_compensation_msShift outgoing MTC earlier/later
Output MC−50 to +50 ms0.0 mssync.output_mc_compensation_msShift outgoing MIDI Clock earlier/later
  • Input compensation — if notes from a MIDI keyboard consistently arrive early or late, adjust this to compensate
  • Output MTC compensation — if video or external recorders drift from Plinken’s timeline, shift MTC output to align
  • Output MC compensation — if external synths or drum machines feel ahead or behind the beat, adjust MIDI Clock timing

Values display in green when non-zero, with a + or prefix. A value of 0.0 ms means no compensation.

-- Set input timing compensation (ms)
pl.cmd("settings:set", { key = "sync.input_compensation_ms", value = "2.5" })
-- Set output MTC compensation (ms)
pl.cmd("settings:set", { key = "sync.output_mtc_compensation_ms", value = "-5.0" })
-- Set output MIDI Clock compensation (ms)
pl.cmd("settings:set", { key = "sync.output_mc_compensation_ms", value = "3.0" })

Frame rate and timecode offset are applied through engine commands:

-- Set frame rate (applied through engine)
pl.cmd("engine:setFrameRate", { fps = 25.0, dropFrame = false })
-- Set timecode offset (total frames from HH:MM:SS:FF)
pl.cmd("engine:setTimecodeOffset", { offsetFrames = 108000 })
CommandDescription
settings:setSet a user setting by key
engine:setFrameRateSet the timecode frame rate
engine:setTimecodeOffsetSet the timecode start offset
engine:setOutputCompensationMtcApply MTC output compensation in ms
engine:setOutputCompensationMcApply MC output compensation in ms