diff --git a/papers/doc/4-instrument/README.md b/papers/doc/4-instrument/README.md index 590ffe39..b9d4b8f4 100644 --- a/papers/doc/4-instrument/README.md +++ b/papers/doc/4-instrument/README.md @@ -22,6 +22,7 @@ depending on the instrument type, there are currently 10 different types of an i - [TIA](tia.md) - for use with Atari 2600 system. - [AY-3-8910](ay8910.md) - for use with AY-3-8910 PSG sound source and SSG portion in YM2610. - [Amiga/sample](amiga.md) for controlling Amiga and other sample based synthsizers like YM2612's Channel 6 PCM mode, NES channel 5, Sega PCM and PC Engine's sample playback mode. +- [Atari Lynx](lynx.md) - for use with Atari Lynx handheld console. # macros diff --git a/papers/doc/4-instrument/lynx.md b/papers/doc/4-instrument/lynx.md new file mode 100644 index 00000000..5badd47f --- /dev/null +++ b/papers/doc/4-instrument/lynx.md @@ -0,0 +1,25 @@ +# Atari Lynx instrument editor + +Atari Lynx instrument editor consists of only three macros: + +- [Volume] - volume sequence +- [Arpeggio] - pitch sequencer +- [Duty/Int] - bit pattern for LFSR taps and integration. + +## Audio generation description + +Atari Lynx to generate sound uses 12-bit linear feedback shift register with configurable tap. Nine separate bits can be enable to be the source of feedback. +Namely bits 0, 1, 2, 3, 4, 5, 7, 10 and 11. To generate ANY sound at least one bit MUST be enable. + +### 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. + +### Triangle wave + +Alternatively when "int" bit is set sound wave is generated by adding or subtracting volume from output effectively producing triangle wave. + +#### How triangle wave works? + +Hint: To obtain triangle set bits "int" and "11" in "Duty/Int" sequence and set volume to about 22. +By enabling 11th tap bit the value shifted in is negated after 11 bit is shifted in hence the volume is added for 11 cycles and then subtracted for 11 cycles.