diff --git a/doc/4-instrument/powernoise.md b/doc/4-instrument/powernoise.md new file mode 100644 index 000000000..d7b8fbb23 --- /dev/null +++ b/doc/4-instrument/powernoise.md @@ -0,0 +1,27 @@ +# PowerNoise instrument editor + +the PowerNoise instrument editor consists of two tabs. + +## LFSR-based synthesis + +this will be finished later... it's so late and I need to sleep now + +## Macros + +- **Volume**: volume sequence. +- **Arpeggio**: pitch sequence. +- **Duty/Noise**: duty cycle and noise mode. + - pulse duty cycles: + - `0`: 12.5% + - `1`: 25% + - `2`: 50% + - `3`: 75% + - noise modes: + - `0`: long noise + - `1`: short noise +- **Pitch**: fine pitch. +- **Phase Reset**: trigger restart of waveform. + +## PowerNoise tab + +this tab allows you to change the base octave - important when you have set a longer LFSR pattern. diff --git a/doc/7-systems/powernoise.md b/doc/7-systems/powernoise.md new file mode 100644 index 000000000..37b2b1e05 --- /dev/null +++ b/doc/7-systems/powernoise.md @@ -0,0 +1,23 @@ +# PowerNoise + +a fantasy sound chip created by StinkerB06 and jvsTSX for the Hexheld fantasy video game console. + +its design employs linear-feedback shift registers (LFSR) for sound generation. this technology is used in many random number generators to produce noise, but it is also capable of producing other tones. + +it has three noise channels and one "slope" channel capable of generating a variety of saw waves. + +it outputs stereo sound with 4-bit volume control per channel and 3-bit master volume control. + +refer to its instrument type's documentation for details on sound synthesis. + +## effect commands + +- `20xx`: **load LFSR value (low byte).** + - on the slope channel, this sets its accumulator (from `00` to `7F`). +- `21xx`: **load LFSR value (high byte).** +- `22xx`: **write to I/O port A.** +- `23xx`: **write to I/O port B.** + +## info + +this chip uses the [PowerNoise](../4-instrument/powernoise.md) instrument editor.