-
Notifications
You must be signed in to change notification settings - Fork 3
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 для машин 128K / +2 / Pentagon: три канала прямоугольной волны, генератор шума и поканальные конверты. Эмуляция верифицирована; стерео-панорама — ABC / ACB / Mono (пункт AY Stereo). С TurboSound добавляется второй AY — 6 каналов суммарно.
Стерео-чип Philips SAA1099 — 6 тон-каналов, генератор шума и два генератора конвертов. Реализация основана на stripwax/SAASound и сверена с реальным SAA1099P. Включение отключает Timex-графику (общие ресурсы). Детали модели микширования — в CLAUDE.md.
Два способа воспроизводить «сырые» PCM-сэмплы:
-
Covox — одиночный 8-битный ЦАП на одном порту (
#FBили#DD), классический моно-Covox. -
SounDrive — 4-канальный 8-битный ЦАП (левый на
#0F/#1F/#3F, правый на#4F/#5F, оба на#FB). Auto включает его только на Profi, т.к. Profi-CP/M-софт стримит PCM в эти порты.
Эмуляция карты 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: AY (битбэнг AY→MIDI) и ShamaZX выводят MIDI на пин UART TX платы;
Software — встроенный процедурный синтезатор (со списком Synth Preset); GM.DLS
Wavetable играет настоящий GM-банк из gm_bank.bin на SD. На RP2040 MIDI нет. Подробности,
сборка GM.DLS-банка и подключение: MIDI.
Смикшированный сигнал можно выводить разными способами. Смена драйвера перезагружает плату.
| Драйвер | Что это |
|---|---|
| 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 ABC1 ACB2 Mono |
ABC (0) |
| TurboSound | turbosound |
0 OFF1 NedoPC2 old-TC3 BOTH |
BOTH (3) на RP2350; OFF (0) на RP2040 |
| Порт Covox | covox |
0 NONE1 #FB2 #DD |
NONE (0) |
| SounDrive | soundrive |
0 Off1 On2 Auto (только Profi) |
Auto (2) |
| SAA1099 | SAA1099 |
Yes / No (в NVS: true/false) |
No |
| MIDI | midi |
0 OFF1 AY2 ShamaZX3 Software4 GM.DLS Wavetable |
OFF (0) |
| MIDI-пресет синтезатора | midipreset |
0 GM1 Piano2 Chiptune3 Strings4 Rock5 Organ6 Music Box7 Synth |
GM (0) |
| General Sound | gs_enabled |
0 OFF1 ON |
OFF (0) |
| Тактовая частота GS | gs_clock |
0 12 МГц1 13 МГц2 14 МГц3 20 МГц4 24 МГц |
13 МГц (1) |
| Аудио-драйвер | audio_driver |
autopwmi2sayhdmipcm5122
|
auto |
| Усиление громкости | AudBoost |
+0 +4 +8 +12 +16 +32 +64 |
+0 |
| Общая громкость | AudVolume |
−16 … 0 (0 = максимум) | 0 |
(В памяти поля усиления/громкости называются audio_boost / aud_volume; ключи NVS —
AudBoost / AudVolume.)
- SAASound (основа реализации SAA1099): https://github.com/stripwax/SAASound
- Даташит AY-3-8910: https://archive.org/details/General_Instruments_AY-3-8910
- Оригинальный ESPectrum: https://github.com/EremusOne/ESPectrum
- MIDI · PCM5122 DAC · Платы и распиновка
Меню (RU)
Сквозные темы
Для разработчиков