Skip to content

Commit

Permalink
Add jprev and greyhole reverbs: developed by Julian Parker and Till B…
Browse files Browse the repository at this point in the history
…overmann.
  • Loading branch information
sletz committed Jun 1, 2021
1 parent df2f75e commit 437cafe
Show file tree
Hide file tree
Showing 9 changed files with 347 additions and 53 deletions.
58 changes: 58 additions & 0 deletions demos.lib
Original file line number Diff line number Diff line change
Expand Up @@ -908,6 +908,64 @@ with {
out_level = *(gain),*(gain);
};

//----------------------------------`(dm.)jprev_demo`------------------------------
// Example GUI for `jprev` with all parameters exposed.
//
// #### Usage
//
// ```
// _,_ : jprev_demo : _,_
// ```
//
//------------------------------------------------------------
// Author: Till Bovermann
// License: GPL2+

declare jprev_demo author "Till Bovermann";
declare jprev_demo license "GPL2+";

jprev_demo = re.jpverb(t60, damp, size, early_diff, mod_depth, mod_freq, low, mid, high, low_cutoff, high_cutoff)
with {
t60 = hslider("[01]t60", 1.0 , 0.1, 60.000, 0.1000);
damp = hslider("[03]damp", 0.0 , 0.0, 0.999, 0.0001);
size = hslider("[02]size", 1.0 , 0.5, 3.000, 0.0100);
early_diff = hslider("[04]earlyDiff", 0.707, 0.0, 0.990, 0.0010);
mod_depth = hslider("[05]mDepth", 0.1, 0.0, 1.0, 0.001);
mod_freq = hslider("[06]mFreq", 2.0, 0.0, 10.0, 0.010);
low = hslider("[07]lowX", 1.0, 0.0, 1.0, 0.010);
mid = hslider("[08]midX", 1.0, 0.0, 1.0, 0.010);
high = hslider("[09]highX", 1.0, 0.0, 1.0, 0.010);
low_cutoff = hslider("[10]lowBand", 500, 100.0, 6000.0, 0.1);
high_cutoff = hslider("[11]highBand",2000, 1000.0, 10000.0, 0.1);
};


//----------------------------------`(dm.)greyhole_demo`------------------------------
// Example GUI for `greyhole` with all parameters exposed.
//
// #### Usage
//
// ```
// _,_ : greyhole_demo : _,_
// ```
//
//------------------------------------------------------------
// Author: Till Bovermann
// License: GPL2+

declare greyhole_demo author "Till Bovermann";
declare greyhole_demo license "GPL2+";

greyhole_demo = re.greyhole(dt, damp, size, early_diff, feedback, mod_depth, mod_freq)
with {
dt = hslider("[01]delayTime", 0.2, 0.001, 1.45, 0.0001);
damp = hslider("[02]damping", 0.0, 0.000, 0.99, 0.0010);
size = hslider("[03]size", 1.0, 0.500, 3.00, 0.0001);
early_diff = hslider("[04]diffusion", 0.5, 0.000, 0.99, 0.0001);
feedback = hslider("[05]feedback", 0.9, 0.000, 1.00, 0.0100);
mod_depth = hslider("[06]modDepth", 0.1, 0.000, 1.00, 0.0010);
mod_freq = hslider("[07]modFreq", 2.0, 0.000, 10.00, 0.0100);
};

//====================================Generators==========================================
//========================================================================================
Expand Down
2 changes: 1 addition & 1 deletion docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -387,5 +387,5 @@ <h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>

<!--
MkDocs version : 1.1.2
Build Date UTC : 2021-05-31 11:25:09.449526+00:00
Build Date UTC : 2021-06-01 10:51:32.808036+00:00
-->
42 changes: 31 additions & 11 deletions docs/libs/demos/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,14 @@
<li class="nav-item" data-level="3"><a href="#dmdattorro_rev_demo" class="nav-link">(dm.)dattorro_rev_demo</a>
<ul class="nav flex-column">
</ul>
</li>
<li class="nav-item" data-level="3"><a href="#dmjprev_demo" class="nav-link">(dm.)jprev_demo</a>
<ul class="nav flex-column">
</ul>
</li>
<li class="nav-item" data-level="3"><a href="#dmgreyhole_demo" class="nav-link">(dm.)greyhole_demo</a>
<ul class="nav flex-column">
</ul>
</li>
</ul>
</li>
Expand Down Expand Up @@ -516,35 +524,47 @@ <h3 id="dmdattorro_rev_demo"><code>(dm.)dattorro_rev_demo</code></h3>
<h4 id="usage_18">Usage</h4>
<pre><code>_,_ : dattorro_rev_demo : _,_
</code></pre>
<hr />
<h3 id="dmjprev_demo"><code>(dm.)jprev_demo</code></h3>
<p>Example GUI for <code>jprev</code> with all parameters exposed. </p>
<h4 id="usage_19">Usage</h4>
<pre><code>_,_ : jprev_demo : _,_
</code></pre>
<hr />
<h3 id="dmgreyhole_demo"><code>(dm.)greyhole_demo</code></h3>
<p>Example GUI for <code>greyhole</code> with all parameters exposed. </p>
<h4 id="usage_20">Usage</h4>
<pre><code>_,_ : greyhole_demo : _,_
</code></pre>
<h2 id="generators">Generators</h2>
<hr />
<h3 id="dmsawtooth_demo"><code>(dm.)sawtooth_demo</code></h3>
<p>An application demonstrating the different sawtooth oscillators of Faust.</p>
<h4 id="usage_19">Usage</h4>
<h4 id="usage_21">Usage</h4>
<pre><code>sawtooth_demo : _
</code></pre>
<hr />
<h3 id="dmvirtual_analog_oscillator_demo"><code>(dm.)virtual_analog_oscillator_demo</code></h3>
<p>Virtual analog oscillator demo application.</p>
<h4 id="usage_20">Usage</h4>
<h4 id="usage_22">Usage</h4>
<pre><code>virtual_analog_oscillator_demo : _
</code></pre>
<hr />
<h3 id="dmoscrs_demo"><code>(dm.)oscrs_demo</code></h3>
<p>Simple application demoing filter based oscillators.</p>
<h4 id="usage_21">Usage</h4>
<h4 id="usage_23">Usage</h4>
<pre><code>oscrs_demo : _
</code></pre>
<hr />
<h3 id="dmvelvet_noise_demo"><code>(dm.)velvet_noise_demo</code></h3>
<p>Listen to velvet_noise!</p>
<h4 id="usage_22">Usage</h4>
<h4 id="usage_24">Usage</h4>
<pre><code>velvet_noise_demo : _
</code></pre>
<hr />
<h3 id="dmlatch_demo"><code>(dm.)latch_demo</code></h3>
<p>Illustrate latch operation</p>
<h4 id="usage_23">Usage</h4>
<h4 id="usage_25">Usage</h4>
<pre><code>echo 'import(&quot;stdfaust.lib&quot;);' &gt; latch_demo.dsp
echo 'process = dm.latch_demo;' &gt;&gt; latch_demo.dsp
faust2octave latch_demo.dsp
Expand All @@ -553,7 +573,7 @@ <h4 id="usage_23">Usage</h4>
<hr />
<h3 id="dmenvelopes_demo"><code>(dm.)envelopes_demo</code></h3>
<p>Illustrate various envelopes overlaid, including their gate * 1.1.</p>
<h4 id="usage_24">Usage</h4>
<h4 id="usage_26">Usage</h4>
<pre><code>echo 'import(&quot;stdfaust.lib&quot;);' &gt; envelopes_demo.dsp
echo 'process = dm.envelopes_demo;' &gt;&gt; envelopes_demo.dsp
faust2octave envelopes_demo.dsp
Expand All @@ -562,7 +582,7 @@ <h4 id="usage_24">Usage</h4>
<hr />
<h3 id="dmfft_spectral_level_demo"><code>(dm.)fft_spectral_level_demo</code></h3>
<p>Make a real-time spectrum analyzer using FFT from analyzers.lib</p>
<h4 id="usage_25">Usage</h4>
<h4 id="usage_27">Usage</h4>
<pre><code>echo 'import(&quot;stdfaust.lib&quot;);' &gt; fft_spectral_level_demo.dsp
echo 'process = dm.fft_spectral_level_demo;' &gt;&gt; fft_spectral_level_demo.dsp
Mac:
Expand All @@ -578,7 +598,7 @@ <h4 id="usage_25">Usage</h4>
<hr />
<h3 id="dmreverse_echo_demonchans"><code>(dm.)reverse_echo_demo(nChans)</code></h3>
<p>Multichannel echo effect with reverse delays</p>
<h4 id="usage_26">Usage</h4>
<h4 id="usage_28">Usage</h4>
<pre><code>echo 'import(&quot;stdfaust.lib&quot;);' &gt; reverse_echo_demo.dsp
echo 'nChans = 3; // Any integer &gt; 1 should work here' &gt;&gt; reverse_echo_demo.dsp
echo 'process = dm.reverse_echo_demo(nChans);' &gt;&gt; reverse_echo_demo.dsp
Expand Down Expand Up @@ -607,7 +627,7 @@ <h3 id="dmpospass_demo"><code>(dm.)pospass_demo</code></h3>
A frequency-shifted harmonic signal is usually not harmonic.
Very small frequency shifts give interesting chirp effects when
there is feedback around the frequency shifter.</p>
<h4 id="usage_27">Usage</h4>
<h4 id="usage_29">Usage</h4>
<pre><code>echo 'import(&quot;stdfaust.lib&quot;);' &gt; pospass_demo.dsp
echo 'process = dm.pospass_demo;' &gt;&gt; pospass_demo.dsp
Mac:
Expand All @@ -624,7 +644,7 @@ <h4 id="usage_27">Usage</h4>
<hr />
<h3 id="dmexciter"><code>(dm.)exciter</code></h3>
<p>Psychoacoustic harmonic exciter, with GUI.</p>
<h4 id="usage_28">Usage</h4>
<h4 id="usage_30">Usage</h4>
<pre><code>_ : exciter : _
</code></pre>
<h4 id="references">References</h4>
Expand All @@ -636,7 +656,7 @@ <h4 id="references">References</h4>
<h3 id="dmvocoder_demo"><code>(dm.)vocoder_demo</code></h3>
<p>Use example of the vocoder function where an impulse train is used
as excitation.</p>
<h4 id="usage_29">Usage</h4>
<h4 id="usage_31">Usage</h4>
<pre><code>_ : vocoder_demo : _
</code></pre></div>
</div>
Expand Down
6 changes: 5 additions & 1 deletion docs/libs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -540,6 +540,8 @@ <h2 id="demos">demos</h2>
<a href="demos/#dmzita_light">(dm.)zita_light</a> &nbsp; &nbsp;
<a href="demos/#dmzita_rev1">(dm.)zita_rev1</a> &nbsp; &nbsp;
<a href="demos/#dmdattorro_rev_demo">(dm.)dattorro_rev_demo</a> &nbsp; &nbsp;
<a href="demos/#dmjprev_demo">(dm.)jprev_demo</a> &nbsp; &nbsp;
<a href="demos/#dmgreyhole_demo">(dm.)greyhole_demo</a> &nbsp; &nbsp;
<a href="demos/#dmsawtooth_demo">(dm.)sawtooth_demo</a> &nbsp; &nbsp;
<a href="demos/#dmvirtual_analog_oscillator_demo">(dm.)virtual_analog_oscillator_demo</a> &nbsp; &nbsp;
<a href="demos/#dmoscrs_demo-">(dm.)oscrs_demo </a> &nbsp; &nbsp;
Expand Down Expand Up @@ -1033,7 +1035,9 @@ <h2 id="reverbs">reverbs</h2>
<a href="reverbs/#remono_freeverb">(re.)mono_freeverb</a> &nbsp; &nbsp;
<a href="reverbs/#restereo_freeverb">(re.)stereo_freeverb</a> &nbsp; &nbsp;
<a href="reverbs/#redattorro_rev">(re.)dattorro_rev</a> &nbsp; &nbsp;
<a href="reverbs/#redattorro_rev_default">(re.)dattorro_rev_default</a> &nbsp; &nbsp;</p>
<a href="reverbs/#redattorro_rev_default">(re.)dattorro_rev_default</a> &nbsp; &nbsp;
<a href="reverbs/#rejpverb">(re.)jpverb</a> &nbsp; &nbsp;
<a href="reverbs/#regreyhole">(re.)greyhole</a> &nbsp; &nbsp;</p>
<h2 id="routes">routes</h2>
<p><a href="routes/#rocross">(ro.)cross</a> &nbsp; &nbsp;
<a href="routes/#rocrossnn">(ro.)crossnn</a> &nbsp; &nbsp;
Expand Down
59 changes: 58 additions & 1 deletion docs/libs/reverbs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,18 @@
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-level="2"><a href="#jpverb-and-greyhole-reverbs" class="nav-link">JPverb and Greyhole Reverbs</a>
<ul class="nav flex-column">
<li class="nav-item" data-level="3"><a href="#rejpverb" class="nav-link">(re.)jpverb</a>
<ul class="nav flex-column">
</ul>
</li>
<li class="nav-item" data-level="3"><a href="#regreyhole" class="nav-link">(re.)greyhole</a>
<ul class="nav flex-column">
</ul>
</li>
</ul>
</li>
</ul>
</li>
Expand Down Expand Up @@ -462,7 +474,52 @@ <h4 id="usage_9">Usage</h4>
<h4 id="reference_3">Reference</h4>
<ul>
<li><a href="https://ccrma.stanford.edu/~dattorro/EffectDesignPart1.pdf">https://ccrma.stanford.edu/~dattorro/EffectDesignPart1.pdf</a></li>
</ul></div>
</ul>
<h2 id="jpverb-and-greyhole-reverbs">JPverb and Greyhole Reverbs</h2>
<hr />
<h3 id="rejpverb"><code>(re.)jpverb</code></h3>
<p>An algorithmic reverb (stereo in/out), inspired by the lush chorused sound
of certain vintage Lexicon and Alesis reverberation units.
Designed to sound great with synthetic sound sources, rather than sound like a realistic space.</p>
<h4 id="usage_10">Usage</h4>
<pre><code>_,_ : jpverb(t60, damp, size, early_diff, mod_depth, mod_freq, low, mid, high, low_cutoff, high_cutoff) : _,_
</code></pre>
<p>Where:</p>
<ul>
<li><code>t60</code>: approximate reverberation time in seconds (<code>[0.1..60]</code> sec) (T60 - the time for the reverb to decay by 60db when damp == 0 ). Does not effect early reflections</li>
<li><code>damp</code>: controls damping of high-frequencies as the reverb decays. <code>0</code> is no damping, <code>1</code> is very strong damping. Values should be between (<code>[0..1]</code>)</li>
<li><code>size</code>: scales size of delay-lines within the reverberator, producing the impression of a larger or smaller space. Values below <code>1</code> can sound metallic. Values should be between `[0.5..5]</li>
<li><code>early_diff</code>: controls shape of early reflections. Values of <code>0.707</code> or more produce smooth exponential decay. Lower values produce a slower build-up of echoes. Values should be between (<code>[0..1]</code>)</li>
<li><code>mod_depth</code>: depth (<code>[0..1]</code>) of delay-line modulation. Use in combination with <code>mod_freq</code> to set amount of chorusing within the structure</li>
<li><code>modFreq</code>: frequency (<code>[0..10]</code> Hz) of delay-line modulation. Use in combination with modDepth to set amount of chorusing within the structure</li>
<li><code>low</code>: multiplier (<code>[0..1]</code>) for the reverberation time within the low band</li>
<li><code>mid</code>: multiplier (<code>[0..1]</code>) for the reverberation time within the mid band</li>
<li><code>high</code>: multiplier (<code>[0..1]</code>) for the reverberation time within the high band</li>
<li><code>lowcut</code>: frequency (100..6000 Hz) at which the crossover between the low and mid bands of the reverb occurs</li>
<li><code>highcut</code>: frequency (1000..10000 Hz) at which the crossover between the mid and high bands of the reverb occurs</li>
</ul>
<h4 id="reference_4">Reference</h4>
<hr />
<h3 id="regreyhole"><code>(re.)greyhole</code></h3>
<p>A complex echo-like effect (stereo in/out), inspired by the classic Eventide effect of a similar name.
The effect consists of a diffuser (like a mini-reverb, structurally similar to the one used in <code>jpverb</code>)
connected in a feedback system with a long, modulated delay-line.
Excels at producing spacey washes of sound.</p>
<h4 id="usage_11">Usage</h4>
<pre><code>_,_ : greyhole(dt, damp, size, early_diff, feedback, mod_depth, mod_freq) : _,_
</code></pre>
<p>Where:</p>
<ul>
<li><code>dt</code>: approximate reverberation time in seconds (<code>[0.1..60 sec]</code>)</li>
<li><code>damp</code>: controls damping of high-frequencies as the reverb decays. <code>0</code> is no damping, <code>1</code> is very strong damping. Values should be between (<code>[0..1]</code>)</li>
<li><code>size</code>: scales size of delay-lines within the diffusion unit, producing the impression of a larger or smaller space. Values below <code>1</code> can sound metallic. Values should be between (<code>[0.5..5]</code>)</li>
<li><code>size</code>: control of relative "room size" roughly between (<code>[0.5..3]</code>)</li>
<li><code>early_diff</code>: controls pattern of echoes produced by the diffuser. At very low values, the diffuser acts like a delay-line whose length is controlled by the 'size' parameter. Medium values produce a slow build-up of echoes, giving the sound a reversed-like quality. Values of <code>0.707</code> or greater than produce smooth exponentially decaying echoes. Values should be in the range (<code>[0..1]</code>)</li>
<li><code>feedback</code>: amount of feedback through the system. Sets the number of repeating echoes. A setting of <code>1.0</code> produces infinite sustain. Values should be in the range (<code>[0..1]</code>)</li>
<li><code>mod_depth</code>: depth (<code>[0..1]</code>) of delay-line modulation. Use in combination with mod_freq to produce chorus and pitch-variations in the echoes</li>
<li><code>mod_freq</code>: frequency (<code>[0..10]</code> Hz) of delay-line modulation. Use in combination with mod_depth to produce chorus and pitch-variations in the echoes</li>
</ul>
<h4 id="reference_5">Reference</h4></div>
</div>
</div>

Expand Down
2 changes: 1 addition & 1 deletion docs/search/search_index.json

Large diffs are not rendered by default.

Loading

0 comments on commit 437cafe

Please sign in to comment.