Skip to content

OVNI v0.3.0 — SUPERNOVA: media session, four new worlds, real LFOs

Choose a tag to compare

@joaquincerrano joaquincerrano released this 05 Sep 16:04
· 1 commit to main since this release

SUPERNOVA v0.3.0 — audio-reactive visual synth · macOS (Universal, arm64 + Intel) · VST3 · AU · standalone app · free, AGPLv3.

Signed and notarized installer: OVNI-SUPERNOVA-v0.3.0.pkg (SHA-256 in SHA256SUMS.txt). Run it over v0.2.0; your presets and sessions carry over.

What's new

SUPERNOVA becomes a playable instrument. A SUPERNOVA-only release: the MEDIA
session — a strip of photos and video you can cue, reorder, relink and drive from
a MIDI pad — a sequence clock that cuts on the beat, an LFO section that means
what it says, and four kaleidoscope worlds swapped for a photographic family
(still 50 worlds). The seven OVNI audio plugins and ORBIT are unchanged and are
not part of this release. macOS-only, as before.

Added

  • MEDIA strip — see your session. A filmstrip of numbered thumbnails between
    the visual and the knobs shows every photo/video in order, the current one with
    a countdown to the next change. Click to cue (← / → too), drag to reorder,
    ✕ to remove, right-click for rotate / move to start / reveal / clear, + to
    add. Number keys 19 / 0 cue a tile straight away. Thumbnails are
    decoded in the background with the same orientation the engine uses. in
    the top bar hides/shows it; drop a folder to load all its photos in name
    order; iPhone HEIC, WebP and TIFF are accepted (macOS). Removing,
    reordering, rotating and clearing the session are all undoable (Cmd+Z).
    The session — a sequence, or a single photo or video with its rotation — is
    saved with the project and with user presets, so reopening brings it back.
    Loading a project always wins: if the host restores one while you are playing,
    the session it carries takes over, and a cue that lands in that same instant is
    applied to the freshly loaded session instead of being written back over it.
  • Drop photos between two tiles. The MEDIA strip is now its own drop target: files or a folder
    dropped on it are inserted at that position (an insertion line shows where), instead of always
    landing at the end of the session. The photo on screen keeps playing — only its number changes.
  • Missing media is marked, not dropped. If a photo or video has moved, its tile stays in the
    session marked missing (red !, greyed name) instead of silently disappearing when the
    project reopens; the sequence skips it, and right-click offers Relink… for that file or
    Relink folder… to recover every missing item of that folder at once. A file that returns to
    its place heals itself. Nothing cuts to a missing tile — the sequence, ← / →, the number keys
    and the MIDI cues all step over it, and clicking one opens its relink menu instead.
  • Canvas format (FORMAT chip). The canvas now has a shape, like a project
    format: AUTO follows the first item (vertical photo → 9:16, square →
    1:1, landscape → 16:9), or pick FREE / 16:9 / 9:16 / 1:1 / 4:5 / 4:3. The
    visual is drawn letterboxed to it in the editor, the app, fullscreen output and
    the Syphon feed; the EXPORT menu lists the matching preset first. FIT / FILL
    chooses letterbox vs. crop-to-fill. Pure layout — the render engine and its
    byte-exact goldens are untouched.
  • Sequence clock, order and transition. The sequence can advance by
    Seconds, by Beats of the tempo (host BPM / TAP — cuts on the bar) or on
    every Kick with a minimum gap; Loop or Shuffle (Shuffle is the order
    the clock advances in — stepping by hand with ← / → or notes 88 / 89 always
    walks the strip in order, so next-then-previous puts you back where you were); Cut or
    Burst (the old photo explodes and re-forms as the new one). Persisted with
    the project and presets. In Beats, a cue waits for the next bar (the armed
    tile shows a dashed outline) instead of cutting mid-phrase — the armed photo is
    decoded while it waits, so the cut lands on the beat — and holding Shift
    cuts right now. A cue asked for just before a downbeat lands on that downbeat:
    it carries the beat it was armed at (for MIDI, the beat of the note itself),
    not the beat of the editor tick that picked it up.
  • LFO rates: 21 beat divisions plus free-running Hz. Every division from a
    sixteenth to four bars now carries its triplet (·T) and dotted (·D)
    variant, and a FREE / Hz mode (0.05–20 Hz) runs an LFO off the clock instead
    of the tempo — it keeps moving with the transport stopped or with no host.
  • Per-LFO polarity, phase and retrigger. BI / UNI picks whether the LFO
    swings both ways around the knob or only adds from it; PHASE (0–360°) offsets
    where the cycle starts; RETRIG restarts the cycle on the current beat without
    disturbing your phase setting. All three persist with the project.
  • LFO depth now means what it says. At 100 % an LFO sweeps exactly the target
    parameter's range, and the result is clamped to that range — several LFOs on the
    same target can no longer push a parameter out of bounds.
  • LFOs are recalculated on every rendered frame instead of 30 times a second,
    so fast modulation reads as a wave rather than a staircase on a 60/120 Hz display.
  • Cue your photos from a MIDI pad. Notes 72–87 cue tiles 1–16 of the media
    session, 88 / 89 step next / previous and 90 jumps to a random photo
    (never the one on screen) — so the session stays playable in immersive or
    fullscreen, where the strip isn't visible. Cues follow the sequence clock (in
    Beats they wait for the bar, like clicking a tile); MIDI cue: now in the
    SEQ menu makes every note cut immediately.
  • A photo sequence is exported the way it plays: the clip follows the sequence
    clock (Seconds / Beats / Kick), its order (Loop / Shuffle) and its
    Burst transition, starting from the photo on screen — and the visuals react
    at the speed you saw them, with the muxed audio covering the same stretch.

Changed

  • Four worlds swapped for a photographic family. The kaleidoscope presets
    (Kaleidoscope, Hypnosis, Cathedral, Hologram) mirrored your picture into a
    mandala and the material stopped reading. Their slots now hold Parallax,
    Lantern, Meridian and Vantage
    — built on the same idea as Satellite: the
    image is preserved and reinterpreted with depth, parallax, a slow orbit, a
    subject cut-out or light, with faithful (or subtly graded) color. Still 50
    worlds. The KALEIDO control itself is untouched — turn it on in any world.
  • Rotating a photo is instant. The ⟳ button used to re-read the file, decode
    it again and re-run both Vision passes on every quarter turn — hundreds of
    milliseconds with a 12-megapixel photo. The decode is now cached upright and
    rotations are derived from it (a measured 45× on four turns). As a bonus, a
    photo reopened from a project at a given rotation and the same photo rotated by
    hand now produce exactly the same image.

Fixed

  • Sessions saved with a comma decimal separator survive. LFO banks, MIDI-learn
    maps and scenes are written and read independently of the process locale, so a
    host that switches the C locale (common in Qt/GTK apps) can no longer destroy a
    saved performance setup.
  • Undo restores your LFO bank, MIDI-learn map and scenes. They were captured in
    the undo snapshot but never re-read on undo/redo, so they stayed put.
  • A click in the instant a project loads no longer overwrites its settings.
    Toggling the canvas format, FIT/FILL, the MEDIA strip or MIDI cue: now inside
    the 33 ms between the host restoring a project and the editor picking it up
    used to overwrite the setting that had just been restored — and it did not
    correct itself. The host wins, as it already did for the session itself.

Source for this exact build: branch feat/supernova, tag v0.3.0https://github.com/ovniaudio/ovni/tree/v0.3.0
ORBIT lives in its own repo: https://github.com/ovniaudio/orbita