Releases: MeguminBOT/md-synth-daw
Release list
MD Synth DAW v1.0.2
A hardware-aware DAW for the Sega Mega Drive.
39 changes since v1.0.1.
Downloads
| platform | portable | installed |
|---|---|---|
| Windows x86-64 | mdd-1.0.2-windows-x86_64-portable.zip |
mdd-1.0.2-windows-x86_64-setup.exe |
| Linux x86-64 | mdd-1.0.2-linux-x86_64-portable.tar.gz |
mdd-1.0.2-linux-x86_64-installer.tar.gz |
| Linux arm64 | mdd-1.0.2-linux-arm64-portable.tar.gz |
mdd-1.0.2-linux-arm64-installer.tar.gz |
| macOS x86-64 | mdd-1.0.2-mac-x86_64-portable.tar.gz |
mdd-1.0.2-mac-x86_64.dmg |
| macOS arm64 | mdd-1.0.2-mac-arm64-portable.tar.gz |
mdd-1.0.2-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.
On Debian 13, Ubuntu 25.04 and the systems built on them there are also
md-synth-daw_1.0.2_amd64.deb and md-synth-daw_1.0.2_arm64.deb, and the website's apt
repository, which keeps an installed copy up to date along with the rest of the system. The
commands are under Install with
apt in the README.
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.
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 \
SHA256SUMSThe same workflow records build provenance, which the GitHub CLI reads:
gh attestation verify mdd-1.0.2-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-dawWhat changed
The song model (1)
- Patch A preset file cannot name a part or a lane the model has no room for
Playback and export (1)
- Render A device above 163840 Hz no longer hangs the priming
File formats (6)
- Audio A wave chunk size near 2 GB cannot wrap past the end check
- Midi A division of nought and a runaway tick count read safely
- Project A fresh build writes the shipped banks again
- Project A damaged project cannot read outside itself or past what the model holds
- Vgm A sample block or a tag offset near 2 GB cannot hang or wrap the read
- Xgm A music length or a tag offset near 2 GB no longer wraps negative
The interface (1)
- Paint A font baked too tall for the atlas comes back instead of spinning
The application (3)
- Files A copy in a folder named outside ASCII is updated on Windows
- Files The Linux updater waits for the application to close and asks first
- Files An update that needs an administrator asks before the application closes
Window, audio and system (8)
- Crash A report is written under a settings folder named outside ASCII
- Draw A read back past the target copies only what SDL hands back
- System A save swaps the whole file in rather than deleting the old one first
- System The one instance socket in /tmp carries the account's id
- System Commands the application runs get no window of their own
- Text A font name with a broken surrogate pair reads without a bad character
- Text A face in a folder named outside ASCII loads on Windows
- Window Typed text, a dropped path and a paste never end mid character
Building and packaging (8)
- The release notes name the Debian packages and point to the apt commands
- The installer's identity is named in mdd.xml rather than hashed from the publisher
- Hxcpp is held at v4.3.157, and a build refuses a collector known to fault
- A Linux build is also a Debian package, which apt keeps up to date
- A packaged program keeps its executable bit
- The Go faces come from GitHub, and setup and package stop without them
- The macOS bundle and its document types are com.victorLR.mdd
- The installer's terms list every official download page
The repository (2)
- Bump version 1.0.2
- The licence and its notices name Victor L. Roxbåge (MeguminBOT)
Documentation and checks (6)
Documentation (3)
- The install guide gives the apt commands and the Debian package on its own
- The install section names every official download page
- The transport slides and the time signature text show one shared field
Checks (3)
- The mangle check runs any set of its sections on their own with --only
- The mangle check builds the files random corruption never makes
- The font download check works where there is no drive R
Every commit: v1.0.1...v1.0.2
MD Synth DAW v1.0.1
A hardware-aware DAW for the Sega Mega Drive.
3 changes since v1.0.0.
Downloads
| platform | portable | installed |
|---|---|---|
| Windows x86-64 | mdd-1.0.1-windows-x86_64-portable.zip |
mdd-1.0.1-windows-x86_64-setup.exe |
| Linux x86-64 | mdd-1.0.1-linux-x86_64-portable.tar.gz |
mdd-1.0.1-linux-x86_64-installer.tar.gz |
| Linux arm64 | mdd-1.0.1-linux-arm64-portable.tar.gz |
mdd-1.0.1-linux-arm64-installer.tar.gz |
| macOS x86-64 | mdd-1.0.1-mac-x86_64-portable.tar.gz |
mdd-1.0.1-mac-x86_64.dmg |
| macOS arm64 | mdd-1.0.1-mac-arm64-portable.tar.gz |
mdd-1.0.1-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.
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 \
SHA256SUMSThe same workflow records build provenance, which the GitHub CLI reads:
gh attestation verify mdd-1.0.1-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-dawWhat changed
The application (1)
- Files The update handover starts detached, and an installed update runs silently
Window, audio and system (1)
- System A Windows release build opens no console, and joins the terminal it starts from
The repository (1)
- Bump version 1.0.1 (missed a crucial fix for updater logic)
Every commit: v1.0.0...v1.0.1
MD Synth DAW v1.0.0
A hardware-aware DAW for the Sega Mega Drive.
55 changes since v0.9.0.
Downloads
| platform | portable | installed |
|---|---|---|
| Windows x86-64 | mdd-1.0.0-windows-x86_64-portable.zip |
mdd-1.0.0-windows-x86_64-setup.exe |
| Linux x86-64 | mdd-1.0.0-linux-x86_64-portable.tar.gz |
mdd-1.0.0-linux-x86_64-installer.tar.gz |
| Linux arm64 | mdd-1.0.0-linux-arm64-portable.tar.gz |
mdd-1.0.0-linux-arm64-installer.tar.gz |
| macOS x86-64 | mdd-1.0.0-mac-x86_64-portable.tar.gz |
mdd-1.0.0-mac-x86_64.dmg |
| macOS arm64 | mdd-1.0.0-mac-arm64-portable.tar.gz |
mdd-1.0.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.
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 \
SHA256SUMSThe same workflow records build provenance, which the GitHub CLI reads:
gh attestation verify mdd-1.0.0-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-dawWhat changed
Playback and export (6)
- Render A metronome clicks the beats and counts in, added after the output stage
- Sequencer The polyphony behaviours are gone, and a channel plays one note at a time
- Sequencer Sample mode plays the sample on each key, and the channel's own elsewhere
- Sequencer A note on the noise channel plays at its own pitch, taken through PSG3
- Sequencer FM3 plays four notes at once, one on each operator, switched from the rack
- Transport An audition bends with the pitch wheel and lets go of a part it moves off
Editors and panels (12)
- Bar The numerator and denominator now share a field.
- Bar The time signature is two fields, and a pattern takes any typed one
- Bar The readout beside the clock counts through a count in
- Bar The metronome's volume is set from its right click menu
- Bar The transport bar's tips name each shortcut as it is bound, and Home rewinds
- Bar The transport bar turns the metronome on and sets the count in
- Bar The bar, the tab strip and the inspector keep their drawing in a texture
- Editor The roll, the automation and the tracker keep their drawing in a texture
- Playlist The playlist keeps its clips in a texture, and moves only the playhead
- Rack The sample channel's two modes are called Sample mode and Drum kit mode
- Rack The rack keeps its channels in a texture, and draws only the meters over it
- Synth FM3 has a pitch lane for each of its first three operators, read as notes
The interface (4)
- Locale The loop button's tooltip no longer says it loops only the song
- Locale The app says preset and outputs where it said patch and speakers
- Widget A widget can keep its drawing in a texture, with what moves drawn over it
- Widget A hidden widget asks for no frame, and changing visibility asks for one
The application (9)
- Menus The pitch bend range is a MIDI preference, and a keyboard can send its own
- Menus R turns record on and off, as the transport bar's tooltip already said
- Menus A MIDI keyboard's pedal, pitch wheel and held keys shape what the channel plays
- Session Writing automation as clips on the playlist is not offered for now
- Session A MIDI keyboard that is unplugged reconnects when it comes back
- Session A recorded take and a run of knob turns are each one step to undo
- Session A MIDI keyboard records notes while record is on, at the nearest grid line
- Session A card whose Direct3D 11 falls short of 10_0 starts on OpenGL or Direct3D 9
- Session A song ending, a session change and the running clock each ask for a frame
Window, audio and system (2)
- Draw Textures kept for a widget, drawn back unscaled, and the vertices counted
- System The application writes what this machine offers it, for the installer to read
Diagnostics (1)
- The hardware meter's song figures are the most sounding at once
Building and packaging (2)
- The installer refuses a machine short of cores, memory or graphics memory
- The Windows installer checks the machine against the requirements first
The repository (1)
- Bump version 1.0.0 and change "company" name
Documentation and checks (16)
Documentation (12)
- The screenshots show the current app, playing one of its own songs
- The feature list says preset where it said patch
- The README, the manual and the feature list agree with the app again
- The user manual no longer repeats what its pictures say
- The README counts eleven machine translated languages, Svenska among them
- The user manual no longer shows writing automation as clips on the playlist
- A user manual, with its images and the Console Tricks examples to listen to
- Svenska is listed as machine translated
- The features list writes 64-bit as a figure
- Every feature is described, and the long documents open with contents and link back to top
- The readme's counts, releases, requirements and exports are brought up to date
- Every renderer is tested with a song playing, and Direct3D 12 is experimental
Checks (4)
- The shot program draws a song as it sounds, and the MIDI import sheet
- The shot program presses the pointer, picks a point and bounces the song with its stems
- The shot program stages the FM3 and tuned noise examples and opens a rack menu
- A playing frame draws only what moves, and matches a frame drawn with nothing kept
Every commit: v0.9.0...v1.0.0
MD Synth DAW v0.9.0
A hardware-aware DAW for the Sega Mega Drive.
68 changes since v0.8.0.
Downloads
| platform | portable | installed |
|---|---|---|
| Windows x86-64 | mdd-0.9.0-windows-x86_64-portable.zip |
mdd-0.9.0-windows-x86_64-setup.exe |
| Linux x86-64 | mdd-0.9.0-linux-x86_64-portable.tar.gz |
mdd-0.9.0-linux-x86_64-installer.tar.gz |
| Linux arm64 | mdd-0.9.0-linux-arm64-portable.tar.gz |
mdd-0.9.0-linux-arm64-installer.tar.gz |
| macOS x86-64 | mdd-0.9.0-mac-x86_64-portable.tar.gz |
mdd-0.9.0-mac-x86_64.dmg |
| macOS arm64 | mdd-0.9.0-mac-arm64-portable.tar.gz |
mdd-0.9.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.
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 \
SHA256SUMSThe same workflow records build provenance, which the GitHub CLI reads:
gh attestation verify mdd-0.9.0-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-dawWhat changed
68 changes, grouped by the part of the application they moved
The song model (5)
- A console frame is named once, on the tempo map
- The tempo map finds a position by bisection
- Note names are spelt from tables made once
- A piece and a pattern carry a time signature, kept in a project and in MIDI
- A track can be soloed, and while any is only the soloed tracks are heard
Playback and export (5)
- Render The chips take register writes from the stream alone
- Render A piece at 50 Hz plays the way a PAL console plays music written for 60
- Sequencer The driver's busy flag runs from the console's own clock
- Sequencer The pacing stream is made before the render thread needs it
- Sequencer A square keeps its note through a silence, and latches as the part does
File formats (1)
- Midi A sysex that claims more than its track holds ends the track
Editors and panels (35)
- Bar The transport, status bar and tools draw without allocating
- Bar The frame rate changes under the transport lock
- Bar The time signature is chosen on the transport, a pattern's from its menu
- Bar The monitoring volume reads out in decibels as it is dragged
- Editor The tracker asks whether a track is soloed once per lookup
- Editor The roll, the playlist and the lanes shade bars through one helper
- Editor The roll, the tracker and the lanes draw without allocating
- Editor The tracker reads the whole piece, and a lock holds it to the pattern
- Editor Grids, rulers and bar counts follow the time signature, bars shaded
- Editor A wide automation lane opens on a readable span rather than every value
- Editor Rows outside the chosen scale draw clearly darker than the rows in it
- Editor An automation point dragged with Ctrl keeps the pointer on it
- Editor The automation tab follows the pattern chosen while it is open
- Film The style panel labels its controls once it is laid out
- Film The preview gives its faces back, and its textures grow in steps
- Film A shadow, borders outside and inside, and a bevel on any layer, following its shape
- Film A lane can show the note its part is playing, in the preview and the video
- Film Every part's lane moves, sizes and turns on its own
- Film A video style editor, in a window of its own beside the main one
- Film A style writes lines of text with a border, in any face, filled from the piece
- Film A video is drawn from a style: its ground, its pictures and where its lanes sit
- Monitor A scope lane reduced to its highs and lows draws no joins
- Monitor The scope weighs its spectrum by a window and can smooth its waveform
- Monitor The meter, the timeline and the warnings draw without allocating
- Overlay The sheets draw without allocating
- Playlist Bar numbers and clip labels draw without allocating
- Playlist A track header carries a solo button, and its menu solos it alone
- Playlist A fresh playlist opens on sixteen bars, with the grid across the view
- Rack The rack and the sample list draw without allocating
- Rack Alt and a click on a channel's solo button solos it alone
- Rack A channel fader reads out in decibels as it is dragged
- Synth Decibels are written one way everywhere
- Synth The synth editors and the browser draw without allocating
- Synth Operator bars and dials take their fine drag from the root
- Synth The preset search starts what it finds from the top
The interface (10)
- Control A colour swatch, and a colour picker raised as a sheet
- Control Numbers, dropdowns and tabs draw without allocating
- Control A menu can fill itself as it opens, and a dropdown can change its length
- Control A number and a knob take their fine drag from the root
- Paint An arc takes as many segments as the angle it sweeps
- Paint A glyph past Latin-1 is found without allocating
- Paint A polygon wound the other way is cut into the shape it describes
- Widget A control can keep its tooltip up while it is dragged, as a readout
- Widget A drag with Ctrl held slows the pointer and moves the real one with it
- Widget A list that shrinks under its scroll shows what is left of it
The application (4)
- Files The updater takes only its own release's files, over https
- Session The style window takes typed text, and leaves the main one's events
- Session A preferences file that cannot be written is said once
- Session The snap offers triplets, and 1/1 snaps to a whole bar
Window, audio and system (4)
- Draw SDL is made to run its queue every 65536 vertices
- Draw A png or jpeg reads into a texture, and a texture draws turned
- System A whole collection runs past the ceiling while frames draw
- Text The fonts installed on the machine are listed by the names they give themselves
Building and packaging (1)
- Setup fetches stb_image beside stb_truetype, from the same pinned commit
The repository (2)
- Bump version 0.9.0
- Code nothing calls and imports nothing uses are removed
Checks (1)
- Allocation checks read the thread's own allocator
Every commit: v0.8.0...v0.9.0
MD Synth DAW v0.8.0
A hardware-aware DAW for the Sega Mega Drive.
21 changes since v0.7.0.
Downloads
| platform | portable | installed |
|---|---|---|
| Windows x86-64 | mdd-0.8.0-windows-x86_64-portable.zip |
mdd-0.8.0-windows-x86_64-setup.exe |
| Linux x86-64 | mdd-0.8.0-linux-x86_64-portable.tar.gz |
mdd-0.8.0-linux-x86_64-installer.tar.gz |
| Linux arm64 | mdd-0.8.0-linux-arm64-portable.tar.gz |
mdd-0.8.0-linux-arm64-installer.tar.gz |
| macOS x86-64 | mdd-0.8.0-mac-x86_64-portable.tar.gz |
mdd-0.8.0-mac-x86_64.dmg |
| macOS arm64 | mdd-0.8.0-mac-arm64-portable.tar.gz |
mdd-0.8.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.
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 \
SHA256SUMSThe same workflow records build provenance, which the GitHub CLI reads:
gh attestation verify mdd-0.8.0-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-dawWhat changed
The song model (3)
- Patch Nine Default presets that move on every note, kicks, screech, reese, growl
- Patch A preset carries lanes it moves on every note, through its files and a project
- Patch A release rate stops at 15, the four bits the chip has
Playback and export (2)
- Bounce An export fades out at the end of the piece and pads with silence after it
- Sequencer A note plays what its preset's lanes move, from its key on
Editors and panels (4)
- Bar The video rate, the LFO and the snap are chosen from dropdowns
- Editor The automation editor edits what a channel's preset moves on each note
- Rack A recording is trimmed to the markers dragged across its waveform
- Synth A preset loaded from the browser stays chosen on the row it was loaded from
The interface (3)
- Control A dropdown shows the chosen entry of a short list and opens the list as a menu
- Control A number draws its unit after its value
- Locale The sample advice no longer offers a pitch the converter cannot play
The application (3)
- Menus Help's source code entry opens the repository in the browser
- Menus The editors' own shortcuts can be changed like every other
- Session Copy, paste and reset a preset on every kind of channel, as undo steps
Window, audio and system (3)
- System The status bar reads the graphics device on macOS and Linux
- System A MIDI keyboard plays in on macOS and Linux, not only on Windows
- Window Reduced motion follows the desktop on macOS and Linux
Building and packaging (1)
- The macOS bundle declares preset and bank files as well as projects
The repository (1)
- Bump version 0.8.0
Documentation and checks (1)
Documentation (1)
- The hardware section claims only the Mega Drive, which is all that is checked
Every commit: v0.7.0...v0.8.0
MD Synth DAW v0.7.0
A hardware-aware DAW for the Sega Mega Drive.
67 changes since v0.6.0.
Downloads
| platform | portable | installed |
|---|---|---|
| Windows x86-64 | mdd-0.7.0-windows-x86_64-portable.zip |
mdd-0.7.0-windows-x86_64-setup.exe |
| Linux x86-64 | mdd-0.7.0-linux-x86_64-portable.tar.gz |
mdd-0.7.0-linux-x86_64-installer.tar.gz |
| Linux arm64 | mdd-0.7.0-linux-arm64-portable.tar.gz |
mdd-0.7.0-linux-arm64-installer.tar.gz |
| macOS x86-64 | mdd-0.7.0-mac-x86_64-portable.tar.gz |
mdd-0.7.0-mac-x86_64.dmg |
| macOS arm64 | mdd-0.7.0-mac-arm64-portable.tar.gz |
mdd-0.7.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.
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 \
SHA256SUMSThe same workflow records build provenance, which the GitHub CLI reads:
gh attestation verify mdd-0.7.0-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-dawWhat changed
67 changes, grouped by the part of the application they moved
Sound chips (3)
- Sn76489 The part keeps its summed level instead of summing every step
- Ym2612 A sample walks its slots as four passes of six channels
- Ym2612 Channels and operators are held in arrays rather than vectors
The song model (13)
- Edit A channel takes a copy of the preset it loads
- Patch Only the Default bank is compiled in, and the others ship as files
- Patch The library stays out of a piece, which carries only what it plays
- Patch A preset's identity is the MD5 of its sound, not its name
- Patch The detune of a preset file is centred, not a register value
- Patch 67 CC0 FM patches ship as the Instruments bank
- Patch The presets that ship are named for what they are for
- Patch One patch under several names is offered once
- Patch The presets from the finished pieces ship as the default bank
- Patch A presets folder read once is read back from one file
- Patch A preset is what it holds rather than what it is called
- Patch Filing a piece's presets keeps its kit in one bank
- Patch The presets folder is laid out by family of part
Playback and export (6)
- Render The resampler's kernels run eight products at a time natively
- Render The resampler sums each kernel in four runs over a doubled history
- Sequencer The lanes and levels it reads are arrays rather than vectors
- Sequencer A span only asks what can reach the writes it makes
- Sequencer The note lookups search the lane rather than walk it from the start
- Stream A write is a tick and one packed word rather than four numbers
File formats (6)
- Preset One format for every kind of preset, as records rather than as text
- Project A project zip is packed with Deflate
- Project A hit's identity is taken once its recording has loaded
- Project A file carries the piece rather than the presets library beside it
- Project A kit converted in the application is written as records
- Vgm Cutting converter runs sorts once and slides its windows
Editors and panels (12)
- Bar Every field and switch on the transport bar says what it does
- Editor The rulers, track headers, keys and lane controls say what they do
- Editor Shedding an automation lane takes its points with it
- Editor The tracker has a bar on each axis
- Monitor The scope's lanes, the register log and the warnings say what a click does
- Overlay The first run sheet picks a language only from the row under the pointer
- Overlay Every preference, export setting and import strand says what it does
- Rack A channel's volume and a sample's row say what they do
- Synth The FM and square dials, the envelope and the preset toolbar say what they do
- Synth Presets group, sort and filter, and a number in a name sorts as one
- Synth Preset banks start folded and the toolbar follows the sidebar
- Synth A preset is starred by what it holds, and the browser lists the starred on their own
The interface (7)
- Locale Swedish spells spår, för, från, låt and två with their letters
- Locale Swedish reads nytt spår for adding a lane
- Locale Swedish says a machine translated it
- Locale Each language keeps its own word for import, bank and project
- Paint A fan works out its spokes once for its fill and its feather
- Widget A widget can name its tooltip by key, read as the pointer arrives
- Widget A drag ends when its release never arrives
The application (8)
- Files A preset or bank opened from the desktop imports, and says what it did
- Files The presets folder is organised from the browser, and imports ask about duplicates
- Files A preset dialog opens where presets are kept
- Files A preset file left loose in the presets folder is sorted by family
- Files Lifting a piece's patches keeps what a patch file cannot hold
- Files A preset, a hit and a whole bank are written out and read back
- Session A preset swapped out of a channel stays the piece's own until a save by hand
- Session A start that fails says why, and fonts come only from beside the program
Building and packaging (4)
- Wrap lanes array in build target conditions
- Clearing a language in the installer deletes the font it fetched too
- A package takes what it names, and the portable one leaves out fetched fonts
- A bank whose document was deleted stops shipping
The repository (1)
- Bump version 0.7.0
Documentation (3)
- The default bank, the five kits lifted with it, and the program that wrote them
- What a project file carries
- What a preset is as a file, and where the shipped banks are edited
Checks (4)
- The weigh program reports the events the sequencer lost, not the writes it made
- The tag check reads back every tag a shipped preset arrives with
- A program that plays every preset in a bank and measures what came out
- A program that clears out the presets a folder holds copies of
Every commit: v0.6.0...v0.7.0
MD Synth DAW v0.6.0
A hardware-aware DAW for the Sega Mega Drive.
17 changes since v0.5.0.
Downloads
| platform | portable | installed |
|---|---|---|
| Windows x86-64 | mdd-0.6.0-windows-x86_64-portable.zip |
mdd-0.6.0-windows-x86_64-setup.exe |
| Linux x86-64 | mdd-0.6.0-linux-x86_64-portable.tar.gz |
mdd-0.6.0-linux-x86_64-installer.tar.gz |
| Linux arm64 | mdd-0.6.0-linux-arm64-portable.tar.gz |
mdd-0.6.0-linux-arm64-installer.tar.gz |
| macOS x86-64 | mdd-0.6.0-mac-x86_64-portable.tar.gz |
mdd-0.6.0-mac-x86_64.dmg |
| macOS arm64 | mdd-0.6.0-mac-arm64-portable.tar.gz |
mdd-0.6.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.
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 \
SHA256SUMSThe same workflow records build provenance, which the GitHub CLI reads:
gh attestation verify mdd-0.6.0-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-dawWhat changed
The song model (2)
- Patch A piece files its own presets into one bank rather than a bank of its name
- Patch A saved preset is written to the presets folder and reaches every project
Playback and export (3)
- Sequencer An export may stop what nothing is playing, and a warning says when it should
- Sequencer Declicking is a setting rather than something the song carries
- Sequencer A declick switch eases converter stops and FM retriggers
File formats (4)
- Vgm A vgm this application wrote imports with its drums where they were
- Vgm A vgm header says how wide the square part's noise register is
- Xgm Back to back notes keep their attack and FM6 plays between samples
- Xgm An exported kit plays the hit each key picks and stops it where its note ends
Editors and panels (4)
- Bar A follow playhead switch keeps the playhead in sight while the song plays
- Overlay The export sheets fit a screen people still work on
- Synth An operator's envelope is drawn inside its box
- Synth The preset browser opens the presets folder, and each subfolder in it is a bank
Window, audio and system (1)
- Window Vulkan waits for its device after each present and asks for adaptive vsync
The repository (1)
- Bump version 0.6.0
Documentation and checks (2)
Documentation (1)
- The building guide names the shot program's zoom sweep
Checks (1)
- The shot program sweeps the playlist or roll zoom for captures taken from outside
Every commit: v0.5.0...v0.6.0
MD Synth DAW v0.5.0
A hardware-aware DAW for the Sega Mega Drive.
21 changes since v0.4.0.
Downloads
| platform | portable | installed |
|---|---|---|
| Windows x86-64 | mdd-0.5.0-windows-x86_64-portable.zip |
mdd-0.5.0-windows-x86_64-setup.exe |
| Linux x86-64 | mdd-0.5.0-linux-x86_64-portable.tar.gz |
mdd-0.5.0-linux-x86_64-installer.tar.gz |
| Linux arm64 | mdd-0.5.0-linux-arm64-portable.tar.gz |
mdd-0.5.0-linux-arm64-installer.tar.gz |
| macOS x86-64 | mdd-0.5.0-mac-x86_64-portable.tar.gz |
mdd-0.5.0-mac-x86_64.dmg |
| macOS arm64 | mdd-0.5.0-mac-arm64-portable.tar.gz |
mdd-0.5.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.
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 \
SHA256SUMSThe same workflow records build provenance, which the GitHub CLI reads:
gh attestation verify mdd-0.5.0-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-dawWhat changed
The song model (1)
- A project carries a title, artist, composer, album, year, genre, track and comment
Playback and export (7)
- Bounce Stems are written by track or by channel
- Sequencer A tied note on a square carries on rather than starting over
- Sequencer A level lane holds from one note to the next
- Sequencer A fade in written from a note's start starts quiet
- Sequencer A note keys on with what the automation clips over it hold
- Sequencer A cut clip keys each note on with the lanes where the note sits
- Sequencer Back to back notes on one FM channel each attack
Editors and panels (7)
- Bar The transport bar switches the LFO on and sets its rate
- Bar Turning the wheel over the pattern picker steps through the patterns
- Editor The piano roll ties and unties notes
- Editor A lane's scale zooms and scrolls the values it shows
- Editor A clip opens its pattern at the bar where it sits
- Playlist A clip's name clears its menu corner and still shows on a small clip
- Playlist The clip menu renames the clip's pattern
The application (1)
- Session A new pattern takes the first number no other pattern has
Window, audio and system (2)
- System A second copy hands its file to the copy running and brings it forward
- System An environment variable moves the userdata folder, and the gate keeps its own
Building and packaging (1)
- An example project shows ways around the chips' limits
The repository (1)
- Bump version 0.5.0
Documentation and checks (1)
Checks (1)
- The shot program opens a project and frames the playlist on a bar
Every commit: v0.4.0...v0.5.0
MD Synth DAW v0.4.0
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.
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 \
SHA256SUMSThe same workflow records build provenance, which the GitHub CLI reads:
gh attestation verify mdd-0.4.0-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-dawWhat 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 worse
Every commit: v0.3.0...v0.4.0
MD Synth DAW v0.3.0
A hardware-aware DAW for the Sega Mega Drive.
31 changes since v0.2.0.
Downloads
| platform | portable | installed |
|---|---|---|
| Windows x86-64 | mdd-0.3.0-windows-x86_64-portable.zip |
mdd-0.3.0-windows-x86_64-setup.exe |
| Linux x86-64 | mdd-0.3.0-linux-x86_64-portable.tar.gz |
mdd-0.3.0-linux-x86_64-installer.tar.gz |
| Linux arm64 | mdd-0.3.0-linux-arm64-portable.tar.gz |
mdd-0.3.0-linux-arm64-installer.tar.gz |
| macOS x86-64 | mdd-0.3.0-mac-x86_64-portable.tar.gz |
mdd-0.3.0-mac-x86_64.dmg |
| macOS arm64 | mdd-0.3.0-mac-arm64-portable.tar.gz |
mdd-0.3.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.
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 \
SHA256SUMSThe same workflow records build provenance, which the GitHub CLI reads:
gh attestation verify mdd-0.3.0-windows-x86_64-portable.zip --repo MeguminBOT/md-synth-dawWhat changed
The song model (2)
- Note names can be written with flats and with German letters
- Patch Mickey mania patches release the way the game's key off does
Playback and export (4)
- Bounce A video starts at youtube's recommended upload settings
- Bounce The scope can be exported as a video, drawn over the mix
- Sequencer A preset lane switches a channel's instrument from a point on
- Sequencer A note keys off when its track is muted or it is deleted as it sounds
File formats (2)
- Audio A scope video keeps its colour at 4:4:4 and caps the quantiser at 40
- Audio A WebM of VP9 video and Opus audio can be written
Editors and panels (12)
- Editor The roll fills a row with a note every step, beat or bar
- Editor An automation lane can be maximized and restored from its header
- Monitor A video draws its scope as oscilloscopes on black
- Monitor The scope's speed and accuracy can be set, and a lane draws every peak
- Overlay A help page on the console's limits and the ways around them
- Overlay The about sheet credits libvpx and libwebm
- Overlay Export rows with four or more choices open a menu, not a row of buttons
- Overlay Renderer backends are named for their interface, without software or gpu
- Overlay The video sheet sets the scope's view, speed and accuracy
- Overlay Video export has its own sheet, sizes up to 4K and the VP9 settings
- Overlay The export sheet says video when the format is a video
- Playlist Dragging the edge of a selected clip resizes the whole selection
The interface (2)
- Paint Japanese and chinese lines break where the room runs out, not at a far space
- Paint Five more themes, light ones among them, and colour blind safe part colours
The application (3)
- Menus Export a vgm sits in the middle of the export menu
- Session The text size can be set on its own, apart from the interface density
- Session The master level starts at its normal level every time
Window, audio and system (2)
- Device The sound preferences choose which playback device the sound goes to
- Text Every fallback face loads beside the interface's own, so Korean draws
Building and packaging (2)
- The build file is aligned into sections, with what only the gate needs at the end
- Mdd display writes a C and C++ compilation database and lighter completion files
The repository (1)
- Bump version 0.3.0
Documentation and checks (1)
Documentation (1)
- A security policy and a code of conduct, both reported through private advisories
Every commit: v0.2.0...v0.3.0