Не так давно в среде спектрумистов в очередной раз была поднята тема про Covox. Как «старый спектрумист» формально понимаю, о чём речь, но вот железного устройства у меня, ни когда не было. В моём городе на точках продажи оно не прижилось, а для самостоятельного интереса на тот момент не было необходимого понимания и знания. Поиск информации выдал значительное количество разных схем и прочих технических вещей, но к моему большому удивлению, нигде не было описания для обывателя «что это такое и с чём его едят». Считаю, что стоит восполнить этот пробел.

Статья была опубликована в 2021 году в 29 номере журнала по ZX Spectrum'у "ЗаRulem Печатное Слово".

Статья написана в соавторстве с Вадимом Чертковым.


На просторах интернета можно найти следующее определение:

Covox — простейшее устройство для воспроизведения цифрового звука. Представляет собой 8-разрядный резистивный ЦАП (R-2R схема), подключаемый к параллельному порту. Под таким названием оно изначально было выпущено в 1986 году фирмой Covox для IBM PC-совместимых компьютеров. Впоследствии это название стало применяться ко всем подобным устройствам. Примерно в то же время появились аналогичные устройства других производителей, а устройство стало использоваться на различных платформах, в том числе и на ZX Spectrum.

Внешний вид платы Profi Covox.
Внешний вид платы Profi Covox.

Другими словами Covox можно назвать первой в мире звуковой картой. К его достоинствам относятся:

  • Простота схемы и невысокая цена готового устройства.

  • Хорошее качество 8 битного звука. Технические характеристики которого зависят от возможностей компьютера и программного комплекса. Теоретически можно получить звук на уровне музыкальной карты Sound Blaster 1.0.

  • Простота подключения к компьютеру. Обычно подключают к LPT порту, но могут быть и другие варианты.

  • Простота программирования.

К недостаткам относится то, что сам Covox только воспроизводит звук, что требует значительной нагрузки на центральный процессор и несопоставимо большой, по сравнению с AY, расход оперативной памяти.

Но на Спектруме есть музыкальный сопроцессор AY, в чем, же выгода для нас?

Для полноценного ответа на этот вопрос нужно понять, в чем же разница между AY и Covox.

Музыкальный сопроцессор AY является трёхканальным генератором звука. Его правильнее назвать синтезатором, обладающим дополнительными возможностями по синтезу звука, чтобы музыка была более интересной. То есть основная программа только даёт команду AY, что нужно проиграть такую ноту с такими-то характеристиками и в таком-то режиме, остальное музыкальный сопроцессор всё делает сам. Именно при подобной схеме центральный процессор нагружается незначительно, что позволяет использовать AY в широком диапазоне задач.

Covox же воспроизводит только оцифрованный звук (Samples), который был ранее получен с помощью аналого-цифрового преобразователя (АЦП). Оцифрованные инструменты (Samples) представляют собой файл, состоящий из набора мгновенных значений амплитуды в каждый период выборки сигнала. Чем меньше период между выборками, тем выше частота оцифровки инструментов, а значит, качество звука оцифрованного инструмента будет более близко к реальному.

Музыкальный сопроцессор AY также способен воспроизводить оцифрованный звук, но разрядностью только 4 бита, тогда как Covox воспроизводит полноценный 8 битный звук. Музыка, проигранная на Covox, будет звучать ближе к оригиналу.

 Что же лучше: генерация звука или воспроизведение цифрового звук (Samples)?

В конечном итоге многое будет зависеть от мастерства и таланта автора мелодии. Но синтез нот музыкальным сопроцессором AY ограничен его техническими характеристиками, хотя он и позволяет выполнять над ними различные дополнительные эффекты, не требуя для этого дополнительного процессорного времени.

Тогда как Covox воспроизведёт совершенно любой звук, который ранее был оцифрован. Что позволяет воспроизводить голос и другие сложные звуковые эффекты.

По личным ощущениям, при прочих равных, качество мелодий на Covox выше. Но за это приходиться платить значительной нагрузкой на центральный процессор и расходом оперативной памяти.

Считаю, что Covox является одним из самых недооцененных устройств на Спектруме, использование которого подняло бы звуковое оформление программ на совершенно новый уровень. С одной стороны это можно объяснить упомянутыми выше недостатками Covox: значительная нагрузка на центральный процессор и большой расход оперативной памяти. С другой стороны, память более 128 Кб, стала появляться на клонах Спектрума с первой половины 90-х годов – вот оно место до 1 Мб под качественный звук. Проблема высокой нагрузки на центральный процессор может решаться использованием «турбо режима», который имеется на большинстве отечественных клонов. А так же организационными мерами – качественными звуками можно озвучивать те места, когда в игре уже нет иного большого расхода процессорного времени, например «фаталити» или гибель главного героя, подбор предметов в играх типа «Диззи» и т.п. При этом если на компьютере не установлено устройство Covox, эти же эффекты можно вывести на AY, пусть и в худшем качестве. Совместное использование AY и Covox способно открыть совершенно новые горизонты. Например: музыка, в которой будет использованы оба устройства, не только позволит совместить достоинства обоих, но увеличит общее число независимых голосов.

Схем Covox существует «вагон и маленькая тележка». Причем как самых простых, на 18 резисторах, так и с использованием специализированных микросхем цифро-аналогового преобразования (ЦАП). В СССР и России наиболее часто в этой роли применяется микросхема 572ПА1 (аналог AD7520). Надо отметить, что устройства собранные по схемам на 18 резисторах обладают неприятным эффектом в виде наличия при воспроизведении звука большого количества посторонних шумов. Хотя даже в таком виде звук будет значительно лучше, чем на AY. При использовании микросхемы 572ПА1 или аналогичной - звук будет ещё лучше, но и в этом случае полностью избавиться от посторонних шумов не получится, хотя услышать их можно только в наушниках. Существует обратно совместимое устройство Soundrive, представляющее собой четырёхканальный вариант Covox, в котором удалось полностью избавиться от всех шумов. Но оно уже значительно сложнее, а значит и дороже.

На разных машинах при использовании разных схемах подключения устройства Covox для вывода звука используются разные порты. Обычно для Pentagon используется порт #FB, а для Scorpion используется порт #DD. На Profi подключается стереоковокс по портам #3F и #5F. На других клонах, могут быть иные порты. Но общая схема вывода звука от этого не меняется. Поэтому, при использовании Covox, нужно уточнять в настройках программы порт вывода.

В настоящее время для Спектрума уже существует значительное количество музыкальных карт с большими возможностями. Но все они требуют уникального кода для своей поддержки. Однако большинство из них способно работать в режиме имитации устройства Covox. В силу этого можно использовать Covox, как объединяющий элемент и на его базе реализовать поддержку сразу всех музыкальных карт написав универсальный код вывода музыки и звуковых эффектов.

Программная поддержка Covox на Спектруме к сожалению не очень велика. Под TR-DOS есть пару десятков demo, несколько игр были озвучены под Covox, существуют несколько музыкальных плееров разных форматов, редактор цифровой музыки и редактор оцифрованных звуков. Большинство программ можно найти на сайте «Virtual TR-DOS» (https://vtrd.in/). Так же существует программы под ОС CP/M.

Так как я являюсь пользователем компьютера Profi, мне наиболее интересна версия Covox созданная для него. Давайте более подробно с ней и познакомимся.

Эту версию принято назвать Profi Covox. Ключевой его особенностью является то, что это стерео устройство, то есть имеет два физических канала звука. Не смотря на то, что эта версия Covox разрабатывалась под конкурентный компьютер, его без проблем можно установить на любой клон Спектрума. С программированием Profi Covox разберёмся в одной из следующих статей. А пока ознакомимся с общими вопросами. Вот схема Profi Covox.

Из программного обеспечения в ОС CP/M существуют два плеер «WAV» файлов. Первый из них, распространяемый фирмой Кондор, способен проиграть файл максимального размера в 51 кб. Второй из них за авторством Черткова Вадима, работает в ОС PQ-DOS и способен проиграть файл ограниченный лишь размером оперативной памяти. Так же есть музыкальная система «ADJ» (автор Крестьяников А.А.) для проигрывания музыкальных файлов одноименного формата и музыкальный редактор «Synth-Master» (авторы Дмитрий Вольвач и Дмитрий Тищенко) позволяющий редактировать и прослушивать музыку в форматах «ADJ» и «STM». Музыкальный редактор «Synth-Master» обладает полной совместимостью с аналогичными редакторами музыки в формате «STM» на компьютерах Amiga и IBM PC, что позволяет свободное переносить музыку с этих платформ. В музыкальной системе «ADJ» так же можно проиграть музыку с других платформ, но после конвертирования её в формат «ADJ» с помощью специальной утилиты.

В настоящее время существуют версии программ «ADJ» и «Synth-Master» адаптированные под музыкальную карту General Sound.

Вот характеристики программ:

 

«Synth-Master»

«ADJ»

Количество голосов

4

4

Количество каналов воспроизведения

2

2

Разрядность данных на каждом из каналов

8 бит

8 бит

Разрядность воспроизводимых инструментов

7 бит

---

Максимальный размер одного инструмента

64 кб

---

Общий объем инструментов

Неограниченно

до 152 кб

Количество инструментов в мелодии

до 32

до 31

Длина партитуры

до 128 партий

до 128 партий

Количество партий

до 99

до 99

Длина партии

64 такта. 1 Кб

64 такта, 1 Кб

Частота дискретизации в режиме TURBO

12 КГц

10 КГц

Формат готовых файлов

STM

ADJ

Как видно музыкальный редактор «Synth-Master» обладает немного лучшими характеристиками. Что ещё раз подтверждает тезис о том, что качество звучания Covox зависит не только от железных возможностей компьютера, но и от используемых программных алгоритмов.

Обе программы имеют в комплекте хорошую документацию, так что сейчас ограничимся описанием минимальной последовательности действий необходимых для запуска проигрывания мелодии.

Музыкальной системы «ADJ» использует в своей работе резидентную библиотеку оконного интерфейса «Windows» и её нужно предварительно загрузить. Так что для запуска программы лучше использовать файлы «adj.bat» или «adj-gs.bat» для загрузки версии под Profi Covox или под музыкальную карту General Sound, соответственно.

Музыкальный редактор «Synth-Master» использует внутренний оконный интерфейс, для него грузить ни чего не нужно. Зато есть две версии программы «Synth-Master» обычная и FAST (быстрая). Обычная версия (syntmast.com) поддерживает загрузки музыкальных файлов ограниченных только объемом оперативной памяти. Тогда как в FAST версии (smfast.com) объём загружаемого файла ограничен 128 кб для инструментов, но при этом качество звука на порядок выше. Для обеих версий есть адаптация под музыкальную карту General Sound (sm-gs.com и smf-gs.com соответственно).

После загрузки программы нужно настроить на скорость работы компьютера (эмулятора). В «ADJ» для этого нужно воспользоваться пунктом меню «Options\AutoDefinition», а в «Synth-Master» пунктом меню «System\Auto Definition». Для музыкальной системы «ADJ» данная операция строго обязательна, в противном случае качество воспроизведения музыки будет сильно страдать. Для музыкального редактора «Synth-Master» это действие необязательное, так как в большинстве случае он сам производит корректную настройку на скорость компьютера. Но её нужно выполнить, в случае если кнопка «Турбо» нажималась уже после запуска программы.

Музыкальная система «ADJ»
Музыкальная система «ADJ»
Музыкальный редактор «Synth-Master»
Музыкальный редактор «Synth-Master»

Музыкальный редактор «Synth-Master»Далее при необходимости через пункт меню «File\Drive…» выбираем дисковод, в котором находиться диск с музыкой, и собственно загружаем музыку. Для чего в музыкальной системе «ADJ» выбираем меню «File\Load…», а в музыкальном редакторе «Synth-Master» выбираем пункт меню «File\Read STM» или «File\Read ADJ».

Музыкальная система «ADJ»
Музыкальная система «ADJ»
Музыкальный редактор «Synth-Master»
Музыкальный редактор «Synth-Master»

Для запуска проигрывания с начала мелодии, нужно выбрать пункт меню «Play\Begin».

Музыкальная система «ADJ»
Музыкальная система «ADJ»
Музыкальный редактор «Synth-Master»
Музыкальный редактор «Synth-Master»

Для прерывания проигрывания в обеих программах нужно нажать клавишу «Пробел». Для выхода на предыдущий уровень меню, если у вас IBM клавиатура: необходимо нажать клавишу «Esc», а если у вас стандартная клавиатура Спектрума то комбинацию клавиш «Shift+1».

У нас в наличии имеются исходники музыкальной системы «ADJ» (автор Крестьяников А.А.). А вот исходников музыкального редактора «Synth-Master» (авторы Дмитрий Вольвач и Дмитрий Тищенко) к сожалению нет. В инструкции к программе указано, что авторы проживают в Запорожье, Украина и указаны телефоны для связи: Дмитрий Тищенко (0612) 63-40-63, Дмитрий Вольвач тел. (0612) 68-04-82. К сожалению, связаться с ними по этой информации не удалось. Поиск контактов в других местах так же не дал положительного результата. Так что у нас будет просьба к читателям журнала, если у кого есть какая-либо информация об авторах программы или возможность с ними связаться, поделиться её или попросить авторов выйти с нами на связь, напрямую или через редакцию журнала.

Теперь скажем пару слов об эмуляторах. Поддержка Profi Covox есть в эмуляторе «ZXMAK2» и в «UnrealSpeccy» к сожалению, только в версии «0.37.1m0 30 XT keyboard controller jan 2009 molodcov_alex». К недостаткам эмулятора «ZXMAK2» следует отнести отсутствие турбо режима, что сказывается на качестве воспроизведения мелодий. А к недостаткам эмулятора «UnrealSpeccy» версии 0.37 можно отнести отсутствие поддержки образов диска в формате «PRO», что в данном случае несущественно. Так что в приложении к статье вы найдете ссылку на архив эмулятора «UnrealSpeccy» версии 0.37 настроенного на работу в режиме компьютера Profi. В дисководе «A:» будет «стоять» образ диска с музыкальной системой «ADJ», в дисководе «B:» образ диска с музыкальным редактором «Synth-Master».

Статьи, графика – это все очень хорошо и полезно. Но в современном мире есть еще один способ передачи информации, который мы пока обходили стороной - я говорю о видео роликах. Не смотря на то, что этот способ имеет, целый ряд недостатков, он же обладает и некоторым набором плюсов. Поэтому было, приятно решения попробовать себя в этом направлении. Для чего был создан YouTube канал «Зазеркалье».

Компьютерщик, не совсем обычный человек. Жизнь его состоит из двух частей, и грань раздела проходит по стеклу монитора. Одна часть находится в реальном мире, а вторая в удивительной стране - Зазеркалье. И сложно сказать какая из частей главнее. Канал посвящен всем аспектам жизни по ту сторону монитора, в Зазеркалье. В первую очередь он будет отражать те грани этого мира, которые интересны нам, это: и ZX Spectrum, и OS/2, и различный языки программирования, и многое другое. Но мир Зазеркалья гораздо многограннее, так что если у кого-то вдруг появиться желание отразить интересные ему грань, будем рады предоставить эту площадку. Сложно надеяться на частый выход видео, но точно они будут - это однозначно.

Первыми видео на канале «Зазеркалье» выложены примеры воспроизведения музыки на устройстве Profi Covox. Это видео клип на песню «Бухгалтер» группы Комбинация и видео клип на музыку по мотивам фильма «17 мгновений весны». Видео рядом идут кадры в формате расширенного экрана компьютера Profi с палитрой 16 из 256 цветов.

Вот теперь, пожалуй, всё. Если появиться вопросы их можно задать по следующим адресам:

  • FidoNet: Tarasow Aleksey 2:5053/57

  • E-mail: tae1980(очень злая собака)yandex.ru

Дополнительный материал можно найти по этим ссылкам:

Приложение:

Комментарии (20)


  1. Javian
    23.08.2024 18:39
    +2

    off Можно сделать любое железо, но потом оказывается, что софт под него никто не писал и не пишет.


    1. anonymous
      23.08.2024 18:39

      НЛО прилетело и опубликовало эту надпись здесь


  1. tae1980 Автор
    23.08.2024 18:39
    +1

    Ни чего не понял. Железо сделано очень давно и не для Спектрума, есть версии почти для всех машин, например для БК.

    Софт на спектруме есть во всех категориях: игры, редакторы, демо, плееры, утилиты и т.п. И планируется новый.


  1. qw1
    23.08.2024 18:39

    Ещё был General Sound. С концепцией синтезатора (дал команду и CPU свободен), и цифровым 4-канальным синтезом.


    1. tae1980 Автор
      23.08.2024 18:39

      Об этой карточке есть упоминание в статье. На самом деле, для Спектрума разработка около десятка различных музыкальных карт. Все они подключаются через ZX BUS. О чём так же сказано в статье.


    1. yappari
      23.08.2024 18:39

      Женераль Зоунд был, конечно, классной штукой, но синтезатором при этом не был. Это просто внешний плеер с возможностью передискретизации при проигрывании. Причём (по словам автора прошивки, код я на этот предмет детально не исследовал), передискретизации самой простейшей (линейная интерполяция). Но надо отметить, что карта позволяла запускать сторонний код (недокументированная фича), поэтому технически можно было запилить и какой-то свой синтез (очевидно, с потерей оригинальных функций). В своё время я пытался сделать из карты этакий транспьютер, но обмен оказался существенным бутылочным горлом, поэтому для моей задачи не прокатило.


      1. tae1980 Автор
        23.08.2024 18:39

        Да, General Sound это прострой плеер, и по сути это пол компьютера со своим процессор и памятью. И да, его можно заставить выполнять сторонний код. Существует даже 3Д движок использующий эту возможность. Без сомнения скорость обмена с GS узкое место. Но есть обновлённая версия карты от группы NedoPC - General Sound New. В ней уже и память 4мб, и с скоростью обмена серьёзно подняли. И много других плюшек.


        1. yappari
          23.08.2024 18:39

          Не знаю, что за обновлённая версия, но скорость обмена в исходном варианте принципиально не поднять. Только городить ПДП, а это уже к GS имеет слабое отношение.


          1. tae1980 Автор
            23.08.2024 18:39

            Если "не знаю" может сначала хотя бы поинтересоваться, прежде чем говорить "фу"?


            1. yappari
              23.08.2024 18:39
              +1

              Во-первых, где в моём сообщении 'фу'? Во-вторых, зачем мне тратить время, когда и так ясно, что больше нет вариантов "существенно" поднять скорость обмена, кроме как только через ПДП, о чём я и написал?


  1. Zuy
    23.08.2024 18:39

    Я правильно прикинул, что всей ОЗУ Спектрума 128к хватило бы всего на 3сек звука в формате моно 8 бит 44100? Интересно, а какое-то сжатие использовалось в софте который с covox работал?
    Я пробовал Covox на Scorpion, сам паял матрицу резисторов. Да, звук был естественнее чем через AY, но как-то мало его было совсем.


    1. zatim
      23.08.2024 18:39
      +4

      Там времени процессора едва хватает чтобы только выводить этот звук. Чтобы его еще разжимать - это уже задачка. Но, наверное, что нибудь простенькое типа ADPCM получится сделать.


    1. tae1980 Автор
      23.08.2024 18:39

      Вариант Covox'са на 18 резисторах хотя и рабочий, но звук очень плохой. По секундам не скажу, но есть примеры, когда ребята умещали приличные куски музыки приемлемого качества.

      Очень много зависит как использовать инструмент. Напимер, у меня была коллекция звуков в wav, например звук выстрела из лука и т.п. размеры файлов колебались от 15 до 50 Кб. В среднем 30 Кб. Даже в 256кб полезет достаточно звуков для оформления игры. Примеры таких игр есть.

      Примеры цифровой музыки на Covox есть в конце статьи в виде видео роликов.


      1. yappari
        23.08.2024 18:39

        Есть на ютюбе записи игр с сэмплами, которые играются ну хотя бы на 8кГц? В отсутствии аппаратного таймера, всё это может выглядеть разве что лишь пошаговой стратегией - настал ивент с участием звука - фризанулись, проиграли звук, поехали дальше. Ну или что-то недалеко ушедшее от спикера, но там и 30кб не нужно хранить.


        1. tae1980 Автор
          23.08.2024 18:39

          Вот тут список игр с поддержкой Covox. Полный он или нет не могу сказать.

          https://speccy.info/Covox


          1. yappari
            23.08.2024 18:39

            Из всего списка на динамичность претендует только Вульф, но и в том, как я понимаю, цифра используется только в заставке. Во всяком случае, роликах на ютюбе, из тех, что выдал поиск, ингейм музыка и эффекты сплошь AY. Хотя и в роликах динамичность достаточно условная, паузы для проигрывания эффектов картины сильно не испортят. Прочим играм из списка фризы при проигрывании не мешают, это как раз упомянутые "стратегии".


            1. tae1980 Автор
              23.08.2024 18:39
              +1

              А с чего вы решили, что игры с любой музыкой имеют право быть исключительно динамичными? Лично я вообще предпочитаю пошаговые стратегии и логические игры, их вполне можно полностью озвучить через Covox. И что за пренебрежительное отношение к музыке в меню и заставке? Хорошая музыка в таких местах испортит игру? Почему нельзя музыку в игре выводить через AY, а в важных местах подключать Covox?

              Странное и однобокое у вас мышление. А запросы типа "сделайте как я хочу, и тогда я вас признаю", вообще трешь.


  1. ukmsz
    23.08.2024 18:39
    +2

    Вообще у процессора спектрума примерно 3.5 миллионов тактов в секунду, что приводит к необходимости записывать новое число в порт ковокса где-то каждые 160 тактов, только для того чтобы вытянуть качество 8 бит при 22кГц. При этом самая быстрая команда out #FB,a выполняется за 11 тактов, и вообще менее 4 тактов команд нет. Вряд ли удастся сделать что-то осмысленное в таких рамках, только успевай страницы памяти переключать и клавиатуру опрашивать. Музыкальные редакторы и плееры для ковокса которые в реалтайме занимались микшированием цифровых семплов из трех-четырех активных каналов редко когда выбирались за пределы 10кГц частоты дискретизации. Турбированный процессор даст примерно 300 тактов на байт, что в целом оставит чуть больше места под логику, но мы все еще говорим про полное отсутствие обратной связи на экране пока играет музыка. Или же проигрывать короткие звуки на 8кГц в подходящее время.


    1. tae1980 Автор
      23.08.2024 18:39

      Про проблемы ресурсо ёмкости работы с Covox'сом я написал. Так же сказал что можно их обойти администратпативными методами. Зачем повторяться?

      Вот тут есть список игр с поддержкой Covox.

      https://speccy.info/Covox


  1. tae1980 Автор
    23.08.2024 18:39

    Если есть интерес к цифровой музыке, вот тут хорошая статья на это тему.

    https://dzen.ru/a/Zcyn4VpQfQcrUfs5