Overview
This is the placeholder documentation for Melowrite, a minimalist DAW made specifically for game development, currently in early access.
Shortcuts
Defaults (all rebindable in Preferences > Shortcuts).
File
| New Project | Ctrl+N |
| Open Project | Ctrl+O |
| Save | Ctrl+S |
| Save As | Ctrl+Shift+S |
| Export | Ctrl+Shift+E |
| Export Project | Ctrl+E |
Edit
| Undo | Ctrl+Z |
| Redo | Ctrl+Shift+Z or Ctrl+Y |
| Select All | Ctrl+A |
| Copy | Ctrl+C |
| Cut | Ctrl+X |
| Paste | Ctrl+V |
| Duplicate | Ctrl+D |
| Delete | Delete or Backspace or Shift+X |
Transport
| Play / Pause | Space |
| Record | Ctrl+R or Ctrl+Space |
| Rewind | Enter |
| Rewind + Play | Shift+Space |
| Toggle Metronome | M |
| Toggle Loop | R |
| Octave Down / Up | Z / X |
| Velocity Down / Up | C / V |
| Toggle Keyboard Window | Shift+K |
Editor (Pattern / Arranger)
| Grab / Move | Shift+G |
| Toggle Draw / Select | B |
| Cancel / Deselect | Esc |
| Confirm | Enter or Keypad Enter |
| Rename | F2 |
| Quantize | Ctrl+Q |
| Legato | Ctrl+L |
| Set Note Length, then 1–4 | Ctrl+W |
| Quantify Entries | Q |
| Frame All | Shift+F |
| Pattern Octave Down / Up | Ctrl+Y / Ctrl+U |
| Extend Pattern | unbound by default |
Navigation
| Toggle Pattern / Properties | Tab |
| Toggle Chunk / Arranger | Shift+Tab |
| Shortcuts Help | F1 |
| Fullscreen | F11 |
| Performance Overlay | F12 |
Chunks
| Create Chunk | Alt+N |
Mixer
| Solo selected track | Alt+S |
| Mute all tracks | Alt+M |
Piano Keyboard (musical typing)
| White keys | A S D F G H J K L |
| Black keys | W E T Y U |
| Octave down / up | Z / X |
| Velocity down / up | C / V |
| Open Musical Typing window | Shift+K |
Game Audio API
Melowrite has an internal audio engine, separate from the editor UI, that can run inside your game. It is compatible with Unity, and any C, C++ or C# game engine.
Getting it
Unity: install the package from the git URL (see Unity Integration) and export
your project with File > Export Project... (Ctrl+E), target
Project. Other C# projects: the middleware is plain C# - reference
the managed Melowrite.Core.dll (plus its miniaudio decoder DLL), drop in
the middleware sources, feed FillBuffer from your audio callback and call
Tick() once per frame. The same API below applies unchanged.
Native engines (C / C++): export once with target Engine - you get
Melowrite.Core.dll (the whole engine in one file), melo.h, and
Melo.cs bindings. The header doubles as the full C API reference.
Play music
var music = Melo.Load(song); // or drop a MeloFile on a Melo Source component
music.PlayChunk("Explore");
music.SwitchChunk("Combat"); // quantized: lands on the next bar
music.SwitchSong(bossSong, MeloSwitch.Bar);
music.PlayChunkCrossfade("Bridge", 1.5f);
SFX banks
Author a .melo as a sound bank: tracks are categories, multisampler pads are named sounds - with the volume, pitch, envelopes, and random/velocity variations you set in the editor.
var sfx = Melo.Load(bank);
sfx.Trigger("Footsteps", "Grass"); // one-shot, overlaps itself
sfx.Trigger("Footsteps", "Grass", 1f, pan: -0.5f); // per-trigger stereo position
sfx.Hold("Ambience", "EngineHum"); // hold until Release()
sfx.Release("Ambience", "EngineHum");
sfx.Sustain("Weapons", "ChargeLoop"); // call every frame; auto-releases when you stop
One-shots
Raw audio files (wav / mp3 / ogg / flac) or Unity AudioClips, no project needed:
Melo.PlayOneShot("SFX/hit.wav");
Melo.PlayOneShot(myAudioClip, volume: 0.8f, pan: 0.3f);
Live mix control
music.SetTrackMuted("Bass", true);
music.Track("Lead").Volume = 0.7f;
if (music.Bus("Reverb").TryGetEffect<MeloReverb>(out var rev)) rev.Mix = 0.6f;
Going deeper
The wrappers cover the common calls, but the whole engine is public C# - the same classes the
editor edits. music.Engine is the raw engine, and
Track("x").Instrument hands you the live instrument (sampler slots, ADSR,
random/velocity modes, pads) to read or change at runtime. The
plugin README has the full tour.
Native C / C++
MeloHandle h = melo_load("music.melo", 44100);
melo_play_arrangement(h);
melo_fill_buffer(h, buffer, frames); // your audio callback
melo_trigger_pad(h, fs, "grass", 1.0f, 0.0f); // SFX bank trigger (velocity, pan)
Everything above has a C export - see melo.h in the Engine export for the
complete, commented API.
Unity Integration
Download link: https://github.com/joeqnicholson/melowrite-unity