Skip to content

Commit f4967fc

Browse files
committed
release preparation
1 parent 563f5c2 commit f4967fc

4 files changed

Lines changed: 92 additions & 65 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ endif()
9393

9494
include(GNUInstallDirs)
9595

96-
# set(PROJECT_RELEASE_DATE "April 13, 2025")
96+
set(PROJECT_RELEASE_DATE "December 30, 2025")
9797

9898
if (BUILD_TESTING)
9999
find_package(GTest CONFIG)

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ You can use the program to listen MIDI files or to create audio files (like MP3
7272

7373
~~~
7474
$ ./sonivoxrender -h
75-
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] file.mid ...
75+
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] file.mid ...
7676
Render standard MIDI files into raw PCM audio.
7777
Options:
7878
-h, --help this help message.
@@ -87,6 +87,7 @@ Options:
8787
-V, --Verbosity n Verbosity: 0=no, 1=fatals, 2=errors, 3=warnings, 4=infos, 5=details
8888
-R, --reverb-post-mix ignore CC91 reverb send.
8989
-C, --chorus-post-mix ignore CC93 chorus send.
90+
-s, --sndlib n sound engine library: 1=wt, 2=fm, 3=hybrid.
9091
~~~
9192

9293
The following examples assume the default option USE_44KHZ=ON:

example/sonivoxrender.1

Lines changed: 85 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,90 @@
1-
.\" Automatically generated by Pandoc 3.8.1
1+
.\" Automatically generated by Pandoc 2.14.0.3
22
.\"
3-
.TH "SONIVOXRENDER" "1" "April 13, 2025" "sonivox 4.0.0.0" "Sonivox MIDI File Renderer"
3+
.TH "SONIVOXRENDER" "1" "December 30, 2025" "sonivox 4.0.0.0" "Sonivox MIDI File Renderer"
4+
.hy
45
.SH NAME
5-
\f[B]sonivoxrender\f[R] \(em Render standard MIDI files into raw PCM
6+
.PP
7+
\f[B]sonivoxrender\f[R] \[em] Render standard MIDI files into raw PCM
68
audio
79
.SH SYNOPSIS
810
.PP
9-
\f[B]sonivoxrender\f[R] [\f[B]\-h|\-\-help\f[R]]
10-
[\f[B]\-v|\-\-version\f[R]] [\f[B]\-d|\-\-dls\f[R] \f[I]soundfont\f[R]]
11-
[\f[B]\-r|\-\-reverb\f[R] \f[I]0..4\f[R]] [\f[B]\-w|\-\-wet\f[R]
12-
\f[I]0..32767\f[R]] [\f[B]\-n|\-\-dry\f[R] \f[I]0..32767\f[R]]
13-
[\f[B]\-c|\-\-chorus\f[R] \f[I]0..4\f[R]] [\f[B]\-l|\-\-level\f[R]
14-
\f[I]0..32767\f[R]] [\f[B]\-g|\-\-gain\f[R] \f[I]0..196\f[R]]
15-
[\f[B]\-V|\-\-Verbosity\f[R] \f[I]0..5\f[R]]
16-
[\f[B]\-R|\-\-reverb\-post\-mix\f[R]]
17-
[\f[B]\-C|\-\-chorus\-post\-mix\f[R]] [\f[B]\-s|\-\-sndlib\f[R]
18-
\f[I]1..3\f[R]] \f[I]midi_file\f[R]
11+
\f[B]sonivoxrender\f[R] [\f[B]-h|--help\f[R]] [\f[B]-v|--version\f[R]]
12+
[\f[B]-d|--dls\f[R] \f[I]soundfont\f[R]] [\f[B]-r|--reverb\f[R]
13+
\f[I]0..4\f[R]] [\f[B]-w|--wet\f[R] \f[I]0..32767\f[R]]
14+
[\f[B]-n|--dry\f[R] \f[I]0..32767\f[R]] [\f[B]-c|--chorus\f[R]
15+
\f[I]0..4\f[R]] [\f[B]-l|--level\f[R] \f[I]0..32767\f[R]]
16+
[\f[B]-g|--gain\f[R] \f[I]0..196\f[R]] [\f[B]-V|--Verbosity\f[R]
17+
\f[I]0..5\f[R]] [\f[B]-R|--reverb-post-mix\f[R]]
18+
[\f[B]-C|--chorus-post-mix\f[R]] [\f[B]-s|--sndlib\f[R] \f[I]1..3\f[R]]
19+
\f[I]midi_file\f[R]
1920
.SH DESCRIPTION
21+
.PP
2022
This program is a MIDI file renderer based on the sonivox synthesizer
2123
library.
2224
It reads .MID (Standard MIDI Files) file format, and writes an audio
2325
stream to the standard output as raw 16 bit stereo PCM samples.
2426
.SS Options
2527
.TP
26-
\-h, \-\-help
28+
-h, --help
2729
Prints brief usage information.
2830
.TP
29-
\-v, \-\-version
31+
-v, --version
3032
Prints the version numbers.
3133
.TP
32-
\-d, \-\-dls \f[I]soundfont\f[R]
34+
-d, --dls \f[I]soundfont\f[R]
3335
Optional DLS or SF2 soundfont file name.
3436
If not provided, it uses an internal embedded soundfont.
3537
.TP
36-
\-r, \-\-reverb \f[I]reverb_preset\f[R]
38+
-r, --reverb \f[I]reverb_preset\f[R]
3739
Reverb preset between 0 and 4: 0=no, 1=large hall, 2=hall, 3=chamber,
3840
4=room.
3941
.TP
40-
\-w, \-\-wet \f[I]reverb_wet\f[R]
42+
-w, --wet \f[I]reverb_wet\f[R]
4143
Reverb wet level between 0 and 32767.
4244
.TP
43-
\-n, \-\-dry \f[I]reverb_dry\f[R]
45+
-n, --dry \f[I]reverb_dry\f[R]
4446
Reverb dry level between 0 and 32767.
4547
.TP
46-
\-c, \-\-chorus \f[I]chorus_preset\f[R]
48+
-c, --chorus \f[I]chorus_preset\f[R]
4749
Chorus preset between 0 and 4: 0=no, 1..4=presets.
4850
.TP
49-
\-l, \-\-level \f[I]chorus_level\f[R]
51+
-l, --level \f[I]chorus_level\f[R]
5052
Chorus level between 0 and 32767.
5153
.TP
52-
\-g, \-\-gain \f[I]master_gain\f[R]
54+
-g, --gain \f[I]master_gain\f[R]
5355
Master gain between 0 and 196, default is 100 (+0dB).
5456
The number is relative to 100, in 1dB increments, e.g.\ 120 = +20dB, 80
55-
= \-20dB.
57+
= -20dB.
5658
.TP
57-
\-V, \-\-Verbosity \f[I]verbosity\f[R]
59+
-V, --Verbosity \f[I]verbosity\f[R]
5860
Verbosity level between 0 and 5, where 0=no, 1..5=severity levels.
5961
.TP
60-
\-R, \-\-reverb\-post\-mix
62+
-R, --reverb-post-mix
6163
Ignore CC91 reverb send level.
6264
The reverb effect will apply to mixed output audio, which is the old
6365
behavior.
6466
.TP
65-
\-C, \-\-chorus\-post\-mix
67+
-C, --chorus-post-mix
6668
Ignore CC93 chorus send level.
67-
See also \f[B]\-\-reverb\-post\-mix\f[R].
69+
See also \f[B]--reverb-post-mix\f[R].
6870
.TP
69-
\-s, \-\-sndlib \f[I]index\f[R]
71+
-s, --sndlib \f[I]index\f[R]
7072
EAS sound library to use:
7173
.RS
72-
.IP \(bu 2
73-
1: wt_200k_G (default) \- WT\-only bank, used in Android devices.
74-
Also named \(lqCommon\(rq.
75-
Support 22050 Hz and 44100 Hz sample rates, 8\-bit and 16\-bit samples.
76-
.IP \(bu 2
77-
2: GMdblib\-3 \- FM\-only bank.
74+
.IP \[bu] 2
75+
1: wt_200k_G (default) - WT-only bank, used in Android devices.
76+
Also named \[lq]Common\[rq].
77+
Support 22050 Hz and 44100 Hz sample rates, 8-bit and 16-bit samples.
78+
.IP \[bu] 2
79+
2: GMdblib-3 - FM-only bank.
7880
Support all sample rates.
7981
Sample bit depth does not matter here.
80-
.IP \(bu 2
81-
3: hybrid_22khz_mcu \- Hybrid bank.
82+
.IP \[bu] 2
83+
3: hybrid_22khz_mcu - Hybrid bank.
8284
Use WT synth for drums and FM for melodic instruments.
83-
This bank is a combination of \f[CR]GMdblib\-3\f[R] and
84-
\f[CR]Sonic_20Khz_Drums\f[R].
85-
Support 22050 Hz sample rate and 8\-bit samples only.
85+
This bank is a combination of \f[C]GMdblib-3\f[R] and
86+
\f[C]Sonic_20Khz_Drums\f[R].
87+
Support 22050 Hz sample rate and 8-bit samples only.
8688
.PP
8789
\f[B]Note:\f[R] This option does not affect DLS/SF2.
8890
They will always use the DLS synth engine.
@@ -94,58 +96,78 @@ configuration, the program will fail with an error message.
9496
\f[I]midi_file\f[R]
9597
Input MID file name.
9698
.SH EXAMPLES
99+
.PP
97100
The following examples assume the default option USE_44KHZ=ON, which
98101
means an output sample rate = 44100 Hz.
99102
.PP
100103
Example 1: Render a MIDI file and save the rendered audio as a raw audio
101104
file:
102105
.IP
103-
.EX
106+
.nf
107+
\f[C]
104108
$ sonivoxrender ants.mid > ants.pcm
105-
.EE
109+
\f[R]
110+
.fi
106111
.PP
107112
Example 2: pipe the rendered audio thru the Linux ALSA \f[B]aplay\f[R]
108113
utility:
109114
.IP
110-
.EX
111-
$ sonivoxrender ants.mid | aplay \-c 2 \-f S16_LE \-r 44100
112-
.EE
115+
.nf
116+
\f[C]
117+
$ sonivoxrender ants.mid | aplay -c 2 -f S16_LE -r 44100
118+
\f[R]
119+
.fi
113120
.PP
114121
is equivalent to:
115122
.IP
116-
.EX
117-
$ sonivoxrender ants.mid | aplay \-f cd
118-
.EE
123+
.nf
124+
\f[C]
125+
$ sonivoxrender ants.mid | aplay -f cd
126+
\f[R]
127+
.fi
119128
.PP
120129
Example 3: pipe the rendered audio thru the \f[B]lame\f[R] utility
121130
creating a MP3 file:
122131
.IP
123-
.EX
124-
$ sonivoxrender ants.mid | lame \-r \-s 44100 \- ants.mp3
125-
.EE
132+
.nf
133+
\f[C]
134+
$ sonivoxrender ants.mid | lame -r -s 44100 - ants.mp3
135+
\f[R]
136+
.fi
126137
.PP
127138
Example 4: pipe the rendered audio thru the \f[B]sox\f[R] utility
128139
creating a WAV file:
129140
.IP
130-
.EX
131-
$ sonivoxrender ants.mid | sox \-t s16 \-c 2 \-r 44100 \- ants.wav
132-
.EE
141+
.nf
142+
\f[C]
143+
$ sonivoxrender ants.mid | sox -t s16 -c 2 -r 44100 - ants.wav
144+
\f[R]
145+
.fi
133146
.PP
134-
Example 5: pipe the rendered audio thru the PulseAudio\(cqs
147+
Example 5: pipe the rendered audio thru the PulseAudio\[cq]s
135148
\f[B]pacat\f[R] utility:
136149
.IP
137-
.EX
150+
.nf
151+
\f[C]
138152
$ sonivoxrender ants.mid | pacat
139-
.EE
153+
\f[R]
154+
.fi
155+
.PP
156+
Example 6: pipe the rendered audio thru the PipeWire\[cq]s
157+
\f[B]pw-play\f[R] utility:
158+
.IP
159+
.nf
160+
\f[C]
161+
$ sonivoxrender ants.mid | pw-play --rate 44100 -
162+
\f[R]
163+
.fi
140164
.SH BUGS
141-
See Tickets at GitHub \c
142-
.UR https://github.com/pedrolcl/sonivox/issues/
143-
.UE \c
165+
.PP
166+
See Tickets at GitHub <https://github.com/pedrolcl/sonivox/issues/>
144167
.SH LICENSE AND COPYRIGHT
168+
.PP
145169
Licensed under the Apache License, Version 2.0
146170
.PP
147-
Copyright (c) 2022\-2025 Pedro López\-Cabanillas and contributors
171+
Copyright (c) 2022-2025 Pedro L\['o]pez-Cabanillas and contributors
148172
.SH AUTHORS
149-
Pedro López\-Cabanillas \c
150-
.MT plcl@users.sf.net
151-
.ME \c.
173+
Pedro L\['o]pez-Cabanillas <plcl@users.sf.net>.

example/sonivoxrender.1.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ Example 5: pipe the rendered audio thru the PulseAudio's **pacat** utility:
111111

112112
$ sonivoxrender ants.mid | pacat
113113

114+
Example 6: pipe the rendered audio thru the PipeWire's **pw-play** utility:
115+
116+
$ sonivoxrender ants.mid | pw-play --rate 44100 -
117+
114118
# BUGS
115119

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

0 commit comments

Comments
 (0)