Skip to content
drew.po28@gmail.com edited this page Jun 25, 2026 · 7 revisions

Audio — Звук

Путь в меню: Audio · Платы: все (SAA1099, MIDI и General Sound — только RP2350) · Требует: —

Обзор

Всё, что издаёт звук: бипер, PSG AY-3-8912 (со стерео-панорамой и TurboSound), SAA1099, ЦАП Covox и SounDrive, General Sound, MIDI-выход, а также аудио-драйвер (как смикшированный сигнал покидает плату: PWM / I2S / внешний AY / HDMI / PCM5122) и программный Volume Boost (усиление).

Состав пунктов зависит от платы:

  • RP2350: AY-3-8912 · AY Stereo · TurboSound · Covox · SounDrive · SAA1099 · MIDI · (General Sound — только при наличии PSRAM) · Audio Driver · Volume Boost
  • RP2040: AY-3-8912 · AY Stereo · TurboSound · Covox · SounDrive · Audio Driver · Volume Boost (нет SAA1099 / MIDI / General Sound — не хватает пинов/ресурсов)

Регулятор общей громкости (Volume) находится не в этом меню, а в самом верху главного меню настроек (и на горячих клавишах Vol +/-). Эта страница — про источники звука и драйвер вывода.

Структура меню

Audio
├── AY-3-8912 ON/OFF ▸   On / Off
├── AY-3-8912 Stereo ▸   ABC / ACB / Mono
├── TurboSound ▸         OFF / NedoPC / old-TC / BOTH
├── Covox ▸              NONE / #FB / #DD
├── SounDrive ▸          Auto (Profi only) / On / Off
├── SAA1099 ON/OFF ▸     On / Off                 (RP2350)
├── MIDI ▸               OFF / AY / ShamaZX / Software / GM.DLS Wavetable  (RP2350)
│   └── Synth Preset ▸   GM / Piano / Chiptune / Strings / Rock / Organ / Music Box / Synth  (только Software)
├── General Sound ▸      Mode On/Off + Clock      (RP2350, только при наличии PSRAM)
│   └── Clock ▸          12 / 13 / 14 / 20 / 24 MHz
├── Audio Driver ▸       Auto / PWM / i2s / AY-3-8910 / HDMI [ / PCM5122 ]
└── Volume Boost ▸       +0 / +4 / +8 / +12 / +16 / +32 / +64

Опции

Пункт Значения По умолчанию Описание
AY-3-8912 ON/OFF On / Off On PSG AY-3-8912 (128K / Pentagon / +2). Переключение применяется сразу (ESPectrum::AY_emu)
AY-3-8912 Stereo ABC / ACB / Mono ABC Стерео-панорама трёх каналов AY. ABC и ACB — две стандартные схемы разведения каналов; Mono — все три по центру
TurboSound OFF / NedoPC / old-TC / BOTH BOTH (RP2350) · OFF (RP2040) Второй чип AY (6 каналов суммарно) — TurboSound. NedoPC и old-TC — две схемы адресации; BOTH отвечает на обе
Covox NONE / #FB / #DD NONE 8-битный ЦАП Covox на порту — для игр/демо с PCM-сэмплами. Выберите порт, в который пишет ПО (#FB или #DD)
SounDrive Auto (Profi only) / On / Off Auto 4-канальный 8-битный ЦАП (семейство Covox) на портах #0F/#1F/#3F (левый), #4F/#5F (правый), #FB (оба). Auto включает его только на Profi (Profi-CP/M-софт стримит туда PCM)
SAA1099 ON/OFF (RP2350) On / Off Off Чип Philips SAA1099 (стерео: 6 тон-каналов + шум + конверты). Включение отключает Timex-графику (с уведомлением) — они конфликтуют
MIDI (RP2350) OFF / AY / ShamaZX / Software / GM.DLS Wavetable OFF См. MIDI. AY/ShamaZX = MIDI-выход на пин UART TX; Software = встроенный процедурный синтез (список пресетов); GM.DLS Wavetable = GM-wavetable из gm_bank.bin на SD
MIDI › Synth Preset GM / Piano / Chiptune / Strings / Rock / Organ / Music Box / Synth GM Пресет инструмента только для синтезатора Software (не для GM.DLS)
General Sound (RP2350) Mode On/Off + Clock Off Сэмплерная карта General Sound — отдельный Z80 с 2 МБ сэмпл-памяти. Пункт виден только при наличии PSRAM. Переключение Mode или смена Clock — с перезагрузкой (OSD_DLG_APPLYREBOOT)
General Sound › Clock 12 / 13 / 14 / 20 / 24 MHz 13 MHz Тактовая частота Z80 GS. Смена — с перезагрузкой
Audio Driver Auto / PWM / i2s / AY-3-8910 / HDMI / PCM5122 Auto Как смикшированный звук покидает плату (см. ниже). Смена — с перезагрузкой
Volume Boost +0 … +64 +0 Программное усиление поверх общей громкости (Config::audio_boost). Для тихого материала; большие значения могут давать клиппинг

⚠️ MIDI и реальный вход с ленты (платы Murmulator). На платах, где пин MIDI TX и пин загрузки WAV (реальный вход звука) — это один GPIO, включение MIDI = AY/ShamaZX при включённом Real sound-in вызывает предупреждение о конфликте: пин может использовать только что-то одно.

Источники звука подробнее

Бипер

1-битный бипер ZX Spectrum (порт #FE, бит 4) эмулируется всегда и подмешивается в вывод — отдельного пункта меню для него нет.

AY-3-8912 (PSG)

Программируемый звукогенератор AY-3-8912 для машин 128K / +2 / Pentagon: три канала прямоугольной волны, генератор шума и поканальные конверты. Эмуляция верифицирована; стерео-панорама — ABC / ACB / Mono (пункт AY Stereo). С TurboSound добавляется второй AY — 6 каналов суммарно.

SAA1099 (RP2350)

Стерео-чип Philips SAA1099 — 6 тон-каналов, генератор шума и два генератора конвертов. Реализация основана на stripwax/SAASound и сверена с реальным SAA1099P. Включение отключает Timex-графику (общие ресурсы). Детали модели микширования — в CLAUDE.md.

Covox / SounDrive (PCM-ЦАП)

Два способа воспроизводить «сырые» PCM-сэмплы:

  • Covox — одиночный 8-битный ЦАП на одном порту (#FB или #DD), классический моно-Covox.
  • SounDrive — 4-канальный 8-битный ЦАП (левый на #0F/#1F/#3F, правый на #4F/#5F, оба на #FB). Auto включает его только на Profi, т.к. Profi-CP/M-софт стримит PCM в эти порты.

General Sound (RP2350, только с PSRAM)

Эмуляция карты General Sound: отдельный второй Z80 (работает на core1) с 2 МБ сэмпл-памяти, используется демо и трекерами для воспроизведения сэмплов. Пункт доступен только при наличии PSRAM — предпочтительно butter PSRAM (XIP, быстрая); обычная SPI PSRAM — медленный запасной путь (~в 30× медленнее, возможны глитчи на MOD). Переключение Mode и смена Clock (12/13/14/20/24 MHz) требуют перезагрузки. Включение GS при активном esxDOS DivIDE блокируется (порты шины перекрываются).

MIDI (RP2350)

Режимы MIDI: AY (битбэнг AY→MIDI) и ShamaZX выводят MIDI на пин UART TX платы; Software — встроенный процедурный синтезатор (со списком Synth Preset); GM.DLS Wavetable играет настоящий GM-банк из gm_bank.bin на SD. На RP2040 MIDI нет. Подробности, сборка GM.DLS-банка и подключение: MIDI.

Audio Driver — как звук покидает плату

Смикшированный сигнал можно выводить разными способами. Смена драйвера перезагружает плату.

Драйвер Что это
Auto Выбрать автоматически: проверить PCM5122 по I2C, иначе определить пины I2S, иначе откатиться на PWM
PWM Гнать аудио-GPIO напрямую как PWM (без внешнего ЦАП). Самый простой вывод
i2s Подать на внешний I2S-ЦАП на пинах I2S платы
AY-3-8910 Вывод на реальный внешний AY-3-8910 / 74HC595 (путь PWM_175 / serial-595)
HDMI Встроить звук в поток HDMI (только сборки RP2350 + HDMI-видео; скрыт на VGA/RP2040)
PCM5122 Встроенный I2S-ЦАП PCM5122 (только на сборках ZERO2 / Waveshare PiZero — см. PCM5122 DAC)

Сами аудио-пины (I2S DATA/BCK/LCK, PWM левый/правый, бипер, защёлка/такт/данные 74HC595) на большинстве плат тройной-алиас на одни и те же GPIO — см. таблицы пинов плат. При старте аудио-пин уступается ZiFi, если его захватил сетевой UART.

Схема / подключение

Аудио-пины вывода (I2S / PWM / 74HC595) и пины PCM5122 / HDMI для каждой платы — в Платы и распиновка. Детали внешнего I2S-ЦАП: PCM5122 DAC. Подключение MIDI: MIDI.

Как проверить

Образ Фича Что проверяет Ожидаемый результат
любой AY-трек 128K AY-3-8912 / Stereo PSG + панорама ABC/ACB Три канала, слышно стерео-разведение
TurboSound-трек (TS/PT3) TurboSound Второй AY (6 кан.) Шестиканальное воспроизведение
Covox/SounDrive-демо Covox / SounDrive PCM-стриминг Воспроизводится сэмплированный звук

Полный список — в каталоге образов.

Хранение настроек

Все аудио-настройки сохраняются в NVS через Config::save() и восстанавливаются при загрузке:

Настройка Ключ NVS Значения По умолчанию
AY-3-8912 на 48K AY48 Yes / No (в NVS: true/false) Yes
Стерео AY ayConfig 0 ABC
1 ACB
2 Mono
ABC (0)
TurboSound turbosound 0 OFF
1 NedoPC
2 old-TC
3 BOTH
BOTH (3) на RP2350; OFF (0) на RP2040
Порт Covox covox 0 NONE
1 #FB
2 #DD
NONE (0)
SounDrive soundrive 0 Off
1 On
2 Auto (только Profi)
Auto (2)
SAA1099 SAA1099 Yes / No (в NVS: true/false) No
MIDI midi 0 OFF
1 AY
2 ShamaZX
3 Software
4 GM.DLS Wavetable
OFF (0)
MIDI-пресет синтезатора midipreset 0 GM
1 Piano
2 Chiptune
3 Strings
4 Rock
5 Organ
6 Music Box
7 Synth
GM (0)
General Sound gs_enabled 0 OFF
1 ON
OFF (0)
Тактовая частота GS gs_clock 0 12 МГц
1 13 МГц
2 14 МГц
3 20 МГц
4 24 МГц
13 МГц (1)
Аудио-драйвер audio_driver auto
pwm
i2s
ay
hdmi
pcm5122
auto
Усиление громкости AudBoost +0
+4
+8
+12
+16
+32
+64
+0
Общая громкость AudVolume −16 … 0 (0 = максимум) 0

(В памяти поля усиления/громкости называются audio_boost / aud_volume; ключи NVS — AudBoost / AudVolume.)

Ссылки

Clone this wiki locally