Concat 0.2.3
A self-contained build for every platform Concat ships on.
What changed
- Version 0.2.3
- A waveform's bars are one pitch on screen at every zoom
- Create ARCHITECTURE-TODO.md
- A Kbd primitive, and the timeline shortcuts shown as keycaps
- The Remote address is two fields around a colon, the port a number
- Thinner, denser candles on the lanes; the bin's cards keep theirs
- Waveforms at unity, scaled by the volume where they are drawn, a bar every four pixels
- Delete TODO.MD
- One way to split, at the playhead; the razor tool is gone
- Waveforms stand on the floor, and the part over -6 dBFS goes amber
- Text preset cards are square, with one sample size for every look
- Lane switches on the left, the cross on the right, and a wider column
- Drop FFmpeg's log lines below the level before formatting them
- FFmpeg's log goes through the log facade, not standard error
- Words typed into Content are never lost on the way out
- Air above and below the library's page chips
- Taller lanes, so frames and waveforms have room
- A recent project's poster is never a black frame
- The active timeline tab loses its lime top bar
- The sound band under a video is the video's blue, not a sound clip's green
- The Text tab remade, with a colour picker worth the name
- A title is a box, sized by width and height, and never stretched
- The magnetic timeline, a switch that closes every gap
- Ripple delete, ⇧⌫ closes the gap a deletion leaves
- Open on a software adapter, and say why when the window cannot start
- One face, Hanken Grotesk, for the window and the titles
- Waveforms at the resolution of the zoom, and a sound band under every video
- Sound is green
- The tests say whether a drop ripples
- The launch screen takes three shapes by its width
- A table of how fast the parts that matter are, against budgets
- One title bar on Linux, the strip's own
- A constant-rate stream is indexed at its base rate, and the end is remembered
- One frame plan describes the frame, and both compositors draw it alike
- The locale table counts the Persian file, and every locale covers the inventory
- One scheduler decodes for the screen, and a large file gets a proxy
- The frame cache keys on the source frame, and a scheduler decodes ahead
- Bump BUILT_IN locale array length for fa
- Add Persian (fa) locale
- Captions land above the video, not under it
- Ripple existing clips right when a drop would overlap them
- Has_non_finite catches transition_in and text in UpdateClip
- Create timeline.rs
- A Settings switch for decoding on the hardware
- I18n: the token hint reaches every locale
- A pass carries its package and the values it was written from
- Video decodes on the platform's hardware behind a toggle
- The Remote page shows the token the server made up
- Every connection presents a token, minted when none is set
- Home and End stay in the text field being typed into
- A title's words reach the monitor as they are typed
- A single JPEG is a still, not a one-frame video
- Pan tool for the timeline
- A null crop in a patch takes the crop off
- Decode on every core
- Settings toggle for flip and reverse shortcuts
- Remove dead editor-shortcut callback from lib.rs
- Add flip/reverse keyboard shortcuts and Settings context menu toggle
- A key stays on its instant of the picture through split, trim, freeze and merge
- Cuts keep a reverse, numbers must be finite, the reader clamps like a command
- The Remote page and the Hologram effect reach every locale
- Watch only package files that exist
- A branching effect chain opens on the CPU renderer
- The mix ends by sample count, and cuts each clip at its in-point
- The mux hands the interleaver whichever packet is due next
- A Hologram effect, from holo-stage
- Update issue templates
- A freeze leaves reversed and curved pieces the way a split does
- Compare mux PTS in a common unit, not raw ticks
- Mux video and audio by timestamp, not one packet each
- Stamp mix input PTS from sample count, ignore source timestamps
- Keep in-point trim in graph, move out-point trim to Rust
- Trim audio in Rust by sample count, not by PTS in the graph
- Heal source timestamp discontinuities before the per-clip trim
- Treat filtergraph EOF as graceful input end in audio mix
- Clamp with crossed bounds is an error, not a panic
- A Remote page in Settings serves the API while the window is open
- The Concat API on a socket, JSON-RPC lines and gRPC
- Revise security policy for supported versions
- Ids, error codes, exports as jobs, and frames inline
- A title being dragged is painted in memory, not to disk
- A title's side grips set where its words wrap
- The select's list scrolls, tips wrap, and two tray tips say less
- A download source setting, hf-mirror, and downloads that resume
- A document picker on Android, and a compact dock for narrow windows
- The window keeps out of the system's bars
Download
| Apple silicon | Intel / x86_64 | arm64 | |
|---|---|---|---|
| macOS | macos-arm64.dmg
| macos-x86_64.dmg
| |
| Windows | windows-x86_64-setup.exe, .msi
| windows-aarch64-setup.exe, .msi
| |
| Linux | linux-x86_64.deb, .rpm, .AppImage
| linux-aarch64.deb, .rpm, .AppImage
| |
| Android | android-arm64.apk
| ||
| iOS / iPadOS | ios-arm64.ipa
|
Every bundle runs with nothing else installed.
- macOS: open the
.dmgand drag Concat to Applications. If macOS says
the app cannot be checked, right-click it and choose Open once. - Windows: run the
-setup.exe; it puts Concat in the Start menu and
can take it out again. The.msiis the same program for an
administrator to deploy, machine-wide. - Linux: install the
.debor the.rpmwith your package manager,
orchmod +xthe.AppImageand run it; no install needed. - Android: open the
.apkon the phone and allow the install from
this source; Android 8.0 or newer, 64-bit. - iOS / iPadOS: sideload the
.ipawith AltStore, Sideloadly or
Xcode's Devices window, which sign it with your Apple ID; iOS 15 or
newer.
SHA256SUMS lists each file's checksum.
Licences
Concat is AGPL-3.0-or-later with a plugin exception
(LICENSE-EXCEPTIONS.md).
The bundles carry FFmpeg (GPL, with x264), compile in whisper.cpp (MIT) and
link sherpa-onnx with espeak-ng (GPL-3.0); Slint is used under its GPL-3.0
option. Sources and licences:
THIRD_PARTY_NOTICES.md.