carta
sonivoxrender(1)

sonivoxrender1

Render midi song files into raw pcm audio

Usage

sonivoxrender [{-h | --help}] [{-v | --version}] [{-d | --dls soundfont}] [{-r | --reverb 0..4}] [{-w | --wet 0..32767}] [{-n | --dry 0..32767}] [{-c | --chorus 0..4}] [{-l | --level 0..32767}] [{-g | --gain 0..196}] [{-V | --Verbosity 0..5}] [{-R | --reverb-post-mix}] [{-C | --chorus-post-mix}] [{-s | --sndlib 1..3}] song_file

Overview

This program is a MIDI file renderer based on the sonivox synthesizer library. It reads .MID (Standard MIDI Files), .RMI (RIFF-RMID), and .XMF (Extensible Music Files) file formats, and writes an audio stream to the standard output as raw 16 bit stereo PCM samples.

Options

-h, --help

Prints brief usage information.

-v, --version

Prints the version numbers.

-d, --dls soundfont

Optional DLS or SF2 soundfont file name. If not provided, it uses an internal embedded soundfont.

-r, --reverb reverb_preset

Reverb preset between 0 and 4: 0=no, 1=large hall, 2=hall, 3=chamber, 4=room.

-w, --wet reverb_wet

Reverb wet level between 0 and 32767.

-n, --dry reverb_dry

Reverb dry level between 0 and 32767.

-c, --chorus chorus_preset

Chorus preset between 0 and 4: 0=no, 1..4=presets.

-l, --level chorus_level

Chorus level between 0 and 32767.

-g, --gain master_gain

Master gain between 0 and 196, default is 100 (+0dB). The number is relative to 100, in 1dB increments, e.g. 120 = +20dB, 80 = -20dB.

-V, --Verbosity verbosity

Verbosity level between 0 and 5, where 0=no, 1..5=severity levels.

-R, --reverb-post-mix

Ignore CC91 reverb send level. The reverb effect will apply to mixed output audio, which is the old behavior.

-C, --chorus-post-mix

Ignore CC93 chorus send level. See also --reverb-post-mix.

-s, --sndlib index

EAS sound library to use:

•

1: wt_200k_G (default) - WT-only bank, used in Android devices. Also named “Common”. Support 22050 Hz and 44100 Hz sample rates, 8-bit and 16-bit samples.

•

2: GMdblib-3 - FM-only bank. Support all sample rates. Sample bit depth does not matter here.

•

3: hybrid_22khz_mcu - Hybrid bank. Use WT synth for drums and FM for melodic instruments. This bank is a combination of GMdblib-3 and Sonic_20Khz_Drums. Support 22050 Hz sample rate and 8-bit samples only.

Note: This option does not affect DLS/SF2. They will always use the DLS synth engine. If the selected sound library is not compatible with the build configuration, the program will fail with an error message.

Arguments

song_file

Input [MID|RMI|XMF] file name.

Examples

The following examples assume the default option USE_44KHZ=ON, which means an output sample rate = 44100 Hz.

Example 1: Render a MIDI file and save the rendered audio as a raw audio file:

$ sonivoxrender ants.mid > ants.pcm

Example 2: pipe the rendered audio thru the Linux ALSA aplay utility:

$ sonivoxrender ants.mid | aplay -c 2 -f S16_LE -r 44100

is equivalent to:

$ sonivoxrender ants.mid | aplay -f cd

Example 3: pipe the rendered audio thru the lame utility creating a MP3 file:

$ sonivoxrender ants.mid | lame -r -s 44100 - ants.mp3

Example 4: pipe the rendered audio thru the sox utility creating a WAV file:

$ sonivoxrender ants.mid | sox -t s16 -c 2 -r 44100 - ants.wav

Example 5: pipe the rendered audio thru the PulseAudio’s pacat utility:

$ sonivoxrender ants.mid | pacat

Example 6: pipe the rendered audio thru the PipeWire’s pw-play utility:

$ sonivoxrender ants.mid | pw-play --rate 44100 -

Example 7: pipe the rendered audio thru the FFmpeg’s ffplay utility:

$ sonivoxrender ants.mid | ffplay -i - -f s16le -ar 44.1k -ac 2 -nodisp -autoexit -loglevel quiet

Example 8: pipe the rendered audio thru the mpv media player:

$ sonivoxrender ants.mid | mpv --demuxer=rawaudio -demuxer-rawaudio-format=s16le --demuxer-rawaudio-rate=44100 --demuxer-rawaudio-channels=2 --no-video -

History

  • Arch Linux 2026-11-01: the text shown here
  • Debian 13 (Trixie)

--Verbosity since Arch Linux 2026-11-01; --chorus-post-mix since Arch Linux 2026-11-01; --reverb-post-mix since Arch Linux 2026-11-01; --sndlib since Arch Linux 2026-11-01; -C since Arch Linux 2026-11-01; -R since Arch Linux 2026-11-01; -V since Arch Linux 2026-11-01; -s since Arch Linux 2026-11-01.

Bugs

See Tickets at GitHub <https://github.com/EmbeddedSynth/sonivox/issues/>

Authors

Pedro López-Cabanillas <[email protected]>.

From sonivox 4.0.2-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.