more updates

This commit is contained in:
tildearrow 2024-02-02 22:36:15 -05:00
parent 1177759867
commit 09228cfd74
4 changed files with 21 additions and 4 deletions

View file

@ -74,6 +74,7 @@ the following instrument types are available:
- [TED](ted.md) - for use with Commodore Plus/4 and Commodore 16's TED chip.
- [C140](c140.md) - for use with C140 sample chip.
- [C219](c219.md) - for use with C219 sample chip.
- [PowerNoise](powernoise.md) - for use with PowerNoise chip.
## macros
@ -91,9 +92,6 @@ each macro has the following parameters:
- **Step Length (ticks)**: determines the number of ticks between macro steps. default is 1.
- **Delay**: delays the macro until this many ticks have elapsed. default is 0.
- the button is highlighted if either of these parameters is set to non-default values.
- release mode: determines how macro release (`===` or `REL` in the pattern) is handled:
- **Active**: jumps to release position on release.
- **Passive**: does not jump to release position. this will result in delay if release position has not been reached yet.
## macro types
@ -167,6 +165,10 @@ the sequence can be edited in the text input field at the very bottom. the follo
in bitmask-style macros, the values are added up in binary and converted to decimal.
the release mode parameter determines how macro release (`===` or `REL` in the pattern) is handled:
- **Active**: jumps to release position on release.
- **Passive**: does not jump to release position. this will result in delay if release position has not been reached yet.
### ADSR
![ADSR macro editor](macro-ADSR.png)

View file

@ -24,6 +24,20 @@ note that using samples on Lynx is CPU expensive!
Atari Lynx generates sound using a 12-bit linear feedback shift register with configurable tap. nine separate bits can be enabled to be the source of feedback: 0, 1, 2, 3, 4, 5, 7, 10 and 11. to generate _any_ sound at least one bit _must_ be enabled.
### LFSR-based synthesis
a linear-feedback shift register is one method used for random number generation.
it works by shifting a sequence of binary numbers (bits), taking the last bit into the output. then some of the bits are combined with others, doing a XOR (exclusive or) operation and then being pushed back.
think of it as a conveyor carrying glass bottles. each bottle may be empty or carrying water.
the bottle at the end is taken. if there's water, then the output is 1. if it's empty, the output is 0.
depending on the LFSR configuration, many bottles at specific positions ("taps") are looked at. these are combined from left to right, two by two:
- if two bottles are identical, an empty bottle is pushed.
- if one bottle has water but the other is empty, a water bottle is pushed.
the process is repeated indefinitely.
unlike PowerNoise, Lynx's taps are in fixed positions, but it has many of them.
### square wave
the LFSR is shifted at the rate define by sound pitch and generates square wave by setting channel output value to +volume or -volume, depending on the bit shifted in.

View file

@ -15,7 +15,7 @@ depending on the LFSR configuration:
- a bottle is pushed into the conveyor. it is either empty or filled with water depending on the bottle at a specific position in the conveyor (this is called a "tap"), or
- two bottles at specific positions ("taps") are looked at and combined as follows:
- if the bottles are identical, an empty bottle is pushed.
- if one bottle has water but the other is empty, a watee bottle is pushed.
- if one bottle has water but the other is empty, a water bottle is pushed.
the process is repeated indefinitely.
PowerNoise uses either one or two taps for the LFSR, configurable via the Control macro.

View file

@ -90,6 +90,7 @@ this is the full list of chips that Furnace supports.
- [PET](pet.md)
- [Pokémon Mini](pokemini.md)
- [POKEY](pokey.md)
- [PowerNoise](powernoise.md)
- [PV-1000](pv1000.md)
- [QSound](qsound.md)
- [RF5C68/RF5C164](ricoh.md)