mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-01 18:42:40 +00:00
Bifurcator documentation
This commit is contained in:
parent
5c64153d1a
commit
639079c87b
2 changed files with 49 additions and 0 deletions
38
doc/4-instrument/bifurcator.md
Normal file
38
doc/4-instrument/bifurcator.md
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
# Bifurcator instrument editor
|
||||||
|
|
||||||
|
Bifurcator instrument editor consists of these macros:
|
||||||
|
|
||||||
|
- **Volume**: volume sequence.
|
||||||
|
- **Arpeggio**: pitch sequence.
|
||||||
|
- **Parametet**: set parameter of logistic map function.
|
||||||
|
- **Panning (left)**: output level for left channel.
|
||||||
|
- **Panning (right)**: output level for right channel.
|
||||||
|
- **Pitch**: fine pitch.
|
||||||
|
- **Load Value**: changes the current output value.
|
||||||
|
|
||||||
|
## audio generation description
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## 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,3 +1,14 @@
|
||||||
# Bifurcator
|
# Bifurcator
|
||||||
|
|
||||||
|
this is a fantasy sound chip which uses a unique sound generation method: logistic map iterations.
|
||||||
|
|
||||||
|
## effects
|
||||||
|
|
||||||
|
- `10xx`: **set low byte of channel sample state.**
|
||||||
|
- `11xx`: **set high byte of channel sample state.**
|
||||||
|
- `12xx`: **set parameter low byte.**
|
||||||
|
- `13xx`: **set parameter high byte.**
|
||||||
|
|
||||||
|
## info
|
||||||
|
|
||||||
|
this chip uses the [Bifurcator](../4-instrument/bifurcator.md) instrument editor.
|
||||||
|
|
Loading…
Reference in a new issue