Решил окончательно перенести дневник на g+. Здесь останутся только новости сайта.Алгоритмические 8-битные композиции в одной строчке кода: http://countercomplex.blogspot.com/2011/10/algorithmic-symphonies-from-one-line-of.html

Онлайн-версия: http://wurstcaptures.untergrund.net/music/

Удивительно, как всего в нескольких символах удаётся закодировать тембр и мелодию, партии ударных, баса и т.д. Надеюсь, это направление заинтересует многих, ведь 8-битная музыка сейчас популярна.

Мои композиции.

1. t>>3|t<<2&t|t+5e3>>4|t-14>>5
2. t&t/170*2+t%31*0.1
3. t>>4|t%45|t>>9
4. t<<1>>1^t*3|t>>5|t>>3
5. t>>10<<t+t*1e-5<<3*t|t>>3
Сделал веб-реализацию своего алгоритма отображения информационного графа на решётку однородной вычислительной структуры: систолического массива, IntellaSys S40, GreenArrays G144.

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

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

Японский суперкомпьютер K («Кей») сейчас впереди планеты всей. До 10 петафлопс и очень хорошие показатели энергоэффективности. Лично мне больше всего нравится, что он основан на собственных разработках Fujitsu: 8-ядерный микропроцессор SPARC64 VIIIfx (пока в количестве 548352 штук) и коммуникационная топология 3D тора Tofu interconnect. Скучно смотреть на суперкомпьютеры, изготовленные из обычных CPU, GPU и прочих общедоступных компонентов.Игра ChipWits появилась в 84-м на компьютере Macintosh. Суть её заключалась в программировании робота для совершения различных действий в лабиринте. Разумеется, подобные игры существовали и до, и после ChipWits. Уникальность данной игры заключалась в том, как был организован процесс игрового программирования на языке IBOL (Icon Based Operating Language). На двумерной матрице располагались «чипы», ответственные за совершение элементарных действий робота. Между этими чипами устанавливались связи, при необходимости использовались чипы-«провода» и т.д. В ассортименте были чипы, которые осуществляли условный переход, работу со стеками (у робота было 3 стека). Кроме того, некоторые чипы-«операторы» допускали параметризацию конкретными «аргументами». Игра была написана на диалекте языка Форт под названием MacForth.

Не смотря на последовательный характер выполнения операций, программирование на IBOL удивительно напоминает процесс размещения макроузлов в решётках мультикомпьютеров на кристалле S40/GA144. Думаю, было бы интересно добавить в IBOL «взаимодействующие последовательные процессы» и учесть опыт программирования и использования реальных автономных роботов («В 1979 году была разработана адаптивная система управления автономного робота, основанная на использовании однородной систолической структуры»). Могла бы получиться интересная и полезная игра.

В 1946-м году вышел в свет рассказ «Компьютер по имени Джо» Мюррея Лейнстера. Удивительно то, что в рассказе фигурирует глобальная децентрализованная компьютерная сеть. Так же, как и в современном интернете в сети «логиков» существуют проблемы приватности и цензуры. Поисковая же система гораздо более развита: голосовой ввод информации (Google работает над этим), возможность выводить новые факты из существующих (были надежды на Wolfram|Alpha). Случайный сбой в одном из компьютеров приводит к самоорганизации сети и зарождению ИИ (сингулярность Курцвейла?), что является завязкой рассказа. При всём этом вещь у Лейнстера получилась не «сухая» и наукообразная, рассказ отличают остросюжетность и хороший юмор.Тим Фоллин — один из лучших композиторов, сочинявших для игр. ZX, C64, AMIGA, NES и прочие игровые платформы. Везде можно было обнаружить его замечательные работы. В частности, на ZX он создавал многоканальные произведения для однобитного встроенного динамика (чип AY Фоллин недолюбливал). В его музыке слышны прогрессив-рок, фанк и элементы академической музыки. Фоллин — мультиинструменталист, играет на ф-но, гитарах, скрипке. Не смотря на все свои выдающиеся работы в области чиповой музыки, он терпеть не может синтезаторы и сэмплеры, предпочитая им живое, оркестровое исполнение.

Насколько я знаю, он уже давно бросил писать музыку для игр, но одну из его последних работ в этом жанре — музыку к игре Ecco the Dolphin: Defender of the Future я оцениваю особенно высоко. Композитор использовал при записи сэмплеры и живые инструменты, а музыку можно охарактеризовать (мало говорящими) эпитетами: минимализм и эмбиент. Результат получился очень достойный, уже без всяких скидок на ограничения звуковых чипов. Красивые, «кинематографические» композиции. Послушать (не все, правда, дорожки) можно здесь.

Мне неожиданно вспомнилось одно обстоятельство, связанное с романом «Мельмот Скиталец» английского писателя Ч. Метьюрина. Роман был написан в 1820-м году и относится к готическому жанру. Данный роман отличается сложной структурой и в этом отношении похож на ещё один готический роман того времени — «Рукопись, найденная в Сарагосе» Я. Потоцкого. Оба романа относятся к лучшим в своём жанре, а читать их рекомендуется в изданиях серии «Литературные памятники», не упуская примечаний.

Известно влияние «Мельмота Скитальца» на русских писателей.

«Британской музы небылицы
Тревожат сон отроковицы.
И стал теперь её кумир
Или задумчивый Вампир,
Или Мельмот, бродяга мрачный» (А. Пушкин)

Вернусь теперь к «обстоятельству», с которого начал рассказ. В романе Метьюрина мне встретилась любопытная нотная запись, о которой говорится следующее.

«Бесхитростную мелодию эту с её заунывными повторами наигрывал бродивший по лесу деревенский мальчик. Но человеку несчастному каждая мелочь кажется исполненной некоего тайного смысла; среди густеющего сумрака и под шелест удаляющихся шагов надорванному болью сердцу Элинор печальные звуки эти показались каким-то страшным предзнаменованием.»

Далее приведена сноска следующего содержания:

«Так как случай этот имел место в действительности, я привожу здесь нотную запись этой музыки, модуляции которой до крайности просты, а воздействие поразительно по глубине:»
dat/melmoth.png
Я набрал эту мелодию в LilyPond и получил MIDI-файл следующего содержания. Я бы погрешил против истины, если бы сказал, что был поражён, услышав эти «модуляции», но любопытство моё было удовлетворено.О происхождении морали.

«Основополагающие ценности выводятся из биологического кокона, сформированного эволюцией. Последнее можно доказать математически. Я объясню простыми словами: если взять двух представителей общественного вида, и у одного из них эгоизм является доминантой существования, в то время как другой проявляет более альтруистические наклонности, теория вероятности отчётливо показывает, что у второго индивида гораздо выше шансы на выживание в коллективе. Эта норма насильно внедрялась в различные этические кодексы, постулирующие всевозможные виды альтруистического поведения. Позднее этот закон был неумышленно лишён всякой привязки к эволюционным корням и трансформировался в религиозные доктрины. Однако с эволюционистской точки зрения это всего лишь результат действия селекционных механизмов, работавших на протяжении миллионов лет.» (С. Лем)

«В нашем доисторическом прошлом, мы должны были жить в единокровных семействах, окружённые родственниками, чьи интересы мы должны были желать защищать, поскольку они распространяли наши гены. Теперь мы живём в больших городах. Мы не живём среди родственников или людей, которые когда-либо отплатят добром за наши хорошие дела. Это уже не имеет значения. …наш разум не задумывается над тем, что причина добродетели фактически берет своё основание в жизни наших примитивных предков в маленьких группах.» (Р. Докинз)

Из этих цитат, если согласиться с ними, можно сделать вывод, что традиционная, «пещерная коллективная» мораль — атавизм. Вместе с ней теряют свой смысл традиционное воспитание, классическое искусство и т.д. Настало время крайнего индивидуализма — и оно требует своей, уже не «эволюционной», а чисто умозрительной системы моральных ценностей. Лично мне любопытно, какими могут быть культура и искусство, построенные на этих новых началах. Не думаю, что смог бы их принять.На днях (21 апреля) умер Макс Мэтьюс. Компьютерная музыка многим ему обязана. В Bell Labs (57-й год) Мэтьюз создал программу Music I, которая заложила фундамент для последующих языков программирования звука, таких как Csound, Supercollider и других. Известная среда Max/MSP также основана на идеях Мэтьюза и названа в его честь («Max»). Макс Мэтьюз занимался вопросами живого исполнения компьютерной музыки. В частности, он создал устройство Radio Baton, которое позволяло автору компьютерной пьесы дирижировать её исполнением.

Ross Bencina, автор программы AudioMulch, написал главу в книге о языке Supercollider (SC). Глава посвящена реализации серверной части SC (scsynth). Именно он в своё время портировал scsynth на Windows. Любопытно, что разработчики scsynth использовали минимум специфических возможностей языка C++: вместо классов используются структуры, вместо виртуальных функций — указатели на функции. В главе показано, каким образом Supercollider поддерживает перекоммутацию графа обработки аудиосигналов в реальном времени без щелчков и прерываний аудиопотока.

Любопытная книга Петра Семилетова Ересь звукозаписи представляет собой «пособие по домашней звукозаписи и любительской звукорежиссуре». Мне понравилась энциклопедичность материала, а также выбор автором программы Reaper в качестве DAW.

Среди бесплатных качественных VST-синтезаторов (таких, например, как synth1) особое место занимает визуальная среда ЦОС-программирования SynC Modular (SM). Её автор — Вадим Завалишин. Первые версии SM появились ещё в 2001-м для Windows и BeOS (интервью c разработчиком). Разработка была прекращена в 2003-м году, когда Вадим перешёл в компанию Native Instruments (Reaktor, внедрение Core Technology, статьи Вадима можно найти здесь). Немцев заинтересовала технология чрезвычайно эффективной динамической перекомпиляции, реализованная в SM. Данная технология позволяла пользователю работать на уровне простейших операций (арифметические команды, ветвления и т.п.) без заметного снижения быстродействия. Из этих элементарных «кирпичиков» строились более сложные конструкции, такие, как огибающие, фильтры и т.п. В обычных средах, таких как Max/MSP или Pd подобный «низкий уровень» либо вовсе скрыт от пользователя, либо неэффективен с точки зрения быстродействия. В 2010-м году SM стал официально бесплатным, его можно скачать с сайта, поддерживаемого энтузиастами. Разумеется, SM не лишён определённых недостатков. Внутренняя обработка в нём 32-битная с плавающей запятой. Нет поддержки массивов и оверсэмплинга. Управлять параметрами можно только по MIDI, с помощью сообщений CC. Общий подход к построению приложений в SM очень напоминает то, что я делал в своё время для мультикомпьютера Сифорт в условиях ограниченной локальной памяти вычислительных узлов. В одном из западных ВУЗов на основе SM был организован курс по аудио-ЦОС, пример задания.

Небольшой список доступной в интернете литературы по однородным вычислительным структурам (ОВС).На недавно открывшемся сайте Ю.Г. Косарева имеется множество материалов периода зарождения направления ОВС в нашей стране.Faust это функциональный язык программирования для ЦОС. В первую очередь для обработки звука. Язык многим обязан идеям из «программирования на уровне функций» Дж. Бэкуса. Компилятор Faust производит эффективный код (с поддержкой SIMD и мноядерности) для самых разных аудиоплатформ, в том числе и для VST. С удовольствием опробовал симулятор транзисторного электрооргана foo-yc20, созданного на Faust. Звучание вполне убедительное, если сравнивать с Вермоной, которая у меня когда-то была. Попробовал наиграть на нём мелодию М. Таривердиева из фильма «Любить».Вспомнились мне вдруг моменты из «Петербургских сновидений в стихах и прозе» Достоевского. Именно та часть фельетона, что «в стихах», где, как пишут литературоведы, «автобиографические его страницы написаны с глубоким задушевным лиризмом». Писатель вспоминает кое-что из своей молодости, времена двадцатилетней давности. Особенно отмечаю «видение на Неве», ярко, образно написанное переживание того, что обычно словами выразить почти невозможно. И следующую потом историю о мечтателе из «Белых ночей», какой она была на самом деле. Я особенно люблю у Достоевского философско-романтическое направление, которое роднит его с Гофманом и Одоевским.Бумажная сборная модель (без клея, масштаб 1:100) церкви Преображения Господня в Кижах.

dat/church600.jpg

Нельзя не отдать должное как строителям церкви, так и создателям этой модели.В последнее время появляется на свет всё больше современных версий старых легендарных электронных муз. инструментов. Вспомнить можно, например, электрическое пианино Rhodes MK7 или монофонический синтезатор Moog Little Phatty (потомок Минимуга). Теперь дело дошло и до цифровых синтезаторов. В 80-е годы была популярна среди музыкантов компьютерная система для работы со звуком на основе сэмплирования серии Fairlight CMI. В первых моделях серии использовался 8-битный звук на 8 каналах. Изменение высоты звука осуществлялось аппаратно, с помощью тактового генератора канала с использованием аналогового НЧ фильтра. ПО включало в себя редактирование волновых форм и секвенсер. Музыкант управлял системой с помощью компьютерной клавиатуры и светового пера. Вот-вот появится в продаже современная версия этой муз. рабочей станции под названием Fairlight CMI-30A (номер в честь 30-летия серии). В CMI-30A используется аудио-ускоритель на базе ПЛИС Crystal Core media processor, CC-1. С точки зрения программиста CC-1 представляет гетерогенную систему с массовым параллелизмом, в которой, в частности, реализованы оригинальные компоненты первых синтезаторов серии CMI. Интересно, что авторы решили поддерживать и фиксированную, и плавающую запятую на разных разрешениях. Об одной из ситуаций в обработке аудио, когда фиксированная запятая оказывается более предпочтительной, чем плавающая, говорится здесь.Louis Gorenfeld, автор статьи, которую я накануне перевёл, известен ещё и другой работой об использовании псевдо-3d в старых играх, в первую очередь гоночного типа. Исследование очень обстоятельное. Интересно, что в последнее время подобных исследовательских статей на темы, связанные с внутренним устройством старых игр, становится всё больше. Например, вот этот труд посвящён игре Pac-man.

Olli Niemitalo и Matthew Gambrell исследовали звуковой FM-чип от Yamaha и добрались до содержимого таблиц из ПЗУ. В документе показано, каким образом авторы чипа сумели реализовать FM-синтез (на самом деле фазовую модуляцию) без единого умножения. На странице Olli Niemitalo имеются очень полезные заметки, например, по поводу хранения таблиц с использованием конечных разностей 3-й степени, или введение в цифровую обработку аудиосигналов для начинающих. Может возникнуть вопрос: зачем изучать эти старые трюки? Дело в том, что локальная память вычислительного узла в системе с массовым параллелизмом является очень ограниченным ресурсом, отсюда и интерес к старым решениям.

Перевёл и дополнил статью по поводу FM-синтеза с разрешения автора.

Архив 2009-2010 гг.