Skip to content
Velle Sinclair edited this page Aug 22, 2026 · 1 revision

Studio

synstudio — the photo darkroom and video editor. One application with two rooms: develop a photograph, or cut a sequence. Studio in the start menu.

The point of it being one application is that both rooms decide colour in the same place. A grade you build on a still and a grade you build on a clip are the same stack of controls, and a clip's grade is baked to a 3D LUT and handed to the renderer, so the frame you graded and the frame that is delivered agree by construction rather than by care.

synstudio gui            # the window
synstudio gui FILE       # open straight into a photograph or a project
synstudio --help         # every command; there are a lot

Everything the window does is a command underneath, so anything here can be scripted, and a batch of a hundred photographs is a loop rather than an afternoon.


Photographs

Open a picture and develop it. The original file is never written. Edits go to a sidecar next to it — photo.jpg.synstudio — so the negative stays a negative, and deleting the sidecar puts the picture back exactly as it was.

synstudio set photo.jpg exposure=0.4 contrast=15 temp=200
synstudio render photo.jpg --out developed.jpg
synstudio reset photo.jpg          # throw the edits away

RAW files open directly — Canon CR2/CR3, Nikon NEF, Sony ARW, Fuji RAF, Olympus ORF, Panasonic RW2, Pentax PEF and DNG — alongside JPEG, PNG, TIFF, WebP, AVIF and HEIF.

synstudio keys lists every develop control with its range. They fall into two kinds, and the difference matters more than it looks:

  • Pointwise — white balance, exposure, the tone regions, contrast, curves, HSL, colour grading, vibrance. These depend only on the colour of the pixel, so they can be baked into a LUT and reused on video.
  • Spatial — clarity, texture, dehaze, sharpening, noise reduction, vignette, grain. These need to look at neighbouring pixels, so they are applied as filters instead.

Local adjustments

synstudio mask photo.jpg add linear         # or: radial
synstudio mask photo.jpg list
synstudio mask photo.jpg 0 geom=0,0.6,1,1,0.2 exposure=-0.5

geom is x0,y0,x1,y1,feather in fractions of the frame.

Looks

Twelve are installed — noir, teal-orange, bleach-bypass, faded-film, portrait-warm, punch, moody-blue, high-key, cross-process, sunset-glow, mono and mono-red-filter.

synstudio look list                       # name, label, what it does, where it is
synstudio look show noir                  # exactly which controls it sets
synstudio look apply noir --to photo.jpg
synstudio look save "my look" --from photo.jpg [--label "My Look"]
synstudio look remove "my look"

A .synlook is not a lookup table — it is the develop stack written out as text, so you can read one, edit one, and see precisely what it changes. Yours live in ~/.config/synstudio/looks and win over an installed one of the same name; look remove will only delete your own.

Real LUTs are read too — synstudio luts lists what is in ~/.config/synstudio/luts. None ship. A LUT is far more often somebody's licensed work than a slider position is, so the reader and the catalogue are here and the tables are yours to bring. To go the other way and bake your own:

synstudio lut --out mine.cube --from photo.jpg --size 33

look and luts are missing from synstudio --help, which lists everything else. They work.

Making one shot match another

synstudio match photo.jpg --ref reference.jpg

Brightness, contrast and white balance, fitted through the engine rather than solved on paper — so the answer is one the develop stack can actually produce. The same thing exists for video: synstudio timeline match PROJ T C REFT REFC.

Measuring the picture

synstudio histogram photo.jpg                        # 256 bins per channel
synstudio scope photo.jpg --out s.png --kind waveform # or parade, vector
synstudio pixel 0.5 0.2 0.1 --set exposure=1          # one colour through the stack

Scopes are computed by the engine, not by a display filter, so they cannot disagree with what is rendered.


Video

A project is a text document. Nothing is rendered until you export, and the document is small enough to read, diff and keep in version control.

synstudio timeline new cut.syntl --size 1920x1080 --fps 25
synstudio timeline track cut.syntl video
synstudio timeline clip cut.syntl 0 shot.mp4 --at 0 --in 2 --out-at 9
synstudio timeline export cut.syntl --out delivery.mp4

Opening a project in the window opens the cutting room: program monitor, scrub ruler, drag and trim, razor, lift and ripple delete, and an inspector for whichever clip is selected.

The file's first line decides what it is, not its extension. A project saved as .txt is still a project, and a .syntl that turns out to be a photograph opens in the darkroom. synstudio kind FILE gives the answer.

Editing

move, trim, split, delete (with --ripple to close the gap), copy, paste, duplicate, and at to ask which clip is under a given second. None of them touch a frame — they rearrange intent.

link ties a shot to its sound so the pair moves, trims and deletes together.

What a clip can do

synstudio timeline keys lists every clip property. Beyond the obvious ones — opacity, gain, fades, speed — there is per-clip motion (scale, position, rotation, and a second set to animate towards, which is how a pan-and-zoom is built), retiming (reverse, freeze, and retime=blend|flow to invent the frames a slowdown needs), and generated title and solid clips.

Titles come in five styles — plain, lower third, subtitle, heading and roll — and synstudio fonts lists what this machine can letter them in.

Keyframes come in two kinds. timeline key pins a whole grade at an instant, and two or more of them make the grade move between them. timeline anim keys a single property — opacity, gain, a scale, an angle — with an ease of linear, in, out, inout or hold.

Transitions and effects

Sixty transitions. Dissolve and dip-to-colour, fades to black, white or grey at three speeds, wipes and slides and covers and reveals from each of four directions and each of four corners, circles and rectangles that open or close, diagonals, and the ones that are their own thing — blur, pixelize, radial, slice, squeeze, distance, noise, wind, zoom. synstudio timeline transitions lists every one with its name.

Twenty-seven effects ship — blur, glow, halation, bloom, glitch, deband, duotone, lens distortion, chromatic aberration, luma and chroma keying with despill, and the rest. synstudio fx list names them and fx show NAME gives each one's parameters with their ranges.

synstudio fx check blur      # render one frame through it before you commit

Sound

Per-track gain, pan, mute, solo — and ducking, where one track gets out of another's way, which is how a music bed sits under dialogue. There is a master fader after the mix, and fader automation in timeline seconds.

synstudio timeline track cut.syntl 1 --duck 0 --duck-amount 60
synstudio timeline loudness cut.syntl --value -14
synstudio timeline normalise cut.syntl 1 0
synstudio devices                       # what can capture
synstudio record --out vo.wav           # a take, with a live meter

loudness is what a delivery is normalised to: −23 LUFS is broadcast, −14 is what streaming platforms apply anyway. synstudio loudness FILE measures an existing file's integrated loudness, true peak and range.

Subtitles import from .srt as one title per cue, or ship as a switchable stream at export rather than burnt into the picture.

Stabilising

synstudio timeline stabilise cut.syntl 0 0 --dur 1.5 --size 5

It watches the shot and writes the analysis beside the project. --off turns it off and keeps the measurement, so switching it back on is instant.

Watching it back

The play button renders the same graph the export uses, small and fast, and plays that. It is not a second, cheaper preview that might disagree about colour — it is the delivery, at 960 wide. Any edit invalidates it and it re-renders.

Delivering

synstudio timeline presets     # youtube-1080p, reel, instagram, square, proxy…
synstudio timeline formats     # mp4, mkv, mov, h265, webm, prores, png, exr
synstudio timeline export cut.syntl --out out.mp4 --preset reel

--burn timecode|name|both stamps a review copy, --watermark F.png puts a logo over the delivered frame, and --format png or exr with --out dir/f_%04d.png writes an image sequence instead of a movie.

Renders can also be queued and run one at a time:

synstudio timeline queue cut.syntl add --out final.mp4 --preset youtube-4k
synstudio timeline queue cut.syntl run

Undo, and versions

Two different things, deliberately:

synstudio timeline undo cut.syntl
synstudio timeline redo cut.syntl
synstudio timeline history cut.syntl
synstudio timeline version cut.syntl save "rough cut"
synstudio timeline version cut.syntl list
synstudio timeline version cut.syntl restore "rough cut"

Undo is a ring and it expires. A version is a document you decided to keep, under a name, and nothing expires it.


Log footage

synstudio logcurve slog3 --value 445

What a camera's own curve means: a code value in, scene light out. Useful when you are deciding whether a shot is exposed where you think it is.


Related

  • Files — what opens a photograph when you double-click it
  • DaVinci Resolve — if you would rather use Resolve; they coexist, and syn resolve transcode exists for footage the free edition cannot read
  • Commands

Clone this wiki locally