Skip to content

Octatrack base: frame guard skips stock FLEX tracks while FM Synth is installed #999

Closed

Description

@repeat98

What happens

mw_source_render_impl in sdk/machines/octatrack/elekloader/machine_registry.c sends a FLEX track that no machine owns to a MODWERK_MACHINE_RENDER_FLEX machine's render through guarded(...). FM Synth (machine-ports.json, sy_render) is the only machine with that flag. So while FM Synth is installed, the frame guard can skip renders on ordinary FLEX tracks, even ones without FM Synth on them. The guard's own comment says the opposite: "Tracks only stock renders ... always render".

A beta unit's log on 27 Oct 2026 (base 5273cecd) showed up to about 174,000 skipped renders on stock tracks 1–5, 7 and 8 during pattern switches, with FM Synth installed but not on those tracks. Each skip silences a short piece of a sample track. This is not the cause of the Part-switch noise in the effect-buffer issue: that noise stayed after FM Synth was removed.

Also, cost[k] is only measured again when a track renders. After one expensive frame, a skipped track can stay skipped until the next probe, every 1024 frames.

Fix idea

  • Render unowned tracks unguarded: call the RENDER_FLEX render without the guard on tracks no machine owns. Only machines' own tracks are then skipped.
  • Check first: whether FM Synth on the USB base still makes its own sound on FLEX tracks that only carry the old card-build FMSYNTH marker. Those tracks would no longer be guarded.
  • Optionally: let a skipped track's estimate fall back over time.

Re-run the frame-guard stress from #874 on a unit afterwards: POLY8, FM Synth and busy stock tracks.

Activity

  1. repeat98 commented on Oct 29, 2026

    @repeat98
    OwnerAuthor

    Fixed in #1017, live in the beta base since 28 Oct (6541d7e9 and later, now 9b7e0eb3): a FLEX track no machine owns now renders FM Synth's RENDER_FLEX path without the frame guard, so only machines' own tracks can be skipped. Not done yet: the #874 frame-guard stress rerun on a unit (POLY8, FM Synth and busy stock tracks). If that shows skips on stock tracks again, reopen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions