A new Font param type (ParamSpec::makeFont) is a font family as the machine names it. The interface shows it as a family-only FontDialogButton; the command line and the project file treat it as a plain string, as they did the Text param it replaces, so existing projects and --font-family keep working. A family the machine lacks is kept as written. Bumps the version to 0.8.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
212 lines
9.5 KiB
Markdown
212 lines
9.5 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.1] - 2026-09-26
|
||
|
||
### Added
|
||
- The Font of a text stage (and of a text style) is picked from the fonts
|
||
installed on this machine with a font chooser, rather than typed by name.
|
||
The command line still takes any family, as `--font-family "DejaVu Serif"`.
|
||
|
||
## [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.
|
||
- Echo tunnel, a video effect: the picture nested inside itself as Feedback
|
||
nests it, flying into the echoes (or backing out of them) without end, a
|
||
new echo fading in at the far end as the nearest melts into the picture.
|
||
On the command line it is `-e tunnel` with `--tunnel-speed`,
|
||
`--tunnel-scale`, `--tunnel-direction` and the rest.
|
||
- Warp flow, a video effect: the picture pushed or swirled through a field
|
||
of noise as Warp does, with the field drifting so the picture ripples like
|
||
heat haze or water. On the command line it is `-e flow` with
|
||
`--flow-strength`, `--flow-travel`, `--flow-speed` and the rest.
|
||
- Sort sweep, a video effect: runs of pixels sorted as Pixel sort sorts
|
||
them, only within a window of brightness that sweeps from dark to bright
|
||
and back, so the streaks spread over one part of the picture after
|
||
another. On the command line it is `-e sweep` with `--sweep-from`,
|
||
`--sweep-to`, `--sweep-width`, `--sweep-speed` and the rest.
|
||
- Film gate, a video effect: film running through a projector, with grain
|
||
drawn anew on every frame as Film grain draws it, the picture swaying in
|
||
the gate, flicker, dust and scratches. On the command line it is
|
||
`-e filmgate` with `--gate-grain`, `--gate-weave`, `--gate-flicker`,
|
||
`--gate-dust` and `--gate-scratches`.
|
||
- Datamosh, a video effect: blocks of the picture break as Corrupt breaks
|
||
them, each for a stretch of the clip before it heals, and a displaced
|
||
block's picture smears along while it shows. On the command line it is
|
||
`-e datamosh` with `--mosh-rate`, `--mosh-hold`, `--mosh-drift`,
|
||
`--mosh-speed` and the rest.
|
||
- Strip roll, a video effect: the canvas cut into strips of the photographs
|
||
as Scanlines cuts it, and the picture in every strip rolling up or down
|
||
through its image, or sliding sideways, while the strips stay put. On the
|
||
command line it is `-e striproll` with `--roll-speed`, `--roll-axis`,
|
||
`--roll-direction` and the rest.
|
||
- Focus pull, a video effect: a lens being focused, either the whole
|
||
picture blurring as Blur blurs it and coming back sharp, or a band of
|
||
sharpness moving down the picture and back up. On the command line it is
|
||
`-e focuspull` with `--focus-mode`, `--focus-radius`, `--focus-band` and
|
||
`--focus-speed`.
|
||
- 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
|
||
- Loading images shows its first pass too: the progress window counts the
|
||
files as their sizes are checked ("Checking sizes: 3 of 40") before it
|
||
counts the decodes, the headers are read in parallel, and Cancel works
|
||
during that pass as well. The command line shows a `sizing` line likewise.
|
||
- 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.
|
||
- Save opens in the project's folder, and after the first save it offers the
|
||
last saved file's name with a number counted on (`city.png`, then
|
||
`city-1.png`, `city-2.png`), skipping names already taken.
|
||
- The Add effect menu gives the video effects more room before their list
|
||
scrolls, now that there are more of them.
|
||
|
||
## [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.
|