class ZXLib::AYSound
ZXLib::AYSound.¶ ↑
Macros to help program the AY-3-8910/8912 sound chipsets.
- Sources
Registers¶ ↑
The AY-3-8910/8912 contains 16 internal registers as follows:
Register Function Range 0 Channel A fine pitch 8-bit (0-255) 1 Channel A coarse pitch 4-bit (0-15) 2 Channel B fine pitch 8-bit (0-255) 3 Channel B coarse pitch 4-bit (0-15) 4 Channel C fine pitch 8-bit (0-255) 5 Channel C coarse pitch 4-bit (0-15) 6 Noise pitch 5-bit (0-31) 7 Mixer 8-bit (see below) 8 Channel A volume 4-bit (0-15, see below) 9 Channel B volume 4-bit (0-15, see below) 10 Channel C volume 4-bit (0-15, see below) 11 Envelope fine duration 8-bit (0-255) 12 Envelope coarse duration 8-bit (0-255) 13 Envelope shape 4-bit (0-15) 14 I/O port A 8-bit (0-255) 15 I/O port B 8-bit (0-255)
- Notes
-
The AY-3-8912 does not contain register 15.
The volume registers (8, 9 and 10) contain a 4-bit setting but if bit 5 is set then that channel uses the envelope defined by register 13 and ignores its volume setting.
The mixer (register 7) is made up of the following bits (low = enabled):
Bit: 7 6 5 4 3 2 1 0
_ _
I/O I/O Noise Noise Noise Tone Tone Tone
B A C B A C B A
The AY-3-8912 ignores bit 7 of this register.
Envelope shapes¶ ↑
The AY-3-8910/8912 contains the following preset envelopes or waveforms (set using control register 13). Note that these affect volume only and not the pitch:
0 \__________ single decay then off
4 /|_________ single attack then off
8 \|\|\|\|\|\ repeated decay
9 \__________ single decay then off
10 \/\/\/\/\/\ repeated decay-attack
_________
11 \| single decay then hold
12 /|/|/|/|/|/ repeated attack
__________
13 / single attack then hold
14 /\/\/\/\/\/ repeated attack-decay
15 /|_________ single attack then off
Constants
- CLOCK_HZ
Default AY-3-891x frequency
- CLOCK_HZ_128
ZX Spectrum 128k AY-3-891x frequency
- CLOCK_HZ_48
ZX Spectrum 48k AY-3-891x frequency
- CLOCK_HZ_TIMEX
Timex 2068 AY-3-891x frequency www.worldofspectrum.org/faq/reference/tmxreference.htm
- NOTE_SYMBOLS
An array of musical notes as strings.