SONIVOXRENDER(1) Sonivox MIDI File Renderer SONIVOXRENDER(1)
NAME
sonivoxrender -- Render MIDI song files into raw PCM audio
SYNOPSIS
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
DESCRIPTION
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:
o 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.
o 2: GMdblib-3 - FM-only bank. Support all sample rates.
Sample bit depth does not matter here.
o 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 -
BUGS
See Tickets at GitHub
LICENSE AND COPYRIGHT
Licensed under the Apache License, Version 2.0
Copyright (c) 2022-2026 Pedro Lopez-Cabanillas and contributors
AUTHORS
Pedro Lopez-Cabanillas .
sonivox 4.0.1.0 February 14, 2026 SONIVOXRENDER(1)