mirror of
https://github.com/tildearrow/furnace.git
synced 2024-12-18 06:20:17 +00:00
81ab2acb2c
Trying for more consistency and clarity, especially for quick reference.
56 lines
1.8 KiB
Markdown
56 lines
1.8 KiB
Markdown
# tildearrow Sound Unit
|
|
|
|
a fantasy sound chip, used in the specs2 fantasy computer designed by tildearrow.
|
|
|
|
it has the following capabilities:
|
|
- 8 channels of either waveform or sample
|
|
- stereo sound
|
|
- 8 waveforms (pulse, saw, sine, triangle, noise, periodic noise, XOR sine and XOR triangle)
|
|
- 128 widths for the pulse wave
|
|
- per-channel resonant filter
|
|
- ring modulation
|
|
- volume, frequency and cutoff sweep units (per-channel)
|
|
- phase reset timer (per-channel)
|
|
|
|
# effects
|
|
|
|
- `10xx`: **set waveform.**
|
|
- `0`: pulse wave
|
|
- `1`: sawtooth
|
|
- `2`: sine wave
|
|
- `3`: triangle wave
|
|
- `4`: noise
|
|
- `5`: periodic noise
|
|
- `6`: XOR sine
|
|
- `7`: XOR triangle
|
|
- `12xx`: **set pulse width.** range is `0` to `7F`.
|
|
- `13xx`: **set resonance of filter.** range is `0` to `FF`.
|
|
- despite what the internal effects list says (`0` to `F`), you can use a resonance value from `0` to `FF` (255).
|
|
- `14xx`: **set filter mode and ringmod.**
|
|
- bit 0: ring mod
|
|
- bit 1: low pass
|
|
- bit 2: high pass
|
|
- bit 3: band pass
|
|
- `15xx`: **set frequency sweep period low byte.**
|
|
- `16xx`: **set frequency sweep period high byte.**
|
|
- `17xx`: **set volume sweep period low byte.**
|
|
- `18xx`: **set volume sweep period high byte.**
|
|
- `19xx`: **set cutoff sweep period low byte.**
|
|
- `1Axx`: **set cutoff sweep period high byte.**
|
|
- `1Bxx`: **set frequency sweep boundary.**
|
|
- `1Cxx`: **set volume sweep boundary.**
|
|
- `1Dxx`: **set cutoff sweep boundary.**
|
|
- `1Exx`: **set phase reset period low byte.**
|
|
- `1Fxx`: **set phase reset period high byte.**
|
|
- `20xx`: **toggle frequency sweep.**
|
|
- bit 0-6: speed
|
|
- bit 7: up direction
|
|
- `21xx`: **toggle volume sweep.**
|
|
- bit 0-4: speed
|
|
- bit 5: up direction
|
|
- bit 6: loop
|
|
- bit 7: alternate
|
|
- `22xx`: **toggle cutoff sweep.**
|
|
- bit 0-6: speed
|
|
- bit 7: up direction
|
|
- `4xxx`: **set cutoff.** range is `0` to `FFF`.
|