AY-3-8910
AY-3-8910 — мікросхема, який є триканальним генератором звуку (PSG, Programmable Sound Generator (англ. Програмованний Генератор Звуку) за термінологією виробника). Розроблено фірмою General Instrument (нинішній Microchip), спочатку призначалася для використання з 16-розрядним процесором CP1610 (спрощена версія CP1600) тієї ж фірми і з 8-розрядними мікроконтролерами серії PIC1650. AY-3-8910 та її варіанти широко використовувалися в багатьох ігрових автоматах, ігрових приставках і домашніх комп'ютерах. Крім General Instrument, ця мікросхема проводилася за ліцензією розробника фірмами Microchip (в той час — сторонній виробник кристалів), Micrel (під оригінальною назвою) і іншими (під різними назвами), а також фірмою Yamaha (під назвою YM2149F, SSG — Software-controlled Sound Generator (англ. Програмно-контрольований Генератор Звуку) за термінологією виробника).
Одне з перших застосувань AY-3-8910 відноситься до 1980 року, в ігровому автоматі Carnival від Sega, а потім на платформі MSX. Сумісні з AY-3-8910 мікросхеми застосовуються і в даний час. Їх виробництво було припинено, але запас раніше виготовлених мікросхем залишився, і вони продовжують продаватися, наприклад, для ремонту старих комп’ютерних систем. Існує реалізація мікросхеми VHDL для використання у FPGA-реплікації ігрових автоматів та інших ретро-комп’ютерних систем. Вихідний код VHDL вільно доступний в Інтернеті, у зібраному вигляді він займає близько 10 відсотків розміру Xilinx XC2S300 FPGA.
Вважається, що AY-3-8910 має можливості генерування звуку, схожі на чіп Texas Instruments SN76489 (створений і проданий протягом того ж періоду часу). Однак, хоча їх загальні характеристики схожі, ці ІС мають досить різні можливості. Творче використання AY-3-8910 дозволяє отримати набагато складніший звук, ніж SN76489, завдяки так званій огинаючій AY-3-8910, яку можна запрограмувати на нестандартну (аудіо) частоту.
Популярність в Росії
У Росії мікросхема AY-3-8910 здобула популярність завдяки використанню в комп’ютері ZX Spectrum 128 і, відповідно, у її численних клонах. Під час популярності ZX Spectrum у Росії було більше тисячі людей, які писали музику для AY-3-8910. Загалом для чіпа було написано понад 25 000 композицій[1]. Ця мікросхема створила власну субкультуру серед російських комп’ютерних музикантів початку 1990-х, подібну до тієї, що створена мікросхемою SID комп’ютера Commodore 64 в інших країнах. В даний час є ще кілька ентузіастів, які продовжують писати музику для AY-3-8910. В рамках різних фестивалів комп'ютерного мистецтва, таких, як Chaos Constructions, DiHalt, ASCiI, ArtField тощо,. присутні і змагання з написання музики для цієї мікросхеми.
Радіоаматори підключали AY-3-8910 до багатьох вітчизняним побутовим комп'ютерів, зокрема, до Вектор-06Ц, Оріон-128, БК-0011 і IBM PC, а також до телефонів з визначником номера Русь «Соната».
Опис
AY-3-8910 має такі можливості:
- Три програмованих генератора прямокутних імпульсів (тонів), без можливості зміни робочого циклу сигналу — т. Зв. Меандр.
- Один програмований генератор псевдо шуму з періодичністю 16 кб (128 кбіт)
- Один генератор конвертів, який виробляє амплітудну модуляцію тону, шуму або суміші обох, а також звучить сам при виборі частоти звуку
- Логічний мікшер (змішує вихід генераторів шуму і обвідної з одним або декількома каналами тони)
- Роздільні виходи звуку трьох каналів тони (можуть бути змішані як в моно, так і в стереофонічний сигнал)
- Два порти введення-виведення загального призначення
- Програмоване посилення [2]>
AY-3-8910 — це машина стану, стан якої визначається за допомогою шістнадцяти 8-розрядних регістрів. Вони програмуються через 8-бітну зовнішню шину, яка використовується як для передачі даних, так і для встановлення адреси реєстру — режим перемикається шляхом зміни рівня на спеціальному висновку мікросхеми. Типовий цикл передачі значень: шина переходить у режим налаштування адреси, адреса передається, шина переходить у режим передачі даних, передаються дані. Ця шина спочатку була реалізована на власних процесорах GI, але її потрібно було відтворити за допомогою логіки або додаткового інтерфейсного адаптера, такого як MOS Technology 6522, однак чіп використовувався з набагато більш поширеною технологією MOS 6502 або Zilog Z80.
Шість регістрів R0..R5 керують частотою звуку, що генерується трьома основними каналами, встановлюючи значення вхідного тактового дільника. Дільник зберігається у двох 8-розрядних регістрах для кожного з каналів, однак реальна ємність лічильника-дільника становить 12 біт, що дає 4095 варіантів значення частоти звуку (0 і 1 еквівалентні).
Регістр R6 встановлює 5-розрядне значення періоду для генератора псевдовипадкових шумів.
Регістр R7 — це логічний мікшер, що містить два біти для кожного каналу, в залежності від того, який сигнал від генератора шуму або генератора огинаючої сигналу додається до каналів. Також у реєстрі R7 є два біти управління портами вводу-виводу загального призначення.
Три регістри R8..R10 контролюють гучність трьох основних каналів (16 рівнів), а також мають біт дозволу огинання.
Три регістри R11..R13 керують частотою (два регістри, 16-розрядне значення) та формою (один регістр, 16 опцій) сигналу генератора огибаючих, подібних до ADSR. На відміну від більшості систем, 8910 використовує фіксований час для фаз плато і розпаду, а також повторювану послідовність фаз атаки та розпаду. Наприклад, генератор може постійно повторювати цикл атаки-затухання або навпаки, починаючи з максимального рівня, поступово знижуючи його, без фази атаки.
Регістри R14 і R15 контролюють стан ліній вводу-виводу портів загального призначення.
Варіанти виконання
Оригінальний кристал 8910 мав три варіанти виконання.
AY-3-8910 мав два паралельних восьмирозрядних порти вводу-виводу загального призначення-A і B. Він розміщений у пакеті з 40 виводами (DIP40).
AY-3-8912 — це пакет з 28 виводами (DIP28). Сигнали порту B не направляються на зовнішні контакти. Така конструкція знизила вартість мікросхеми та її розміри, що зробило цю конструкцію найпопулярнішою.
AY-3-8913 виконана в 24-вивідному корпусі (DIP24). Сигнали портів A і B не виведено назовні. У порівнянні з 8912, габарити зменшилися несуттєво, а функціональність знизилася, тому це виконання отримало найменше поширення.
Призначення висновків мікросхеми YM2149F відповідає AY-3-8910, за винятком штифта 26, який включає внутрішній дільник вхідної частоти наполовину, якщо він застосовується низько. Якщо цей контакт ніде не підключений, мікросхема працює так само, як AY-3-8910. На додаток до вбудованого дільника вхідної частоти, YM2149 має різницю в об'ємній потужності ЦАП — 5 біт замість 4 (з логарифмічною шкалою). Крім того, для тону використовуються лише нижні (тихий) 4 біти. Це створює різницю в тембрі звуку конверта, роблячи його яскравішим, але надаючи більшу гнучкість басу.
YMZ284-D виконана в 16-вивідному корпусі (DIP16). YMZ284-M виконана в 16-вивідному корпусі (SOIC16). Функціонально і програмно повністю сумісний з AY-3-8910, AY-3-8912 і AY-3-8913. Відмітна особливість — мала кількість висновків, спрощений інтерфейс, моно аудіовихід.
Microchip AY38910A виконана в 40-вивідному корпусі (DIP40). Повністю сумісна з YAMAHA YM2149f.
Microchip AY8930. Сумісний з Microchip AY38910A. Може бути переключено в розширений режим: не 4 а 8-бітний тональний період, не 5 а 8-бітний шумовий період, шум генерується не жорстким LFSR-механізмом, а з додатковими програмованими AND і OR масками.
Мікросхеми Winbond WF19054, China JFC95101, WB5300 і Jile KC89C72 також є клонами AY-3-8910.
Творче використання
Хоча мікросхема не має спеціальних можливостей для відтворення оцифрованих звуків, її можна реалізувати в програмному забезпеченні, використовуючи 4-розрядний ЦАП з одного або декількох каналів з генеруванням тону і шуму, заборонених логічним мікшером. Цей підхід вимагає більше часу на процесор, ніж чіпи, розроблені спеціально для цифрового відтворення аудіо (наприклад, чіп Paula в Commodore Amiga). Однак він широко використовувався на таких платформах, як комп’ютер Atari ST для відтворення цифрової музики, а також на CPC Amstrad для відтворення коротких звукових ефектів у деяких іграх.
Використовуючи той самий прийом, але не вимикаючи генерацію тонів, можна розширити можливості генерування різних тонів. У цьому випадку зміна вихідного рівня каналу ЦАП використовується для модуляції висоти звуку з різною частотою. Таким чином, можна отримати, наприклад, три незалежні амплітудні огинаючі будь-якої форми або тембри, що нагадують звук мікросхеми SID. Для ефективної реалізації цього методу система повинна мати можливість переривати процесор на достатньо високій частоті — наприклад, на комп’ютері Atari ST, де цей метод використовувався найактивніше, було використано переривання на початку растрової лінії. У системах без таких апаратних можливостей для досягнення цього ефекту знадобиться майже весь час процесора. Існує демонстраційна версія Digisid, який реалізує ефект на комп’ютері ZX Spectrum, який не має апаратних можливостей, таких як Atari ST.
У 2006 році два розробники комп'ютерного програмного забезпечення MSX створили вдосконалений кодер, який перетворює хвильові файли в найбільш підходящі дані для каналів AY за допомогою алгоритму пошуку Вітербі. Це дало можливість відтворити хвильовий файл 44100 Герц на комп’ютері MSX двадцяти трьох років із співвідношенням сигнал/шум вище, ніж у 8-розрядного ЦАП. Алгоритм Вітербі дуже ресурсомісткий, його не можна було застосувати у 80-х роках, оскільки на той час ще не було достатньо потужних комп’ютерів для такого перетворення.
Деякі люди, особливо користувачі комп’ютерів ZX Spectrum, використовують чіп AY для створення музики, у тому числі для живих виступів.
Список систем
Неповний список систем, у яких використовувалася 8910 або її варіанти. Не включає різні ігрові автомати, кількість яких перевищує тисячу.
Ігрові приставки:
- Amstrad GX4000 (на основі Amstrad CPC)
- Mattel Intellivision
- Vectrex
- Zemmix (на основі MSX)
Домашні комп'ютери. Багато з них мають безліч моделей від різних виробників:
- Apple II (у вигляді окремої звукової карти)
- Atari ST
- Atari Falcon
- Amstrad CPC
- FM-7 (Fujitsu Micro-7)
- Galaksija Plus
- Mattel Aquarius (в складі модуля розширення «Mini Expander»)
- Комп'ютери стандарту MSX
- PC 6001
- Правец-8Д
- Spectravideo
- Tatung Einstein
- ZX Spectrum і його клони
Музичні редактори
Для комп’ютерів, які використовували чіп AY-3-8910, було створено велику кількість музичних редакторів з використанням його можливостей для створення звуку. Більшість з них мали інтерфейс трекера. Вони часто дуже нагадували перші трекери, що з’явилися на комп’ютері Amiga — наприклад, The Ultimate Soundtracker (1987), NoiseTracker (1989), ProTracker (1991). Крім того, подібні або повністю ідентичні назви використовувалися як назви подібних програм. З цієї причини назви різних програм від різних авторів на різних платформах і навіть у межах однієї платформи також часто збігалися.
Нижче наводиться неповний список музичних редакторів для AY-3-8910. Він не включає редактори, орієнтовані на застосування семплів (редактори так званої digital музики). Деякі з редакторів виходили тільки в демонстраційних версіях. У список включені тільки ті демонстраційні версії, які мали основну функціональність, тобто дозволяли редагувати музику.
- Amstrad CPC:
- Atari ST/STE:
- Medi (1988)
- Edsynth (1989)
- Music maker (1989)
- Blipp Blopper (1991)
- CLS Soundchip Editor (1991)
- Musicmon (1991)
- Chipmon II (1992)
- SOTE Tracker (1993)
- Xlr8 (1993)
- YM Tracker (1993)
- Sid Sound Designer (1994)
- Magic Synth (1997)
- Sound Chip Synth (1999)
- maxYMiser DMA (2005)
- Triplex 2k4 (2005)
- MusicMon (2006)
- Insignia Trisound Sequencer
- Megatizer
- Music-Editor
- MV2000
- PSG Tracker
- Xbios Music Construction
- MSX:
- PSG Tracker (1992)
- Karoshi's Caruso (2005)
- ZX Spectrum:
- WHAM 128 (1986) — не плутати з Beeper версією редактора відомого як Mark Time Music Box
- AY Tracker (1992)
- Sound Tracker (1992)
- Advanced Sound Master (1992)
- SQ-Tracker (1993, існує також однойменний digital редактор 1997 роки)
- Super Sonic (1993)
- Cacofony Pro System (1995)
- Pro Sound Maker (1995)
- Pro Tracker 1.x (1995)
- Pro Tracker 2.x (1995)
- Sound Tracker Pro (1996)
- Fast Tracker (1997)
- Pro Tracker 3.x (1997)
- Global Tracker (1998)
- Pro Sound Creator (1999)
- Minimal Tracker (2000)
- Turbo Sound Editor (2005, для пристрою Turbo Sound)
- Sound Tracker 3.x
- БК0011М:
- Rock Monitor
Крім музичних редакторів, існують більш вузькоспеціалізовані програми, призначені для створення звукових ефектів (наприклад, для використання в іграх).
- IBM PC (крос-редактори з емуляцією AY):
- AYFX Editor (2006)
- MSX:
- Sound Effect Editor (1991)
- ZX Spectrum:
- Sound FX (1995)
- Sample Studio (1998)
- Cyberax Sound Editor (1999)
Подальший розвиток
Yamaha використовувала ядро YM2149F у цілій родині музичних мікросхем, які використовувалися в мобільних телефонах, відеоіграх тощо. Наприклад, мікросхема YM2203 (також відома як OPN), на додаток до власного синтезатора на основі частотної модуляції (FM) , містить повноцінний аналог YM2149F, повністю сумісний за номерами та призначенням регістрів (однак наступна мікросхема в серії, YM2612, містить лише частину FM 2203).
Багато комп'ютерів MSX2 та деякі комп'ютери MSX1 використовують спеціалізований «чіпсет» LSI різних компаній. Це, наприклад, чіпи Yamaha S1985, S3527, Toshiba T7775, T7937, T9769. На додаток до більшості комп'ютерних схем, вони також містять повноцінний аналог YM2149F.
Philips розробила чіп SAA1099 (використовується в SAM Coupé і в перших звукових картах Creative Labs для ПК IBM). Його можливості подібні до двох AY-3-8910 (6 каналів, 2 огинаючі, 2 генератори шуму), з деякими доповненнями. Однак немає сумісності програмного та апаратного забезпечення.
Емуляція
Крім реалізації емуляції мікросхеми в емуляторах різних систем, що її використовують, існують окремі емулятори мікросхеми. Вони дозволяють відтворювати музику, написану для різних систем та збережену у їх спеціальних форматах на звичайному ПК. Як і у випадку з іншими подібними мікросхемами генератора звуку, програмне забезпечення емуляції має деякі відмінності в звуку порівняно зі справжньою мікросхемою, і навіть можлива різниця на краще (чистіший звук, без спотворень, що робить звук дещо відмінним від оригіналу). Якщо у випадку інших, складніших мікросхем, ці відмінності виникають через неточність імітації логіки мікросхем, то у випадку з AY-3-8910 та сумісними мікросхемами всі тонкощі та відмінності їх роботи є повністю вивчена, і проблема передискретизації стає основним джерелом відмінностей (передискретизації) сигналу (мікросхема дозволяє генерувати звук з частотами до декількох сотень кілогерц).
Примітки
- Статистика колекції ZX TUNES
- [chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/http://map.grauw.nl/resources/sound/generalinstrument_ay-3-8910.pdf datasheet].
Посилання
- Оригінальна документація на AY-3-8910 AY-3-8912 AY-3-8913 Архівовано січень 5, 2004 на сайті Wayback Machine.
- ZX TUNES — онлайн колекція музики для ZX Spectrum (AY-3-8910)]
- Емулятор AY Emulator для Win32; великий архів вітчизняної музики з платформи ZX Spectrum, музичний редактор з емуляцією AY для win32;
- Музика для мікросхеми AY(англ.) )
- ST SOUND, стаття про AY-38910
- ymVST — VST-плагін, що імітує YM2149F — зроблений за допомогою VST мейкер, на WAV семплах — звук мало схожий на оригінал.
- Кілька VHDL-реалізацій ігрових автоматів в FPGA
- Документація на комп'ютер Amstrad CPC, включає документацію на AY
- Група AY Riders, який виконує музику з використанням мікросхеми AY
- Приклад оцифрованого звуку, відтвореного на Philips VG-8020 і демонструє роботу Viterbi енкодера
- Habr від 09.04.2014. Звук на чіпі AY-3-8910 (або Yamaha YM2149F) родом з ZX Spectrum на PC через LPT-порт