The preview plays a draft of every third frame, each held for three, as soon as those are in, and fills in the frames between while it plays. renderFrames takes an optional frame order (draftFirstOrder builds this one); a frame is the same whatever order it is rendered in. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
162 lines
6.4 KiB
Markdown
162 lines
6.4 KiB
Markdown
# Changelog
|
||
|
||
Every release of Effector, newest first. The version lives in one place, the
|
||
`project()` line of `CMakeLists.txt`, and each release is a `vX.Y.Z` tag on the
|
||
commit that made it. The interface shows this file under Changelog in its menu.
|
||
|
||
## [0.8.0] - 2026-09-26
|
||
|
||
### Added
|
||
- Tile swap, a video effect: tiles cut from the photographs are laid over the
|
||
canvas as Tiles lays them, and each one is swapped for another cut at a
|
||
moment of its own, so the mosaic keeps changing piece by piece. On the
|
||
command line it is `-e tileswap` with `--tileswap-rate`,
|
||
`--tileswap-layout` and the rest.
|
||
- A Quality choice under Video on Setup: Small file, Standard or High, for
|
||
how the saved video is encoded. It is kept in the project, and on the
|
||
command line it is `--video-quality small|standard|high`. Standard writes
|
||
videos exactly as before.
|
||
|
||
### Changed
|
||
- The video preview plays sooner: it renders every third frame first and
|
||
plays that draft, each frame held for three, then fills in the frames
|
||
between while it plays. The finished preview and the saved video are
|
||
unchanged.
|
||
|
||
## [0.7.0] - 2026-09-26
|
||
|
||
### Added
|
||
- Effects are image effects or video effects. The Add effect menu lists them
|
||
in two sections, each under its own heading, and offers video effects only
|
||
in a video project. In the chain a video stage has a film icon, and in a
|
||
still it is dimmed and skipped, like a stage that is switched off.
|
||
- VHS tracking, the first video effect: the colour planes sway and shake, and
|
||
a tracking bar rolls down the picture. On the command line it is
|
||
`-e tracking` with `--tracking-wobble`, `--tracking-jitter`, `--tracking-bar`
|
||
and the rest.
|
||
- `--help` lists the video effects under a heading of their own, and
|
||
`--list-effects` marks them. A video effect given for a still is skipped
|
||
with a warning.
|
||
|
||
### Changed
|
||
- Channel split is an image effect again. Its motion (Wobble, Jitter, Tracking
|
||
bar) has moved to VHS tracking, so a 0.6 video project that moved its channel
|
||
split needs a VHS tracking stage after it. Stills are unchanged.
|
||
|
||
## [0.6.1] - 2026-09-26
|
||
|
||
### Fixed
|
||
- Opening a project whose images would not fit in memory no longer gets
|
||
Effector killed by the system. The images are measured before any is read,
|
||
and a batch that would not fit is refused with a message saying how much it
|
||
needs; the images stay in the project, so saving it keeps them.
|
||
- A canvas too large to render in the free memory is refused the same way,
|
||
in the interface and on the command line, instead of taking the machine's
|
||
memory down with it.
|
||
|
||
## [0.6.0] - 2026-09-26
|
||
|
||
### Added
|
||
- Video projects: switch Video on under Setup and give the clip a length and a
|
||
frame rate, or pick a preset that sets the canvas too: Instagram story,
|
||
Instagram reel, Instagram feed video, TikTok / YouTube Short, Square loop and
|
||
Full HD clip. The preview renders the clip and loops it, with play/pause and
|
||
a scale to look at any one frame.
|
||
- Save As… writes a video project as `.mp4`, `.mov`, `.mkv`, `.webm` or `.gif`
|
||
through `ffmpeg`, with a progress window that can cancel it.
|
||
- Channel split moves in a video: its channels sway, shake from frame to frame
|
||
and a tracking bar rolls down the picture, like an old tape on a tube. The
|
||
new Wobble, Jitter and Tracking bar settings show only in a video, and a
|
||
still renders exactly as before.
|
||
- `--duration`, `--fps` and `--video-preset` render a video from the command
|
||
line.
|
||
- A Vertical Full HD canvas format, 1080 × 1920.
|
||
|
||
## [0.5.3] - 2026-09-26
|
||
|
||
### Added
|
||
- Effector has its own icon, an E split into its colour channels, in the app
|
||
menu, the dock and About Effector; a one-colour version goes with it for
|
||
panels.
|
||
|
||
## [0.5.2] - 2026-09-26
|
||
|
||
### Changed
|
||
- Effector is free software under the GNU General Public License, version 3
|
||
or later; the `LICENSE` file holds the text, and About Effector says so.
|
||
|
||
## [0.5.1] - 2026-09-26
|
||
|
||
### Added
|
||
- An Arch Linux `PKGBUILD` in `packaging/arch`: `makepkg -si` there builds and
|
||
installs the tagged release with pacman.
|
||
- A desktop entry, so an installed Effector shows up in the app menu.
|
||
|
||
## [0.5.0] - 2026-09-26
|
||
|
||
### Added
|
||
- A version number: `effector --version` prints it, and About Effector in the
|
||
menu shows it.
|
||
- This changelog, readable from the interface under Changelog in the menu.
|
||
- Open Recent in the project menu, listing the projects opened or saved here.
|
||
- An optional shadow or glow under the image overlay, with an offset, size,
|
||
spread, colour and opacity.
|
||
- Reordering the chain by dragging a row.
|
||
|
||
### Fixed
|
||
- The params' scrollbar no longer covers the spin buttons.
|
||
|
||
## [0.4.0] - 2026-09-23
|
||
|
||
### Added
|
||
- Eight chaotic effects: slit shift, channel split, pixel sort, corruption,
|
||
shatter, warp, bit crush and feedback. None needs sources, so any of them can
|
||
lead a chain.
|
||
- The sidebar split into Chain and Setup tabs.
|
||
- A rotation for the text effect's placement.
|
||
- Text stages labelled in the chain list with their words.
|
||
|
||
### Changed
|
||
- The preview stays centred however long the status line gets.
|
||
- The status line stays short, with the full chain and setup in its tooltip.
|
||
- The chain/params split fits the chain's rows until it is dragged; a
|
||
double-click on the handle fits it again.
|
||
- The mouse wheel scrolls past spin buttons that do not have the focus.
|
||
|
||
## [0.3.0] - 2026-09-19
|
||
|
||
### Added
|
||
- Named styles: several text stages can share one font and colour, and editing
|
||
the style moves every stage that follows it.
|
||
- Switching a chain stage off without taking it apart, in the interface and
|
||
with `--disable NAME` on the command line.
|
||
|
||
### Changed
|
||
- The interface opens on an empty chain, and shows the sources only when the
|
||
chain uses them.
|
||
|
||
## [0.2.0] - 2026-09-18
|
||
|
||
### Added
|
||
- Effect chains: stages cascade, each handed the previous one's output, built in
|
||
the sidebar or with repeated `-e`.
|
||
- Blur, film grain, black and white, image overlay, text and tiles effects.
|
||
- Projects saved and opened as plain JSON.
|
||
- Standard web and print canvas formats (`--format`, `--dpi`).
|
||
- Effects declare whether they need source images, so a chain led by blur
|
||
renders with none loaded.
|
||
|
||
### Changed
|
||
- The chain comes first in the sidebar.
|
||
|
||
### Fixed
|
||
- The canvas size is checked before it is narrowed to an int.
|
||
- Projects are written and read in the C locale, and keep the seed whole.
|
||
|
||
## [0.1.0] - 2026-09-18
|
||
|
||
### Added
|
||
- The C++20 port of the Python prototype: a GTK 4 interface and a headless
|
||
command line over pluggable effects, starting with scanlines.
|
||
- Source images load in the background, with a progress window and Cancel.
|