Videola 0.7.0 — motion blur that is motion, noise reduction that is spectral, and surround
Motion blur that is really motion, noise reduction that is really spectral, surround, and the two
things an effect chain was missing: a way out and a bypass.
New
- Motion blur, over eight real instants of the exposure. A clip carries a shutter — 0 off, 0.5 a
180-degree shutter, 1 the whole frame — and the renderer draws it once per instant of that window.
Each instant asks the core where the clip reads from then and where it stands then, and the
decoder for that picture: a clip travelling across the frame smears along its own path, including a
curved one, and material moving inside the shot smears because the samples land on different source
frames. The samples are averaged additively into a target of the clip's own and composited once — a
run ofoveroperations would weigh the last one most and be a trail rather than a smear. In the
preview and in the file, at the same eight instants. What it cannot invent is temporal detail the
material does not have, and the effects chapter
says exactly where that line is. - Spectral noise reduction. The thing the two cut filters cannot do: separate a voice from noise
sharing its band. Noise is steady and speech is not, so the floor is learned from the pauses —
the quietest fifth of the clip, averaged bin by bin — and every window is then turned down per bin by
however much of it is floor. Own radix-2 FFT, forty lines, checked against a discrete transform
written out by hand. Measured: the noise inside the tone's own band drops by more than 9 dB while
the tone stays within 2 dB. - Surround. A project is laid out over stereo or 5.1, chosen on the master strip, and every track
has a position in that field: pan left to right, rear front to back, and an LFE send that is a band
(a low-pass at the 120 Hz the specification names) rather than a place. Pairwise constant-power
placement between adjacent speakers, so a sweep keeps its loudness; a stereo bed keeps its width and
a bed panned inwards reaches the centre speaker. A 5.1 mix the browser cannot encode is delivered in
stereo rather than in silence, with the placement kept. - Effects can be removed and bypassed. Until now one could be added and never taken off again, and
Effect.enabledsat in the model since the first schema with no command able to set it — the
renderer and the audio graph had honoured the flag the whole time.effect.remove,
effect.setEnabled, and a bypass switch and a bin in every effect row. - A clip can be switched off. It keeps its place, its length and everything else; nothing draws it
and nothing plays it. Dimmed and hatched on the timeline. That is how two takes are compared. - Keyboard. Undo had no key at all. Now:
Ctrl+Z,Ctrl+Shift+Z(andCtrl+Y),Ctrl+S,
Ctrl+O,Ctrl+Eon the window;Sto cut at the playhead,Ctrl+A,Ctrl+Don the timeline;
+,-,0andHome/Endfor the view. - The view follows a running transport, paging ahead to keep the playhead on screen and never
scrolling itself while the transport stands still. - Rubber-band selection over empty timeline, selecting what it touches and giving it back when
dragged shut. - Three effects: mosaic (a face, a plate, a screen — a blur strong enough to hide one leaves its
shape readable), directional blur, and glow that spreads what is bright and keeps what is not. - Insert in the project menu: a lower third, a full-frame title, a credits card, a shape or a
countdown, laid down at the playhead. There was no way to add a title at all before. - Shapes and the countdown are drawn. Both were in the model from the first milestone and nothing
drew them. - Four more templates — quotation, before-and-after, interview, countdown — thirteen in five
categories. - Export presets: 1080p, 4K, 720p, upright 1080 × 1920, square 1080. Sizes and frame rates only,
never a bitrate. - One curve shape on every parameter of a clip. Written off once as needing the keys to line up,
which it does not: an easing belongs to a key, not to a moment.
Fixed
- The installer said the wrong company. Windows takes the publisher from the bundle identifier
when nothing says otherwise, and that identifier wascom.cargonerds.videola. It is
org.gilde.videolanow, withpublisher: gilde.orgstated outright. Changing an identifier moves
where the operating system files the application, which is why this belongs before a release. - The download button swallowed its own label on hover. It went from
#5b8cffto#7d9bffunder
white type — about 2.3:1. The fill stays put now and the light around the button answers the
pointer. True of every hero button as well, so the fix is in the theme. - A field inside the timeline lost its keys: typing an m into a marker's name dropped a marker
per letter. - A selection kept the ids of clips an undo had removed, so every action that asks "is there a
selection" said yes and then found nothing to do. project_handOffwith an unknown format now names the two it has instead of quietly writing
FCPXML.
What this round cost
Written down because the mistakes are the useful part:
- A stationary test signal cannot be told from noise. The first denoise test used a sustained
sine, so the floor was the tone and everything came out 18 dB down. Real material pauses; the
tests do now too. - An overlap-add synthesis divides by nearly zero at the ends. Without a window of padding the
ends of every clip came out eighteen times too loud — invisible to every ratio measured inside
the file, obvious to a peak reading. - Mixing three amplitudes at once loses 3 dB. The first surround panner did, and the check that
measures power at fifteen positions caught it. - A generator has no decoder. A smeared title came out black until its samples took the painted
picture; the export harness found it. paintShapefell through to its last branch and drew an ellipse for a shape name it did not
know. A mutation test found that one.
Not there yet
Layouts beyond 5.1, true peak (dBTP), gain-reduction metering, stabilisation and tracking. Signing keys
for iOS, Android, macOS and the Tauri updater are the user's to provide — without them a release carries
no updater configuration, and the path itself is built and tested.
Checked
231 Rust tests in the core across 18 suites, 1860 JS tests, and five browser harnesses: 436 GPU pixel
checks, 75 export checks through ffprobe and ffmpeg, 423 application checks, 251 layout checks and the
server bundle. Every claim above is one of them.