Bifurcator docs rework, draft 1.
This isn't a final form, but an interim draft to test both LaTeX and HTML methods of displaying the equation and such.
This commit is contained in:
parent
a03fd4d85a
commit
4c9704c71d
|
@ -1,6 +1,6 @@
|
|||
# Bifurcator instrument editor
|
||||
|
||||
Bifurcator instrument editor consists of these macros:
|
||||
the Bifurcator instrument editor consists of these macros:
|
||||
|
||||
- **Volume**: volume sequence.
|
||||
- **Arpeggio**: pitch sequence.
|
||||
|
@ -10,30 +10,5 @@ Bifurcator instrument editor consists of these macros:
|
|||
- **Pitch**: fine pitch.
|
||||
- **Load Value**: changes the current output value.
|
||||
|
||||
## audio generation description
|
||||
not all combinations of Parameter and Load Value generate tones. for a description of how these affect the sound, see the [Bifurcator](../7-systems/bifurcator.md) system page.
|
||||
|
||||
Bifurcator uses logistic map iterations for sound generation.
|
||||
basically it runs the following function over and over:
|
||||
|
||||
```
|
||||
r = (1 + (p / 65536)) * 2
|
||||
x = (r * x) * (1 - x)
|
||||
```
|
||||
|
||||
where `x` is the current output value and `p` is the "parameter".
|
||||
|
||||
by varying the parameter, the value of x may change drastically, producing a variety of sounds.
|
||||
the higher the parameter, the more "chaos" is present, effectively yielding noise.
|
||||
|
||||
the default parameter is `47360`, which results in a square wave.
|
||||
|
||||
if the parameter is set to 0, there's no sound at all.
|
||||
as the parameter approaches 32768, a decaying square wave is produced.
|
||||
the square wave stops decaying past 32768 and becomes louder until the parameter hits ~47496 (`r = 1 + sqrt(6)`).
|
||||
a second square wave one octave lower then starts appearing, until the parameter reaches ~51443 (`r ≈ 3.56995`). this is where chaos begins.
|
||||
anything higher results in a total mess.
|
||||
however, at ~59914 (`r = 1 + sqrt(8)`) you can hear a 33% pulse wave.
|
||||
|
||||
## the importance of loading the value
|
||||
|
||||
you must load a value that isn't 0 in order to get sound. otherwise the function will always output 0.
|
||||
|
|
|
@ -1,6 +1,38 @@
|
|||
# Bifurcator
|
||||
|
||||
this is a fantasy sound chip which uses a unique sound generation method: logistic map iterations.
|
||||
this is a fantasy sound chip which uses a unique sound generation method: [logistic map](https://en.wikipedia.org/wiki/Logistic_map) iterations.
|
||||
|
||||
## usage
|
||||
|
||||
the core of the Bifurcator is the (iterative) logistic map function:
|
||||
|
||||
<!-- LaTeX -->
|
||||
$x_{n+1}=\lambda x_n (1-x_n)$
|
||||
|
||||
<!-- MD/HTML -->
|
||||
_x_<sub>_n_+1</sub> = _λx_<sub>_n_</sub>(1 - _x_<sub>_n_</sub>)
|
||||
|
||||
which when iterated across $2\leq\lambda\leq4$ produces this graph:
|
||||
|
||||
_{{ IMAGE HERE – will look sort of like [this](https://en.wikipedia.org/wiki/Logistic_map#/media/File:Logistic_Bifurcation_map_High_Resolution.png) but matching house style }}_
|
||||
|
||||
in Bifurcator the current output (and initial "load value") ranges from 0 to 65535, which maps directly to _x_ in the range 0.0 to 1.0. the parameter ranges from 0 to 65535, which maps directly to _λ_ in the range 2.0 to 4.0.
|
||||
|
||||
### load value
|
||||
|
||||
the first value of $x$ is set with the **load value**. it must be set to a non-zero value, otherwise the next iteration would also be zero... and the next one too... and so on, generating silence. default is 1.
|
||||
|
||||
different load values will cause different "attack" sounds before the iterations stabilize (if they do).
|
||||
|
||||
### parameter
|
||||
|
||||
by varying the parameter, the values of $x$ may change drastically, producing a variety of sounds. the higher the parameter, the more "chaos" is present, effectively yielding noise.
|
||||
|
||||
for most parameter values below 32768 the output converges to a single value (effectively no sound).
|
||||
|
||||
above 32768 the output starts to oscillate. from 32768 to 47496, it bifurcates to oscillate between between 2 values, generating a square wave. from 47497 to 51433, it bifurcates again and becomes a period of 4 values. beyond that, the system rapidly becomes chaotic (noise). there's an "island of stability" starting at around parameter value 59914 where the output oscillates between 3 values, then bifurcates from there.
|
||||
|
||||
the default parameter value is 47360.
|
||||
|
||||
## effects
|
||||
|
||||
|
|
Loading…
Reference in a new issue