Skip to content

Releases: luginf/d110-vst-emulator

D-110 VST 2026-08-16

Choose a tag to compare

@luginf luginf released this 16 Aug 15:48

New

  • D-110 plugin sequencer: a scrollable, per-bar note-list dialog (right-click a bar) to
    delete a single wrong note without a piano roll or re-recording.
  • Per-track Program Change/Bank override (right-click a track's CH readout) now also
    works in the plugin itself, not just Nonet Sequencer.
  • Per-song sound snapshot: each of the 4 sequencer song slots can now store/recall the
    instrument's entire memory (every Patch, Timbre, Tone and System setting) from the
    song-slot buttons' right-click menu - "Store current sounds in Slot N" / "Load Slot N's
    stored sounds". Loading power-cycles the instrument to apply (confirmed first, since
    it's destructive to whatever's currently live), and the stored sounds persist in the
    project's own saved state. This is what switching songs was always missing: the
    Program Change override above is one workspace-wide value, so it never changed which
    instruments played when you switched slots - this does.
  • Nonet Sequencer: a real Audio Settings dialog (device type/output/sample rate/buffer
    size, the usual JUCE picker) reachable from Options -> Audio Device, with the choice
    now persisted between runs - the app always opened a device for its low-jitter
    transport clock, but could never say which one.
  • Nonet Sequencer: a shared, theme-aware LookAndFeel installed app-wide, so stock JUCE
    dialogs (Options, the new Audio Settings picker, popup menus) finally follow the app's
    own light/dark theme instead of always keeping JUCE's stock dark chrome around a
    themed centre.
  • Nonet Sequencer: the metronome's click is now actually audible through the chosen
    audio device (a short decaying click, same shape as the plugin's own) - previously
    silent except for the LED strip and the optional rhythm-channel MIDI note.
  • Nonet Sequencer: the fallback timer clock (only used when no audio device is available
    at all) no longer drifts over a long session - it now tracks real elapsed time instead
    of assuming a fixed interval per tick.
  • Time signature gets a "Custom..." entry (right-click) for anything outside the six
    presets, in both apps - the engine already accepted any 1-32/1-32 signature, this was
    purely a UI limit.

No copyrighted Roland firmware or ROM images are included; you must supply your own
Control ROM and PCM Wave ROM in ~/.vst3/D-110_Data/.

D-110 VST 2026-08-09

Choose a tag to compare

@luginf luginf released this 09 Aug 19:11

New

  • D-20-style sequencer: undo/redo for edits, bar-range transpose, and step recording -
    including dotted, half, and whole note durations, not just the original quarter/eighth
    set.
  • A brand-new standalone app, Nonet Sequencer (Nonet-Seq): the same multitrack
    sequencer, but with zero D-110/firmware/ROM dependency - just the transport, tracks,
    and file I/O. Comes with its own on-screen test keyboard (MIDI routing/channel/omni
    configurable), a light/dark theme toggle that now actually reflects the current theme
    instead of always reading "light", and per-track MIDI channel assignment (the plugin
    version still takes its channels live from the D-110's own SYSTEM page, so this control
    only makes sense - and only appears - in the standalone app).
  • Right-click context menus (sequencer track rows, quantize/rename/channel menus, the
    on-screen keyboard) now open at the actual click point instead of snapping to the top
    or bottom of the window.
  • Sequencer track rows got a pass of polish: narrower MUTE/SOLO buttons, a small
    record-style dot in place of the old text "ARM" button, a far-right part-number
    reminder (just "1".."8" instead of the full label), and right-click track renaming -
    the name is used for that track when exporting to a MIDI file.
  • The standalone song-file format is renamed .midiseq (was .d110songs) to better
    describe what it actually stores: a gzip-compressed standard MIDI file per track inside
    an XML wrapper, not a raw memory/NVRAM-style snapshot. Nothing about the format itself
    changed - a file saved under the old name still loads fine.

No copyrighted Roland firmware or ROM images are included; you must supply your own
Control ROM and PCM Wave ROM in ~/.vst3/D-110_Data/.

D-110 VST 2026-08-07

Choose a tag to compare

@luginf luginf released this 07 Aug 07:48

The product itself has dropped "Native" from its own name (Linux/Windows/macOS binaries and
the VST3 bundle are now just D-110 Emulator) - which CPU core runs underneath was never
something worth surfacing in the name, now that the native core is the only one shipped. The
MAME-backed backend remains in the source tree as a dormant, opt-in fallback, but is no longer
built or packaged here.

Fixes

  • Fixed an intermittent (~50% under fast repeated notes) note dropout: the extended editor's
    own tone picker left a part's voice-assign mode stale instead of resetting it the way the
    real panel does, tripping a genuine mt32emu single-assign voice-abort race.
  • Master Tune is now mirrored to the sound engine (previously excluded) - verified against the
    engine's own pitch-delta computation directly, not just by ear.
  • Fixed the sequencer metronome's click sometimes doubling onto the next beat under real
    (small, tempo-misaligned) audio block sizes - the previous version only kept rendering a
    click's decay tail on blocks where a new click also started.
  • Fixed the precount getting stuck reporting "still counting in" long after it had actually
    finished, under a realistic (non-beat-aligned) block size - a rounding residual that never
    quite reached zero.
  • Fixed the beat counter resuming mid-bar instead of on beat 1 after STOP.

New

  • D-20-style sequencer: right-click METRO for visual-only/audio-only/both, a volume submenu,
    routing the click through the rhythm channel (MIDI ch. 10, GM2 Metronome Click/Bell) instead
    of the internal beep, and a record-only click (most DAWs' convention). Right-click LOAD/SAVE
    to export/import all 4 song slots at once as a single .d110songs file.
  • Precount has its own downbeat LED flash, once per beat, independent of audio - so it can be
    followed with the sound off.
  • A light/dark theme for the custom-drawn interface (Utility tab -> THEME); the photographed
    panel keeps its own hardware colours either way.
  • The extended editor drawer is now resizable (drag the handle above the keyboard drawer) and
    the Utility tab scrolls.
  • Utility tab -> DEBUG: the note-dropout diagnostic instrumentation is now off by default
    (previously always ran and wrote to disk) - a checkbox turns it back on if it's ever needed
    again.

Linux/Windows/macOS zips and the .deb all ship the single D-110 Emulator (native core)
only.

No copyrighted Roland firmware or ROM images are included; you must supply your own Control
ROM and PCM Wave ROM in ~/.vst3/D-110_Data/.

D-110 VST 2026-08-05

Choose a tag to compare

@luginf luginf released this 05 Aug 18:23
  • Utility tab: save/load a .d110snap memory snapshot, and export the full RAM image as a real Roland DT1 SysEx bank (no live MIDI transfer needed).
  • Parts tab: MIDI channel column between TONE and LEVEL, synced with the real System Area byte.
  • LCD: fixed thin glyph strokes breaking up at small window sizes.
  • New minimal on-screen test keyboard (mouse-playable, MIDI channel/omni, tracker-style PC-keyboard note entry via right-click), foldable independently of the extended editor, open by default.

Linux/Windows/macOS zips ship D-110 Emulator Native only. The Linux .deb (attached separately, not built by CI) still includes the MAME-backed D-110 Emulator for this release only - it is being dropped from future releases.

D-110 VST 2026-08-05

Choose a tag to compare

@luginf luginf released this 05 Aug 08:27
Revert La32Ramps default on the MAME-backed core; keep it on native only

Owner's live-DAW report: D110EmulatorNative plays cleanly, but D110Emulator (MAME-backed)
sustains notes forever and freezes the LCD's part-sounding indicator, reproducible on the very
first note of a session on either Fantasy or Steel Drum, every time.

Root-caused with a new probe (plugin/mame_stuck_note_repro.cpp - fresh D110AudioProcessor
instances, matching the owner's own repro of two separate plugin launches rather than a tone
switch inside one session): 100% reproducible on the very first note-off after every cold
boot, regardless of tone or how long the plugin settles before that note. A direct control
(same boot/tone/note sequence, StuckPolicy forced to La32Stub vs La32Ramps) proves this is
caused by today's La32Ramps changes to D110Core.cpp specifically - La32Stub is clean 12/12,
La32Ramps fails only the very first note-off, consistently.

Temporary instrumentation ruled out the obvious suspect: the new dispatch-ack code added to
D110Core.cpp's midiTick() never once triggers during a failing run (the CPU never reaches
kStuckLoopPc for this note), and the ramp-landing sequence looks identical in shape between a
failing first note and a succeeding later one. The actual mechanism is not yet isolated -
likely some interaction between La32Ramps' faster/more eager EXTINT responses and the MAME
machine's own real-time boot sequence, which the synchronous, thread-free native core has no
equivalent of.

Rather than continue chasing this today, PluginProcessor::setPoweredOn() now sets La32Ramps
only under D110_NATIVE_CORE (proven clean: native_ramp_edge_stress_probe.cpp,
native_polyphony_stress_probe.cpp, and now weeks of the owner's own DAW use); the MAME-backed
core keeps the long-proven La32Stub default. Root-causing the MAME-specific regression is a
separate, not-yet-done follow-up - mame_stuck_note_repro.cpp is kept as the regression check.

Also added a guaranteed-visible mention of the 128-voice polyphony extension to the panel's
right-click options menu, alongside the existing UTILITY-tab writeup - the owner couldn't find
the original UTILITY-tab-only text (that tab has no scrolling, and it may have been clipped).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

d110-emulator_0.9.5-fixes01

Choose a tag to compare

linux version