A hardware-aware DAW for the Sega Mega Drive.
49 changes since v0.3.0.
Downloads
| platform | portable | installed |
|---|---|---|
| Windows x86-64 | mdd-0.4.0-windows-x86_64-portable.zip |
mdd-0.4.0-windows-x86_64-setup.exe |
| Linux x86-64 | mdd-0.4.0-linux-x86_64-portable.tar.gz |
mdd-0.4.0-linux-x86_64-installer.tar.gz |
| Linux arm64 | mdd-0.4.0-linux-arm64-portable.tar.gz |
mdd-0.4.0-linux-arm64-installer.tar.gz |
| macOS x86-64 | mdd-0.4.0-mac-x86_64-portable.tar.gz |
mdd-0.4.0-mac-x86_64.dmg |
| macOS arm64 | mdd-0.4.0-mac-arm64-portable.tar.gz |
mdd-0.4.0-mac-arm64.dmg |
A portable copy keeps its settings, projects and banks in a userdata folder beside the
executable, so it can live on a memory stick and leaves nothing behind. An installed copy
keeps them under your documents. Both are the same application, and the updater offers
whichever kind you already have.
Checking a download
SHA256SUMS lists every file, and each file has a .sigstore bundle beside it,
SHA256SUMS included. The signature is what proves a download came from this repository: a
checksum on its own only proves the file matches whichever list you read it from.
:::sh
sha256sum -c SHA256SUMS --ignore-missing
cosign verify-blob --bundle SHA256SUMS.sigstore \
--certificate-identity-regexp '^https://github.com/MeguminBOT/md-synth-daw/' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
SHA256SUMS
The same workflow records build provenance, which the GitHub CLI reads:
:::sh
gh attestation verify mdd-0.4.0-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-daw
What changed
The song model (2)
- A clip can be given a pattern nothing else is looking at
- Edit The notes a chord leaves silent are offered a way out
Playback and export (1)
- Stream An export reserves a guess and grows into it
File formats (6)
- Audio A format chunk is read only where it is long enough to hold one
- Midi Events are read inside the track, and a length cannot run backwards
- Project A document is not trusted for an index, a length or a depth
- Vgm A log is read inside its own length, and a gzip cannot unpack without end
- Xgm A piece past thirteen minutes is written rather than exhausting memory
- Xgm A tag block that starts before the file is refused
Editors and panels (4)
- Overlay The system monitor row shows the choice it holds
- Overlay A question can be asked and one of three answers taken
- Overlay The update notice is seen rather than leaving a dark window nobody can use
- Playlist The right hand button on a clip can be given the clip's menu
The interface (6)
- Locale A language whose font is missing can still be picked
- Paint A filled polygon gets the same soft edge a rounded corner already had
- Widget The pointer says a seam can be dragged
- Widget The splitter nothing built is gone
- Widget A sheet is told when it is lowered, however that came about
- Widget A seam says it can be dragged before the pointer is on it
The application (7)
- Files Work in no file yet is asked about before anything replaces it
- Files Every look and every download writes down what it did
- Files The releases page is asked once a run rather than whenever a setting is applied
- Files An update with nothing to download is not offered
- Files A download is checked against the published hashes before it is unpacked
- Session Discord presence is described as starting at full, which it does
- Session The status bar says as much as it is asked to, and the file menu remembers
Window, audio and system (5)
- Crash A stack overflow is reported everywhere, and a fault reaches the window
- System A value two threads share survives the collector
- System The graphics memory this process holds is measured
- System A portable marker only counts where the settings can actually be written
- System What the process held at its worst, not only what it holds now
Building and packaging (7)
- The installer asks for its terms to be accepted first
- The installer lets the three CJK fonts be left out
- The three CJK faces are pinned to the file the build ships
- The installer asks where to go and says how much it takes
- The installer says what is already there and asks before replacing it
- The installer says what is already there and asks before replacing it
- MacOS aims at the macOS its libraries came from, and a vendored warning is silenced
The repository (1)
- Bump version 0.4.0
Documentation and checks (10)
### Documentation (7) - The video libraries are credited, and the badges go into rows - The readme names a minimum release for the three distributions most people run - A feature not on the page is absent rather than presumed absent - The detail behind the requirements moves to a page of its own - The graphics and storage figures carry room rather than the measured floor - The system requirements say what was measured rather than what was assumed - The warnings a build prints, and which of them were measured before being left alone ### Checks (3) - The two states a real repository puts the updater in are driven end to end - The video encoder is measured against the processors rather than taken on trust - A program that measures what the heavy paths cost on a piece built to be worseEvery commit: https://github.com/MeguminBOT/md-synth-daw/compare/v0.3.0...v0.4.0