Skip to content

v0.8.1 — The dials were a landmine and the counters never moved

Choose a tag to compare

@TerraByte-Dev TerraByte-Dev released this 30 Aug 04:34
· 6 commits to main since this release

A hotfix for three defects in 0.8.0 — two of them in the parts of that release that
existed specifically to stop things failing silently. If you are on 0.8.0, update.

If MIDI stopped working after updating to 0.8.0

That was this. midi_port used to store a port index; 0.8.0 started reading it as a
name and did not migrate old values. If you had ever picked a MIDI port by hand, your
saved 1 pinned Keys to a device literally named "1", which matched nothing — so nothing
opened, and the panel read "could not open any MIDI input" with every port listed and
silent. A saved 0 survived by pure luck, which meant this hit exactly the people who had
gone looking for a working port.

A legacy value is now recognised, discarded, and written back so the migration happens once.

And a pin naming a device that is not plugged in no longer goes quiet: Keys falls back to
listening to every input and tells you which device it could not find. Silence is never the
right answer to "the keyboard you chose is not here."

Stuck on 0.8.0 right now?

You do not need this update to get out, and this is confirmed working in the field:

Settings → MIDI input → "Listen to everything"

That clears the bad setting on the build you already have, and it sticks. Then update.

The dials had a landmine on them

The invisible range input inside each knob lost a CSS cascade, so it ended up pinned across
the top of the dial at full row width. A click there set the value from the horizontal
position and saved it. Every 0–1 dial — zone volume, pan, the reverb and chorus sends, the
loop layer controls — could silently rewrite the setting it exists to set, the first time
you reached for it.

The port counters never moved

0.8.0 added a per-port message counter to Settings → MIDI input, with the panel telling
you "the port that moves is your keyboard." The panel was built once when the tab opened and
never repainted, so the counters were frozen at zero. Anyone who updated because their
keyboard was silent would have watched every port read silent forever and concluded Keys
was not receiving anything — the exact opposite of the truth.

They update live now, and they are keyed by device name rather than port number, so a count
follows your keyboard across a replug instead of being stranded on whatever took its slot.

Also fixed

  • Pinning a port another application is holding no longer closes the input that was
    working. Keys keeps listening and reports what it could not open.
  • After a failed audio-device open, MIDI events can no longer reach a synth that was torn
    down.
  • A preset's saved effects are filtered on load as well as on save, so a preset file cannot
    reach past the two effect units into the rest of your settings.
  • Loading a profile now refreshes the settings snapshot, so saving a profile straight
    afterwards no longer stores the reverb from before the load.
  • The tour, the --dev status line, and the README no longer point at panels that 0.8.0
    moved or removed.