В · В11

Один канал, багато нот: музика на бипері

9 хв читання · Музей SNC · Опубліковано 2026-07-31

У 48K ZX Spectrum не було звукового чипа — лише крихітний динамік, яким керує один-єдиний біт. І все ж із цієї «пищалки» програмісти витискали багатоголосі мелодії. Розбираємо, як звучав бипер і що змінив чип AY у моделях 128K.

Головна теза

«Багатоголосся» на 48K Spectrum — не апаратна властивість, а програмний трюк: процесор так швидко перемикає один біт динаміка, що вухо чує кілька нот одразу. Справжні окремі канали з'явилися лише в 128K із чипом AY-3-8912.

Не плутати

48K Spectrum не має окремого звукового чипа: звук дає 1-бітний бипер, яким керує ULA через порт вводу-виводу. Чип AY-3-8912 із трьома каналами з'явився лише в моделях 128K/+2/+3. Тому «багатоголосся» на 48K — це програмний трюк (надшвидке перемикання одного біта), а не апаратні канали.

Динамік, яким керує один біт

У базового ZX Spectrum не було нічого схожого на звукову карту. Замість спеціального чипа машина мала крихітний п’єзодинамік, стан якого визначав рівно один біт: увімкнено або вимкнено. Той самий чип ULA, що малює зображення й читає касету, відповідає й за цей вихід — програма міняє значення біта через порт вводу-виводу, і мембрана динаміка стрибає з одного положення в інше. Докладніше про ULA та її роль ми писали в матеріалі «Що всередині: Z80, ULA і магія 48 кілобайт».

Головна теза цього тексту саме звідси й випливає. Коли ми чуємо на 48K Spectrum багатоголосу мелодію, апаратно там усе одно працює один-єдиний біт. Ніяких «каналів» у залізі немає — є процесор, який перемикає цей біт настільки швидко й хитро, що вухо добудовує з окремих клацань цілий музичний малюнок. Це не апаратна музика, а музика, обчислена процесором. І в цьому — уся її незвичайна історія.

Як із «пищалки» виходить нота

Будь-який тон — це коливання з певною частотою. Щоб отримати ноту заданої висоти, Spectrum мусить перемикати біт динаміка з відповідною регулярністю: чим частіші перемикання, тим вищий тон. У Sinclair BASIC для цього є команда BEEP, якій задають висоту й тривалість. За описом можливостей машини, бипер здатний охопити близько десяти октав — діапазон, цілком достатній для мелодії.

Плата за простоту схеми — час процесора. Поки BEEP звучить, Z80 зайнятий виключно формуванням цього тону: він відлічує потрібні паузи між перемиканнями біта й не може водночас робити щось інше. Тому «музика» засобами BASIC — це майже завжди пауза в грі: спершу прозвучала мелодія, потім продовжується дія. Саме це обмеження й підштовхнуло програмістів шукати способи витиснути з одного біта значно більше, ніж передбачав вбудований BEEP.

Звідки береться «багатоголосся»

Один біт фізично не вміє видавати дві ноти одночасно — у кожну мить він або увімкнений, або ні. Трюк у тому, щоб чергувати. Якщо процесор дуже швидко перемикається між ритмом однієї ноти й ритмом іншої, динамік не встигає «відпрацювати» кожну зміну до кінця, і вухо сприймає суміш як два тони, що звучать разом. У літературі про 1-бітний звук цей та споріднені підходи описують як програмну, «віртуальну» поліфонію — багатоголосся, якого немає в залізі, але яке добудовує слух.

Технік для цього кілька. Одна спирається на інерцію динаміка: мембрана має масу, тож коли сигнал перемикають дуже часто, вона не встигає повністю розхитатися, і накладання коротких імпульсів дає складніший тембр і відчуття кількох голосів (у джерелах це «pulse interleaving» — чергування імпульсів). Інші движки міняють ширину імпульсів (широтно-імпульсна модуляція), щоб керувати гучністю й тембром, або використовують заздалегідь пораховані таблиці форм хвиль. Спільне в них одне: увесь «синтезатор» живе в коді, а не в мікросхемі, і кожна нота коштує процесорного часу.

Спадковість схеми. Оскільки бипером керує ULA, музичні рутини 48K напряму залежать від точних таймінгів процесора Z80. На клонах, де ULA відтворено дискретною логікою, дрібні відмінності таймінгів теоретично могли впливати на висоту чи тембр складних 1-бітних движків. Наскільки це чутно на конкретних українських машинах — окреме питання для перевірки на «живому» залізі; станом на зараз ми не маємо задокументованих музейних вимірів.

Ремесло 1-бітних движків

Довкола бипера склалася окрема інженерна культура. Програмісти писали спеціалізовані звукові рутини (їх часто називають «движками» або «engine»), кожна зі своїм способом отримати з одного біта якнайбагатший звук. Такі рутини й досі впорядковують і документують: наприклад, відкриті збірки на кшталт колекції 1-бітних рутин для Spectrum показують, що навіть один движок (як BEEPERTOY) може поєднувати кілька методів синтезу — частотну модуляцію імпульсів, чергування імпульсів і табличний синтез.

Про кількість одночасних «голосів» варто говорити обережно. Академічні й спільнотні джерела наводять доволі високі цифри — окремі експериментальні рутини заявляють про багато голосів одночасно, — але це рекорди конкретних движків, а не властивість машини. Що більше голосів симулює код, то жорсткіші вимоги до таймінгу й то менше ресурсу лишається на саму гру. Тому в реальних іграх кількість голосів зазвичай скромніша за лабораторні рекорди. Точні цифри для конкретних тайтлів ми свідомо не наводимо без звірки за першоджерелами.

Що перевіряємо. Ми навмисно не приписуємо тут «рекорд багатоголосся» жодній конкретній грі чи авторові без документального підтвердження, бо в популярних переказах ці цифри розходяться. Якщо ви — автор або дослідник 1-бітних движків і маєте задокументовані дані про конкретні рутини, їхні можливості чи використання в українських/пострадянських релізах, напишіть музею: ми уточнимо цей розділ і, за згодою, додамо атрибутований аудіоприклад.

AY-3-8912: коли з’явилися справжні канали

Ситуація змінилася з моделями 128K. У ZX Spectrum 128 (а згодом і в +2/+3) додали окремий звуковий чип — General Instrument AY-3-8912. Це програмований генератор звуку (PSG) із трьома незалежними тональними каналами, спільним генератором шуму й генератором обвідної (envelope), що дозволяє формувати атаку й згасання ноти. Технічно AY-3-8912 — той самий кристал, що й ширше відомий AY-3-8910, але у 28-пінованому корпусі, де один із паралельних портів просто не виведено назовні.

Різниця з бипером принципова. Тепер, щоб отримати акорд, процесору не треба «жонглювати» одним бітом: три канали звучать паралельно в самому чипі, а Z80 лише задає їм параметри й може займатися грою далі. Той самий чип, до речі, стояв у цілій родині домашніх комп’ютерів і аркадних автоматів кінця 1970-х — 1980-х, тож для багатьох слухачів його тембр — це впізнаваний «голос» цілої епохи 8-бітної музики. Докладніше про саму модель — у картці ZX Spectrum 128 нашого каталогу.

Не плутати. 48K Spectrum не має звукового чипа — там 1-бітний бипер через ULA, а «багатоголосся» рахує процесор. Трьохканальний AY-3-8912 з’явився лише в моделях 128K/+2/+3. Тож фраза «музика на AY» стосується саме 128K-ліній, а не базової 48K-машини.

Дві естетики одного комп’ютера

Цікаво, що поява AY не витіснила бипер, а радше розділила спектрумівську музику на дві естетики. Чип давав чистіші, «правильніші» тони й акорди — звучання, ближче до інших домашніх комп’ютерів. Але 1-бітний бипер лишився самостійним виразним засобом: його шорсткий, характерно «дзвінкий» тембр згодом став предметом окремого дослідницького й музичного інтересу, а обмеження одного біта — не вадою, а рушієм творчості. Академічні роботи про звук 48K прямо розглядають цю технічну межу як джерело оригінальних музичних рішень.

Для музею тут важливі обидві лінії. Бипер розповідає про винахідливість програмістів, які перетворили найпримітивніший вихід на музичний інструмент. AY-3-8912 — про наступний крок платформи до повноцінного багатоканального звуку. Показати їх варто поряд: як одну машину, що навчилася співати двома дуже різними голосами.

Що слухати й де це в експозиції

Найкраще музику Spectrum не описувати, а чути — і саме цього поки бракує на сторінці. Наступний крок для нас — підготувати короткий атрибутований аудіоприклад, який поставить поруч ту саму мелодію в 1-бітному виконанні та на AY, щоб різниця між «обчисленим» і «чиповим» звуком стала очевидною на слух. Так само в планах — власне фото чипа AY-3-8912 з колекції, коли дійде до зйомки; вигаданих зображень чи копірайтного аудіо ми свідомо не додаємо.

Тим часом музику Spectrum зручно чути в контексті ігор і завантаження: мелодія часто починалася ще до того, як гра оживала на екрані. Про сам ритуал завантаження з касети ми розповідали в матеріалі «Звук завантаження: як касета ставала програмою», а конкретні тайтли, у яких звучали ці рутини, поступово описуємо в каталозі софту.

Джерела

  1. ZX Spectrum — Wikipedia (розділ про звук: бипер, десять октав, AY у 128K) en.wikipedia.org
  2. General Instrument AY-3-8910 / AY-3-8912 — Wikipedia (3 канали, 28-пінований корпус, ZX Spectrum 128) en.wikipedia.org
  3. The Sound of 1-bit: Technical Constraint as a Driver for Musical Creativity on the 48k Sinclair ZX Spectrum — G|A|M|E Journal gamejournal.it
  4. The 1-Bit Instrument: The Fundamentals of 1-Bit Synthesis — Journal of Sound and Music in Games (UC Press) online.ucpress.edu
  5. ZX-Spectrum-1-Bit-Routines (BEEPERTOY та ін.) — репозиторій движків бипера, utz82 / GitHub github.com