751 lines
28 KiB
HTML
751 lines
28 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
|
|
|
<link rel="shortcut icon" href="../../img/favicon.ico">
|
|
<title> noises - Faust Libraries</title>
|
|
<link href="../../css/bootstrap.min.css" rel="stylesheet">
|
|
<link href="../../css/font-awesome.min.css" rel="stylesheet">
|
|
<link href="../../css/base.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css">
|
|
<link href="../../css/extra.css" rel="stylesheet">
|
|
|
|
<script src="../../js/jquery-3.6.0.min.js" defer></script>
|
|
<script src="../../js/bootstrap.min.js" defer></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
|
|
<script>hljs.initHighlightingOnLoad();</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
|
|
<div class="container">
|
|
<a class="navbar-brand" href="../.."><img src="../../img/faustText.svg" width="150px"> </a>
|
|
<!-- Expander button -->
|
|
<button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navbar-collapse">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
|
|
<!-- Expanded navigation -->
|
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
|
<!-- Main navigation -->
|
|
<ul class="nav navbar-nav">
|
|
<li class="dropdown">
|
|
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
|
|
<li>
|
|
<a href="../../organization/" class="dropdown-item"> Organization </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../../standardFunctions/" class="dropdown-item"> Standard Functions </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../../contributing/" class="dropdown-item"> Contributing </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../../community/" class="dropdown-item"> Community </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../../about/" class="dropdown-item"> Copyright/License </a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="navitem">
|
|
<a href="../" class="nav-link">Index</a>
|
|
</li>
|
|
<li class="dropdown active">
|
|
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">Libraries <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
|
|
<li>
|
|
<a href="../aanl/" class="dropdown-item"> antialiased </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../analyzers/" class="dropdown-item"> analyzers </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../basics/" class="dropdown-item"> basics </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../compressors/" class="dropdown-item"> compressors </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../debug/" class="dropdown-item"> debug </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../delays/" class="dropdown-item"> delays </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../demos/" class="dropdown-item"> demos </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../dx7/dx7/" class="dropdown-item"> dx7/dx7 </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../dx7/env/" class="dropdown-item"> dx7/env </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../dx7/lfo/" class="dropdown-item"> dx7/lfo </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../dx7/operator/" class="dropdown-item"> dx7/operator </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../dx7/pitchenv/" class="dropdown-item"> dx7/pitchenv </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../envelopes/" class="dropdown-item"> envelopes </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../fds/" class="dropdown-item"> fds </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../filters/" class="dropdown-item"> filters </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../hoa/" class="dropdown-item"> hoa </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../hysteresis/" class="dropdown-item"> hysteresis </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../interpolators/" class="dropdown-item"> interpolators </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../linearalgebra/" class="dropdown-item"> linearalgebra </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../maths/" class="dropdown-item"> maths </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../mi/" class="dropdown-item"> mi </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../misceffects/" class="dropdown-item"> misceffects </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../motion/" class="dropdown-item"> motion </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="./" class="dropdown-item active"> noises </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../oscillators/" class="dropdown-item"> oscillators </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../phaflangers/" class="dropdown-item"> phaflangers </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../physmodels/" class="dropdown-item"> physmodels </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../quantizers/" class="dropdown-item"> quantizers </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../reducemaps/" class="dropdown-item"> reducemaps </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../reverbs/" class="dropdown-item"> reverbs </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../routes/" class="dropdown-item"> routes </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../signals/" class="dropdown-item"> signals </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../soundfiles/" class="dropdown-item"> soundfiles </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../spats/" class="dropdown-item"> spats </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../synths/" class="dropdown-item"> synths </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../vaeffects/" class="dropdown-item"> vaeffects </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../version/" class="dropdown-item"> version </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../wdmodels/" class="dropdown-item"> wdmodels </a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../webaudio/" class="dropdown-item"> webaudio </a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="navitem">
|
|
<a href="../../about/" class="nav-link">About</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<ul class="nav navbar-nav ml-auto">
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link" data-toggle="modal" data-target="#mkdocs_search_modal">
|
|
<i class="fa fa-search"></i> Search
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="container">
|
|
<div class="row"><div class="col-md-3"><div class="navbar-light navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
|
<div class="navbar-header">
|
|
<button type="button" class="navbar-toggler collapsed" data-toggle="collapse" data-target="#toc-collapse" title="Table of Contents">
|
|
<span class="fa fa-angle-down"></span>
|
|
</button>
|
|
</div>
|
|
|
|
|
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-secondary">
|
|
<ul class="nav flex-column">
|
|
|
|
<li class="nav-item" data-level="1"><a href="#noiseslib" class="nav-link">noises.lib</a>
|
|
<ul class="nav flex-column">
|
|
<li class="nav-item" data-level="2"><a href="#functions-reference" class="nav-link">Functions Reference</a>
|
|
<ul class="nav flex-column">
|
|
<li class="nav-item" data-level="3"><a href="#nonoise" class="nav-link">(no.)noise</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nomultirandom" class="nav-link">(no.)multirandom</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nomultinoise" class="nav-link">(no.)multinoise</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nonoises" class="nav-link">(no.)noises</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nodnoise" class="nav-link">(no.)dnoise</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#norandomseed" class="nav-link">(no.)randomseed</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nornoise" class="nav-link">(no.)rnoise</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#normultirandom" class="nav-link">(no.)rmultirandom</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#normultinoise" class="nav-link">(no.)rmultinoise</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nornoises" class="nav-link">(no.)rnoises</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nopink_noise" class="nav-link">(no.)pink_noise</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nopink_noise_vm" class="nav-link">(no.)pink_noise_vm</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nolfnoise-nolfnoise0-and-nolfnoisen" class="nav-link">(no.)lfnoise, (no.)lfnoise0 and (no.)lfnoiseN</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nosparse_noise" class="nav-link">(no.)sparse_noise</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#novelvet_noise_vm" class="nav-link">(no.)velvet_noise_vm</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nognoise" class="nav-link">(no.)gnoise</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item" data-level="3"><a href="#nocolored_noise" class="nav-link">(no.)colored_noise</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div></div>
|
|
<div class="col-md-9 main-container" role="main">
|
|
|
|
<h1 id="noiseslib">noises.lib</h1>
|
|
<p>Noises library. Its official prefix is <code>no</code>.</p>
|
|
<p>This library provides various noise generators and stochastic signal sources
|
|
for audio synthesis and testing. It includes white, pink, brown, and blue noise,
|
|
as well as pseudo-random number generators and utilities for decorrelated signals
|
|
and random modulation in Faust DSP programs.</p>
|
|
<p>The Noises library is organized into 1 section:</p>
|
|
<ul>
|
|
<li><a href="#functions-reference">Functions Reference</a></li>
|
|
</ul>
|
|
<h4 id="references">References</h4>
|
|
<ul>
|
|
<li><a href="https://github.com/grame-cncm/faustlibraries/blob/master/noises.lib">https://github.com/grame-cncm/faustlibraries/blob/master/noises.lib</a></li>
|
|
</ul>
|
|
<h2 id="functions-reference">Functions Reference</h2>
|
|
<hr />
|
|
<h3 id="nonoise"><code>(no.)noise</code></h3>
|
|
<p>White noise generator (outputs random number between -1 and 1).
|
|
<code>noise</code> is a standard Faust function.</p>
|
|
<h4 id="usage">Usage</h4>
|
|
<pre><code>noise : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li>output: white noise signal in [-1, 1].</li>
|
|
</ul>
|
|
<h4 id="test">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
noise_test = no.noise;
|
|
</code></pre>
|
|
<hr />
|
|
<h3 id="nomultirandom"><code>(no.)multirandom</code></h3>
|
|
<p>Generates multiple decorrelated random numbers in parallel.</p>
|
|
<h4 id="usage_1">Usage</h4>
|
|
<pre><code>multirandom(N) : si.bus(N)
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>N</code>: the number of decorrelated random numbers in parallel, a constant numerical expression</li>
|
|
</ul>
|
|
<h4 id="test_1">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
multirandom_test = no.multirandom(3);
|
|
</code></pre>
|
|
<hr />
|
|
<h3 id="nomultinoise"><code>(no.)multinoise</code></h3>
|
|
<p>Generates multiple decorrelated noises in parallel.</p>
|
|
<h4 id="usage_2">Usage</h4>
|
|
<pre><code>multinoise(N) : si.bus(N)
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>N</code>: the number of decorrelated random numbers in parallel, a constant numerical expression</li>
|
|
</ul>
|
|
<h4 id="test_2">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
multinoise_test = no.multinoise(3);
|
|
</code></pre>
|
|
<hr />
|
|
<h3 id="nonoises"><code>(no.)noises</code></h3>
|
|
<p>A convenient wrapper around multinoise.</p>
|
|
<h4 id="usage_3">Usage</h4>
|
|
<pre><code>noises(N,i) : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>N</code>: the number of decorrelated random numbers in parallel, a constant numerical expression</li>
|
|
<li><code>i</code>: the selected random number (i in [0..N[)</li>
|
|
</ul>
|
|
<h4 id="test_3">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
noises_test = no.noises(4, 2);
|
|
</code></pre>
|
|
<hr />
|
|
<h3 id="nodnoise"><code>(no.)dnoise</code></h3>
|
|
<p>A deterministic noise burst with a dynamically adjustable seed, enabling consistent recall.
|
|
Useful for noise variation sensitive applications like replicable/recallable percussion sounds and waveguide excitation.</p>
|
|
<h4 id="usage_4">Usage</h4>
|
|
<pre><code>dnoise(t,sx) : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>t</code>: is a noise burst trigger</li>
|
|
<li><code>sx</code>: defines the range of integer seed multipliers. </li>
|
|
</ul>
|
|
<h4 id="test_4">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
ba = library("basics.lib");
|
|
dnoise_test = (trigger, seedRange) : no.dnoise
|
|
with {
|
|
trigger = 1 : ba.impulsify;
|
|
seedRange = 10.0;
|
|
};
|
|
</code></pre>
|
|
<h4 id="example">Example</h4>
|
|
<p>This expression <code>sx = hslider("seed multiplier",1,1,1000,1)</code> allows 1000 distinct seed variations.
|
|
To generate a burst with a fixed length, use <code>ba.spulse(bLength, t)</code> (as trigger for the <code>t</code> parameter), where <code>bLength</code> is the burst duration in samples and <code>t</code> is a trigger.</p>
|
|
<hr />
|
|
<h3 id="norandomseed"><code>(no.)randomseed</code></h3>
|
|
<p>A random seed based on the foreign function <code>arc4random</code>
|
|
(see man arc4random). Used in <code>rnoise</code>, <code>rmultirandom</code>, etc. to
|
|
avoid having the same pseudo random sequence at each run.</p>
|
|
<p>WARNING: using the foreign function <code>arc4random</code>, so only available in C/C++ and LLVM backends.</p>
|
|
<h4 id="usage_5">Usage</h4>
|
|
<pre><code>randomseed : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li>output: platform-specific random seed value.</li>
|
|
</ul>
|
|
<h4 id="test_5">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
randomseed_test = no.randomseed;
|
|
</code></pre>
|
|
<hr />
|
|
<h3 id="nornoise"><code>(no.)rnoise</code></h3>
|
|
<p>A randomized white noise generator (outputs random number between -1 and 1).</p>
|
|
<p>WARNING: using the foreign function <code>arc4random</code>, so only available in C/C++ and LLVM backends.</p>
|
|
<h4 id="usage_6">Usage</h4>
|
|
<pre><code>rnoise : _
|
|
</code></pre>
|
|
<h4 id="test_6">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
rnoise_test = no.rnoise;
|
|
</code></pre>
|
|
<hr />
|
|
<h3 id="normultirandom"><code>(no.)rmultirandom</code></h3>
|
|
<p>Generates multiple decorrelated random numbers in parallel.</p>
|
|
<p>WARNING: using the foreign function <code>arc4random</code>, so only available in C/C++ and LLVM backends.</p>
|
|
<h4 id="usage_7">Usage</h4>
|
|
<pre><code>rmultirandom(N) : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>N</code>: the number of decorrelated random numbers in parallel, a constant numerical expression</li>
|
|
</ul>
|
|
<h4 id="test_7">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
rmultirandom_test = no.rmultirandom(3);
|
|
</code></pre>
|
|
<hr />
|
|
<h3 id="normultinoise"><code>(no.)rmultinoise</code></h3>
|
|
<p>Generates multiple decorrelated noises in parallel.</p>
|
|
<p>WARNING: using the foreign function <code>arc4random</code>, so only available in C/C++ and LLVM backends.</p>
|
|
<h4 id="usage_8">Usage</h4>
|
|
<pre><code>rmultinoise(N) : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>N</code>: the number of decorrelated random numbers in parallel, a constant numerical expression</li>
|
|
</ul>
|
|
<h4 id="test_8">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
rmultinoise_test = no.rmultinoise(3);
|
|
</code></pre>
|
|
<hr />
|
|
<h3 id="nornoises"><code>(no.)rnoises</code></h3>
|
|
<p>A convenient wrapper around rmultinoise.</p>
|
|
<p>WARNING: using the foreign function <code>arc4random</code>, so only available in C/C++ and LLVM backends.</p>
|
|
<h4 id="usage_9">Usage</h4>
|
|
<pre><code>rnoises(N,i) : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>N</code>: the number of decorrelated random numbers in parallel</li>
|
|
<li><code>i</code>: the selected random number (i in [0..N[)</li>
|
|
</ul>
|
|
<h4 id="test_9">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
rnoises_test = no.rnoises(4, 1);
|
|
</code></pre>
|
|
<hr />
|
|
<h3 id="nopink_noise"><code>(no.)pink_noise</code></h3>
|
|
<p>Pink noise (1/f noise) generator (third-order approximation covering the audio band well).
|
|
<code>pink_noise</code> is a standard Faust function.</p>
|
|
<h4 id="usage_10">Usage</h4>
|
|
<pre><code>pink_noise : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li>output: pink (1/f) noise signal.</li>
|
|
</ul>
|
|
<h4 id="test_10">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
pink_noise_test = no.pink_noise;
|
|
</code></pre>
|
|
<h4 id="alternatives">Alternatives</h4>
|
|
<p>Higher-order approximations covering any frequency band can be obtained using</p>
|
|
<pre><code>no.noise : fi.spectral_tilt(order,lowerBandLimit,Bandwidth,p)
|
|
</code></pre>
|
|
<p>where <code>p=-0.5</code> means filter rolloff <code>f^(-1/2)</code> which gives 1/f rolloff in the
|
|
power spectral density, and can be changed to other real values.</p>
|
|
<h4 id="example_1">Example</h4>
|
|
<p>pink_noise_compare.dsp - compare three pinking filters</p>
|
|
<pre><code>process = pink_noises with {
|
|
f0 = 35; // Lower bandlimit in Hz
|
|
bw3 = 0.7 * ma.SR/2.0 - f0; // Bandwidth in Hz, 3rd order case
|
|
bw9 = 0.8 * ma.SR/2.0 - f0; // Bandwidth in Hz, 9th order case
|
|
pink_tilt_3 = fi.spectral_tilt(3,f0,bw3,-0.5);
|
|
pink_tilt_9 = fi.spectral_tilt(9,f0,bw9,-0.5);
|
|
pink_noises = 1-1' <:
|
|
no.pink_filter, // original designed by invfreqz in Octave
|
|
pink_tilt_3, // newer method using the same filter order
|
|
pink_tilt_9; // newer method using a higher filter order
|
|
};
|
|
</code></pre>
|
|
<h4 id="output-of-example">Output of Example</h4>
|
|
<pre><code>faust2octave pink_noise_compare.dsp
|
|
Octave:1> semilogx(20*log10(abs(fft(faustout,8192))(1:4096,:)));
|
|
...
|
|
</code></pre>
|
|
<p><img alt="pink_noise_demo figure" src="https://ccrma.stanford.edu/wiki/Images/8/86/Tpinkd.jpg" width="600" /></p>
|
|
<h4 id="references_1">References</h4>
|
|
<ul>
|
|
<li><a href="https://ccrma.stanford.edu/~jos/sasp/Example_Synthesis_1_F_Noise.html">https://ccrma.stanford.edu/~jos/sasp/Example_Synthesis_1_F_Noise.html</a></li>
|
|
</ul>
|
|
<hr />
|
|
<h3 id="nopink_noise_vm"><code>(no.)pink_noise_vm</code></h3>
|
|
<p>Multi pink noise generator.</p>
|
|
<h4 id="usage_11">Usage</h4>
|
|
<pre><code>pink_noise_vm(N) : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>N</code>: number of latched white-noise processes to sum,
|
|
not to exceed sizeof(int) in C++ (typically 32).</li>
|
|
</ul>
|
|
<h4 id="test_11">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
pink_noise_vm_test = no.pink_noise_vm(4);
|
|
</code></pre>
|
|
<h4 id="references_2">References</h4>
|
|
<ul>
|
|
<li><a href="http://www.dsprelated.com/showarticle/908.php">http://www.dsprelated.com/showarticle/908.php</a></li>
|
|
<li><a href="http://www.firstpr.com.au/dsp/pink-noise/#Voss-McCartney">http://www.firstpr.com.au/dsp/pink-noise/#Voss-McCartney</a></li>
|
|
</ul>
|
|
<hr />
|
|
<h3 id="nolfnoise-nolfnoise0-and-nolfnoisen"><code>(no.)lfnoise</code>, <code>(no.)lfnoise0</code> and <code>(no.)lfnoiseN</code></h3>
|
|
<p>Low-frequency noise generators (Butterworth-filtered downsampled white noise).</p>
|
|
<h4 id="usage_12">Usage</h4>
|
|
<pre><code>lfnoise0(rate) : _ // new random number every int(ma.SR/rate) samples or so
|
|
lfnoiseN(N,rate) : _ // same as "lfnoise0(rate) : fi.lowpass(N,rate)" [see filters.lib]
|
|
lfnoise(rate) : _ // same as "lfnoise0(rate) : seq(i,5,fi.lowpass(N,rate))" (no overshoot)
|
|
</code></pre>
|
|
<h4 id="example_2">Example</h4>
|
|
<p>(view waveforms in faust2octave):</p>
|
|
<pre><code>rate = ma.SR/100.0; // new random value every 100 samples (ma.SR from maths.lib)
|
|
process = lfnoise0(rate), // sampled/held noise (piecewise constant)
|
|
lfnoiseN(3,rate), // lfnoise0 smoothed by 3rd order Butterworth LPF
|
|
lfnoise(rate); // lfnoise0 smoothed with no overshoot
|
|
</code></pre>
|
|
<h4 id="test_12">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
lfnoise0_test = no.lfnoise0(10.0);
|
|
</code></pre>
|
|
<hr />
|
|
<h3 id="nosparse_noise"><code>(no.)sparse_noise</code></h3>
|
|
<p>Sparse noise generator.</p>
|
|
<h4 id="usage_13">Usage</h4>
|
|
<pre><code>sparse_noise(f0) : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>f0</code>: average frequency of noise impulses per second</li>
|
|
</ul>
|
|
<p>Random impulses in the amplitude range -1 to 1 are generated
|
|
at an average rate of f0 impulses per second.</p>
|
|
<h4 id="test_13">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
sparse_noise_test = no.sparse_noise(5.0);
|
|
</code></pre>
|
|
<h4 id="references_3">References</h4>
|
|
<ul>
|
|
<li>See velvet_noise</li>
|
|
</ul>
|
|
<hr />
|
|
<h3 id="novelvet_noise_vm"><code>(no.)velvet_noise_vm</code></h3>
|
|
<p>Velvet noise generator.</p>
|
|
<h4 id="usage_14">Usage</h4>
|
|
<pre><code>velvet_noise(amp, f0) : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>amp</code>: amplitude of noise impulses (positive and negative)</li>
|
|
<li><code>f0</code>: average frequency of noise impulses per second</li>
|
|
</ul>
|
|
<h4 id="test_14">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
velvet_noise_test = no.velvet_noise(0.5, 5.0);
|
|
</code></pre>
|
|
<h4 id="references_4">References</h4>
|
|
<ul>
|
|
<li>Matti Karjalainen and Hanna Jarvelainen,
|
|
"Reverberation Modeling Using Velvet Noise",
|
|
in Proc. 30th Int. Conf. Intelligent Audio Environments (AES07),
|
|
March 2007.</li>
|
|
</ul>
|
|
<hr />
|
|
<h3 id="nognoise"><code>(no.)gnoise</code></h3>
|
|
<p>Approximate zero-mean, unit-variance Gaussian white noise generator.</p>
|
|
<h4 id="usage_15">Usage</h4>
|
|
<pre><code>gnoise(N) : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>N</code>: number of uniform random numbers added to approximate Gaussian white noise</li>
|
|
</ul>
|
|
<h4 id="test_15">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
gnoise_test = no.gnoise(8);
|
|
</code></pre>
|
|
<h4 id="references_5">References</h4>
|
|
<ul>
|
|
<li>See Central Limit Theorem</li>
|
|
</ul>
|
|
<hr />
|
|
<h3 id="nocolored_noise"><code>(no.)colored_noise</code></h3>
|
|
<p>Generates a colored noise signal with an arbitrary spectral
|
|
roll-off factor (alpha) over the entire audible frequency range
|
|
(20-20000 Hz). The output is normalized so that an equal RMS
|
|
level is maintained for different values of alpha.</p>
|
|
<h4 id="usage_16">Usage</h4>
|
|
<pre><code>colored_noise(N,alpha) : _
|
|
</code></pre>
|
|
<p>Where:</p>
|
|
<ul>
|
|
<li><code>N</code>: desired integer filter order (constant numerical expression)</li>
|
|
<li><code>alpha</code>: slope of roll-off, between -1 and 1. -1 corresponds to
|
|
brown/red noise, -1/2 pink noise, 0 white noise, 1/2 blue noise,
|
|
and 1 violet/azure noise.</li>
|
|
</ul>
|
|
<h4 id="test_16">Test</h4>
|
|
<pre><code>no = library("noises.lib");
|
|
colored_noise_test = no.colored_noise(4, 0.0);
|
|
</code></pre>
|
|
<h4 id="examples">Examples</h4>
|
|
<p>See <code>dm.colored_noise_demo</code>.</p></div>
|
|
</div>
|
|
</div>
|
|
|
|
<footer class="col-md-12">
|
|
<hr>
|
|
<p>Copyright © 2019-2026 <a href="https://www.grame.fr">Grame-CNCM</a></p>
|
|
</footer>
|
|
<script>
|
|
var base_url = "../..",
|
|
shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
|
|
</script>
|
|
<script src="../../js/base.js" defer></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML" defer></script>
|
|
<script src="../../search/main.js" defer></script>
|
|
|
|
<div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title" id="searchModalLabel">Search</h4>
|
|
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>From here you can search these documents. Enter your search terms below.</p>
|
|
<form>
|
|
<div class="form-group">
|
|
<input type="search" class="form-control" placeholder="Search..." id="mkdocs-search-query" title="Type search term here">
|
|
</div>
|
|
</form>
|
|
<div id="mkdocs-search-results" data-no-results-text="No results found"></div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
|
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th style="width: 20%;">Keys</th>
|
|
<th>Action</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td class="help shortcut"><kbd>?</kbd></td>
|
|
<td>Open this help</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="next shortcut"><kbd>n</kbd></td>
|
|
<td>Next page</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="prev shortcut"><kbd>p</kbd></td>
|
|
<td>Previous page</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="search shortcut"><kbd>s</kbd></td>
|
|
<td>Search</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="modal-footer">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|