-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathReverbOverview.html
More file actions
305 lines (303 loc) · 12.4 KB
/
ReverbOverview.html
File metadata and controls
305 lines (303 loc) · 12.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libfluidsynth: Reverb Overview</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libfluidsynth
 <span id="projectnumber">2.5.4</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('ReverbOverview.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">Reverb Overview </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The following page gives an overview of different reverbator engines. It concentrates on objective criteria rather than trying to elaborate on the "quality" of the reverb engines. Listening examples are provided so you can make up your own opinion. Here are the dry versions. The reverb settings of all examples below share those settings: <code>-o synth.reverb.room-size=0.7 -o synth.reverb.width=1 -o synth.reverb.damp=0 -o synth.reverb.level=0.7</code></p>
<p>Example 1 - Piano:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/1455_dry.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/1455_dry.oga">download/play</a>.
</audio>
</p>
<p>Example 2 - Snap:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/1496_dry.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/1496_dry.oga">download/play</a>.
</audio>
</p>
<p>Example 3 - Water drops + Triangle:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/reverb_water_triangle_test_dry.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/reverb_water_triangle_test_dry.oga">download/play</a>.
</audio>
</p>
<h1><a class="anchor" id="autotoc_md0"></a>
1. Freeverb</h1>
<hr />
<p>Freeverb was the reverb engine fluidsynth had used up to including version 2.0.9 and was based on: <a href="https://ccrma.stanford.edu/~jos/pasp/Freeverb.html">https://ccrma.stanford.edu/~jos/pasp/Freeverb.html</a></p>
<p>The reverbator receives a monophonic input signal, which then passes 8 parallel comb filters and finally 4 allpass filters.</p>
<p>The design of the reverbator is not capable of processing a stereo input signal.</p>
<p>Due to its design and the usage of comb filters in particular, the reverb introduces a resonance tone on mid- to high-frequency tones. This is often referred to as "ringing" and perceived unpleasant.</p>
<p>Freeverb is slightly more CPU-expensive than FDN.</p>
<p>Example 1 - Piano:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/1455_freeverb.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/1455_freeverb.oga">download/play</a>.
</audio>
</p>
<p>Example 2 - Snap:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/1496_freeverb.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/1496_freeverb.oga">download/play</a>.
</audio>
</p>
<p>Example 3 - Water drops + Triangle:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/reverb_water_triangle_test_l0.7_s0.7_w1.0_d0.0_freeverb.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/reverb_water_triangle_test_l0.7_s0.7_w1.0_d0.0_freeverb.oga">download/play</a>.
</audio>
</p>
<h1><a class="anchor" id="autotoc_md2"></a>
2. FDN</h1>
<hr />
<p>Due to its rinning nature, Freeverb was replaced by "Feedback Delay Networks"-reverbator in version 2.1.0. It's based on: <a href="https://ccrma.stanford.edu/~jos/pasp/FDN_Reverberation.html">https://ccrma.stanford.edu/~jos/pasp/FDN_Reverberation.html</a></p>
<p>FDN receives a monophonic input signal and - as the name suggests - routes it through several delay lines. Fluidsynth's default implementation makes use of 8 delay lines, although there is a compile-time switch to allow using 12 delay lines, that slightly increases the reverb's quality by an increased frequency density. However, it also increases CPU usage beyound what the previous Freeverb would have required, so it was decided to use only 8 delay lines.</p>
<p>To fight ringing and high-frequency reverb "reflections", the delay lines are modulated with a sine. While this is generally inaudible, it can be perceived on certain high-frequent usually clear sounding instruments, like a triangle, causing a slight vibrato effect to be applied to them.</p>
<p>FDN tends to add unnaturally sounding distortions for samples that have a wide frequency range. Take a listen to the "Snap" example 2.</p>
<p>FDN is less CPU-expensive than Freeverb and is not capable of receiving a stereo input signal. The reverb settings (room-size, width, damp, level) were tuned and scaled to match up well with the behavior of the original Freeverb.</p>
<p>Example 1 - Piano:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/1455_fdn.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/1455_fdn.oga">download/play</a>.
</audio>
</p>
<p>Example 2 - Snap:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/1496_fdn.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/1496_fdn.oga">download/play</a>.
</audio>
</p>
<p>Example 3 - Water drops + Triangle:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/reverb_water_triangle_test_l0.7_s0.7_w1.0_d0.0_fdn.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/reverb_water_triangle_test_l0.7_s0.7_w1.0_d0.0_fdn.oga">download/play</a>.
</audio>
</p>
<h1><a class="anchor" id="autotoc_md4"></a>
3. Lexverb</h1>
<hr />
<p>This reverb engine is inspired by Lexicon reverbators. It's the first reverb engine capable of processing a stereo input signal (though due to limitations by fluidsynth, it still only receives a monophonic input signal).</p>
<p>There are 10 allpass filters involved: Lexverb routes the left input channel through 5 allpass filter, and the right input channel through another 5 allpass filters. Delay lines between these filter chains feed a part of the left-wet signal back to the right filter chain and vice versa.</p>
<p>Due to the use of only allpass filters, the gain of the individual frequencies is not changed, only their phase is messed around with. It's similar to the reverb found in many Nintendo64 games... and possibly other stuff from the 90s.</p>
<p>Lexverb currently suffers from the fact that it receives a monophonic input signal, causing the wet-reverb sound to be effectively panned to the center, instead of bouncing left and right.</p>
<p>Lexverb is CPU-cheaper than FDN.</p>
<p>Example 1 - Piano:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/1455_lexverb.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/1455_lexverb.oga">download/play</a>.
</audio>
</p>
<p>Example 2 - Snap:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/1496_lexverb.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/1496_lexverb.oga">download/play</a>.
</audio>
</p>
<p>Example 3 - Water drops + Triangle:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/reverb_water_triangle_test_l0.7_s0.7_w1.0_d0.0_lexverb.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/reverb_water_triangle_test_l0.7_s0.7_w1.0_d0.0_lexverb.oga">download/play</a>.
</audio>
</p>
<h1><a class="anchor" id="autotoc_md6"></a>
4. Dattorro</h1>
<hr />
<p>This "plate-class" reverb engine is named after Jon Dattorro and based on this paper: <a href="https://ccrma.stanford.edu/~dattorro/EffectDesignPart1.pdf">https://ccrma.stanford.edu/~dattorro/EffectDesignPart1.pdf</a></p>
<p>A monophonic input signal is fed into a sophisticated network of delay lines and allpass filters to create a rich and colorful reverb sound.</p>
<p>Dattorro is most CPU-expensive.</p>
<p>Example 1 - Piano:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/1455_dat.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/1455_dat.oga">download/play</a>.
</audio>
</p>
<p>Example 2 - Snap:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/1496_dat.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/1496_dat.oga">download/play</a>.
</audio>
</p>
<p>Example 3 - Water drops + Triangle:</p>
<p>
<audio controls preload="metadata">
<source
src="/audio/reverb_water_triangle_test_l0.7_s0.7_w1.0_d0.0_dat.oga"
type="audio/ogg"
/>
Your browser does not support the HTML5 audio element.
Try opening the file directly:
<a href="/audio/reverb_water_triangle_test_l0.7_s0.7_w1.0_d0.0_dat.oga">download/play</a>.
</audio>
</p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
</body>
</html>