Skip to content
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: 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 PRESET) 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.
    • 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!

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

    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. 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.

    • To make the plugin work:
    • Create a folder named EnsoniqSD1 in your user’s Documents folder:
    • Win C:\Users\yourusername\Documents
    • macOS /yourusername/Documents
    • Linux /Documents
    • Obtain the Ensoniq SD-1/32 sd132 AND Ensoniq LCD 2x40_vfx ROM files and place these files in that folder AND zip them to sd132.zip.
    • 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

    • Structure of the final sd132.zip in your Documents/EnsoniqSD1 folder:
      structure of the final sd132.zip in your Documents/EnsoniqSD1 folder

  • 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 Load Floppy/Cart/SYX 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 load my old SYS-EX (.syx) preset banks?
    Loading SYS-EX files works exactly like the original 1990 hardware, simulating a physical MIDI cable connection at a 31250 baud rate.
    Step-by-step:
    • IMPORTANT Enable SYS-EX on the Synth: On the SD-1 front panel, press System/MIDI CONTROL button TWICE, and set SYS-EX to ON.
    • Go to a safe screen: Press the SOUNDS or PRESETS button to return to the main playing screen.
    • Load the file: Click the Load Floppy/Cart/SYX button on the plugin interface and select your .syx file. A standard 64KB bank takes about 12 to 15 seconds to transfer. This is an authentic hardware limitation (the maximum speed of a physical MIDI cable).
    • You will see a Transmitting SYS-EX Data... overlay on the screen. Once the overlay disappears, the synth will instantly update its RAM, and your presets will be ready to play!
    • You can also save the presets to a disk image. Here you can find an SD-1 formatted empty hfe disk image. (1.44 MB) You can convert SYS-EX data to disk images with this tool.

  • How can I save my presets?
    • Saving on the real hardware requires holding down PRESETS button and pressing a BANK (0-9) button.
    • We added a macro button SAVE PRESET so users without a MIDI controller can also save presets.
    • You can also assign the buttons to a physical or virtual MIDI controller. With this workaround you can save the preset 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)?
    • Attach the disk image using the Load Floppy/Cart/SYX button. 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. You can convert SYS-EX data to disk images with this tool.

  • How do I save my stuff to Floppy Disk Images (.img, .hfe, .dsk, .eda)?
    • 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 Load Floppy/Cart/SYX 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/save my Cartridges (.eeprom, .rom, .cart, .sc32)?
    • Attach the cartridge image using the Load Floppy/Cart/SYX button. Press STORAGE, then select CARTRIDGE. Choose PROGRAMS/PRESETS/BOTH. Choose Internal-to-Cartridge (SAVE – only for writeable cartridges) or Cartridge-to-Internal (LOAD).

  • How can I load and use the internal Sequencer?
    • Attach the disk image using Load Floppy/Cart/SYX. 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.

  • 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!

  • Why there is no fancy preset manager like the ones in Usual Suspects emulations?
    The Usual Suspects are also developing an SD-1 emulation, so it’s guaranteed that their work will be far superior to ours. Just wait and see.

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

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

71 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.