Skip to content
Ensoniq® SD-1 32-Voice VST Emulation running in FL Studio Ensoniq® SD-1 32-Voice VST Emulation running in FL Studio

Ensoniq SD-1

The SD-1 (1990) comes from a long line of Ensoniq’s evolving Transwave® wavetable digital synthesizers. It began with Ensoniq’s earliest synthesizer, the ESQ-1. That led to the SQ-80, then the VFX and VFX-SD (the latter featuring an on-board sequencer) and then to the SD-1 (and it eventually led to the Fizmo). The SD-1 allows for additive synthesis using waveform modulation, a sort of wavetable synthesis. This puts it into a unique class of digital synthesizers along with the PPG Wave series and Waldorf Microwave series.



The SD-1 can create all sorts of acoustic, electric, digital, and analog-like sounds. Its piano sound has over 1 MB of 16-bit waveforms to give it a full and rich realistic tone not found in other digital synthesizers of the time.

A single patch can contain up to 6 of the 168 waves in its ROM memory that can be combined and layered. Advanced and analog-like synth parameters including its dual multi-mode digital filters, three 11-stage envelopes, LFO, and 15 modulation sources allow you to further shape and morph your sounds. There’s even a built-in 24-bit VLSI dual effects processor with reverb, chorus, flanging and delay. The SD-1 also has a standard 61-note keyboard with velocity sensitivity, polyphonic aftertouch and full MIDI implementation with 12 channels for multitimbral functions as well as four 16-bit DAC outputs. Like the VFX-SD, the SD-1 has a professional quality on-board sequencer making it a complete all-in-one music production workstation. This is a 24-track sequencer with 25,000 note capacity and it holds up to 60 sequences and 20 songs. There is quantization (96 ppqn), real-time or step entry, looped or linear mode, and auto-punch in/out. Tracks can be set to control the SD-1’s internal voices or external MIDI equipment, or both at the same time! An on-board 3.5″ disk drive allows you to store your programs, sequences, songs, and even MIDI SYS-EX data. The SD-1 is compatible with all VFX and VFX-SD program librarys too! Source

About this project

We are Sojus Records, one of the longest-running netlabels still active. We are musicians, not programmers, but we love old synths and emulations. We decided to build a fully featured VST3/AU version of the MAME-emulated Ensoniq SD-1/32, which has never been emulated before. Thanks to the recent AI coding revolution, we have successfully built it. Finally a good use of vibe coding! This proof-of-concept is an important step for both musicians and coders. We are looking forward to bringing other MAME synths to life in the future!

What’s working?

Everything. Check the original manual here: SD1 Manual @ Polynominal

Features

  • NEW: Full featured preset and disk manager. Browse and play any preset with MIDI keyboard from:
    • internal: RAM, ROM 0 and 1, attached cartridge
    • any external folders: supported VFX, VFX-SD, SD1 .SYX files, cartridge files, .HFE/.IMG disk images.
    • Instant single program, preset and full .SYX bank import.
    • Export single program and preset .SYX and .SYX banks from INT RAM, attached cartridge, disk images and cartridge files.
    • There’s no need to switch the SYS-EX in menu from now on as it’s always enabled at boot.
    • Big thanks to Joe McMahon for his awesome sd1diskutil tool which is embedded and working under the hood.
  • Simplified ROM handling for easy installation We completely overhauled how ROM files are handled to make the installation process bulletproof and musician-friendly 🙂
    • Musican method: Obtain the Ensoniq SD-1/32 sd132 AND Ensoniq LCD 2x40_vfx ROM files. Start the plugin and it displays a friendly warning screen with a “Locate ROMs…” button. It opens a multi-select file browser where users can pick .zip files, loose .bin files or just open a folder with the files The plugin handles the extraction and copying transparently. Read more
  • NEW: Reworked MIDI automation This time really 🙂 Every panel button can be automated and assign to virtual or physical MIDI controller. Read the FAQ !
  • NEW: Full MIDI out
  • NEW: Removed instance blocking You can load as many instances of a plugin as you want in your DAW! Thanks to kbaccki for investigating the singletons.
  • NEW: macOS AU first public build for SELECTED DAWS ONLY! Please note that the AU plugin is ONLY for Logic, GarageBand, MainStage, Ableton Live, Fender Studio Pro (Studio One) and Reaper. Any other DAW must use the VST3 version! Tested on Logic 11, Fender Studio Pro 8, Reaper 7, Ableton Live 12.
  • NEW: Save macro button (SAVE PROGRAM) for users without MIDI controllers Read the FAQ!
  • Windows 10+ 64 bit VST3 AVX1/AVX2, Mac Intel+ARM Universal Binary VST3 and AU, Linux VST3 Generic/AVX2
  • VFX, VFX-SD, SD1 .SYX SYS-EX file import. Read the FAQ!
  • FULL VST automation (All keys, sliders and buttons) Read the FAQ!
  • Global settings saving
  • VST3 state saving
  • 4 different panel layouts with resizable GUI and VFD display
  • Buffer setting
  • 4 outputs: stereo main out, optional stereo aux (dry signal with no effects)
  • Can load/save all compatible VFX/VFX-SD/SD1-24/SD1-32 disk images (.img, .hfe, .dsk, .eda) and cartridges (.eeprom, .rom, .cart, .sc32) Read the FAQ!

Known limitations

  • DAW automation is not visible on GUI and you can NOT directly select buttons or sliders from the GUI to assign them to a controller. Read the FAQ!
  • No floppy drive sound 😀
  • Mac binaries require one of the following methods to run due to Apple’s security policies:
    • all macOS versions BEFORE Tahoe:
      • Manual authorization – The user must go to System Settings > Privacy & Security and, after the DAW has attempted to load the plugin, click the “Open Anyway” button.
      • Better method to remove quarantine in terminal. Open a terminal window and run the following command on the plugin bundle:
        for VST3:
        sudo xattr -rd com.apple.quarantine /Library/Audio/Plug-Ins/VST3/EnsoniqSD1.vst3
        for AU:
        sudo xattr -rd com.apple.quarantine /Library/Audio/Plug-Ins/Components/EnsoniqSD1.component
      • Get Sentinel if you stuck with authorization: https://github.com/alienator88/Sentinel
    • macOS versions Tahoe and later: Remove quarantine and codesign the plugin. Open a terminal window and run the following command on the plugin bundle:
      • install Xcode Command Line Tools if needed:
        xcode-select --install
      • for VST3:
        sudo xattr -rd com.apple.quarantine /Library/Audio/Plug-Ins/VST3/EnsoniqSD1.vst3
        sudo codesign --force --deep --sign - /Library/Audio/Plug-Ins/VST3/EnsoniqSD1.vst3
      • for AU:
        sudo xattr -rd com.apple.quarantine /Library/Audio/Plug-Ins/Components/EnsoniqSD1.component
        sudo codesign --force --deep --sign - /Library/Audio/Plug-Ins/Components/EnsoniqSD1.component

Requirements

  • Please note that this is a hardware-level emulation of the synthesizer, so it places heavy demands on the CPU! Set the buffer setting to higher if buffer underrun occurs. Examples for buffer settings: 2011 Sandy Bridge (AVX1) 2 core i5-2415m: 4096, 2013 Haswell (AVX2) 4 core i7-4770: 2048, 2018 Coffee Lake 6 core i7-8700: 256, 2020 Apple ARM M1 Pro 6P/2E: 128.

  • Windows 10 or newer. Windows build is AVX1 or AVX2 optimized.

  • Linux Ubuntu 22.04 or equivalent or later. Linux build is AVX2 or Generic optimized.

  • macOS 11 Big Sur or newer. As MAME itself cannot be compiled lower than Big Sur (macOS 11) this is the minimum OS for mac. If your Mac is stuck on an older OS, my suggestion is to try OpenCore Legacy Patcher to update your Mac to a compatible OS.

  • A VST3 compatible DAW. The AU build is for selected DAWs only! If it’s not working, come back later 🙂
    • Tested and working:
    • macOS VST3: Ableton Live 12, Bitwig Studio 6, Cubase 15, Fender Studio Pro 8, FL Studio 2025, Reaper 7, Maschine 3.
    • macOS AU: SELECTED DAWS ONLY! Please note that the AU plugin is ONLY for Logic, GarageBand, MainStage, Ableton Live, Fender Studio Pro (Studio One) and Reaper. Any other DAW must use the VST3 version! Tested on Logic 11, Fender Studio Pro 8, Reaper 7, Ableton Live 12.
    • Windows: Ableton Live 12, Bitwig Studio 6, Cubase 15, FL Studio 2025, Reaper 7, Cantabile.
    • Linux: Bitwig Studio 6, Reaper 7 etc.
    • Problems? Check Troubleshooting!

ROM Installation

IMPORTANT – ROM Files Required!
Due to copyright reasons, the required Ensoniq ROM files are NOT included.

We completely overhauled how ROM files are handled to make the installation process bulletproof and musician-friendly 🙂

  • Musican method: Obtain the Ensoniq SD-1/32 sd132 AND Ensoniq LCD 2x40_vfx ROM files. Start the plugin and it displays a friendly warning screen with a “Locate ROMs…” button. It opens a multi-select file browser where users can pick .zip files, loose .bin files or just open a folder with the files The plugin handles the extraction and copying transparently.

  • Hardcore method: Create a folder named EnsoniqSD1 and another folder inside named ROMs in your user’s Documents folder:
    • Win C:\Users\yourusername\Documents » C:\Users\yourusername\Documents\EnsoniqSD1\ROMs
    • macOS /yourusername/Documents
    • » /yourusername/Documents/EnsoniqSD1/ROMs
    • Linux /Documents
    • » /Documents/EnsoniqSD1/ROMs
    • Obtain the Ensoniq SD-1/32 sd132 AND Ensoniq LCD 2x40_vfx ROM files and place these files in that ROMs folder (zipped or unzipped):
    • Filename
      esqvfd_font_vfx.bin
      sd1_32_402_hi.bin
      sd1_32_402_lo.bin
      sd1_410_hi.bin
      sd1_410_lo.bin
      u34.bin
      u35.bin
      u36.bin
      u37.bin
      u38.bin

    • Optional: If you want to run the internal sequencer, you need the original disk image:

Troubleshooting

  • The plugin performs a self-check at every startup, which checks the following: whether it has write permissions to the temp folder and the EnsoniqSD1 folder, checks the Lua plugins, and verifies if the MAME engine failed to start for any reason. It will notify you if it finds any errors.

  • We’ve removed the strict ROM verification. Now it’s up to MAME to accept your files; we only check for their presence, and it doesn’t matter whether they’re organized into a folder within the zip file or not. If your ROM has been good so far, it will continue to be good. At startup, it checks for the presence of sd132.zip; if it doesn’t find it, you can set the exact path using a button. We also check to see if all 10 files are present, and you can rescan the zip file without reloading the plugin.

  • Whitelist the plugin in your antivirus app. The plugin is writing some data to temp folder and to your Documents/EnsoniqSD1 folder (e.g. settings.xml)

  • Your sequencer is blacklisting the plugin: if the plugin scanner provides error message or a log file then send it to us.

  • If the plugin is loaded but there’s only Preset/File Manager and Settings buttons and blank window: the internal MAME engine is not loaded. Check if your OS/PC/MAC is capable to run it. Whitelist plugin in your anti-virus.

  • Reset global settings: go to Documents/EnsoniqSD1 and delete the file settings.xml

  • Report problems at GitHub issues

FAQ

  • How do I use the file manager?
    Open Preset/File Manager and select what you want to play:
    • internal sources (INT RAM, ROM0, ROM1, CARTRIDGE)
    • external sources: single program/preset .SYX files, .SYX bank files, sequencer files
    • floppy disk images (.IMG, .HFE, .DSK, .EDA)
    • cartridge files (.EEPROM, .ROM, .CART, .SC32).
    • All programs/presets can be played in every location. You can also import and save programs and presets, read below.

  • How do I import SYS-EX (.SYX) files?
    Open Preset/File Manager and browse your folders. You can import single program .SYX with Write Single Program or program .SYX bank Import Full Bank in a second.
    You can import all Ensoniq file types: 1/6/30/60 program files and banks, 1/10/20 preset files and banks, 1/30 and 60 sequences. Note for sequences: you must load the sequencer program first, read below.
    Note for Preset importing: A Preset is a combination of three Programs and an effects set-up which can be instantly recalled for use in performance. Presets are handy “performance memories” which allow you to create and save sound combinations, splits, layers, patch select variations, etc. When you import a preset the SYS-EX data doesn’t contains the INT RAM or CARTRIDGE programs.

  • How do I export SYS-EX (.SYX) files?
    Open Preset/File Manager and select the location first: internal ram or attached cartridge, external disk images or cartridge files. Select one or more programs or presets and press EXPORT .SYX button. Note: you can only export the same file types. You can export all Ensoniq file types: 1/6/30/60 program files and banks, 1/10/20 preset files and banks, 1/30 and 60 sequences. Please note, that ROM0 and ROM1 programs can NOT exported.
    Note for Preset exporting: A Preset is a combination of three Programs and an effects set-up which can be instantly recalled for use in performance. Presets are handy “performance memories” which allow you to create and save sound combinations, splits, layers, patch select variations, etc. When you export a preset the SYS-EX data doesn’t contains the INT RAM or CARTRIDGE programs.

  • How can I save my Programs! to INT RAM?
    We added a macro button SAVE PROGRAM so users without a MIDI controller can also save programs.
    You can also assign the buttons to a physical or virtual MIDI controller. With this workaround you can save the program as you can hold down any buttons simultaneous.

  • How can I automate the plugin’s buttons and sliders?
    You can NOT directly select buttons or sliders from the GUI to assign them to a controller. You should use your DAW’s VST automation parameter listing for the plugin and choose from there.
    Note: DAW automation is not visible on GUI!

  • How do I load Floppy Disk Images (.IMG, .HFE, .DSK, .EDA)?
    Open Preset/File Manager and browse your folder. Open the disk image and play the programs/presets with MIDI keyboard instantly. You can import all Ensoniq file types: 1/6/30/60 program files and banks, 1/10/20 preset files and banks, 1/30 and 60 sequences. Note for sequences: you must load the sequencer program first. Via SD-1: Attach the disk image using the Preset/File Manager button and Insert Floppy Image. Press STORAGE, then select DISK. Press LOAD. The display will show the Disk Load page with the File Type selected. Move the data entry slider or push up/down buttons to select your file or bank.

  • How do I save my stuff to Floppy Disk Images (.IMG, .HFE, .DSK, .EDA)?
    • You can export any Ensoniq file from floppy images with the file manager, you don’t have to attach it to SD-1.
    • Here you can find an SD-1 formatted empty hfe disk image. (1.44 MB) Thanks to Headroom for it.
    • Attach the disk image using the Preset/File Manager button. Press STORAGE, then select DISK. Press SAVE. The display will show the Disk SAVE page with the File Type selected. Move the data entry slider or push up/down buttons to select save type. Press *YES*. You can convert SYS-EX data to disk images with this tool.

  • How can I load and use the internal Sequencer?
    • Attach the disk image using Load Preset/File Manager. Press STORAGE, then select DISK. Press LOAD. The display will show the Disk Load page with the File Type selected. Move the data entry slider or push up/down buttons all the way up to select TYPE=SEQUENCER OS.
    • Now load the sequencer with pushing the SEQ button.

  • How can I load/save my Cartridges (.eeprom, .rom, .cart, .sc32)?
    • Attach the cartridge image using the Preset/File Manager button. Press STORAGE, then select CARTRIDGE. Choose PROGRAMS/PRESETS/BOTH. Choose Internal-to-Cartridge (SAVE – only for writeable cartridges) or Cartridge-to-Internal (LOAD).

  • Audio Settings: Why can’t I set the Buffer to 0?
    This plugin runs a cycle-accurate emulation of the original Motorola 68000 CPU, Ensoniq OTTO (ES5506) and Ensoniq ESP (ES5510) and other chips. On the real physical SD-1, the time it takes from pressing a key to hearing a sound is approximately 24.4 milliseconds.
    Because the MAME emulator runs asynchronously on its own background thread, we need a tiny “safety pool” (the plugin buffer) to ensure the audio stream never drops out.
    A setting of 128 samples is incredibly fast and highly recommended for live playing.
    The plugin reports its exact hardware latency to your DAW automatically (Plugin Delay Compensation), so during playback and rendering, your tracks will always be perfectly in sync and on the grid!

License and credits

Built with love by MAMEDev and contributors and sojusrecords.com

This project is released under GNU General Public License version 2/3.

MAME® Legal Information
Disclaimer
The source code to MAME® is provided under the GNU General Public License version 2 or later as of Git revision 35ccf865aa366845b574e1fdbc71c4866b3d6a0f and the release of MAME® 0.172. Source files may also be licensed as specified in the file header. This license does not apply to prior versions of MAME®.

MAME® Copyright © 1997-2026 MAMEDev and contributors

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

es5510, vfxcart, esqpump, panels license:
BSD 3 Clause | Copyright (c) Christian Brunschen

m68000, wd_fdc Emulation license
BSD 3 Clause | Copyright (c) Olivier Galibert

esq5505 Emulation license
BSD 3 Clause | Copyright (c) R. Belmont, Parduz

esqpanel, vfd, midi Emulation license
BSD 3 Clause | Copyright (c) R. Belmont

es5506, emu, emupal, speaker Emulation license
BSD 3 Clause | Copyright (c) Aaron Giles

mc68681 Emulation license
BSD 3 Clause | Copyright (c) Mariusz Wojcieszek, R. Belmont, Joseph Zatarski

hd63450 Emulation license
BSD 3 Clause | Copyright (c) Barry Rodewald

esqlcd Emulation license
BSD 3 Clause | Copyright (c) Parduz

nvram Emulation license
BSD 3 Clause | Copyright (c) Nigel Barnes

floppy Emulation license
BSD 3 Clause | Copyright (c) Nathan Woods, Olivier Galibert, Miodrag Milanovic

softlist_dev Emulation license
BSD 3 Clause | Copyright (c) Wilbert Pol

esq16_dsk Emulation license
BSD 3 Clause | Copyright (c) R. Belmont, Olivier Galibert

hxchfe_dsk Emulation license
BSD 3 Clause | Copyright (c) Michael Zapf

logmacro Emulation license
BSD 3 Clause | Copyright (c) Vas Crabb

sd1diskutil
Copyright (c) Joe McMahon

and so many others. Thank you for your work!

Built with JUCE® Framework © Raw Material Software Limited

All trademarks are property of their respective owners.

Download here for free

83 Comments (Click to show)

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.