Spectrum Expert #02
31 марта 1998
  Музыка  

Музыка - Компьютерная музыка: почему ни одна звуковая карта, даже самая дорогая, не родит настоящей музыки и не проиграет вам модуля с качеством компакт-диска.

<b>Музыка</b> - Компьютерная музыка: почему ни одна звуковая карта, даже самая дорогая, не родит настоящей музыки и
не проиграет вам модуля с качеством компакт-диска.
 (c) DANGEROUS                
                              
 Компьютерная музыка...  Music оп inter-
rupt,  DIGITAL STUDIO,  COVOX,  SB,  GS,
GUS, TURTLE BITCH... MOD, STM, S3M,  ХМ,
IT... Компьютерные music compo... Компь-
ютерщики  тащатся  от компьютерного зву-
ка...                                   
                                        
 Задумывались ли вы когда нибудь, уважа-
емые господа читатели, для  чего  вообще
персональный компьютер должен  извлекать
звуки? Почему многие пользователи подол-
гу слушают ее, собирают  музыкальные мо-
дуля? Безусловно,  компьютерные  эффекты
прекрасно  дополняют  игры и  демки,  но
можно  ли  назвать  их  музыкой?  Как  и
"просто модуля ниоткуда", сотнями храня-
щиеся на дисках  многих  пользователей и
регулярно переслушиваемые  ими?  Почему,
например, в мире РС идет постоянное  по-
явление новых карт, в мире Амиги появля-
ются новые рlаyerы, дающие,  якобы, луч-
шее звучание,  а в мире  Спектрума  звук
эволюционировал от бипера до GS? Похоже,
что в компьютерном мире  все  помешались
на технических характеристиках  звуковых
карт, забыв о том, что компьютер,  каким
бы мощным он ни был, не способен  родить
музыку. Прикупив более  совершенную зву-
ковую карту взамен старой, бежим  домой,
в предвкушении наслаждения чистым компь-
ютерным звуком...                       
 A стоит ли он того?                    
 Основываясь  на  инженерном  подходе  и
опираясь на технические  характеристики,
усвоенные из  руководства  пользователя,
мы инсталлируем наше приобретение, дрожа
от нетерпения  услышать  обворожительное
звучание и погрузиться  (или  воспарить)
сознанием в неизведанные просторы  Музы-
кальных  Событий.  Безусловно,   желание
сравнить настоящее с  прошлым  велико, и
мы, подсознательно вобравши в себя  сте-
реотип превосходства нашего приобретения
над предыдущим, начинаем ловить  (подсо-
знательно, а иногда  и  специально)  су-
ществующие и несуществующие  события.  И
доказывать появление оных себе и окружа-
ющим.                                   
                                        
 Прочитав в паспорте своей аудикарты "16
бит, 44 килогерца" и сравнив это с хара-
ктеристиками компакт-диска - 16 бит,  44
килогерца, неграмотный пользователь уве-
ренно заявляет своим неграмотным друзьям
- у моей карты  качество  компакт-диска!
То же самое он  подсознательно  заявляет
сам себе и, "зомбировавшись" собственным
заключением, с наслаждением слушает зву-
ки, издаваемые аудиокартой. При  попытке
продемонстрировать "суперзвук" ничего не
понимающим в компьютерах родителям, мама
стремительно   удаляется  на  кухню  под
предлогом, что у нее убегает суп, а папа
через некоторое время начинает угрожать,
что  если ты сейчас же не сделаешь поти-
ше, то он твой  компьютер...  (в  лучшем
случае выключит).                       
 Почему же не  обремененные  знаниями  о
битах и килогерцах люди не  в  состоянии
слушать компьютерную  музыку,  в  лучшем
случае равнодушны к ней?  В то же  время
пользователь получает определенное  удо-
вольствие от прослушивания  всяких   там
mod-ов, stm-ов, хм-ов и т.д. Парадокс?  
 Давайте разберемся  с  пресловутыми  16
битами и 44 килогерцами и тогда  поймем,
почему ни одна звуковая карта, даже  са-
мая дорогая, не родит настоящей музыки и
не проиграет вам модуля с качеством ком-
пакт-диска.  Хотя,  что  такое  качество
компакт-диска?  Надо  полагать,  это ка-
чество звука, который мы слышим при  его
воспроизведении. Воспроизведении.. опять
же, на чем? (Оказывается, есть  разница,
куда компакт-диск запихивать).          
 Для начала отбросим несовершенство ком-
пьютерного звучания и  обратим  внимание
на то, что музыкальная ценность подавля-
ющего большинства модулей  устремлена  к
нулю. Немногие  оставшиеся,  которые,  в
принципе, могут задеть за душу, словно в
клетке, бьются, ограниченные музыкальны-
ми и  техническими  возможностями  ауди-
окарт...                                
 На заре компьютерного  бума  тот  факт,
что компьютер может издавать звуки,  по-
хожие на реальные, сводил с  ума  многих
юзеров, некоторые  даже  записывали  эту
"музыку" на кассеты и потом слушали. Не-
которые пользователи просто  зациклились
на этих электронных звучках, погрузились
в мир компьютерной  музыки , забыв,  что
есть еще и другая музыка - настоящая.   
 Предвижу возражения, что, дескать,  вся
современная музыка создается  с  помощью
компьютеров.  Ответ довольно  прост: во-
первых, создается, а не  прослушивается.
Во-вторых, такая музыка невысокого поле-
та, как правило,  сопроводительная  (для
игр, демок) или дискотечная (чтобы своим
интеллектом  не мешать "двигать попой" и
думать об особях противоположного пола).
Истинную,  авторскую  музыку  невозможно
создать на компьютере, так как он никог-
да не сможет переживать и в музыке изли-
вать свою душу  (нет ее, души-то).  Если
даже взять самый навороченный  музыкаль-
ный редактор, то все  усилия  автора  по
донесению  своего  музыкального  замысла
разобьются о несовершенство компьютерно-
го цифрового тракта.  Пусть даже в  ком-
пьютере стоит дорогая аудиокарта.       
                                        
 Чтобы не показаться занудным при описа-
нии всяких музыкальных метафор,  развен-
чаю возможности компьютеров с чисто тех-
нической стороны.  Я уверен,  что  этого
вполне достаточно. Придется начать с са-
мого начала. Стиль выберу -  "науч-поп",
поэтому читаться должно легко.  Никакого
супервысшего образования  для впитывания
изложенного ниже материала  не  требует-
ся. Поначалу будет скучно (возможно).   
                                        
 Каким образом естественный звук перево-
дят в цифровой код? Известно, что,  тео-
ретически, непрерывный сигнал с  ограни-
ченной полосой частот может  быть  одно-
значно восстановлен  по  значениям  дис-
кретных отсчетов, если  выполнено  усло-
вие: F>2f, где F - частота   дискретиза-
ции, а f - полоса частот кодируемого на-
ми сигнала   (то  есть  верхняя  частота
спектра, которую мы планируем потом вос-
становить). Частота дискретизации  пока-
зывает, сколько раз за секунду  дигитай-
зер снимет  показание  амплитуды  нашего
сигнала, чтобы затем с помощью АЦП (ана-
лого-цифрового преобразователя)  иденти-
фицировать каждую  измеренную  амплитуду
двоичным кодом.                         
                                        
рис. 1.                                 
                                        
Осталось только записать коды в память - и все. Нетрудно догадаться, что, чем чаще мы будем снимать показания с сигна- ла, то есть повышать
F, тем больше веро- ятность зафиксировать всякие мелкие осо- бенности сигнала. Здесь есть один под- водный камень. Если верхняя частота циф- руемого нами сигнала превысит поло- вину частоты дискретизации, то при прослушивании мы услышим существен- ные искажения в виде посторонних призву- ков (не шума, не скрипа, а именно при- звуков, которые тянутся синхронно с ос- новными звуками. Очень заметно на ком- пьютерах Амига, да и на РС тоже). Чтобы этого не произошло, надо бы цифруемый сигнал предварительно обрубить сверху фильтром низких частот (ФНЧ) с частотой среза в нашем случае 22.05 килогерца (на самом деле еще чуть ниже). Что происходит на практике? У вас в ру- ках дигитайзер, вы загружаете программу, которая управляет дигитайзером. После ее загрузки вы можете выбрать частоту дис- кретизации (побольше, если надо оцифро- вать качественней, или поменьше, для экономии памяти). Поскольку для каждого конкретного случая нужно иметь конкрет- ный ФНЧ, то непонятно, на какую частоту фильтр нужно настроить, если бы он стоял в дигитайзере. Поэтому его там просто нет. Далее, практически никто (до по- следнего времени) не оцифровывал сигнал 16 бит 44.1 кгц - слишком много памяти потребуется. Посчитаем - 2 байта умножим на 44100. Будет, грубо говоря, 90 кило- байт в секунду. Поскольку суммарная дли- тельность сэмплов у модуля средней пар- шивости может составлять 10 секунд, то, если опять посчитать, получится, что мо- дуль средней паршивости должен занимать около 900 килобайт - и это только сэмп- лы! На самом деле так никто не делает. На компьютерах Амига, например, музыко- делатели цифруют сэмплы с частотой около 8 кгц в 8-битном формате (звук-то у Амиги 8-битный). Получается скромненькая цифра - на секунду звучания сэмпла - около 8 килобайт. Естественно, звук страдает. Но ничего, люди слушают, мно- гим даже нравится. На РС, кстати, немногим лучше. Только в последнее время появились 16-битные сэмплы, но тоже цифрованные на довольно низкой частоте. К тому же у многих ки- тайских SoundBlasterob аналоговая часть настолько плохо выполнена, что различить 8 бит и 16 практически невозможно. Теперь самое интересное. Если проигры- вать такие сэмплы на звуковой карте 16 бит 44 кгц, то, по всей вероятности, сэмпл, оцифрованный на частоте 8 кило- герц, должен проиграться в 44/8=5.5 раз быстрее и при этом стать писклявым. Что- бы этого не произошло, драйвер карты (или какая другая программа, неважно) производит пересчет и заставляет кидать на ЦАП (цифро-аналоговый преобразова- тель) один и тот же байт, пока не подой- дет время прихода следующего байта, если бы сэмпл воспроизводился со своей родной частотой дискретизации. Так что увеличи- вай частоту дискретизации, не увеличивай - сэмпл как игрался, так и будет играть- ся, и никакого изменения в качестве не будет. Поэтому к возгласам вашего прия- теля "У меня все играется на частоте 44 килогерца!" относитесь спокойно. Теперь опять внимание. Мы не рассмотре- ли вопрос о работе ЦАПа. Если вы думае- те, что в проигрывателях CD значения цифрового кода попросту считываются с диска, кидаются на ЦАП, а затем поступа- ют на выход, то вы круто ошибаетесь. Так бывает только в COVOXax, бытовых компью- терных звуковых картах да в компьютерных CD-драйвах. Почему? Потому, что голое цифроаналоговое преобразование сигнала не есть его восстановление! Для того, чтобы получить то, что мы (или не мы) когда-то подавали на вход АЦП, нужно произвести именно восстановление! Для восстановления сигнала, его необхо- димо пропустить через специальную штуку - В.Ф - Восстанавливающий Фильтр (фильтр Котельникова). Тогда на выходе мы и по- лучим искомый сигнал. Как его реализо- вать - отдельный вопрос, который я не буду здесь освещать (это невозможно объ- яснить на пальцах), скажу только, что его можно поставить в тракт прохождения сигнала либо до ЦАПа, либо после него. В первом случае фильтр будет цифровым, а во втором - аналоговым. Аналоговые фильтры Котельникова не делают - очень сложно, а вот цифровые реализовать мож- но. (На самом деле идеальный Ф.К. реали- зовать теоретически невозможно, делают лишь приближения с разной степенью точ- ности - чем "идеальнее" фильтр, тем выше его стоимость). Функция восстанавливаю- щего фильтра - восстановление сигнала в рабочей полосе частот, до половины ча- стоты дискретизации. A также подавление спектральных составляющих за пределами рабочей полосы - выше половины частоты дискретизации. Восстановление сигнала описывается не- безызвестной формулой Котельникова, о которой сейчас говорят все, кому не лень, которая мудрена и неподготовлен- ному читателю внушит ужас:
S(Т) - восстановленный сигнал. Т - время Si - значение i-го отсчета. Частью этой формулы является так назы- ваемая функция Найквиста, которая имеет важное значение при восстановлении ана- лового сигнала из цифровой формы, так как являет собой импульсную реакцию иде- ального Ф.К.:
Итак, цифровой фильтр. Его задача - принять кодовую последовательность, обработать ее и кинуть на ЦАП
СОВЕРШЕННО ДРУПУЮ ПОСЛЕДОВАТЕЛьНОСТь, которая, пройдя ЦАП, превратится в реальный сиг- нал. Если все-таки чуть-чуть проникнуться формулой Котельникова, то можно прийти к следующему выводу: операция дискретиза- ции и восстановления в корне отличаются друг от друга. Процедура дискретизации последовательна, то есть достаточно знать только значение сигнала в мент взятия отсчета. A для обратного преобра- зования дискретизированного сигнала в непрерывный необходимо знать значение всех отсчетов сразу! То есть идеальный Ф.К. должен принять в себя ВЕСь исходный цифровой материал, а затем уже выдавать на ЦАП свои измышления. Если быть теоре- тически точным, то на самом деле реакция на выходе Ф.К. должна появиться до того, как на него подадут сигнал - посмотрите, функция Найквиста определена и для отри- цательного времени! В природе это, ес- тественно, невозможно, но инженеры из- вращаются и придумывают всякие обходные маневры в виде линий задержек и элемен- тов памяти. В реальности фильтр должен "помнить", что было ранее, а также "знать", что будет потом. И чем в более широких пределах он "помнит" и "знает", тем качественней фильтр. Что же конкретно делает цифровой восста- навливающий фильтр? Суть процесса в следующем: осуществля- ется, так называемая передискретизация - между существующими отсчетами с частотой ЧЧкгц вставляются дополнительные, вычис- ленные в соответствии с импульсной ха- рактеристикой фильтра Котельникова, ко- торую и отражает вышеупомянутая функция Найквиста. (Импульсная характеристика - это реакция на так называемый дельта- импульс - некий гипотетический импульс, амплитуда которого бесконечна, а дли- тельность равна нулю). В дешевых проиг- рывателях используется 8-кратная пере- дискретизация (то есть между двумя от- счетами вставляется еще семь), в доро- гих - 256-кратная. Это значит, что в дорогих проигрывателях значения кидаются на ЦАП с частотой 44.1*256=11289.6 кПц, т.е. 11.2896 мегагерц! Вот, кстати, одно из объяснений, почему двухскоростной CD- ROM стоит тридцать долларов, а хороший проигрыватель CD - тысячу.
На рисунке показана двухкратная пере- дискретизация (пунктирные линии) при восстановлении сигнала, взятого с рисун- ка 1. Между существующими отсчетами поя-
вились новые - вычисленные передиск- ретизатором. Рисунок довольно идеалистичный, так как на самом деле здесь все должно быть в цифровых "ступеньках", я же, заведомо отбросив их, показываю, во что превра- тился сигнал. При внимательном сравнении рисунков за- метна разница форм сигналов - исходного и восстановленного. Это - свидетельство малой частоты исходной дискретизации, а также невысокой передискретизации. (Если бы передискретизации не было, то форма восстановленного сигнала отличалась бы от оригинала катастрофически.) Из-за этого утеряна информация об участках сигнала, характеризующаяся наиболее ши- роким спектром. В востановленном сигнале пропал острый пик исходного сигнала, а также резкий спад стал более плавным. (Кстати, может получиться, что взятие отсчета все-таки произойдет в момент "пика", но тогда после восстановления поднимется уровень сигнала в окрестности этого "пика". Интересный факт - дважды цифруем одно и тоже, а результат раз- ный.) Важно, что это не недостаток фильтра - информация о сигнале была утеряна еще в процессе перевода в цифровой код! Посе- му, каким бы хорошим не был восстанавли- вающий фильтр, этот сигнал он уже пра- вильно не восстановит. Это вовсе не означает, что появится цифровой скрежет. Вот он как раз-то и не появится. Фильтр его прекрасно подавит, а вот музыкаль- ность сигнала сильно пострадает - в пер- вую очередь динамика и тембр. При ис- пользовании сигнала в качестве спецэф- фектов в играх - по большому счету, на- плевать, а вот нормальную музыку слушать будет, мягко говоря, неинтересно. Напри- мер, невозможно будет отличить, играют ли живые скрипки или их имитирует синте- затор, звук двух разных тарелок ударной установки тоже будет неразличим, скорее всего он вообще превратится в шипение (при хорошем фильтре очень чистое), все будет звучать глухо и т.п, одним словом - демонстрация мертвых звуков и полная потеря средств выражения. Люди, далекие от техники, ищут в музы- ке прежде всего музыкальную мысль, а когда им подсовывают компьютерную тара- барщину, чувствуют дискомфорт. Почему для восстановления нужно исполь- зовать именно фильтр Котельникова? Пото- му, что, руководствуясь его работой, можно сколь угодно точно вычислить ИСТИННЫЕ промежуточные значения между основными отсчетами. Если бы звуковая карта работала в соот- ветствии с ИДЕАЛьНОЙ 256-кратной пере- дискретизацией в соответствии с формулой Котельникова, то для сэмпла длиной 1 ки- лобайт идеальный алгоритм ее работы та- ков: 44100*256=11289600 раз в секунду умножить 1024 числа на соответствующие коэффициенты, затем все суммировать. A для сэмпла длиной 10 килобайт придется поумножать в 10 раз побольше. (Да, во втором канале надо будет делать прибли- зительно то же самое, а у карты AWE64 - 64 канала). К тому же, в процессе вычис- лений могут возникать числа разрядностью до 64-х. Если так продолжать, то на одну звуко- вую карту можно будет заставить работать все процессоры в мире. Для упрощения процедуры берут не все байты, а, скажем, 50 ближайших (реальная цифра), тогда вы- числительных способностей Пентиума200 вполне хватит для восстановления сигна- ла, и тогда уже можно кидать это на ЦАП. Например, в карте General Sound для пе- редискретизации стоит Z80 на 12мгц. Пе- редискретизация - по двум соседним от- счетам, как получится, вернее, как успе- ется. Реально 3-4-кратная. Интерполяция там не "по Котельникову", а среднеариф- метическая, но субъективно чистота звука улучшается очень сильно. Фильтров же после ЦАПов там нет никаких - им там уже просто нечего восстанавливать. Кстати, если кто непосредственно срав- нивал звучание GS и Амиги, мог иногда замечать, что на GS некоторые модуля иг- раются подозрительно глухо, а некоторые - совершенно нормально. Это - прямой ре- зультат передискретизации. В сэмплах, цифрованных с частотой 8 килогерц, выше 4 килогерц нет никакой музыкальной ин- формации - поэтому все, что выше - по- давляется передискретизатором. Вот поэ- тому и появляется "глухота". Амига же поставляет вместе с сэмплами приличную долю высокочастотного шума - отсюда ка- жущаяся звонкость. Если же сэмпл цифро- вали на 22 килогерцах, то разница будет уже почти незаметна. Известно, что на звуковые карты Пентиу- мов200 не ставят. Не ставят их и в про- игрыватели CD. В проигрывателях CD роль цифрового фильтра-восстановителя выпол- няет специальный сигнальный процессор, который только и умеет делать это. A в РС и Амигах теперь пишут специальные плейеры, которые с горем пополам произ- водят какую-то интерполяцию. О ее вер- ности никто не знает, кроме авторов этих программ. В одном я уверен - фильтром Котельникова там даже не пахнет, но звук они улучшают. (Вернее не улучают, а уби- рают откровенную цифровую грязь, а заод- но и немалую часть истинной музыкальной информации, привнося свою, ложную). Вот теперь, чем выше передискретизация, тем чище звук. Именно чище, а не правильней! Так что о живой музыке забудьте. Еще огорчение - компьютер при этом не может выполнять свою прямую функцию по назначению - его процессор загружен поч- ти до предела. Об интерполированной му- зыке в динамических играх пока что речи тоже нет. Теперь развенчаю еще один "цифровой миф", порожденный, в основном, рекламной кампанией. Это динамический диапазон в 9бдБ. Для тех, кто не знает - это пока- затель отношения максимального и мини- мального уровней громкости в системе. Описывается выражением D=20*lg(мах/min). Если посчитать по этой формуле динами- ческий диапазон 16-битовой системы, то как раз и получим число 96. A что в ре- альности? У любой цифровой системы есть один принципиальный недостаток - при ма- лом уровне громкости возникают, так на- зываемые, искажения квантования. Ведь, чем меньше громкость, тем меньше бит используется для преобразования! При ма- лом уровне громкости старшие биты цифро- вого слова сидят себе в нуле и слыхом не слыхивают о сигнале. Получается, что с тихими звуками проблема. Поэтому, как показала практика, звуки оцифрованные с уровнем -ЧOдБ, уже не очень похожи на настоящие, при цифровке -бOдБ от звука остаются рожки да ножки... A какая музы- ка без настоящих тихих звуков? Реально используемый динамический диапазон - 30- ЧOдБ. Посему удел компьютерной музыки - одна технота да попса, так как она обла- дает ислючительно узким D. (В проигры- вателях CD опять же борятся с этим раз- ными методами). Фанатам Амиги предлагаю самим посчитать динамический диапазон 8-битовой системы (кстати, этого вполне хватает для эффек- тов и сопроводительной музычки в играх). Так что, может быть, не будем так серь- езно относиться к компьютерной музыке, аудиокартам, music compo, ведь все му- уровнем -ЧOдБ, уже не очень похожи на настоящие, при цифровке -бOдБ от звука остаются рожки да ножки... A какая музы- ка без настоящих тихих звуков? Реально используемый динамический диапазон - 30- ЧOдБ. Посему удел компьютерной музыки - одна технота да попса, так как она обла- дает ислючительно узким D. (В проигры- вателях CD опять же борятся с этим раз- ными методами). Фанатам Амиги предлагаю самим посчитать динамический диапазон 8-битовой системы (кстати, этого вполне хватает для эффек- тов и сопроводительной музычки в играх). Так что, может быть, не будем так серь- езно относиться к компьютерной музыке, аудиокартам, music compo, ведь все му- зыкальные прибамбасы сделаны для того, чтобы в игры было интересней играть. Или я не прав?



Другие статьи номера:

Помощь - Целью настоящей инструкции является привитие читателю навыков и умений по употреблению информации, содержащейся в журнале.

От редакции - Интересно, для чего существуют электронные журналы на платформе Cпектрум?

Новости - NЕМО выпущена модель KAY-1024, CКОРПИОН выпущена первая опытная партия GМX, DIGIТAL RЕALIТY выпущен обзорный фильм по Еnlight'97, LD приступил к созданию новой версии ассемблера SТОRМ 2.0.

Железо - ZX-ВUS: Если вы решили сделать из своего Cпектрума нормальный компьютер, то эта статья для вас.

Железо - о констуркция различных клонов ZX Spectrum.

Мнение - новый супер Спектрум: Sprinter, для чего он нужен?

Музыка - Компьютерная музыка: почему ни одна звуковая карта, даже самая дорогая, не родит настоящей музыки и не проиграет вам модуля с качеством компакт-диска.

Почта - Ура, у наc уже пиcьма: Парфенов Cергей, Пименов Валентин.

Игрушки - обзор игр: Anarachy, Captain Planet, Tag Team Wrestling, Headball, Chase H.Q., Superted, Sword of hte Samurai.

Игрушки - описание игры Little Соmputer Рeоple.

Программирование - 3D на спектруме: быстрый метод обсчета вершин, вывод 3d обьектов с заливкой.

Софт - описание языка программиирования Паскаль для ZX Spectrum от фирмы Hisoft.

Софт - описание языка программиирования CИ для ZX Spectrum от фирмы Hisoft.

Фомин - любовный роман про Амигу и Писюк.

Фомин - Хит-парад: Итак, встречайте, господа, парад начинается!

Реклама - фирма Scorpion: Cокращенная версия нашего прайса по тематике Sрectrum.

Реклама - фирма Nemo: Фирма "NЕМО" предлагает свою продукцию, а также продукцию производителей Cанкт-Петербурга.

Реклама - фирма Welcome: программное обеспечение для ZX-SРЕCТRUМ 48/128/256К.

Реклама - фирма X-Trade: Нашему журналу требуется нормальная музыка для статей и intrо!!!!!


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
MUZAKING - Музыкальный скелет.
Рубрика X - о новинках: Черный Ворон, Alasm v3.9, журнал "Spectrum Expert 1", STS v6.2, Perfect Commander v1.7.
Письмо в номер - программа резидент от CompoWellcome Co. Ltd.
Contacts - Список Заслуженных Пользователей AC Edit.
Реклама - Ремонт и модернизация компьютеров: ZX-SPECTRUM & IBM PC.

В этот день...   19 апреля