Skip to content

Releases: djayuffe/ArpSID-public

ArpSID 0.9.16

Choose a tag to compare

@github-actions github-actions released this 03 Oct 19:27

Fixed

  • Bitcrusher at 16-bit depth: the quantizer divided by 32767 at the
    "transparent" 16-bit setting, hard-limiting |x| > 1.0. 16 bits and above
    now pass through unquantized, matching the documented contract.
  • MIDI clock / start / stop / continue: the RTMIDI open call discarded
    timing messages (ignoreTypes(true, true, true)), so the 0xFA/0xFB/0xFC
    handlers in the engine were dead code. Clock, start, stop and continue
    now reach the engine.
  • VST3 event-ordering token wrap: eventOrder_ was never reset, so after
    ~27 hours of continuous processing the 32-bit token wrapped and in-block
    event arrival order was no longer monotonic. Reset per processing block.
  • Arpeggiator dead process() API: an unused convenience method with an
    8 KB stack array (RT-thread hazard) was deleted.
  • File bank edge cases: a bank blob with zero patches is now rejected
    (BadBlob); exportAllToDirectory no longer silently truncates when
    patch/meta counts disagree; name/meta strncpy calls are routed through
    the bounds-checked copyBoundedField_ helper.
  • Editor view safety: shortLabel performs a range check before
    indexing the param table; valueChanged → sibling setValueNormalized
    re-entrancy is guarded so a param change triggers one engine update, not
    two.
  • Standalone file write: if the second rename in the atomic-write
    sequence fails, the orphaned temp file is removed and the error is logged
    instead of being silently lost.
  • Standalone settings: Settings::sanitize now clamps the selected tab
    to the valid range (upper bound was unclamped).
  • AUv2 four-character code: makeArpSIDFourCC built the OSType from
    signed char shifts; bytes ≥ 0x80 produced a negative value. Built in
    uint32_t, cast once.
  • Parity trace: the single ready 0/1 gate allowed two producers to
    interleave; a per-slot generation counter closes the race.
    flushToFILE(nullptr) is now a no-op instead of writing to stderr.
  • C64 PSID runtime: the BRK-sentinel peekRam call and the color-RAM
    mirror ordering invariant are documented (the bootstrap runs with HIRAM
    cleared; a future HIRAM change must switch to a mapped read).
  • SID DIGI blockPeak: was computed as distance-from-midpoint of the
    nibble, not the waveform magnitude. Now the true bipolar magnitude
    |nibble/15 * 2 − 1|.
  • SID $D418 comments: the filter-mode bits are per-voice control
    register bits, not "$D418 bits 4..6". Comments corrected. The in-code
    filter-cutoff/Q tables are documented as superseded by the analogue
    calibration header.
  • Telemetry: added c64Phi2CyclesThisBlock (per-block PHI-2 delta) so
    block pacing is observable without subtracting cumulative counters.
  • Build / CI / packaging scripts: mktemp -d instead of predictable
    paths; tar --anchored for exclude patterns; chmod 600 on temp logs;
    python3 resolved before env -i (Homebrew); tee process substitution
    waited on via trap; ld.lld in the linker-warning regex; CMake
    REMOVE_ITEM removes the entitlements path value, not just the flag;
    fetch_vst3_sdk.sh refuses non-empty clone targets; wc -l | tr -d ' '
    for BSD portability; non-recursive __pycache__ in .gitignore.

Changed

  • Validation: all 85 P2 findings from the five ai2ai audits were
    re-validated against source. 41 confirmed SAFE fixes applied (above);
    19 refuted with evidence; 4 RISKY items (DSP timing, RT-adjacent
    poller, HIRAM mapped read) deferred. See ai2ai_validation_p2.md.

Downloads

Platform Download
macOS (Apple silicon + Intel) standalone-macos-universal (app), auv3-macos-universal (Logic-compatible ArpSID.app with the AUv3), auv2-macos-universal (5 AU flavors), vst3-macos-universal
Windows vst3-windows-x64, vst3-windows-arm64, vst3-windows-x86 (32-bit hosts); standalone app: standalone-windows-x64, standalone-windows-arm64, standalone-windows-x86
Linux vst3-linux-x86_64, vst3-linux-aarch64; standalone app: standalone-linux-x86_64, standalone-linux-aarch64
Source source (no C64 ROMs)

Installing

Each zip contains the bundle and an installer. The full guide, with manual
steps, uninstalling and troubleshooting, is
docs/INSTALL.md.

One line (downloads this release for your machine, checks it against
SHA256SUMS.txt, installs it):

# Linux and macOS
curl -fsSL https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.sh | bash
# Windows (PowerShell; the default install for all users needs Run as administrator)
irm https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.ps1 | iex

From a downloaded zip: unzip it and run the installer inside.

  • macOS: ./install_macos.sh. It installs the plug-ins for you and the
    apps to /Applications, removes the download quarantine (the bundles are
    ad-hoc signed, not notarized), registers the AUv3 and refreshes the
    Audio Unit cache. Then restart your host.
  • Windows: powershell -ExecutionPolicy Bypass -File .\install.ps1
    in an elevated PowerShell, installing to C:\Program Files\Common Files\VST3\.
    Add -Scope User to install for yourself only.
  • Linux: ./install.sh installs to ~/.vst3/; --system installs to
    /usr/lib/vst3/. ./install.sh --check lists any missing desktop
    libraries.
  • Standalone app (Windows, Linux): run ArpSID / ArpSID.exe from the
    zip, or install it with the install.ps1 / install.sh inside (Start
    menu or application menu entry; no admin rights needed). Choose the
    audio output, sample rate, buffer, MIDI input and channel in the bar at
    the top of its window.

The VST3 runs the same engine as the AU and Standalone and has the full
ArpSID editor on every platform (on Linux it needs the usual desktop
libraries: X11/xcb, xkbcommon, cairo, pango, fontconfig). The C64 tune player needs your own
KERNAL/BASIC/CHARGEN ROM dumps; none are bundled.

Every asset in this release was built by CI after the full test suite, the
Steinberg VST3 validator and the ArpSID VST3 host integration test (every
VST3 build), strict auval on all five AU flavors (zero warnings) and a
Standalone launch test passed (macOS app, and the Windows and Linux apps'
window, editor and session smoke test). The core test suite also runs under GCC,
Clang and AddressSanitizer + UBSan. Verify downloads
against SHA256SUMS.txt.

ArpSID 0.9.15

Choose a tag to compare

@github-actions github-actions released this 01 Oct 13:28
10a5acc

Fixed

  • VST3 editor patch loads reach the host: a patch loaded from the BANK
    tab's user bank or from a patch file was written straight into the engine,
    so the host, the generic parameter view and the editor's own knobs kept the
    old values (and a processor in another process got nothing). Such patches
    now go through the controller like a program change: the processor applies
    them as a patch-only state, the values are mirrored to the host and the
    project is marked changed.
  • Linux VST3 link check: the plug-in is linked with --no-undefined, so
    a missing symbol fails the build instead of the host's load.
  • SAVE PATCH names: a saved .arpsid patch is named after its file, not
    after the factory patch it started from.

Added

  • Standalone app for Windows and Linux (ArpSID.exe, ArpSID): the
    engine and the full editor in a resizable window, with a bar for the audio
    output (WASAPI / DirectSound on Windows; PulseAudio, ALSA and JACK on
    Linux), sample rate, buffer size, a capture input for DIGI recording, MIDI
    input (all ports with hot-plug, one port, or none) and channel, an internal
    clock (tempo, play/stop; MIDI Start/Stop follow), panic and a load / xrun
    meter. MIDI Program Change (with Bank Select) picks factory patches; Linux
    also offers a virtual "ArpSID MIDI In" port. Presets are the VST3's
    .vstpreset files in the same folders. Settings and the session (the
    whole sound, including the DIGI bank and a loaded C64 tune) are restored
    on launch. Released as standalone-windows-{x64,arm64,x86} and
    standalone-linux-{x86_64,aarch64} zips with installers (Start menu /
    application menu entry). Guide: docs/STANDALONE_APP.md.
  • VST3 user presets in the editor: the BANK tab has a PRESETS view of
    your own .vstpreset files (the user VST3 preset folder minus the installed
    factory presets), LOAD PRESET for any ArpSID .vstpreset, and
    SAVE PRESET, which writes the current patch into the user preset
    folder's User sub-folder, where hosts' preset browsers find it too.
  • User patch names: a loaded user patch (preset, patch file, user-bank
    entry, or a .vstpreset the host loads) shows as USER <name> in the
    editor header and is saved with the project (controller state v2). Host
    preset loads are named from the file (IStreamAttributes), also for
    full-state presets a host saved itself; choosing a factory program clears
    the name.
  • Program metadata: the factory program list reports each program's name
    and musical instrument category, like the factory .vstpreset files.

Downloads

Platform Download
macOS (Apple silicon + Intel) standalone-macos-universal (app), auv3-macos-universal (Logic-compatible ArpSID.app with the AUv3), auv2-macos-universal (5 AU flavors), vst3-macos-universal
Windows vst3-windows-x64, vst3-windows-arm64, vst3-windows-x86 (32-bit hosts); standalone app: standalone-windows-x64, standalone-windows-arm64, standalone-windows-x86
Linux vst3-linux-x86_64, vst3-linux-aarch64; standalone app: standalone-linux-x86_64, standalone-linux-aarch64
Source source (no C64 ROMs)

Installing

Each zip contains the bundle and an installer. The full guide, with manual
steps, uninstalling and troubleshooting, is
docs/INSTALL.md.

One line (downloads this release for your machine, checks it against
SHA256SUMS.txt, installs it):

# Linux and macOS
curl -fsSL https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.sh | bash
# Windows (PowerShell; the default install for all users needs Run as administrator)
irm https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.ps1 | iex

From a downloaded zip: unzip it and run the installer inside.

  • macOS: ./install_macos.sh. It installs the plug-ins for you and the
    apps to /Applications, removes the download quarantine (the bundles are
    ad-hoc signed, not notarized), registers the AUv3 and refreshes the
    Audio Unit cache. Then restart your host.
  • Windows: powershell -ExecutionPolicy Bypass -File .\install.ps1
    in an elevated PowerShell, installing to C:\Program Files\Common Files\VST3\.
    Add -Scope User to install for yourself only.
  • Linux: ./install.sh installs to ~/.vst3/; --system installs to
    /usr/lib/vst3/. ./install.sh --check lists any missing desktop
    libraries.
  • Standalone app (Windows, Linux): run ArpSID / ArpSID.exe from the
    zip, or install it with the install.ps1 / install.sh inside (Start
    menu or application menu entry; no admin rights needed). Choose the
    audio output, sample rate, buffer, MIDI input and channel in the bar at
    the top of its window.

The VST3 runs the same engine as the AU and Standalone and has the full
ArpSID editor on every platform (on Linux it needs the usual desktop
libraries: X11/xcb, xkbcommon, cairo, pango, fontconfig). The C64 tune player needs your own
KERNAL/BASIC/CHARGEN ROM dumps; none are bundled.

Every asset in this release was built by CI after the full test suite, the
Steinberg VST3 validator and the ArpSID VST3 host integration test (every
VST3 build), strict auval on all five AU flavors (zero warnings) and a
Standalone launch test passed (macOS app, and the Windows and Linux apps'
window, editor and session smoke test). The core test suite also runs under GCC,
Clang and AddressSanitizer + UBSan. Verify downloads
against SHA256SUMS.txt.

ArpSID 0.9.14

Choose a tag to compare

@github-actions github-actions released this 30 Sep 22:02
59d9fbb

Fixed

  • Hiss between notes: the Forensic System Noise term was added to
    the output all the time, so most factory patches hissed at −80…−100 dBFS
    with no note playing (and VST3 hosts never saw a silent block). The noise
    now follows voice activity in both SID engines (SYNTH and CLASSIC): it is
    there while voices sound and fades out once every envelope has released,
    so released patches are silent.
  • DC offset at the output: the CLASSIC init sound and the overdriven
    guitar patches carried a steady offset (up to 0.8 % of full scale) from the
    saturation and drive stages after the chip's DC blocker. A 5 Hz output DC
    blocker before the limiter removes it; every factory patch now measures
    below 0.03 %.

Added

  • Factory patch sound audit (arpsid_factory_patch_sound_audit, built
    on demand): renders the init sound and all 180 factory patches and prints
    level, clipping, DC, stereo balance, idle noise, release time and tail;
    --check fails on silent, clipping or non-finite patches. A quick subset
    runs in ctest (FactoryPatchSoundTests).

Downloads

Platform Download
macOS (Apple silicon + Intel) standalone-macos-universal (app), auv3-macos-universal (Logic-compatible ArpSID.app with the AUv3), auv2-macos-universal (5 AU flavors), vst3-macos-universal
Windows vst3-windows-x64, vst3-windows-arm64, vst3-windows-x86 (32-bit hosts)
Linux vst3-linux-x86_64, vst3-linux-aarch64
Source source (no C64 ROMs)

Installing

Each zip contains the bundle and an installer. The full guide, with manual
steps, uninstalling and troubleshooting, is
docs/INSTALL.md.

One line (downloads this release for your machine, checks it against
SHA256SUMS.txt, installs it):

# Linux and macOS
curl -fsSL https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.sh | bash
# Windows (PowerShell; the default install for all users needs Run as administrator)
irm https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.ps1 | iex

From a downloaded zip: unzip it and run the installer inside.

  • macOS: ./install_macos.sh. It installs the plug-ins for you and the
    apps to /Applications, removes the download quarantine (the bundles are
    ad-hoc signed, not notarized), registers the AUv3 and refreshes the
    Audio Unit cache. Then restart your host.
  • Windows: powershell -ExecutionPolicy Bypass -File .\install.ps1
    in an elevated PowerShell, installing to C:\Program Files\Common Files\VST3\.
    Add -Scope User to install for yourself only.
  • Linux: ./install.sh installs to ~/.vst3/; --system installs to
    /usr/lib/vst3/. ./install.sh --check lists any missing desktop
    libraries.

The VST3 runs the same engine as the AU and Standalone and has the full
ArpSID editor on every platform (on Linux it needs the usual desktop
libraries: X11/xcb, xkbcommon, cairo, pango, fontconfig). The C64 tune player needs your own
KERNAL/BASIC/CHARGEN ROM dumps; none are bundled.

Every asset in this release was built by CI after the full test suite, the
Steinberg VST3 validator and the ArpSID VST3 host integration test (every
VST3 build), strict auval on all five AU flavors (zero warnings) and a
Standalone launch test passed. The core test suite also runs under GCC,
Clang and AddressSanitizer + UBSan. Verify downloads
against SHA256SUMS.txt.

ArpSID 0.9.13

Choose a tag to compare

@github-actions github-actions released this 30 Sep 15:23
4a1fcb9

Added

  • Windows 32-bit (x86) VST3 for 32-bit hosts: built, validated and
    tested in CI like the x64 and arm64 builds, and released as
    vst3-windows-x86. Its installer puts it in
    C:\Program Files (x86)\Common Files\VST3 on 64-bit Windows; the
    one-line installer picks it on 32-bit Windows (-Arch x86 for a 32-bit
    host on 64-bit Windows), and the system uninstall removes both copies.
  • AUv2 parameter groups: parameters are grouped by editor tab (AU
    parameter clumps, kAudioUnitProperty_ParameterClumpName), like the
    VST3's units, so hosts that show groups list them the way the editor does.
  • AUv3 overview parameters (parametersForOverviewWithCount:): filter
    cutoff, resonance and envelope amount, ADSR, volume, drive and glide for
    compact plug-in views (Logic Smart Controls, GarageBand).

Fixed

  • AUv3: 12 parameters could not be automated. Portamento Style, C64
    Glide Delta, Arp Glide Legato and the nine HI-FI parameters were missing
    from the AUv3 parameter tree. They are now in it (groups Portamento and
    HI-FI), and any automatable parameter no group lists goes into Other,
    so a new parameter can no longer be left out.
  • VST3: the editor could outlive the processor's engine. The controller
    and editor use the processor's kernel host directly; the processor now
    withdraws it when it disconnects or terminates, whatever order the host
    tears the plug-in down in.
  • VST3 realtime checks. The host test now also counts mutex locks inside
    process() (none, with notes, automation, bypass and editor MIDI in the
    same blocks); process() runs under the kernel's realtime guard, and
    stopping a DIGI capture yields instead of spinning while an audio block
    finishes.

Downloads

Platform Download
macOS (Apple silicon + Intel) standalone-macos-universal (app), auv3-macos-universal (Logic-compatible ArpSID.app with the AUv3), auv2-macos-universal (5 AU flavors), vst3-macos-universal
Windows vst3-windows-x64, vst3-windows-arm64, vst3-windows-x86 (32-bit hosts)
Linux vst3-linux-x86_64, vst3-linux-aarch64
Source source (no C64 ROMs)

Installing

Each zip contains the bundle and an installer. The full guide, with manual
steps, uninstalling and troubleshooting, is
docs/INSTALL.md.

One line (downloads this release for your machine, checks it against
SHA256SUMS.txt, installs it):

# Linux and macOS
curl -fsSL https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.sh | bash
# Windows (PowerShell; the default install for all users needs Run as administrator)
irm https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.ps1 | iex

From a downloaded zip: unzip it and run the installer inside.

  • macOS: ./install_macos.sh. It installs the plug-ins for you and the
    apps to /Applications, removes the download quarantine (the bundles are
    ad-hoc signed, not notarized), registers the AUv3 and refreshes the
    Audio Unit cache. Then restart your host.
  • Windows: powershell -ExecutionPolicy Bypass -File .\install.ps1
    in an elevated PowerShell, installing to C:\Program Files\Common Files\VST3\.
    Add -Scope User to install for yourself only.
  • Linux: ./install.sh installs to ~/.vst3/; --system installs to
    /usr/lib/vst3/. ./install.sh --check lists any missing desktop
    libraries.

The VST3 runs the same engine as the AU and Standalone and has the full
ArpSID editor on every platform (on Linux it needs the usual desktop
libraries: X11/xcb, xkbcommon, cairo, pango, fontconfig). The C64 tune player needs your own
KERNAL/BASIC/CHARGEN ROM dumps; none are bundled.

Every asset in this release was built by CI after the full test suite, the
Steinberg VST3 validator and the ArpSID VST3 host integration test (every
VST3 build), strict auval on all five AU flavors (zero warnings) and a
Standalone launch test passed. The core test suite also runs under GCC,
Clang and AddressSanitizer + UBSan. Verify downloads
against SHA256SUMS.txt.

ArpSID 0.9.12

Choose a tag to compare

@github-actions github-actions released this 30 Sep 14:09
6157af8

Changed

  • CI runs only in the public mirror. Every workflow is skipped in the
    private repository (which carries the real C64 ROMs); the public mirror
    runs all builds, tests and releases.

Fixed

  • RPN pitch-bend range reached the wrong channel. The per-channel
    host-control parameters start at id 286, which is not a multiple of 16, but
    the RPN code took the MIDI channel from the low four bits of the id: a
    bend range sent on channel 1 changed channel 15's range (and read channel
    15's RPN selection). The channel now comes from the offset into the block.
  • RPN / NRPN / Data Entry did nothing in the VST3 and on raw MIDI. The
    VST3 MIDI mapping did not route CC 101/100/99/98/6/38 and the raw-MIDI path
    (AU, Standalone) ignored them, so hosts and MPE setups could not set the
    pitch-bend range. Both now drive the shared RPN state machine: RPN 0 +
    Data Entry (CC6 semitones, CC38 cents) sets the channel's bend range;
    selecting an RPN changes nothing by itself; selecting an NRPN or Reset All
    Controllers (CC121) deselects the RPN, so NRPN data never lands on the
    bend range.
  • VST3: host MIDI parameters were read-only. The 208 per-channel host
    MIDI parameters (written by the host through the MIDI mapping) were
    flagged kIsReadOnly, which tells a host only the plug-in may change them.
    They are now hidden and host-writable, and each title names its channel
    (Host MIDI Sustain Ch 5), so the titles are unique (the SDK validator
    reported 195 duplicate titles).
  • VST3: silence flags. Output was flagged silent only when exactly zero,
    and the engine's 24-bit dither is never zero, so released voices were never
    reported silent. Blocks at or below −120 dBFS are now written as zero and
    flagged, so hosts can skip downstream processing.

Added (VST3)

  • Control under the mouse (IParameterFinder): the editor tells the
    host which parameter is under a point, so host "learn" functions (quick
    controls, "last touched" parameter) work with the editor, at any size.
  • Host knob mode (IEditController2::setKnobMode): circular, relative
    circular or linear knob dragging follows the host's preference; the editor
    stays linear until a host sets a mode.
  • Drum note names: the drum kit programs (DrSID / SID-808) report the
    General MIDI drum name of notes 35–81 (IUnitInfo program pitch names), so
    host drum editors and piano rolls label the notes.
  • Plug-in browser image: the bundle carries a snapshot of the editor's
    MAIN page (Resources/Snapshots/<class id>_snapshot.png), listed in
    moduleinfo.json.

Downloads

Platform Download
macOS (Apple silicon + Intel) standalone-macos-universal (app), auv3-macos-universal (Logic-compatible ArpSID.app with the AUv3), auv2-macos-universal (5 AU flavors), vst3-macos-universal
Windows vst3-windows-x64, vst3-windows-arm64
Linux vst3-linux-x86_64, vst3-linux-aarch64
Source source (no C64 ROMs)

Installing

Each zip contains the bundle and an installer. The full guide, with manual
steps, uninstalling and troubleshooting, is
docs/INSTALL.md.

One line (downloads this release for your machine, checks it against
SHA256SUMS.txt, installs it):

# Linux and macOS
curl -fsSL https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.sh | bash
# Windows (PowerShell; the default install for all users needs Run as administrator)
irm https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.ps1 | iex

From a downloaded zip: unzip it and run the installer inside.

  • macOS: ./install_macos.sh. It installs the plug-ins for you and the
    apps to /Applications, removes the download quarantine (the bundles are
    ad-hoc signed, not notarized), registers the AUv3 and refreshes the
    Audio Unit cache. Then restart your host.
  • Windows: powershell -ExecutionPolicy Bypass -File .\install.ps1
    in an elevated PowerShell, installing to C:\Program Files\Common Files\VST3\.
    Add -Scope User to install for yourself only.
  • Linux: ./install.sh installs to ~/.vst3/; --system installs to
    /usr/lib/vst3/. ./install.sh --check lists any missing desktop
    libraries.

The VST3 runs the same engine as the AU and Standalone and has the full
ArpSID editor on every platform (on Linux it needs the usual desktop
libraries: X11/xcb, xkbcommon, cairo, pango, fontconfig). The C64 tune player needs your own
KERNAL/BASIC/CHARGEN ROM dumps; none are bundled.

Every asset in this release was built by CI after the full test suite, the
Steinberg VST3 validator and the ArpSID VST3 host integration test (every
VST3 build), strict auval on all five AU flavors (zero warnings) and a
Standalone launch test passed. The core test suite also runs under GCC,
Clang and AddressSanitizer + UBSan. Verify downloads
against SHA256SUMS.txt.

ArpSID 0.9.11

Choose a tag to compare

@github-actions github-actions released this 29 Sep 07:37
987d413

Fixed (VST3 realtime and buffers)

  • Stuck notes under heavy automation. Parameter points were collected
    before notes into the per-block event buffer, so a block with more
    automation points than the buffer holds (4096) lost its note-offs. Notes are
    now collected first, and automation shares a per-block budget (256 events)
    that keeps the block inside the kernel's event lanes: past it each
    parameter is thinned to evenly spaced points that always include its last
    value.
  • Allocation on the audio thread. Events were ordered with
    std::stable_sort, which allocates a temporary buffer. They are now sorted
    with the kernel's total order (std::sort, allocation-free); the host test
    counts heap allocations inside process() and requires zero.
  • Silent 64-bit blocks. A 64-bit block larger than the announced maximum
    block size came out silent. It is now rendered in slices and sounds the
    same as announced-size blocks.
  • Editor keyboard timing in large blocks. Blocks over 4096 frames were
    split before the kernel, which then drained the editor's queued notes and
    parameter changes per chunk instead of once per block. The whole block now
    goes to the kernel, which splits it correctly.

Performance (every format)

  • About half the CPU. The SID filter law rebuilt its analogue calibration
    table (and sorted it) for every sample, the SID register engine recomputed
    the full law whenever the drift inputs moved (almost every sample), and the
    CLASSIC engine recomputed filter coefficients on all eight chips for every
    render slice. The calibration is now a static table, the law is split into
    a cached base stage and a cheap per-sample finish, and unchanged cutoff and
    resonance keep their law. A held chord in the VST3 went from about 46 % to
    22 % of one core at 512-frame blocks (56 % to 29 % at 32 frames), with
    bit-identical audio.
  • The VST3 host test prints the render cost at block sizes from 32 to 2048
    frames, and the Linux editor's CPU use in a real X11 window.
  • Idle CLASSIC engine (regression in 0.9.10). The release-tail fix treated
    every chip whose envelope reported "active" as a tail, including chips that
    never played, whose power-on envelope state stays "active". An idle CLASSIC
    instance therefore rendered all eight chips: 10–40× the idle CPU (a fresh
    instance: 156 M instructions for its first block instead of 3.5 M) and every
    silent chip's noise and dither in the output, about 50 dB down. A tail is
    now a slot that played a note since reset and still has a running envelope;
    release tails are unchanged.
  • C64 tune player. About 10 % fewer instructions, bit-identical output: the
    timed SID bridge no longer advances a second cycle-by-cycle OSC3/ENV3
    readback model that nothing reads (the runtime's own model answers every
    read), the OSC3 byte of a single waveform is computed when read instead of
    every cycle, and the VIC-II skips its sprite loops when no sprite is active.

Fixed (all formats, all platforms)

  • Floating-point mode leaked into the host. The engine switched the
    calling thread to flush-to-zero (x86 FTZ/DAZ, AArch64 FZ/DN) in every render
    and in setup, and never restored it, changing the arithmetic of the host's
    mixer and of other plug-ins on the same threads. It is now set only while
    the engine renders and restored afterwards; setup no longer touches it.
    Windows x64 builds (MSVC, which does not define __SSE__) now flush
    denormals too; they did not before.

Downloads

Platform Download
macOS (Apple silicon + Intel) standalone-macos-universal (app), auv3-macos-universal (Logic-compatible ArpSID.app with the AUv3), auv2-macos-universal (5 AU flavors), vst3-macos-universal
Windows vst3-windows-x64, vst3-windows-arm64
Linux vst3-linux-x86_64, vst3-linux-aarch64
Source source (no C64 ROMs)

Installing

Each zip contains the bundle and an installer. The full guide, with manual
steps, uninstalling and troubleshooting, is
docs/INSTALL.md.

One line (downloads this release for your machine, checks it against
SHA256SUMS.txt, installs it):

# Linux and macOS
curl -fsSL https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.sh | bash
# Windows (PowerShell; the default install for all users needs Run as administrator)
irm https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.ps1 | iex

From a downloaded zip: unzip it and run the installer inside.

  • macOS: ./install_macos.sh. It installs the plug-ins for you and the
    apps to /Applications, removes the download quarantine (the bundles are
    ad-hoc signed, not notarized), registers the AUv3 and refreshes the
    Audio Unit cache. Then restart your host.
  • Windows: powershell -ExecutionPolicy Bypass -File .\install.ps1
    in an elevated PowerShell, installing to C:\Program Files\Common Files\VST3\.
    Add -Scope User to install for yourself only.
  • Linux: ./install.sh installs to ~/.vst3/; --system installs to
    /usr/lib/vst3/. ./install.sh --check lists any missing desktop
    libraries.

The VST3 runs the same engine as the AU and Standalone and has the full
ArpSID editor on every platform (on Linux it needs the usual desktop
libraries: X11/xcb, xkbcommon, cairo, pango, fontconfig). The C64 tune player needs your own
KERNAL/BASIC/CHARGEN ROM dumps; none are bundled.

Every asset in this release was built by CI after the full test suite, the
Steinberg VST3 validator and the ArpSID VST3 host integration test (every
VST3 build), strict auval on all five AU flavors (zero warnings) and a
Standalone launch test passed. The core test suite also runs under GCC,
Clang and AddressSanitizer + UBSan. Verify downloads
against SHA256SUMS.txt.

ArpSID 0.9.10

Choose a tag to compare

@github-actions github-actions released this 28 Sep 19:00
52d7714

Fixed (engine, every format)

  • CLASSIC Unison voice count. Voice Spread now sets the number of stacked
    voices, 1 + int(spread × 7) (1–8), as well as the detune, as documented. The
    count was never applied and Unison always stacked 4 voices. No factory patch
    uses Unison. A project saved with Unison at Voice Spread 0 now plays one voice.
  • CLASSIC Mono, Legato and Unison release tails. The release phase now sounds
    after note-off, at the same level as Poly. The live render skipped released
    voices, and their velocity and pitch were cleared, so notes were cut dead
    whatever the Release setting. The active-voice count now drops to 0 when idle;
    it used to report 8 with no notes playing.
  • SYNTH / SID REG filter mode. $D418 now gets all eight Filter Mode choices
    (OFF, LP, BP, LP+BP, HP, NOTCH, BP+HP, ALL) from the same decode as CLASSIC and
    the editors. Before, the choices were collapsed onto LP, BP and HP: HIGH-PASS
    played band-pass, and OFF still filtered low-pass.
  • SYNTH / SID REG hard sync. VCO1 Sync and VCO3 Sync now reach the chip; only
    VCO2 Sync did.
  • Pitch-bend range. One 0–48 semitone limit (RPN 0, the MPE standard) in
    every engine. CLASSIC and the single-SID engine stopped at 24.
  • Factory filter modes. The factory bank's filter types are stored as
    canonical Filter Mode values. Parameter, editor, $D418 register mirror and
    sound now agree for every slot, and no factory patch selects OFF.
  • macOS JSON sound import. filter.mode strings (lp, bp, hp,
    combinations, notch, all, off) now map to the right Filter Mode. Before,
    low-pass imported as band-pass.

Fixed (VST3)

  • Linux: the editor crashed the host when it opened. The VSTGUI frame was
    opened without the X11 frame configuration that carries the host's run loop,
    so VSTGUI never opened its X connection and crashed on the first X call. The
    editor now runs on the host's Linux::IRunLoop (from the plug frame) through
    a forwarding run loop, offers X11 only (VSTGUI is built without Wayland), and
    refuses to open instead of crashing when a host provides no run loop.
  • Linux: reopening the editor could crash. When the last editor closed,
    VSTGUI disconnected from X without finishing cairo's device for the
    connection; the next connection often reused the address and cairo asserted.
    The device is now finished before the disconnect.
  • Editor attached result. A failed open now returns kResultFalse, so the
    host does not show an empty window.
  • Bypass text. The Bypass parameter parses its own On/Off text.

Added (VST3)

  • Factory patches as .vstpreset files. Hosts whose preset browser reads
    preset files never showed the factory patches, only hosts that read the
    program list did. The build now writes all 180 as .vstpreset files (one
    folder per role, with name, category and description metadata), each reloaded
    and verified against the program it came from. The VST3 zips ship them in
    VST3 Presets/ and the installers put them in the VST3 preset folders
    (~/.vst3/presets, Documents\VST3 Presets, ~/Library/Audio/Presets, or
    the system folders). Loading one changes only the patch, exactly like picking
    the program: the MIX/KIT/DIGI/SETTINGS models, a loaded tune, bypass and the
    editor size stay. cmake --install and arpsid_vst3_install_user install
    them too.
  • CI opens the Linux editor in a real X11 window (Xvfb) with a host run loop,
    resizes, closes and reopens it, and checks the preset files on every VST3
    platform.

Fixed (installers)

  • install.sh and install_macos.sh no longer abort on macOS's bash 3.2 when
    no sudo is needed (an empty array expanded under set -u).

Compatibility

  • VST3 states can carry a PRST chunk that marks a patch-only (preset) state.
    Older versions skip unknown chunks, so they load such a preset as a normal
    state.
  • Saved states now carry a state-law revision marker: an extra semantic entry
    that older versions ignore, so 0.9.10 projects still open in 0.9.9. A project
    saved before 0.9.10 that plays in SYNTH mode is migrated on load so it sounds
    exactly as before: its filter mode is set to the type it actually played, and
    the never-audible VCO1/VCO3 Sync is cleared. CLASSIC and DrSID projects are not
    changed.

Documentation

  • docs/internals/SYNTH_MODES.md: render modes, flavors, the SYNTH / SID REG
    mode in full, and the projection engines. docs/FEATURES.md,
    docs/TECHNICAL_SPECIFICATIONS.md and docs/internals/ (SID chip, C64
    machine, runtime, engines) complete the reference set.
  • The MIX channel volume law is now documented as the code implements it:
    gain = value / 200, so 200 is unity and 255 is +2.1 dB. The old comment said
    +6 dB.

Fixed (macOS editor: AUv2, AUv3, Standalone, macOS VST3)

  • Knob captions were cut to nine characters ("Master Vo", "Voice Mod"); they
    now shrink to fit and only then end in "…".
  • Knob values showed raw 0–1 numbers ("0.780"); they now show the same text as
    the host (+0.0 ct, POLY, SAW, LOW-PASS, 1.60 ms).
  • In macOS Light Mode, standard controls (BANK slots, preset and transport
    buttons, pop-ups, the MIX strips) turned light with pale, unreadable text.
    Controls now follow the editor theme (dark, or light for the Light theme).
  • The tab strip clipped names to "◈ MA…"; it now picks a font size at which
    all 17 names fit and sizes each tab from its label.
  • Standalone: Reconnect All Sources moved to ⇧⌘R; it shared ⌘R with
    Random Patch.

Added

  • arpsid_au_editor_snapshot renders every tab of the Cocoa editor and the
    landing page of each AU flavor from the installed AUv2
    (scripts/update_au_screenshots.sh, and the manual Screenshots
    workflow, which publishes to the ci-screenshots branch).
  • docs/AU_EDITOR.md: the macOS editor tab by tab, with a screenshot of every
    tab and flavor, controls, shortcuts, the Standalone menus and how the editor
    works.
  • README: a complete feature list and screenshot galleries of all 17 tabs in
    both editors and the five AU flavors.

Downloads

Platform Download
macOS (Apple silicon + Intel) standalone-macos-universal (app), auv3-macos-universal (Logic-compatible ArpSID.app with the AUv3), auv2-macos-universal (5 AU flavors), vst3-macos-universal
Windows vst3-windows-x64, vst3-windows-arm64
Linux vst3-linux-x86_64, vst3-linux-aarch64
Source source (no C64 ROMs)

Installing

Each zip contains the bundle and an installer. The full guide, with manual
steps, uninstalling and troubleshooting, is
docs/INSTALL.md.

One line (downloads this release for your machine, checks it against
SHA256SUMS.txt, installs it):

# Linux and macOS
curl -fsSL https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.sh | bash
# Windows (PowerShell; the default install for all users needs Run as administrator)
irm https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.ps1 | iex

From a downloaded zip: unzip it and run the installer inside.

  • macOS: ./install_macos.sh. It installs the plug-ins for you and the
    apps to /Applications, removes the download quarantine (the bundles are
    ad-hoc signed, not notarized), registers the AUv3 and refreshes the
    Audio Unit cache. Then restart your host.
  • Windows: powershell -ExecutionPolicy Bypass -File .\install.ps1
    in an elevated PowerShell, installing to C:\Program Files\Common Files\VST3\.
    Add -Scope User to install for yourself only.
  • Linux: ./install.sh installs to ~/.vst3/; --system installs to
    /usr/lib/vst3/. ./install.sh --check lists any missing desktop
    libraries.

The VST3 runs the same engine as the AU and Standalone and has the full
ArpSID editor on every platform (on Linux it needs the usual desktop
libraries: X11/xcb, xkbcommon, cairo, pango, fontconfig). The C64 tune player needs your own
KERNAL/BASIC/CHARGEN ROM dumps; none are bundled.

Every asset in this release was built by CI after the full test suite, the
Steinberg VST3 validator and the ArpSID VST3 host integration test (every
VST3 build), strict auval on all five AU flavors (zero warnings) and a
Standalone launch test passed. The core test suite also runs under GCC,
Clang and AddressSanitizer + UBSan. Verify downloads
against SHA256SUMS.txt.

ArpSID 0.9.9

Choose a tag to compare

@github-actions github-actions released this 27 Sep 20:07
f84cd2f

Added (VST3)

  • Host bypass. A Bypass parameter (kIsBypass) drives the host's
    bypass button. It fades the output out and in over 10 ms, so it never
    clicks, while the engine keeps running (notes, arpeggiator, sequencer and
    .sid playback stay in time). It is saved with the project (BYPS state
    chunk) and the editor header shows BYPASSED.
  • 64-bit processing. Hosts that run a 64-bit audio path (Reaper, Cubase
    and others) no longer need to convert around ArpSID.
  • Editor state in the project. The editor size and the last tab are saved
    in the controller state, so a reopened project opens the editor the way you
    left it.
  • Right-click parameter menu. Right-clicking a knob, switch or menu opens
    the host's menu for that parameter (automation, MIDI learn, ...) with an
    added Reset to Default.
  • Computer-keyboard notes. A–L play a piano octave and a half, W E T Y U O the black keys, Z/X shift the octave. Keys with Ctrl/Alt/Cmd
    still go to the host.
  • Track name and colour. Hosts that share channel context
    (IInfoListener) see their track name, in the track colour, in the editor
    header.
  • Program attributes. Factory programs report the Instrument|Synth
    category to hosts that sort presets by it.

Fixed (VST3)

  • The controller no longer keeps a reference to the last editor view after
    the host closed it (a reference cycle kept the view alive until the plug-in
    was unloaded).
  • Host text for parameters outside the shared set (Bypass) now uses the
    generic conversion instead of failing.

Tests

  • Host integration test: bypass (flag, silence, persistence, recovery),
    64-bit rendering and oversized blocks, controller state round trip, track
    info, program category.
  • Kernel host state test: bypass save/restore/clear and legacy states.
  • Editor test: tab memory, right-click menu hit testing, computer-keyboard
    notes and octave shift, Ctrl passthrough.
  • The extended SDK validator (validator -e) passes 537 tests, including
    bypass persistence.

Downloads

Platform Download
macOS (Apple silicon + Intel) standalone-macos-universal (app), auv3-macos-universal (Logic-compatible ArpSID.app with the AUv3), auv2-macos-universal (5 AU flavors), vst3-macos-universal
Windows vst3-windows-x64, vst3-windows-arm64
Linux vst3-linux-x86_64, vst3-linux-aarch64
Source source (no C64 ROMs)

Installing

Each zip contains the bundle and an installer. The full guide, with manual
steps, uninstalling and troubleshooting, is
docs/INSTALL.md.

One line (downloads this release for your machine, checks it against
SHA256SUMS.txt, installs it):

# Linux and macOS
curl -fsSL https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.sh | bash
# Windows (PowerShell; the default install for all users needs Run as administrator)
irm https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.ps1 | iex

From a downloaded zip: unzip it and run the installer inside.

  • macOS: ./install_macos.sh. It installs the plug-ins for you and the
    apps to /Applications, removes the download quarantine (the bundles are
    ad-hoc signed, not notarized), registers the AUv3 and refreshes the
    Audio Unit cache. Then restart your host.
  • Windows: powershell -ExecutionPolicy Bypass -File .\install.ps1
    in an elevated PowerShell, installing to C:\Program Files\Common Files\VST3\.
    Add -Scope User to install for yourself only.
  • Linux: ./install.sh installs to ~/.vst3/; --system installs to
    /usr/lib/vst3/. ./install.sh --check lists any missing desktop
    libraries.

The VST3 runs the same engine as the AU and Standalone and has the full
ArpSID editor on every platform (on Linux it needs the usual desktop
libraries: X11/xcb, xkbcommon, cairo, pango, fontconfig). The C64 tune player needs your own
KERNAL/BASIC/CHARGEN ROM dumps; none are bundled.

Every asset in this release was built by CI after the full test suite, the
Steinberg VST3 validator and the ArpSID VST3 host integration test (every
VST3 build), strict auval on all five AU flavors (zero warnings) and a
Standalone launch test passed. The core test suite also runs under GCC,
Clang and AddressSanitizer + UBSan. Verify downloads
against SHA256SUMS.txt.

ArpSID 0.9.8

Choose a tag to compare

@github-actions github-actions released this 27 Sep 15:38
4ae21a9

Added (VST3)

  • Named values in hosts. Automation lanes, generic editors and typed
    entry show and accept names instead of indices or 0..1 values: waveform
    PULSE, filter LOW-PASS, voice UNISON, glide C64 SLIDE, LFO S&H,
    arp UP/DOWN and 2 OCT, seq PING-PONG, Hi-Fi TRANSCENDENCE, arp
    transpose +3 st, pattern length 16 steps. One shared table serves
    hosts, both editors and the parameter reference, following the engine's
    decode laws. AU parameter units are unchanged.
  • The C64 tune is saved with the project. The loaded .sid and its
    subtune come back when the project opens (new SIDF state chunk; older
    versions skip it). SONG < / > now works on a restored tune.
  • Parameter groups. Parameters sit in one VST3 unit per editor tab, plus
    a host-MIDI group with a sub-unit per controller type, so hosts that show
    units no longer list 512 parameters flat.
  • Resizable editor (Windows/Linux): it scales from 0.5× to 3× with the
    window, keeps its 3:2 shape, and reopens at the size you chose.
  • DIGI recording (Windows/Linux): the new DIGI Capture In side-chain
    input (off until a host routes audio to it) and REC/STOP in the DIGI tab
    record a take into the selected slot.

Fixed (VST3)

  • A truncated saved state now keeps and publishes the chunks read before
    the cut.
  • Windows: the C/C++ runtime is linked statically, so the plug-in no longer
    needs the Visual C++ Redistributable (CI checks the module's imports).
  • A Windows/Linux build without the editor returns no editor view (hosts
    show their generic UI) instead of a macOS-only view.

Linux build

  • scripts/linux/install_build_deps.sh installs the build packages with
    apt, dnf, pacman or zypper (--dry-run, --no-editor).
  • scripts/fetch_vst3_sdk.sh and CMake -DARPSID_FETCH_VST3SDK=ON fetch the
    pinned Steinberg SDK.
  • CMake checks the editor packages with pkg-config and names every missing
    one.
  • -DARPSID_VST3_EDITOR=OFF builds a VST3 without the editor.
  • build.sh --install-deps --fetch-vst3-sdk --install-vst3 goes from a bare
    system to an installed plug-in. --package-vst3 makes a release-style zip,
    and --no-vst3-editor skips the editor.

Installers

  • Every release zip contains its installer: install.sh (Linux: user or
    system install, uninstall, a missing-library check), install.ps1
    (Windows: all users or per-user, unblock, uninstall), and
    install_macos.sh (all macOS products, quarantine removal, AUv3
    registration, AU cache refresh, optional auval, uninstall).
  • One-line installers get_arpsid.sh / get_arpsid.ps1 download the build
    for your machine, verify it against SHA256SUMS.txt and install it.
  • New docs/INSTALL.md; the README and release notes point
    to it. CI smoke-tests the Linux and Windows installers on every build.

Downloads

Platform Download
macOS (Apple silicon + Intel) standalone-macos-universal (app), auv3-macos-universal (Logic-compatible ArpSID.app with the AUv3), auv2-macos-universal (5 AU flavors), vst3-macos-universal
Windows vst3-windows-x64, vst3-windows-arm64
Linux vst3-linux-x86_64, vst3-linux-aarch64
Source source (no C64 ROMs)

Installing

Each zip contains the bundle and an installer. The full guide, with manual
steps, uninstalling and troubleshooting, is
docs/INSTALL.md.

One line (downloads this release for your machine, checks it against
SHA256SUMS.txt, installs it):

# Linux and macOS
curl -fsSL https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.sh | bash
# Windows (PowerShell; the default install for all users needs Run as administrator)
irm https://raw.githubusercontent.com/djayuffe/ArpSID-public/main/scripts/install/get_arpsid.ps1 | iex

From a downloaded zip: unzip it and run the installer inside.

  • macOS: ./install_macos.sh. It installs the plug-ins for you and the
    apps to /Applications, removes the download quarantine (the bundles are
    ad-hoc signed, not notarized), registers the AUv3 and refreshes the
    Audio Unit cache. Then restart your host.
  • Windows: powershell -ExecutionPolicy Bypass -File .\install.ps1
    in an elevated PowerShell, installing to C:\Program Files\Common Files\VST3\.
    Add -Scope User to install for yourself only.
  • Linux: ./install.sh installs to ~/.vst3/; --system installs to
    /usr/lib/vst3/. ./install.sh --check lists any missing desktop
    libraries.

The VST3 runs the same engine as the AU and Standalone and has the full
ArpSID editor on every platform (on Linux it needs the usual desktop
libraries: X11/xcb, xkbcommon, cairo, pango, fontconfig). The C64 tune player needs your own
KERNAL/BASIC/CHARGEN ROM dumps; none are bundled.

Every asset in this release was built by CI after the full test suite, the
Steinberg VST3 validator and the ArpSID VST3 host integration test (every
VST3 build), strict auval on all five AU flavors (zero warnings) and a
Standalone launch test passed. The core test suite also runs under GCC,
Clang and AddressSanitizer + UBSan. Verify downloads
against SHA256SUMS.txt.

ArpSID 0.9.7

Choose a tag to compare

@github-actions github-actions released this 27 Sep 14:28
deaaadb

Fixed (VST3 editor, Windows and Linux)

  • Knob arcs on Linux. VSTGUI's cairo backend treats drawArc angles as
    radians although the API takes degrees, so every knob drew a full ring and
    the value arc was invisible. Arcs are now stroked through a graphics path.
  • SETTINGS menus. The topology, theme, language and diagnostics menus did
    not draw: their pop-up menu kept its initial zero size. Menus now follow
    their container's size.
  • Stepped values match the engine. Waveform and filter mode decode with
    floor(v × 8) and arp octaves with int(v × 3); the editor rounded. A
    host-automated value between grid points (e.g. waveform 0.42) showed a
    different waveform than the one playing. One shared decode law now drives
    menus, labels, the filter curve, LFO shapes and the SEQ grid, and a test
    pins it to the engine formulas.
  • DIGI $D418 mode menu was mislabelled. The kernel's modes are
    AUTH C64-BUS D418 (0) and FAST PRIVATE D418 (1); the menu offered
    "legacy float" (a debug-only path) as its first entry, so the default
    authentic mode showed as "legacy float".
  • Theme changes restyle every menu, including those in the MIX, KIT, DIGI and
    SETTINGS panels.
  • MIX, KIT and DIGI knobs stop dragging when the host cancels a mouse
    gesture.

Improved (VST3 editor)

  • Page layout: rows of plain controls take their natural height and rows with
    displays or panels share the rest, so knob rows are compact and scopes and
    grids get the space.
  • The on-screen keyboard lights every note the engine is sounding, not only
    the last one.
  • The VCO scopes and SID bus timeline draw one labelled lane per signal.
    Modulation meters draw LFOs and pitch bend from the centre.
  • The SID register readout wraps the raw register image; SEQ steps past the
    sequence length are faded; knob captions and values shrink to fit.
  • The DIGI panel re-reads its ~480 KB sample bank only when it changes, not
    30 times a second.
  • MIX, KIT and DIGI knobs have a Shift fine-drag.

Documentation

  • New docs/VST3_EDITOR.md: a screenshot and guide for
    each of the 17 tabs, the controls and gestures, and how the editor code
    works (data flow, layout, decode law, platform notes, tests).
  • New docs/VST3_IMPLEMENTATION.md: processor,
    kernel host, state format v5, controller, MIDI mapping, messages, threading.
  • New docs/ARCHITECTURE.md: layers, the kernel's
    block pipeline, engines, parameters, state, GUI models, telemetry and
    wrappers. It replaces docs/ARCHITECTURE_NOTES.md.
  • New docs/PARAMETER_REFERENCE.md: all 512
    parameters with default, values, steps and editor tab. It is generated from
    the code, and ParameterReferenceDocTests fails when it is stale
    (regenerate with the arpsid_update_parameter_reference target).
  • docs/TAB_ARCHITECTURE.md is rewritten for the
    current 17-tab ring; it described 9 tabs.
  • scripts/update_editor_screenshots.sh regenerates the editor screenshots.

Downloads

Platform Download
macOS (Apple silicon + Intel) standalone-macos-universal (app), auv3-macos-universal (Logic-compatible ArpSID.app with the AUv3), auv2-macos-universal (5 AU flavors), vst3-macos-universal
Windows vst3-windows-x64, vst3-windows-arm64
Linux vst3-linux-x86_64, vst3-linux-aarch64
Source source (no C64 ROMs)

Installing

macOS. The bundles are universal, ad-hoc signed and not notarized,
so clear the download quarantine after unzipping:

xattr -dr com.apple.quarantine ArpSID.component "ArpSID Standalone.app" ArpSID.app arpsid_vst3.vst3
mv ArpSID.component ~/Library/Audio/Plug-Ins/Components/   # AUv2
mv arpsid_vst3.vst3 ~/Library/Audio/Plug-Ins/VST3/          # VST3
mv "ArpSID Standalone.app" ArpSID.app /Applications/        # Standalone, AUv3

Open ArpSID.app once so macOS registers its AUv3, then rescan in your host
(in Logic: restart, or run killall -9 AudioComponentRegistrar). Because the
AUv3 is ad-hoc signed, some hosts only load it after it is re-signed with a
Developer ID; the AUv2 has no such restriction.

Windows. Copy arpsid_vst3.vst3 to C:\Program Files\Common Files\VST3\.

Linux. Copy arpsid_vst3.vst3 to ~/.vst3/ (or /usr/lib/vst3/ for all users).

The VST3 runs the same engine as the AU and Standalone and has the full
ArpSID editor on every platform (on Linux it needs the usual desktop
libraries: X11/xcb, xkbcommon, cairo, pango, fontconfig). The C64 tune player needs your own
KERNAL/BASIC/CHARGEN ROM dumps; none are bundled.

Every asset in this release was built by CI after the full test suite, the
Steinberg VST3 validator and the ArpSID VST3 host integration test (every
VST3 build), strict auval on all five AU flavors (zero warnings) and a
Standalone launch test passed. The core test suite also runs under GCC,
Clang and AddressSanitizer + UBSan. Verify downloads
against SHA256SUMS.txt.