Info Guide #11
05 июля 2015

Музыка - Однобитная музыка: почему бипер ZX Spectrum продолжает вызывать восхищение?

       utz о beeper'е
              Beeper Sounds:
    What's Cooking in the 1-Bit World?

  Однобитная  музыка. Нет, она до сих пор
не звучит как AY.Что для меня лично вполне
приемлемо, так как, несмотря на мою любовь
к AY, я просто  люблю звук бипера. Сегодня
я  буду  говорить  о  том, что происходило
внутри  и снаружи мира ZX Spectrumза пос─ 
ледние  пару лет, а также познакомлю вас с
новыми  открытиями относительно историчес─
ких корней однобитной музыки. Я не собира─
юсь  углубляться в технические детали, так
что если вы ищете подсказок на тему созда─
ния следующего величайшего биперного движ─
ка,тогда вам придётся подождать нового вы─
пуска Info Guide.

               ZX Spectrum:
 растущая сцена,технологические открытия,
           новый мировой рекорд

   На  протяжении последних  лет  биперная
сцена ZX Spectrum  непрерывно  росла, пока
стало  невозможно следить за всем материа─
лом, появляющимся  в разных уголках интер─
нета. В 2014 году было  выпущено более 200
новых треков, а также несколько альбомов и
компиляций.
   Я предполагаю, что такой взрыв популяр─
ности  произошел по нескольким причинам. С
одной стороны,сайт,посвященный чиповой му─
зыке battleofthebits.org добавил форматZX
Beeper в свою компо систему, благодаря че─
му  бипер стал там самым популярным (
http://battleofthebits.org/browser/
EntryByFormat/zxbeep/ ). BotB привлёк мно─
го новых композиторов, которые,возможно,не
имеют  таких близких отношений со Спектру─
мом, как те, кто был вовлечён в 2009-2012,
но,тем не менее наслаждаются звуком и лёг─
костью  использования доступных инструмен─
тов.Также в новых версиях редактора бипер─
ной музыки Beepola появилось 10 дополните─
льных движков,среди которых такие бриллиа─
нты новой школы,как Tritone и Qchan, допо─
лнившие широкий спектр олдскул-классики.
   Другой (не самой  подходящей к этой те─
ме) новостью  стало постепенное вытеснение
однобитного блога на сайте Shiru новым фо─
румом,посвященным той же тематике.Учитывая
увлеченность  растущей сценой ZX Spectrum,
я верю, что  настал  наилучший  момент для
перехода на данный формат.Несмотря на это,
успех  форума  стал удивительным явлением,
принимая  во  внимание маргинальный статус
предмета исследования. К сожалению, он не─
ожиданно закрылся и его будущее сейчас не─
известно, но планы по возобновлению проек─
та всё ещё есть. На всякий  случай мы соз─
дали новый форум на
http://randomflux.info/1bit

   С  технической  точки  зрения  бипер ZX
Spectrum  продолжает  вызывать восхищение. 
Говоря это, я имею в виду наличие большого
потенциала для создания новых алгоритмов и
решений, реализация  которых происходит на
протяжении последнего времени.
   Одним из направлений, развиваемым,в ос─
новном, Introspec, является  синхронизация
устройств  ввода-вывода. Эта  проблема, на
которую  часто не обращают внимание, дово─
льно легко решается выравниванием процеду─
ры проигрывания под 8 тактов. Неудивитель─
но  и то, что  некоторые и старые, и новые
движки, не  использующие  данную  технику,
плохо  звучат  на  оригинальных британских
моделях  до  версии +2. Наиболее известным
примером является алгоритм Savage, который
Introspec  проапгрейдил несколькими новыми 
процедурами  синтеза.  Он  также  выпустил
улучшенную  версию  процедур Shiru Octode,
под  именем  Octode XL,  улучшив  контроль
громкости звука.
   Некоторое  время  назад состоялся выход
нескольких  новых  движков, не  привлекших
особого  внимания. Alone  Coder  незаметно
выпустил движок  B'TMAN (пропатченный Beep
Tracker ). Abrimaal работает над гибридным 
проектом 1bit/AY  под  кодовым  названием
DoomBass (http://battleofthebits.org/ 
arena/Entry/Hybrid+Engine/16685/ ).
   Я тоже  оттачивал навыки кодинга бипер─
ных  плейеров. Мне ещё очень многому необ─
ходимо научиться,но учитывая ранние попыт─
ки,я могу сказать,что причины для гордости
уже есть. Я создал Ntropic и Anteater, два
очень компактных движка с чередованием им─
пульсов. Оба содержат некоторые нововведе─
ния: Ntropic  проигрывает  псевдослучайный
шум (из ПЗУ) вместе с двумя тоновыми кана─
лами, а Anteater содержит самый упрощённый
вариант широтно-импульсной модуляции.
   Я также  пытался написать движок с циф─
ровым звуком. После длительных эксперимен─
тов (некоторые из вас  помнят ужасный дви─
жок POWW ),я вышел на довольно приемлемый,
но  некрасивый метод смешивания двух кана─
лов зацикленных  звуков. Технически в этом
нет ничего нового: оптимизированная версия
принципа "число последовательных выводов в
порт означает громкость". Оптимизированный
в данном случае означает специфически под─
готовленные сэмплы, распакованные в памяти
(1 байт на 1 бит) для  быстрого микширова─
ния (как я и говорил,красоты тут нет).Так─
же  громкость на каждый бит изменяется не─
линейно, и более  высокие уровни громкости
получают  дополнительное усиление. С точки
зрения  звука данный подход является улуч─
шением простой пересылки битов,применённой
в Sample Tracker, страдающей  от заметного
паразитичного тона, особенно на синусоида─
льных сэмплах. Так что дальнейшие экспери─
менты в этой сфере более чем приветствуют─
ся (а если нет, то кто нибудь, пожалуйста,
сделайте редактор для Phase2:o). В любом 
случае, исходники  последних  версий  моих
движков можно найти наhttps://github.com/
utz82/ZX-Spectrum-1-Bit-Routines.

   Недавно я придумал новую хитрость - ин─
вертирование фазы. Она позволяет регулиро─
вать  громкость  (см.test50.sna ), причём
работает   и  с  разной  скважностью  (см.
test25.sna ),но при скважности,не равной2 
(коэффициент заполнения не50% ) громкость
регулируется несколько хуже.
   Идея в том, что для каждого из двух ка─
налов у нас есть два счётчика,с одинаковы─
ми периодами,но разными фазами. Результаты
обоих  мы  последовательно выводим в порт.
Когда  они  в противофазе, громкость равна
нулю. Когда  они  сдвинуты (например, один
считает с0, а другой с #4000 ),появляется
звук.

   И, наконец, мировой  рекорд наибольшего
количества программных каналов на однобит─
ных движках,ранее удерживаемый Shiru с его
8.5-канальной процедурой Octode, был побит
в марте 2014 16-канальной процедурой ZX-16
- новым  обладателем  рекорда стал Ян Деак
(Jan Deak), который уже более двух десяти─ 
летий удерживал первенство, ещё до выпуска
Octode. К сожалению,автор процедуры скоро─ 
постижно  скончался  в ноябре. В его честь
вышел альбом в начале декабря 2014:
http://www.pouet.net/prod.php?which=64543

                  Вне ZX:
       О боже, это распространяется!

   Недавний подъем популярности спектрумо─
вской биперной музыки не прошел незамечен─
ным вне мира ZX.Новые инструменты и работы
появились на нескольких платформах.
   Еще  в 2012 Apple ][ кодер krue добавил
поддержку  старого  движка Electric Duet к
трекеру Shiru 1tracker (http://krue.net/
1tracker ). К  сожалению, в  1tracker  нет
эмуляции  бипера  Apple ][, по  причине её
отсутствия  в библиотеке Game_Music_Emu. К
счастью, krue пошел по пути создания свое─
го собственного  трекера для Apple ][, ра─
ботающего  на  оригинальном железе. Назвав
его Stitch, он реализовал 4 канала звука с
частотно-импульсной модуляцией. (http://
krue.net/stitch )
   У меня  нет новостей с более широко из─
вестных  платформ, таких как IBM PC. Поли─
фонические музыкальные инструменты уже су─
ществовали  в начале 80-х, а в начале 90-х
был  достигнут удивительно высокий уровень
(8 каналов и более при помощи Note Baron).
Неудивительно,что развитие после этого ос─
тановилось,учитывая распространённый стан─
дарт  звуковых карт на PC. Но почему бипер
не проявил себя вновь - так и остаётся за─
гадкой.Я надеюсь,что с течением времени мы
увидим  хоть какие-то исследования старого
инструментария. [Можно отметить  демо 8088
MPH. ] 
   Тем  не  менее, довольно  большой объём
работ был проведен вне традиционных 1-бит─
ных платформ. Наиболее значительным дости─
жением скорее всего является работа XXL на
компьютерах Atari 8bit. C 2009 он портиро─
вал  широкий спектр спектрумовских движков
на чип GTIA, используемый в XL/XE, включая
такую  классику, как ZX7 и Music Studio, а
также  процедуры  новой  школы, такие  как
Phaser1, Octode и Tritone. Его серия работ 
"Beep'em all" заслужила легендарный статус 
(http://xxl.atari.pl/beepem-all/ ).   XXL
продолжает работать в этом направлении, не
так  давно  добавив Octode XL к своей биб─
лиотеке   процедур.  Некоторые  конвертеры
стали доступны широкой публике (http://
atarionline.pl,  ищите  раздел "Pomocnik/
Helper" ). Я рад  видеть растущую популяр─
ность GTIA музыки,не последнюю роль в раз─
витии   которой  сыграла  демопати  Silly─
Venture, уже  два года организующая компо, 
посвященное этому чипу.
   XXL  также  предпринял попытки создания
биперной  музыки  на Atari VCS/2600 в 2011
году,   используя   движок   Squeeker   от
Zilogator'а (http://www.pouet.net/ 
prod.php?which=58051 ),  а  не  так  давно
портировал разработки Линдона Шарпа(Lyndon
Sharp):http://battleofthebits.org/arena/ 
Entry/circls/12238/  В связи с ограничени─
ями платформы точная конверсия LSengine не
представляется возможной,но она очень бли─
зка к оригиналу.
   Идем  дальше  к более экзотичным консо─
лям. Саймон Йонассен aka The Invisible Man
успешно  портировал процедуры Music Studio
на TRS-80 CoCo и Dragon32/64. (https://
www.youtube.com/watch?v=eMqCqWerzQk ).  Он
также разрабатывает собственный алгоритм:
https://www.youtube.com/
watch?v=4jCf6hcYyNU
   Kakos_nonos  почти закончил VITracker -
новый инструмент для "Апогей БК01". Помимо
этого  он проделал большую работу для этой
машины  и  используемого  в ней чипа 8253,
совместимого  с  PIT, включая портирование
процедуры Tritone (http://www.pouet.net/
prod.php?which=62460 ). Наблюдение  за его
интересом к другим платформам, созданным в
СССР, заставляет меня ждать новых достиже─
ний.
   И  последний, но  тем  не  менее важный
пункт - разрешите мне опять поспамить сво─
им творчеством.Я портировал несколько спе─
ктрумовских  процедур на графический каль─
кулятор  Texas instruments TI-82/83 (
http://irrlichtproject.de/downloads/
ti1bit.zip ). Они работают неплохо, благо─
даря  процессору Z80 на тактовой частоте6
MHz. Далее я создал трекер, запускаемый на
этих калькуляторах, а также на более новых
моделях - 83+/84+ (http://
irrlichtproject.de/houston ). Он  содержит
три  биперных  движка моей разработки: два
с  частотно-импульсной  модуляцией (PFM) и
один  с чередованием импульсов. Проблема в
том,что я не самый опытный кодер,а во вре─
мена написания трекера, 2 года назад,был и
того  хуже. Так  что  я пришел к выбору не
самых оптимальных вариантов,а также неско─
льким  критическим ошибкам, которые до сих
пор  не смог исправить. Научившись на этих
ошибках, я  надеюсь  полностью  переписать
трекер в этом году.
   Некоторое время назад я случайно заимел
программируемый калькулятор Sharp PC-1403.
И, конечно  же, не  смог не попробовать на
нем однобитный звук(http://www.pouet.net/
prod.php?which=63526 ).Это не самая лучшая
машина для подобных экспериментов,учитывая
используемый  в ней  процессор  SC61860 на
частоте768 KHz (3 машинных цикла за такт,
так что в результате получается192 KHz) с
набором команд лишь немного быстрее, чем у
Z80. После  демо Osaka я предпринял вторую 
попытку  написания алгоритма, используя на
этот раз чередование импульсов вместо час─
тотно-импульсной модуляции (PFM).(Процеду─
ра и XM конвертер доступны здесь:http://
irrlichtproject.de/downloads/osaka2.zip ).
Она  стала одной из самых быстрых процедур
в  истории, занимая лишь44 такта. Но увы,
качество  музыки  на этой платформе до сих
пор остаётся не самым лучшим.

 История однобитной музыки: новые открытия

   В последние годы я также исследовал ис─
торию однобитной музыки,которая,как оказа─
лось, полна  сюрпризов. Как  некоторые  из
вас  могут  знать, однобитная  музыка  это
очень  старый  феномен, уходящий корнями в
начала  компьютерной  музыки.  Фактически,
первая музыка, созданная на компьютере бы─
ла  однобитной и использовала тот же самый
принцип, что и сейчас - отсчёт таймера,вы─
вод данных на спикер/ЦАП по достижении ну─
левого  значения, затем повтор. Это проис─
ходило в 1951 году, сначала в университете
Сиднея, а затем, спустя несколько месяцев,
независимо от этих исследований, в Манчес─
терском Университете:
http://www.csse.unimelb.edu.au/dept/about/
csirac/music/
http://news.bbc.co.uk/2/hi/technology/
7458479.stm
   Всё это довольно старые новости. Откры─
тием  является тот факт, что ни Джефф Хилл
(Geoff Hill)  из  Сиднея, ни  Крис Стрэйчи 
(Chris Strachey) из университета Манчесте─ 
ра  не  изобрели  ничего нового. Эта честь
принадлежит легендарному пионеру компьюте─
ров самому Алану Тьюрингу. В его руководс─
тве  к  манчестерскому  компьютеру  Mark I
1950  года  почти целая страница посвящена
данной теме (http://www.alanturing.net/
turing_archive/archive/m/m01/M01-030.html
). Более  того, дела  обстоят  ещё  лучше:
вопрос  однобитной  музыки  был  поднят не
случайно - он был заложен в дизайн машины.
В Mark I есть опкоды, заставляющие динамик
издавать звуки.

   Перенесёмся  на  несколько лет вперед к
началу 50-х и 60-х.Компьютерная музыка всё
ещё  обладала  новизной.  Макс Мэтьюс (Max
Matthews)  из Белл ( Bell labs )  вместе с 
несколькими  соратниками экспериментировал
в области искусства, создавая алгоритмиче─
ские  композиции, которые обычный смертный
вряд  ли  назвал бы музыкой. Можно было бы
предположить, что это является чем-то эли─
тарным. А как же всё  происходило на самом
деле? При  более близком  исследовании вся
картина  рушится  на  глазах. Принимая  во
внимание  сохранившиеся записи того време─
ни,я прихожу к выводу,что развлечение типа
"давайте пошлём несколько импульсов на би─
пер  и подключим AM радио к происходящему"
(а это,хотя бы косвенно,однобитная музыка)
не было таким уж  редким  делом. Проблемой
являлось то,что мало кто принимал подобное
всерьёз. Такая  не имеющая значения забава
занимала умы операторов мейнфреймов в сво─
бодное  время. Но многое из происходившего
в те дни  так и не было записано, а сейчас
и вовсе утеряно.
   Наиболее  заметные  эксперименты ранней
однобитной музыки,сохранённые Питом Самсо─
ном  (Pete Samson, при  поддержке Массачу─ 
сетского Технологического Института ) были 
созданы в 1959 году на TX-0 (http://
shiru.untergrund.net/1bit/pivot/
entry.php?id=102 ),а позже и на PDP-1. Лю─
ди, имевшие  доступ  к IBM 1401, создавали
музыку на протяжении 60-х (https://
www.youtube.com/watch?v=EPk8MVEmiTI ).
Существуют  слухи  о подобной активности в
Швеции в 50-е годы. Документальным подтве─
рждением стала виниловая запись (http://
www.ctrl-c.liu.se/misc/
datasaab/musik-eng.html ). В Германии ком─
пания  Zeus K G развлекалась с компьютером
Z22 в 1958 году (https:// 
chipflip.wordpress.com/2013/05/06/more-
computer-music-recordings-from-the-1950s )
Даже   работники  центрального  налогового
офиса Северного Рейна-Вестфалии разработа─
ли  музыкальную  программу  для мейнфрейма
Telefunken TR4 в 1963 году 
(http://www.dj1xk.de/tr4.html ).

  Вот  и всё, что я смог найти на текущий
день. Хотелось бы узнать больше о происхо─
дящем  в других местах, особенно в странах
бывшего Восточного блока. Возможно, компь─
ютерные гики в СССР того времени не скуча─
ли  так сильно, как работники немецкой на─
логовой  службы, но  я уверен, что и у них
были  какие-то разработки. Если у вас есть
подходящие   источники  информации,  дайте
знать, пожалуйста.  Меня  можно  найти  на
WorldofSpectrum. 

utz 
irrlichtproject.de
irrlichtproject.blogspot.com



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

Об оболочке - журнал состоит из разделов, а разделы из статей.

От авторов - предисловие: Прошло 8 лет с момента выхода прошлого номера Info Guide. Что изменилось на Спектруме за это время?

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

Комьюнити - Forever 2015: отчет с демопати для всех 8-битных компьютеров.

Комьюнити - DiHalt 2015: отзывы от Lilka и Louisa.

Комьюнити - Как это было в Бразилии: история развития Спектрума в Бразилии от Paulo Silva.

Комьюнити - Беседа с Tiboh/Debris - программистом из Красноярска, долгие годы занимавшимся обработкой архивов спектрумовских программ.

Комьюнити - интервью с Raver/Phantasy взятое на irc.forestnet.org

Code - Этюды: Вызов функции по номеру, Поиск текста по номеру, Определение наличия музыкального сопроцессора, Установка пикселя на ATM Turbo 2, Библиотеки процедур в ALASM, Короткий генератор случайных чисел, Ускорение LD:PUSH.

Code - точка зрения: проекция пространства на экран из одной точки.

Code - чанковый эффект: Magnets stretching

Code - О мерцающем бордере: использование мерцание для повышения разрешения на бордере.

Code - Скриптование в демо: синхронизация эффектов под музыку и не только.

Графика - режиссура в демо: палитра изобразительных средств в Демомейкинге.

Графика - Мини-опрос художников: Dimidrol, Einar Saukas, Sand, Rion, riskej.

Графика - интервью с художником RayNoa/MAYhEM.

Музыка - Синхронизация музыки: nq рассказывает о создании треков под таймлайн.

Музыка - Беседа с MmcM/Sage group, известным AY-музыкантом, о его знаменитой технике.

Музыка - Беседа с Manwe/SandS - известным композитором, одним из старейших демосценеров России.

Музыка - Однобитная музыка: почему бипер ZX Spectrum продолжает вызывать восхищение?

Музыка - Горизонты турбосаунда: Cj Splinter делится опытом работы с TurboSound.

Музыка - Снова о плейерах Pro Tracker 3.x

Музыка - Музыкальный движок Muse 128b.

Системки - Как приручить IAR C Compiler.

Системки - Оберон для ZX Spectrum: Тонкости при разработке на Обероне в среде ZXDev (часть 1).

Системки - Оберон и ассемблер: Сопряжение с ассемблером (часть 2).

Системки - ZX-Basic Compiler: расширяемый кросс-компилятор.

Системки - Программы с поддержкой HDD, или "Linux" для Спектрума с винтом (или SD-картой).

Системки - iS-DOS/TASiS: о базовых принципах программирования под ОС iS-DOS/TASiS (часть 1).

Системки - iS-DOS/TASiS: как писать игры под iS-DOS/TASiS (часть 2).

Системки - iS-DOS/TASiS: Работа с палитрой и переключение графических режимов в TASiS (часть 3).

Металлолом - о строении экрана 6912 с аппаратной точки зрения.

Металлолом - Палитра для ZX Spectrum в различных графических режимах.

Металлолом - Эмуляция контроллера дисковода 1818ВГ93.

Дикий ум - Генерация и оптимизация кода в компилятора (часть 1)

Дикий ум - Генерация и оптимизация кода в компилятора (часть 2).

Дикий ум - ловля багов: самые типичные ошибки, при разработке на ассемблере Z80 (часть 1).

Дикий ум - ловля багов: самые типичные ошибки, при разработке на ассемблере Z80 (часть 2).

Дикий ум - алгоритм сжатия видео - 16 цветов на точку.

Игрушки - Разработка игр на Evo SDK (часть 1).

Игрушки - Разработка игр на Evo SDK (часть 2).

Игрушки - секрет успеха игры Jet Set Willy выпущенной в 1984 году.

Игрушки - Metal Man Reloaded: История создания от Oleg Origin.

Игрушки - Строение скриптового движка игры на примере L7 script engine.

Мыльница - Секретные кнопки в играх: Project ROBO, Ninjajar!, Uwol, Quest for Money, Zooming Secretary, Game About Squares.

Мыльница - письма: Kq, elfh, mig'95, wbr^NOT-Soft.

Мыльница - errata: Работа над ошибками.

Мыльница - об авторах журнала.


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

Похожие статьи:
Игротека - SNAKE-HELP2. Принципы игры и история создания.
Poem - каза][станский трип ice'di.
Внимание - Памятка пользователю сети SPbZXNet (продолжение).

В этот день...   21 июля