moont-render-0.9.1 is not a library.
moont-render
Renders Standard MIDI Files (.mid) to WAV audio through the moont CM-32L synthesizer.
Usage
$ cargo run -p moont-render -- -c CM32L_CONTROL.ROM -p CM32L_PCM.ROM input.mid output.wav
With the bundle-rom feature, ROM arguments are optional:
$ cargo run -p moont-render --features bundle-rom -- input.mid output.wav
How it works
moont-render takes a single SMF file (format 0 or 1) and will:
- Parse the MIDI file including SysEx messages and tempo changes.
- Convert tick-based timing to 32kHz sample timestamps.
- Feed all events into the CM-32L synthesizer.
- Render the full duration, plus a 2-second tail to a 16-bit stereo WAV file.
Supported MIDI features
- Format 0 (single track) and format 1 (multi-track)
- All channel messages (note on/off, control/program change, pitch bend...)
- SysEx messages (instrument uploads, reverb configuration, etc.)
- Tempo changes (defaults to 120 BPM)
- Running status
Capturing MIDI from ScummVM
See CAPTURE.md for instructions on recording .mid files from ScummVM using a virtual MIDI port.
Related Crates
| Crate | Description |
|---|---|
| moont | Core CM-32L synthesizer library |
| moont-live | Real-time ALSA MIDI sink |
| moont-web | WebAssembly wrapper with Web Audio API |
License
moont-render is distributed under LGPL 2.1+.
Copyright (C) 2021-2026 Geoff Hill geoff@geoffhill.org
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.