Skip to content

Releases: StartSWest/FluidEQ

FluidEQ 1.4.0

Choose a tag to compare

@StartSWest StartSWest released this 18 Aug 17:59

FluidEQ 1.4 turns the Karaoke Maker into a complete local production studio.
It can split a song into voice and backing tracks, transcribe the words, follow
the sung melody and carry the result all the way into the player. The Maker and
player were also rebuilt around the same transport, so moving between them now
feels like two views of the same song instead of two different tools.

New

  • Separate a song into voice and backing tracks, entirely on your PC. The
    Karaoke Maker can now prepare both stems from an ordinary song, keep them with
    the saved draft and restore them when the project comes back. Each stem can be
    heard alone, and voice, backing and melody guide each have their own level in
    the shared transport.
  • A stronger local lyric and melody pipeline. Transcription now uses
    Whisper large-v3-turbo and asks for the song's language instead of guessing;
    every language the model supports is available. Melody detection uses RMVPE
    with SwiftF0 as a fallback, follows phrase attacks and singing contours more
    naturally, and decodes stable notes with a Viterbi pass. Downloaded models,
    decoded audio and GPU memory are managed explicitly, with a visible way to
    release the memory when the work is finished.
  • The response graph can live over the Karaoke player. Double-click or use
    the expanded/fullscreen graph view while Karaoke is playing and the graph is
    drawn over the stage, with its own visibility and blur controls. Karaoke
    remains sharp, and the graph menu and pet make room for the song controls.
  • Double-click the Karaoke stage to enter or leave fullscreen. Buttons,
    sliders and other interactive controls are protected, so an ordinary control
    click never changes the window mode.
  • The OPRA headphone-correction library replaces the retired AutoEq data.
    It brings a current catalogue of more than 6,200 products and 12,000 curves,
    keeps the measurement author and source attached to each correction, and can
    update independently with the database carried on every version release.

Changed

  • The Karaoke player and Maker now use one transport. Play, seek, skip,
    backing, voice and melody-guide controls have the same icons, proportions and
    bottom position in both views. At narrower widths the large level sliders
    become compact buttons whose menus hold the same settings instead of forcing
    the bar to overflow.
  • The Karaoke Maker has a responsive, two-level header. Editing tools sit in
    the header rather than stealing a row below the preview; they stay centred
    when there is room and wrap onto their own header line when there is not.
    Playback stays in the bottom transport, and the entire editor contracts for a
    13-inch screen without hiding tools or stacking them over the title.
  • Karaoke lyrics focus more like a stage display. The current line is larger
    and brighter, the surrounding lines fade with distance instead of disappearing
    into a dark wall, and switching between player and Maker uses a short,
    low-cost transition without moving the bottom controls.
  • Responsive workspaces use the whole window. Media and Karaoke now fill the
    available height on tall, narrow windows; the side controls scroll instead of
    overlapping; the titlebar waveform gives up width before transport buttons do;
    and graph, player and Maker panes keep bounded heights at the mobile breakpoint.
  • Profiles belong to their output device. Each device now has its own profile
    folder, deleting a profile asks first, and removing some other profile no
    longer changes the current selection.
  • Visualizer choices show what they look like before playback starts. The
    look picker renders a representative frame, and the live-output strip has a
    compact wave size available from the existing size shortcut.
  • EQ Presets received a layout and interaction polish. Clearing the editable
    bands no longer makes the selected reference correction lose its name.

Fixed

  • The titlebar waveform now follows the sound the meters are showing. It
    reads the left and right channel analyzers directly, so opposite-polarity
    stereo can no longer cancel into a flat trace while both meters are active.
  • The mobile response graph no longer grows the page forever. Its narrow
    layout has a bounded viewport-relative height and cannot use its own new size
    as the next flex measurement. Media and Karaoke no longer stop halfway down
    the same narrow window either.
  • Karaoke controls no longer collide in expanded graph or fullscreen views.
    The graph options, titlebar, pet, chords, lyric-size control, playlist button
    and bottom transport all reserve the space they need, whether the top bar is
    shown or hidden.
  • The Karaoke transport no longer drifts between player and Maker. Both
    surfaces use the same bottom inset and padding, percentage labels no longer
    squeeze into neighbouring controls, and the backing-only label remains inside
    its own menu at small widths.
  • The Maker's header and tools no longer overlap. Long titles truncate,
    action groups shrink before they collide, and tool buttons keep a consistent
    icon size instead of expanding with the row.
  • Core tab changes no longer flash through a dark frame. EQ, EQ Presets,
    Voicing and Convolution remain opaque while their content changes, matching
    the already-stable Media and Karaoke tabs.
  • Saved Karaoke stems and guide vocals recover cleanly. Restored stems are
    adopted instead of separated again, the guide vocal can rebuild itself after
    an interrupted render, solos stay contained, and drafts follow the source
    content rather than a temporary filename.
  • The embedded Media browser and app window have an explicit content security
    policy.
    External navigation is constrained to the intended browser flow,
    and Chromium page zoom cannot accidentally resize the whole interface while
    the timeline keeps its own wheel gestures.
  • Output and profile state no longer invents folders for missing devices.
    Windows output discovery is kept separate from profile writes, and an absent
    output cannot leave behind a phantom profile location.

FluidEQ 1.3.1

Choose a tag to compare

@StartSWest StartSWest released this 16 Aug 05:37

Mostly the Auto normalize switch, which was getting the level wrong in three
different ways and showing the wrong number in a fourth. Also: the Karaoke Maker
had no way back to the song you started from, and these release notes had no
obvious way out.

New

  • Restore original, in the Karaoke Maker. Next to Undo and Redo. It throws
    away the whole session and rebuilds the karaoke exactly as it was imported,
    saved draft included — for when an edit went wrong several steps ago and
    undoing one at a time is not the way back. It is itself undoable, so pressing
    it by mistake costs nothing.

Changed

  • Turning Auto normalize off no longer puts back an older preamp. It used to
    restore whatever the slider was last moved to, which meant switching off could
    jump the level to a number from some earlier session. Nothing is remembered
    now: switching off keeps the level Auto normalize had arrived at and hands the
    slider control of it, so the switch decides who is in charge of the volume and
    never the volume itself.
  • The release notes have an OK button. The corner ✕ is what you reach for to
    escape something, not what you press when you have finished reading. OK sits
    at the bottom right, outside the part that scrolls, so a long changelog never
    hides it — and it holds the focus, so Enter closes the notes.

Fixed

  • Turning Auto normalize on shows the reserve it just worked out. On the
    Karaoke tab the preamp stayed on the old manual number, so the switch looked
    like it had done nothing. The sound was always right; the display was not, and
    only on tabs without the response graph — everywhere else the graph quietly
    corrected it a moment later.
  • Turning Auto normalize off no longer makes everything louder. It published
    0 dB instead of the reserve that was actually in force, so a chain holding
    back 11 dB got 11 dB louder from one click of the switch whose whole job is to
    stop it clipping.
  • Preamp: -19 is read as -19. A preamp line without the unit was read as 0
    and still reported as a successful import, so the file loaded and played at
    the wrong level with nothing to say so. The unit is optional now, like every
    other tolerant field in that parser.
  • An imported preamp is no longer overruled without a word. Automatic
    normalization recomputed over the value the file asked for, so what played was
    our number rather than the exported one. A file that carries a preamp line now
    switches automatic mode off, and the import result says that it did.
  • Profile names can no longer reach outside the profiles folder. A saved
    profile is stored under the name you give it, and that name was being used to
    build the file path without checking it stayed where it belonged. Loading,
    saving, renaming and deleting all check now, and a name that would land
    somewhere else is refused rather than quietly rewritten.
  • Links only open in a browser if they are browser links. Anything the app
    offered to open externally was handed to Windows as-is, which is not the same
    thing as opening a web page. Only http and https are passed on — the
    Remote Media player already worked this way, and now the rest of the app does
    too.
  • Rainbow mode switches off properly the first time you win it. Turning it
    off in the session it was earned in left most of the colour on screen —
    parts of the app went back to normal and the rest kept celebrating. It looked
    fixed after a restart, which is why it was easy to miss. Off means off now,
    whenever you ask for it.

FluidEQ 1.3.0

Choose a tag to compare

@StartSWest StartSWest released this 15 Aug 04:16

1.2.0 could play a karaoke file. This one can make you one, out of a song and
nothing else: the words come out of the audio, the timing comes from you tapping
along, and the melody is read off the recording. What comes out is a file the
Karaoke tab plays like any other.

The rest is about trust. A copy of FluidEQ can now tell you where it came from,
and updates arrive only from the place the build in front of you was actually
published.

New

  • A Karaoke Maker. Open a song and it walks the whole way to a finished
    karaoke file. The lyrics can be transcribed from the audio, or pasted and kept.
    Timing is recorded by ear — play the track, mark each line as it starts and
    ends, then go back and mark individual words where a line needs the detail;
    every mark can be nudged earlier or later rather than redone. The melody is
    analysed off the recording into notes you can hear, split, delete, retune or
    add to by hand. There is a count-in preview, undo and redo throughout, and the
    result goes straight to the player or saves as a project to come back to.
  • The lyric transcription downloads a model the first time you use it. It is
    a speech-recognition model fetched from Hugging Face, and it is the one thing
    in FluidEQ that reaches the network for something other than an update. It
    happens on your press, not on launch, and every other part of the Maker — the
    timing, the melody analysis, the audio itself — runs on your machine. If you
    would rather nothing was fetched, paste the words in instead and the rest of
    the Maker works exactly the same.
  • A copy of FluidEQ will tell you where it should have come from. The licence
    lets anybody copy, change, rebuild and sell this program, which is as it should
    be — but it also means somebody can hand you a build and call it ours. There is
    now a panel naming the official site and the official repository, and saying
    plainly that a download claiming to be official without a valid Windows
    signature is neither.

Changed

  • Updates come only from where your build was published. The build from
    GitHub updates from GitHub, exactly as it always has. The signed build updates
    only from its own address and never from the public repository, because signed
    installers are not published there. Which one a copy is was decided when it was
    built and is compiled into it, so it cannot be changed by editing a file in an
    installed copy. Each side checks what it downloaded before running it — the
    signed one that the signature is ours, the GitHub one that there is no
    signature at all — so an installer that ended up in the wrong place is refused
    rather than installed. Development builds do not update at all.
  • The window opens at nine tenths of your screen, centred, or maximised on
    anything below 2K. It used to open at a fixed 1428×625, centre itself for that
    height and then grow to 1036 from the same corner — which, on a 1080p screen,
    put its bottom edge under the taskbar on the very first launch.

Fixed

  • Signing in works in the Media tab. Sites that hand their sign-in to
    somebody else — Suno through Microsoft, Twitch through Amazon, and the Apple,
    Discord and Facebook buttons wherever they appear — used to reach a page the
    player refused, which looked like a broken login. Each of those sign-in hosts
    is now named, one at a time and never as a wildcard, because a page here can
    hold a live login and the list is the whole boundary. Google is listed too, but
    decides for itself whether to allow an embedded sign-in and often will not;
    that one is not ours to fix.
  • Suno's old address resolves. suno.ai still answers and redirects to
    suno.com, and a redirect the player would not follow was a dead link.

FluidEQ 1.1.0

Choose a tag to compare

@StartSWest StartSWest released this 10 Aug 01:37

Equalizer APO's configuration used to be one block per output, with every layer
poured into a single run of numbered filter lines and nothing in it saying where
the voicing stopped and your own bands began. It is now a file per layer, and
that is where most of what follows comes from: a layer with a file of its own can
be switched off without being taken apart, told apart from your own tuning when
FluidEQ starts up again, read on disk, and sent to somebody else.

New

  • Any layer switches off without being lost, and every correction has a
    strength.
    Switching one off leaves its file out of the chain rather than
    clearing its settings and stashing them, so pressing the switch again puts
    exactly the same thing back, and it survives a restart. Your bands can finally
    have a switch of their own, so can the impulse response, and Smart EQ has
    joined the driver, headphone and voicing layers in having a strength — half of
    a measured correction is a reasonable thing to want when the measurement is
    more confident than you are.
  • A headphone correction is a layer of its own, on a page of its own.
    Applying a published measurement used to replace your bands outright, so
    clearing the EQ threw the correction away with your tuning and Smart EQ read it
    as error and flattened it over a few passes. It now sits beside your bands with
    its own chip, strength, switch and curve, from either headphone database.
  • Continuous EQ. Pressing Smart EQ applies one measurement whole; this is a
    mode instead — measure, move a fraction of the way, measure again, for as long
    as there is music — so one track's emphasis and the next one's cancel out and
    only what every record agrees about survives, which is your headphones and your
    room. Detail corrects peaks and dips, Balance also evens out a bright or
    warm recording, and Target brings every record to the same tonal balance.
  • A Config tab, showing what is actually on disk. Every other panel shows
    what FluidEQ intends; this one shows what Equalizer APO has got, and the two
    differ exactly when it matters — after a hand edit, another tool, a restore
    from backup. Each output also gets one file FluidEQ creates empty and never
    writes again, applied last, for the APO commands that have no interface here.
  • Send a chain to somebody. A whole output's tuning exports to a .fluideq
    file and imports back, always onto the output you are listening to, because
    that is the only one you can judge the result on.
  • Media buttons in the title bar — previous, play/pause and next, commanding
    whatever is playing anywhere on the computer rather than only our own player.
    Expect up to a second between the press and the track changing. Windows only.
  • Play to a second output at the same time, with a level for each and nothing
    to install. What it is not: the sound arrives about a fifth of a second late,
    so it suits music in another room and not video; it runs only while FluidEQ is
    open; and every mirror carries the correction of the device you are listening
    on, because that is in the sound before FluidEQ sees it.
  • A level meter that reads in real decibels, both channels separately.
    Nothing on screen answered "how loud is this, really" before.
  • Eight genre voicings — rock, metal, pop, hip-hop and R&B, electronic, jazz,
    classical, acoustic — beside the five that were already there.
  • The graph remembers each of its sizes separately, so arranging the plot for
    a video in full screen no longer rearranges it for editing bands afterwards.
    The legend is a set of switches, one per curve, and the View menu can switch
    off the level meter and the title-bar wave.
  • The player stays signed in between runs. It ran on a session thrown away
    when the app closed, which made it no use to anyone with an account: a
    signed-out music service shows ads to somebody who pays not to see them. The
    guarantee changes from "nothing is kept" to "nothing is kept that you did not
    ask for, and one press throws all of it away" — that press is a new button in
    the player's toolbar, always visible.

Changed

  • Auto-normalise gives volume back as well as taking it away. The preamp
    could only ever attenuate, so a chain that merely cut made everything quieter
    and nothing put it back. It will not invent volume either: a narrow cut
    restores nothing, because away from its centre the chain never moved.
  • Smart EQ measures the record, not what you have already done to it. It
    treated everything it heard as correctable, so it could not see past a cut —
    a range dropped 20 dB by mistake hid the very evidence that the cut was wrong.
  • Loudness has been removed. It was an EQ curve wearing the name of something
    Equalizer APO cannot do: a loudness control on an amplifier raises perceived
    level, and APO has filters and nothing else. Measured, it lifted the ends by
    4.5 dB, the preamp reserved 4.1 dB against that boost, and the midrange ended
    five decibels down — turning it on made things quieter. The equal-loudness
    voicing curve stays, being the same idea stated honestly.
  • Spotify and SoundCloud have gone, and Suno is being tried. A button leading
    to a page that does not play is worse than no button. Spotify signed in,
    browsed and searched perfectly and never played a note, its audio being
    encrypted with a system this runtime has no decoder for; SoundCloud refused a
    sign-in by all four of its routes without producing a single error anywhere we
    could see. Suno is on the same terms as everything else: it stays only if it
    works.
  • A published correction reaches Equalizer APO as the curve it was published
    as.
    Some ship as a list of points rather than as filters and APO draws those
    natively, where until now it was FluidEQ's approximation being written out.
    Nothing on screen ever showed the difference — only the file APO reads.
  • On startup, FluidEQ can tell which layer wrote what. It used to refuse to
    read a config back at all while any layer was live, because a voicing and a row
    of hand-placed bands looked identical in the text. That refusal now applies
    only to a flat config, and which layers you had switched off comes back too.
  • Zoom moves in half steps, about 9.5% a press instead of 20%, because
    settling on a size is what people actually do with it.

Fixed

  • A chain somebody sends you can no longer carry code into Windows audio. A
    .fluideq is advertised as a settings file, and the part of it holding your own
    Equalizer APO commands was written into the config word for word — into a file
    included all the way up to APO's own, in a language that can load libraries. An
    imported block is now refused if any line loads code, includes another file, or
    carries a control character that could end one command and start another; the
    rest of the chain still imports, and the panel says what was dropped and why.
  • The player no longer writes sign-in addresses to the log. Every address it
    navigated to was recorded whole, and the report-a-problem tool attaches the
    tail of that log and offers to post it publicly. The tail of a sign-in address
    is not a location, it is the credential.
  • The player stopped handing a storage permission to anything that asked, and
    an impulse response file name can no longer smuggle a second command past the
    config writer — a newline in a name ends a line in an Equalizer APO config.
  • A band drag starts where you grabbed it. Pressing a handle threw the band
    upward before the cursor had moved a pixel, and grabbing one off-centre snapped
    it by however far off you were: it was measured against the drawn curve rather
    than against your pointer, and the two had stopped being the same curve.
  • A layer that is switched off stays switched off. Smart EQ preserved the
    voicing, the driver and the headphone correction whether or not you had
    bypassed them, so it looked for shapes that were not in the sound and rebuilt
    the layer you had just switched off inside its own.
  • Importing a chain no longer destroys the thing being imported. It dropped
    the headphone correction on the way in, then saved the profile back from what
    was live a moment later.
  • Clear on the AutoEQ page clears the correction and leaves your bands alone.
    It flattened every band, which was right back when clearing a reference meant
    undoing the bands it had written — so it wiped a tuning it no longer owned and
    left the correction playing with nothing on screen naming it.
  • A strength slider can always be moved. It was disabled while its layer was
    off, which pinned the strength wherever it happened to be. Dragging it brings
    the layer back, dragging it to zero switches the layer off, and switching a
    layer on from zero goes to full.
  • The bands do not vanish when every one of them is at zero. A flat chain is
    written as a preamp and no filter lines, because a band at 0 dB does nothing —
    but read back, "no filters" and "no bands" look identical.
  • A switched-off equaliser cannot be edited, and neither can the band handles
    with the engine off. Both stayed draggable while looking inert, so you could
    spend a minute shaping a curve connected to nothing.
  • The EQ chip is about the bands, which is all it holds now; it was naming
    itself after the headphone model, so one pair of headphones appeared twice in
    the same row. The headphone chip no longer vanishes at zero strength either.
  • Opening a dropdown no longer takes the pane's scrollbar with it, freezing
    the panel and letting its content jump sideways into the gutter. The View menu
    measures itself rather than running off the bottom of the screen, and the
    expanded graph has its left edge back.

FluidEQ 1.0.0

Choose a tag to compare

@StartSWest StartSWest released this 07 Aug 02:33

The version number is the only thing here that changed suddenly. FluidEQ has
been a finished program for a while — automatic per-output profiles, four
processing layers written into one Equalizer APO config, a measured correction,
ten languages, an updater that works. What it did not have was a video playing
underneath the spectrum, and that is what the last two releases were for. It
works now, on every site it offers, in every size the graph comes in.

So: 1.0. Not because a milestone was reached, but because calling it 0.x had
stopped being honest.

New

  • Switch any layer off without losing it. Press a chip in Also applied and
    that layer leaves the config — the chip stays, dimmed, and pressing it again
    puts the same settings back. Nothing is recomputed, because nothing was lost.
    It is how you find out whether a correction is actually an improvement:
    the same passage, both ways, a second apart. Voicing, driver, Smart EQ and
    loudness for now.
  • The bands have a chip of their own, named by the model they came from and
    the measurement behind it, or by how many bands there are when you placed them
    yourself. It says (modified) once you have moved them, so the label never
    claims a curve that is no longer on screen.
  • Loudness moved in with the other layers, off the waveform meter. It is
    written into the Equalizer APO chain like everything else in that row, and it
    belongs where the rest of them are. Euphoria mode now brings it with it, and
    takes it away again.
  • Full screen, rebuilt. The window takes the whole display, the side panes
    go, and the picture reaches all four corners. The controls become a small card
    that fades out when nothing is happening and comes back when you move — click
    the drawing to hide or show them at once. The creature stays in the corner.
  • Keep the top bar in full screen, from the View menu, if you would rather
    see where you are. On by default.
  • See through and Blur are in the View menu, where there is room for them,
    instead of taking half the control strip.
  • Every site remembers where you left it. Switching between YouTube, YouTube
    Music, SoundCloud, Bandcamp and Twitch now comes back to the track that was
    playing, a few seconds before where you stopped, and carries on. Only one
    player ever runs, so leaving a site still stops it — this is what makes coming
    back cost nothing. Pressing the site you are already on goes to its front
    page.
  • The wave can hang, mirror, or grow from the middle. Ctrl+I steps through
    four shapes: standing up, hanging down, mirrored into two halves that share
    the height, and mirrored outward from the centre line.
  • Stretch the wave across the whole card. With the grid hidden there is no
    scale to leave room for, so the drawing takes the space the labels were using.

Changed

  • Less is taken from your volume. The preamp reserves headroom against what
    music actually contains rather than against a flat signal to 20 kHz — a boost
    at 12 kHz can never cost its full value, because nothing arrives at full scale
    up there. Chains that were quiet for no audible reason get several decibels
    back, and are no closer to clipping than before.

  • Smart EQ always measures from flat. The switch that asked has gone: a
    region already cut hard has almost no energy left in it, so measuring the
    corrected output means the correction hides the very problem it is causing.
    There was only ever one right answer.

  • The chain reads in the order it makes sense. Convolution, then the driver
    correction, then your bands, then voicing, then Smart EQ last — physical,
    intended, taste, measured. Nothing sounds different; the config is now
    readable at two in the morning.

  • Only the live trace gets the rainbow. The other curves keep the colours
    their legend names them by, which is what makes the legend worth having.

  • Vimeo has been removed. It renders its listings entirely on the client,
    from an API that returns nothing to a session it does not recognise — search,
    Staff Picks and the watch feed all arrive with their tabs and filters and not
    one result. FluidEQ's player is signed out by design and always will be, so
    that is the only Vimeo it can ever see. A button onto an empty page is worse
    than no button.

  • The player signs into nothing, and remembers nothing. Its session is held
    in memory and dies with the app, and sign-in is turned away at each site's own
    front door. No account of yours is ever the identity behind what it does.

  • A refused link leaves you where you are. Following one that goes outside
    the player used to move you to a different site's front page; now the page you
    were on simply stays, with a note saying what was refused.

  • The spectrum is drawn on a canvas. Both of them — the one across the
    graph and the small meter in the title bar. They were built out of SVG paths
    before, which meant that thirty times a second the browser was handed a fresh
    description of the shape as text, several thousand characters of it for the
    denser looks, and asked to re-read it, re-measure it and repaint that part of
    the window. A canvas is told to draw and draws. Nothing about the looks
    changed: the same forty-six of them, the same palettes, the same glow, all
    built by the same code — only what receives the drawing is different.

  • The graph no longer redraws itself for sound it is not showing. The chart
    woke up around twenty-two times a second whether or not the wave was on
    screen, rebuilt everything it owns, and threw the result away. Now only the
    parts that actually show live audio listen for it: the wave, the clipping
    warning, and the measurement overlay.

  • The controls above the graph sit on a panel of their own instead of
    floating loose over the drawing, and in full screen there is one panel rather
    than a panel inside a panel.

  • The filter types are drawn against a shared 0 dB line, and named. They
    used to sit on two different baselines — a peak rising off the floor next to
    a low shelf falling from the ceiling — which made a shelf read as a treble
    cut and made the pairs look swapped. They are mirror images of each other now,
    and the band editor spells out which is which.

Fixed

  • Expanded view and full screen hold steady. Moving between the two, or
    playing one video after another, used to leave the picture missing until the
    page was reloaded. Both now give the video the whole pane, every time and in
    any order.
  • YouTube Music fills the pane properly, with no dark band down its side.
  • Twitch fills it too, with no band along the bottom.
  • The editor stops moving while you tune. The Also applied row used to
    appear out of nothing the first time a layer went live, pushing everything
    below it down mid-drag. It now holds its line whether or not there is
    anything in it.
  • The player says what it refused. A link that went nowhere used to go
    nowhere silently, which is indistinguishable from a broken page. Refusals,
    failed loads and the page's own errors are now in the log.
  • Editing several bands at once no longer fails. Every band in a selection
    sent its own request, and each of those rewrote the whole Equalizer APO
    configuration. Ten selected bands meant ten rewrites for one turn of a knob,
    which was slow enough that the edit gave up and reported a timeout — while
    having worked. A group edit is one write now. Frequency is left out of it on
    purpose: it is what tells the bands apart, and moving them all by the same
    number of hertz stacks them on top of each other.
  • The band editor closes when you deselect. It used to fall back to the
    first band whenever nothing was selected, so clicking away left it open on a
    band that was highlighted nowhere — and moving a control edited a band you
    had just let go of.
  • Less memory is used while the graph is open. Some of what the graph
    allocated was never handed back; less of it is now. This is an improvement
    rather than a conclusion — the remaining growth is still being tracked down,
    and closing the graph pane has always released it.
  • The live capture cleans up after itself. Starting it crosses two points
    where it can be cancelled, and neither was checked, so a capture could
    survive the request to stop it — along with a timer and a listener that
    nothing could reach afterwards.
  • Euphoria stops doing work nobody can see. It published a value several
    times a second that no stylesheet ever read, which made the browser
    recalculate the whole window's styling for nothing, and it left its glow
    layers in place after the mode ended.

FluidEQ 0.8.2

Choose a tag to compare

@StartSWest StartSWest released this 05 Aug 19:46

Fixed

  • Euphoria mode could not be switched off. Once you had earned it, the
    toggle did nothing — the mode was reading "your current streak is at the
    ceiling" as well as the switch, and a streak does not reset when you stop
    playing. So it stayed true forever and held the colours on no matter what you
    pressed. Winning is now a moment rather than a state: it unlocks the mode for
    good and switches it on there and then, and after that the switch is the only
    thing that decides.
  • The development shortcut invented a score. In development builds, the
    button that jumps to euphoria used to write a full 19,350 points and a
    36-tap streak straight into the run — so the share card could show a number
    nobody had played for. It now only turns the mode on. Your score is yours.

New

  • Ctrl+E turns euphoria mode on and off, once you have earned it. Before
    that it does nothing at all: a shortcut that worked early would give away
    that there is something to find.

Changed

  • The setup log records nothing that identifies you. It was writing the
    install directory, which on a normal install contains your Windows account
    name. It now records only what happened — found, offered, declined, started,
    failed — so the file is safe to send to anyone without reading it first.

FluidEQ 0.8.1

Choose a tag to compare

@StartSWest StartSWest released this 05 Aug 19:21

Fixed

  • The installer offered to install Equalizer APO and then did nothing. You
    said yes, no setup window appeared, and FluidEQ opened over the top of it
    without an audio engine. Equalizer APO's installer requires administrator
    permission, and the call FluidEQ used to start it cannot ask for it — it
    failed instantly, and the message saying so went into a pane that one-click
    installers do not show. It now asks properly, so Windows raises the
    permission prompt and APO's setup opens. If permission is declined, FluidEQ
    says so plainly instead of carrying on in silence.
  • FluidEQ could not tell whether Equalizer APO was already installed.
    Installers run as 32-bit programs and Windows quietly redirects their
    registry reads away from where 64-bit software records itself, so the check
    always came back empty. Setup would therefore have re-run APO's installer
    over a perfectly good installation, and uninstalling FluidEQ could never
    offer to remove APO, because it could not find it either.
  • Uninstalling could not remove Equalizer APO even when you asked it to,
    for the same permission reason as the install.
  • The Install Equalizer APO button inside the app was broken the same way.
    It reported success, and no installer ever opened. Both places now ask
    Windows for permission properly.

Changed

  • Setup writes a log. Every decision it makes about Equalizer APO — found
    or not found, offered, declined, started, failed — goes to
    %APPDATA%FluidEQlogsinstall.log, next to the app's own logs. None of
    this was visible before, which is why the problem above survived a release.
  • A build missing its copy of Equalizer APO now says so during setup,
    rather than skipping the step without explanation.

FluidEQ 0.8.0

Choose a tag to compare

@StartSWest StartSWest released this 05 Aug 16:39

New

  • Equalizer APO comes with FluidEQ. It is inside the installer — nothing is
    downloaded and there is no second website to visit. Setup offers to run it,
    and APO's own installer opens so you can choose which audio devices to
    equalise and get its restart prompt from the tool that owns it. Already have
    Equalizer APO? It is left completely alone, whatever version it is. This was
    the worst moment in getting started and it is gone.
  • Uninstalling asks whether to remove Equalizer APO too, and defaults to
    No. It is a system-wide audio component and other applications may be relying
    on it, so removing it is never the quiet default. Updating never asks.
  • The Install APO button inside the app runs the bundled copy rather than
    opening a download page.

Changed

  • The equaliser is properly inert without Equalizer APO. The window still
    opens, the meter still runs and the graph still draws — the app is worth
    looking at either way — but every control that writes to the config greys out
    rather than looking live over an engine that is not installed.
  • The share card opens in its own window. It used to replace the game
    inside the support panel, which meant a picture the size of the panel trying
    to fit inside that panel; on a short screen the buttons that save and post it
    ended up below the fold.
  • The support panel fits a short screen. It gives things up in order of how
    little they are missed rather than shrinking everything at once — first the
    spacing tightens, then the aside about how the app was built goes, and last
    the QR code, since anyone on a window that short is at a desk and the link
    beside it does the same job in one click.

FluidEQ 0.7.0

Choose a tag to compare

@StartSWest StartSWest released this 05 Aug 03:11

New

  • The live spectrum can be drawn thirty-six different ways, in two palettes.
    Bars, a ridge, a staircase, floating peak caps, a contour map that shows how
    wide a peak is rather than only how tall, a slope field that draws which way
    the spectrum is turning, stalactites hung from the ceiling, a heart monitor
    that beats once per band, a car riding the loudest frequency along a road made
    of the trace, and a rank of little sprites hanging at their levels. Pick one
    from the searchable list on the legend, or click the graph to walk through
    them while you listen — Space does the same, and Ctrl with either steps
    back.
  • Every form moves in its own way. A bar snaps up and hangs, the way a level
    meter does, so a kick lands as a step. A ridge is a landscape and moves like
    one, because a hill that twitches reads as noise. The pulse is nearly
    instant, because a heartbeat that arrives late is not a heartbeat. Choosing a
    drawing changes how the music feels, not just what it looks like.
  • Wave only hides the EQ response, the voicing and driver layers and the
    band handles, leaving the live trace alone on the grid.
  • Full screen clears the bands out of the way and presents the graph in the
    middle of the workspace. Esc brings them back.
  • Ten ways to draw the titlebar meter, cycled by clicking it.
  • Smart EQ is its own layer. It used to rewrite your bands, so applying it
    overwrote the tuning you had done by hand and clearing it took your work with
    it. It now sits on top of everything else with its own chip, and survives
    clearing an AutoEQ reference. It also no longer inverts your own bands: the
    target it corrects towards includes them, where before it measured as if they
    were not there.
  • An applied reference arrives band by band, in frequency order, instead of
    every slider jumping at once. You can see what it did rather than just what
    it left behind.
  • Zoom the whole interface with Ctrl and +, - or 0. Keyboard only,
    deliberately — the mouse wheel belongs to the sliders.
  • There is a game hidden in the support panel, for anyone with the
    contribution badge. Tap the creature or press space on the beat of whatever
    you are playing. It reads the real percussion out of your own audio, so it is
    your music you are playing along to.
  • Euphoria mode. Thirty-six consecutive perfect taps and the entire
    application goes rainbow with the music: the bands, the response curve, the
    meter, the menus and the release notes. One mistake and it all goes back to
    being an equaliser.
  • Share your run. A card is drawn with the creature, your score and the
    mode's own look, ready to post — copy it straight to the clipboard and paste
    it into whatever you are writing.

Changed

  • Both waveforms move at the display's rate, not the analyser's. Sound is
    measured about twenty-two times a second, so drawing only when a measurement
    lands meant two frames in three showed the same picture as the one before —
    which the eye reads as stepping. They are drawn between measurements now,
    gliding toward each new one: at the full rate of your screen during euphoria,
    and capped at thirty otherwise, because a meter beside an equaliser does not
    need sixty and the frames are not free.
  • The graph keeps time with the music instead of catching up with it. The
    analysis window was twice as long as it needed to be and the smoothing on top
    of it added more, so the picture arrived about ninety milliseconds after the
    sound. It is closer to fifty now, and it is quick to rise and slow to fall
    rather than sluggish in both directions, which is what makes it pump rather
    than sway.
  • The graph reaches further across. The axis started at 10Hz but ended at
    25kHz, which on a logarithmic scale left three times as much empty space
    before 20Hz as after 20kHz. Both marks now sit the same distance from their
    edge, and the drawing gets the space back.
  • The grid and the supporting curves have stepped back so the response you
    are editing is obviously the subject rather than one line among five.
  • The installer opens FluidEQ when it finishes. Updates already did; a
    fresh install left you looking at a closed wizard.
  • FluidEQ is called FluidEQ in Task Manager, in development as well as in
    the installed app.
  • The language picker is one of the app's own dropdowns, not the operating
    system's, and it opens downwards at a sensible size.
  • The titlebar sits almost flush with the page, so the window reads as one
    surface rather than a bar stuck on top of one.
  • The delete-band button becomes an icon when the row runs out of room, and
    gets its label back when there is space for it. It is a bin now, not a cross:
    a cross reads as "close", which is the wrong promise.
  • The score measures accuracy, not endurance. Only a perfect adds; anything
    else pays a little and gives back a share of the total. Playing longer cannot
    move anyone past their own precision.

Fixed

  • FluidEQ was capturing your screen the entire time it was open, and the
    memory that took never came back — several gigabytes and still climbing after
    a few minutes. Windows only offers system audio through the same call that
    offers screen sharing, so a video track arrives whether or not anything wants
    one. It was being switched off in a way that mutes what a track delivers
    while leaving the capture behind it running, so full-resolution frames were
    produced continuously and nothing ever read them. The video is now released
    outright the moment the audio arrives.
  • Euphoria mode ate memory without limit — a few hundred megabytes with it
    off, several gigabytes and still climbing with it on. The travelling colour
    was animated on the window itself and inherited by everything inside it, so
    the browser had to recompute every element on the page sixty times a second
    for as long as the mode was running; the interface went sluggish, the graph
    stuttered, and the waste piled up faster than it could be cleared. The colour
    now travels only on the handful of things that actually show it. Two of those
    things also carried an animated glow over a picture that redraws twenty-two
    times a second, which meant re-rendering everything beneath it on every
    frame — that glow sits outside the moving part now. It looks the same.
  • A request that timed out leaked its listener, forever. The bridge that
    cleans up after an internal request rebuilt the wrong function and so removed
    nothing at all, silently. Beyond the memory, the abandoned listener stayed
    first in the queue and would answer somebody else's later request with the
    wrong result.
  • A band deleted mid-animation stayed in memory until the animation it was
    never going to finish would have ended. One is nothing; an afternoon of
    adding, dragging and deleting bands is not, and none of it is visible while it
    accumulates.
  • Clearing an applied reference clears its bands. The notes previously
    claimed the bands stayed, which was wrong in both directions — a reference is
    where your tuning came from, not a label beside it.
  • The pet stops reacting to a paused waveform, and stops swaying in a
    silent room. The analyser freezes mid-frame when paused, and it was dancing
    to a reading that had stopped being true.
  • The graph could not draw. 0.6.0 shipped a build that dropped d3's
    transition module, so every animated part of the response chart threw
    e.transition is not a function and the window came up broken. The build had
    been told d3 was free of side effects, which is true of almost all of it and
    false of exactly the piece that matters: transitions install themselves onto
    d3's selections when the module is evaluated, and nothing refers to them by
    name, so the bundler quite reasonably concluded they were unused and removed
    them. 0.6.0 and 0.6.1 were both withdrawn; everything they contained is in
    this release.

Faster

  • The renderer is 44% smaller. Nothing was being tree-shaken at all — the
    TypeScript build emitted require() calls before webpack ever saw the import
    graph, so every unused corner of every library shipped. d3 alone was dragging
    in geo, force, contour and delaunay to draw an axis.
  • The creature stopped re-rendering twenty-two times a second. It sits in
    the titlebar, so that never stopped: not when the window was idle, not when
    nothing was playing.
  • The device list stops polling while the window is hidden. Each tick
    enumerates every audio endpoint on the machine.
  • The spectrum is drawn as sixty-four columns rather than three hundred and
    twenty.
    At that density the bars touched, so it read as a filled area with a
    ragged top — a worse picture, built from a path string five times longer,
    rebuilt on every frame.
  • The spellchecker is gone. It was downloading a dictionary to check the
    spelling of preset names.

FluidEQ 0.5.1

Choose a tag to compare

@StartSWest StartSWest released this 04 Aug 14:21

FluidEQ 0.5.1 — Windows installer.

Install: download FluidEQ-Setup-0.5.1.exe and run it. Equalizer APO must be installed first, with your outputs enabled in its Configurator.

Already on 0.5.0? FluidEQ will offer this update itself.

Not code-signed yet, so SmartScreen will warn on first run — choose More info → Run anyway.

New

  • The installer asks which language to use, preselecting your Windows one.
    Nine of the app's ten, because NSIS has no Hindi translation — FluidEQ still
    speaks it, the setup wizard does not, which is better than a half-English
    wizard pretending otherwise.

Changed

  • The release notes open on top of the support dialog instead of replacing
    it. Reading them is a detour from deciding whether to contribute, not a
    departure from it, so closing them puts you back where you were.
  • The pet sways like someone listening. It leans, holds there for a beat
    and comes back, rather than swinging evenly from side to side — and the lean
    hinges low, where a neck would be, instead of spinning the whole creature
    about its middle. Still only for anyone with the contribution badge.

Fixed

  • Escape closed both dialogs at once when the release notes were open over the
    support dialog.

FluidEQ is a GPL-3.0-or-later derivative of AQUA by the AQUA Dev Team. AutoEq data is credited to Jaakko Pasanen and Ian Walton. See NOTICE.md.