Skip to content

Releases: irpina/digiemu

digiemu 0.3.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 13:52
b3bd300

digiemu 0.3.0 adds MIDI to both products and supports Digitone OS 1.44, which failed to set up in 0.2.0. It also adds Check firmware..., which checks a custom firmware build before it goes on a device.

Get started

  1. Download digiemu-win64-0.3.0.zip below and unzip it anywhere you can write to, except a OneDrive folder.
  2. Get the firmware from Elektron's website: Digitakt_OS1.53.syx for the Digitakt, or Digitone_and_Digitone_Keys_OS1.44.syx (or 1.43) for the Digitone.
  3. Run digiemu.exe, click Add firmware and pick the .syx. Setup runs once per firmware and takes about 25 seconds on a desktop.
  4. Click Play.

The exe is not code-signed, so Windows SmartScreen asks first: choose More info, then Run anyway. A PC with Smart App Control turned on blocks it. Tested on Windows 11, 64-bit.

Upgrading from 0.2.0: unzip 0.3.0 into a new folder, then move the firmware folder from your 0.2.0 folder into it. A Digitakt or Digitone set up with 0.2.0 opens where you left off, without being set up again. If a Digitone OS 1.44 setup failed under 0.2.0, select it and click Reset to factory: its saved boot was made without the Digitone's second processor.

Get started on a Mac

Added after the release, for Macs with Apple silicon (M1 or later).

  1. Download digiemu-macos-arm64-0.3.0.dmg below, open it, and drag digiemu to Applications. It is signed and notarized by Apple: the first time, macOS asks whether to open it, as it does for any app from the internet.
  2. Get the firmware as above, open digiemu, click Add firmware and pick the .syx.
  3. Click Play.

The Mac app keeps your firmware folders, sessions and logs in ~/Library/Application Support/digiemu. It includes MIDI, and on the Mac a DAW can connect through virtual MIDI ports named after the device, with no loopback driver.

What's new

  • MIDI in and out on the DIN ports, on the Digitakt and the Digitone.
    • The new MIDI button picks a device to play from and one to send to, and remembers them for each firmware.
    • The firmware's own MIDI CONFIG still applies. After setup, PORT CONFIG > INPUT FROM is USB only, so set it to MIDI (and OUTPUT TO, for MIDI out).
    • It follows an external MIDI clock, smoothed so that the tempo holds steady.
    • Windows has no virtual MIDI ports. To connect a DAW, make a loopback port (with loopMIDI, for example) and pick it in the MIDI window.
    • Thanks to @amorgan101010, who wrote MIDI in and out.
  • Digitone OS 1.44. Its setup stopped with "settle: not settled after 3000M instructions", because the Digitone's second processor never started. It now sets up in under a minute and plays, and its key LEDs light.
  • Check firmware... checks a custom firmware build before you flash it, against the stock firmware you have set up. It runs the build's own bootstrap and boots it under a stricter emulator. It compares every screen and sample with stock's, and can also time the audio render against its deadline. It ends with PASS or FAIL and the reasons. From the command line it is digiemu-console.exe --check FILE.syx [--baseline STOCK.syx] [--timing].
  • Saved sessions reopen after long play. In 0.2.0, a session closed after about a minute of play could not be opened again, and the app dropped it.
  • The panel.
    • The layout follows the hardware's more closely.
    • Master Volume (top left) turns with the mouse wheel or a drag.
    • A screen no longer keeps leftovers of the one before it.
    • Thanks to @GnarlyAsparagus7, who reworked the layout and added Master Volume. They also added live audio on macOS, which is for running from source.
  • The emulated memory is 128 MB, as on the hardware, not 64 MB. This matters most to Check firmware..., which no longer fails a build that loads more than about 4 MB of samples.

Known limits

  • MIDI:
    • a buffer the firmware sends by DMA goes out at once, not at 31250 baud;
    • there is no USB MIDI;
    • OUT PORT FUNC's DIN 24 and DIN 48 sync modes are not modelled;
    • on Windows, MIDI data passing through a device has not been tested yet. The ports were listed, chosen and remembered there, and MIDI in and out were tested on Linux.
  • Tested releases are Digitakt OS 1.53 and Digitone OS 1.43 and 1.44. Digitakt OS 1.54 sets up and boots once you confirm, but has not been tested further. Other releases of the two also run once you confirm; other Elektron products are recognised and turned away.
  • The Digitone runs as a plain Digitone. The Digitone Keys' keyboard, wheels and extra keys are not there.
  • The Digitakt's factory sample library lives on the real device's storage, not in the firmware, so /factory is empty.
  • Whether 44.1 kHz samples play at the right pitch is not verified yet.
  • Control Flow Guard is cleared in both exes, because Unicorn's longjmp fails under it. The process then has the same protections as python.exe.
  • The Mac app passes its self-test: the patched Unicorn running guest code, Capstone, the device files, Tk, and every module it loads. Playing a firmware in it has not been tested yet. It is signed with one entitlement, allow-jit, which Unicorn's code translation needs. There is no Intel Mac build.

The README and docs/STATUS.md have the full list.

Licence

GPL-2.0-or-later. The GPL text, and the licences of Python, Tk, Capstone and python-rtmidi (with RtMidi's), are inside the zip and the Mac app.

Checksum

bbcb4c683d5041794d8b3f61ba859df908c15fdf1317ca3887386e04ab2aedf0 *digiemu-win64-0.3.0.zip
118f485472fbc45bc69d5a58dee3924b2dde34c5dad30094b2ad689e805cfbbf *digiemu-macos-arm64-0.3.0.dmg

Build

Built by GitHub Actions from tag v0.3.0 (commit b3bd300) with tools/build-windows.ps1 on Python 3.11.9 (the run). The bundled unicorn.dll (SHA-256 0e2832fc84311c7be20f76e62cc1195bba8e0980bb436e92c8bd4ee1a64ccb6e) is Unicorn 2.1.4 with the patches in patches/, built from source on the runner.

The Mac app was added on 3 October 2026. GitHub Actions built it from commit b99737a: v0.3.0 plus the macOS packaging of #13, which changes nothing on Windows. The build used tools/build-macos.sh on Python 3.12.10 (the run). Its libunicorn.2.dylib is built from the same sources, with SHA-256 836fb978ea898020621324f7c9d804237851557031f0f79d093ca42507dfb322 as built; bundling rewrites and signs it. The app is signed with a Developer ID and notarized by Apple.

No Elektron firmware is included. digiemu is not affiliated with or endorsed by Elektron.

digiemu 0.2.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 13:51
bb5fa0d

digiemu 0.2.0 adds the Digitone (mk1). It runs the Digitone's own firmware, which you supply, in a window of its own, including the second processor that plays the Digitone's FM voices. The Digitakt (mk1) works as before.

Get started

  1. Download digiemu-win64-0.2.0.zip below and unzip it anywhere you can write to, except a OneDrive folder.
  2. Get the firmware from Elektron's website: Digitone_and_Digitone_Keys_OS1.43.syx for the Digitone, or Digitakt_OS1.53.syx for the Digitakt.
  3. Run digiemu.exe, click Add firmware and pick the .syx. Setup runs once per firmware and takes about 25 seconds on a desktop.
  4. Click Play.

The exe is not code-signed, so Windows SmartScreen asks first: choose More info, then Run anyway. A PC with Smart App Control turned on blocks it. Tested on Windows 11, 64-bit.

Upgrading from 0.1.0: unzip 0.2.0 into a new folder, then move the firmware folder from your 0.1.0 folder into it. A Digitakt set up with 0.1.0 opens where you left off, without being set up again.

What's new

  • Digitone mk1 OS 1.43. It boots to its live user interface, in a window with the Digitone's layout: the six parameter-page keys, T1–T4, and LEVEL/DATA beside the eight encoders. Every key, encoder and key LED works, and so do the sequencer and the +Drive.
  • The Digitone's FM voices are its own. The Digitone renders them on a second processor. digiemu emulates that processor too, running the firmware's own voice code, live at 48 kHz. This takes most of a second CPU core.
  • Encoders respond sooner, on both products. A mouse-wheel notch now turns a knob by four steps. The firmware's encoder driver has a dead zone, and before this a knob needed about 16 notches before anything moved.
  • digiemu-console.exe sets up and lists the Digitone too (--add, --list, --rebuild, --reset).
  • This is the first release built by GitHub Actions from its tag. See Build below.

Known limits

  • The Digitone runs as a plain Digitone. The Digitone Keys' keyboard, wheels and extra keys are not there.
  • The Digitone has no sample engine, so its window has no LOAD SAMPLES.
  • The Digitone has not been tried on a slow PC yet. It needs a second core for its voices.
  • The Digitakt's factory sample library lives on the real device's storage, not in the firmware, so /factory is empty.
  • Whether 44.1 kHz samples play at the right pitch is not verified yet.
  • Only Digitone OS 1.43 and Digitakt OS 1.53 are tested. Other releases of the two run once you confirm; other Elektron products are recognised and turned away.
  • Control Flow Guard is cleared in both exes, because Unicorn's longjmp fails under it. The process then has the same protections as python.exe.

The README and docs/STATUS.md have the full list.

Licence

GPL-2.0-or-later. The GPL text, and the licences of Python, Tk and Capstone, are inside the zip.

Checksum

19216033a32e52578a0e778497c6b0313d41de7cd1db825b0c0d950f60b7ce0c *digiemu-win64-0.2.0.zip

Build

Built by GitHub Actions from tag v0.2.0 (commit bb5fa0d) with tools/build-windows.ps1 on Python 3.11.9 (the run). The bundled unicorn.dll (SHA-256 dd87fab53255d110440f4785d5fa585a366d22153c0144dfe91ca4bc1aa65980) is Unicorn 2.1.4 with the patches in patches/, built from source on the runner. No Elektron firmware is included. digiemu is not affiliated with or endorsed by Elektron.

digiemu 0.1.0

Choose a tag to compare

@irpina irpina released this 24 Sep 04:57

The first Windows release of digiemu, a Digitakt mk1 emulator. It runs the Digitakt's own firmware, which you supply, behind a clickable front panel.

Get started

  1. Download digiemu-win64-0.1.0.zip below and unzip it anywhere you can write to, except a OneDrive folder.
  2. Get the Digitakt firmware, Digitakt_OS1.53.syx, from Elektron's website.
  3. Run digiemu.exe, click Add firmware and pick the .syx. Setup runs once and takes about 25 seconds on a desktop.
  4. Click Play.

The exe is not code-signed, so Windows SmartScreen asks first: choose More info, then Run anyway. A PC with Smart App Control turned on blocks it. Tested on Windows 11, 64-bit.

What it does

  • Runs Digitakt mk1 OS 1.53 to its live user interface: every key, encoder and key LED, the sequencer and patterns, the +Drive, and live 48 kHz audio.
  • Identifies the firmware from the .syx itself, and sets it up once: an emulated +Drive, formatted, and the factory project and sounds installed by the firmware's own first boot.
  • Saves your session when you close the panel, so the next Play carries on where you left off.
  • LOAD SAMPLES puts WAV files in /incoming on the +Drive. The Digitakt only sees new files after a restart, so digiemu restarts it (about 15 seconds) and reopens the panel.
  • digiemu-console.exe does all of it from the command line (--add, --list, --rebuild, --reset), for scripts and CI.

Known limits

  • The factory sample library lives on the real device's storage, not in the firmware, so /factory is empty.
  • Whether 44.1 kHz samples play at the right pitch is not verified yet.
  • Only OS 1.53 is tested. Other Digitakt mk1 releases run once you confirm; other Elektron products are recognised and turned away.
  • Control Flow Guard is cleared in both exes, because Unicorn's longjmp fails under it. The process then has the same protections as python.exe.

The README and docs/STATUS.md have the full list.

Checksum

23ce550a5a00ec93c2ba7dabd36db2c30022ad5c9113c6a3d5ba236368472c4b *digiemu-win64-0.1.0.zip

Source and licence

GPL-2.0-or-later. Built offline from tag v0.1.0 with tools/build-windows.ps1, and every source and data file in the bundle is byte-identical to that tag. The bundled unicorn.dll (SHA-256 9adac3e70c391fa98986e8a07d006acd8f27f52416e977407995a3c7f2e03976) is Unicorn 2.1.4 with the six patches in patches/. The GPL text, and the licences of Python, Tcl/Tk and Capstone, are inside the zip. No Elektron firmware is included. digiemu is not affiliated with or endorsed by Elektron.