Интервью: Как и для чего разрабатывается музыкальное ПО для планшетов

Когда появился iPad, сразу стало ясно, что электронные музыканты положат на него глаз. Так и случилось: для планшетов написали колоссальное количество музыкального софта самых разных видов и качества. Скажем, знаменитый клавишник Dream Theater Джордан Рудесс, много лет экспериментирующий с нестандартными интерфейсами для музыкальных инструментов, активно занимается написанием программных синтезаторов для iPad. Вот, например, его MorphWiz.

Даже именитые исполнители порой используют планшеты: первыми на ум приходят Gorillaz, недавний альбом которых был записан целиком на iPad (хотя сводился, естественно, отдельно), и Бьорк, также активно использовавшая свой планшет для написания материала для альбома Biophilia (он, кстати, потом и выпущен был в качестве приложения для iPad).

Разработка музыкальных приложений для планшетов ведётся и в России. Проект Warmplace начался, впрочем, задолго до появления нынешнего поколения портативных компьютеров на iOS и Android. Собеседник «Компьютерры» — Александр Золотов, создатель проекта, начинавший работу над музыкальным ПО для карманных устройств ещё в начале прошлого десятилетия, когда миром правили карманный компьютер Palm.

— Расскажите, пожалуйста, о себе и о своём проекте Warmplace.

— Я родился в 1983 году и живу по сей день в городе Екатеринбурге, в рабочей атмосфере которого сформировались мои пристрастия к электронной музыке, технике и компьютерам в особенности. Возможно, это сочетание интересов и специальность системотехника, полученная в будущем, и привели меня в конечном итоге на более глубокий уровень понимания звука — к экспериментам с программированием синтезаторов, музыкальных редакторов и т.д.

Warmplace.ru (скриншот)

В начале 2000-х я заболел идеей карманного трекера-синтезатора. К примеру, гуляете вы где-нибудь в лесу или лежите на травке и наблюдаете за плывущими облаками. И вдруг внезапно в голове вашей зарождается красивая музыкальная композиция. Вы достаете из кармана миниатюрный компьютер, записываете на нём мелодию, часть инструментов собираете из кубиков-генераторов на экране, пение птиц и шелест листьев пишете с микрофона. Окончательное прослушивание в наушниках, мастеринг. И всё, произведение готово! Конечно, в то время это звучало более фантастично, чем сегодня. Я начал писать первую версию такой программы (PsyTexx) и по ходу дела как-то подсознательно стал ощущать теплоту самой идеи. Во-первых, вы более свободны, не привязаны к месту. Во-вторых, здесь получается своеобразный интерфейс взаимодействия человека с природой посредством машины. Эти мысли привели меня к задумке «Тёплого места» — уютного сайта, где я выкладывал бы свои творения и делился теплом с окружающими. Так родился WarmPlace.ru, на первых порах символом которого был КПК, утопающий в зелёной траве и лучах солнца. А в 2005 году мною был закончен музыкальный альбом «WarmPlace» — первый в мире написанный с нуля на одном лишь КПК (под управлением PalmOS) с трекером PsyTexx. Этот и другие альбомы можно послушать на одноимённом сайте.

— С чего и когда началось Ваше увлечение демосценой? Самого беглого взгляда на сайт достаточно, чтобы увидеть софт, написанный аж под DOS, и даже в новых программах интерфейс отчётливо стилизован под 8bit; из этого можно сделать вывод, что увлечение давнее, не так ли?

— В мир демосцены я с головой окунулся в 1995 году. Два ярких события стояли у истоков этого увлечения. Первое — просмотр демки Crystal Dream II от группы Triton.

Второе — знакомство с музыкальной программой FastTracker2. В том и другом случае — потрясение увиденным и услышанным до мурашек по коже. В итоге мозг был полностью переформатирован под демосценические стандарты. Пиксели, 8бит, сэмпловая музыка — всё оттуда же. Это, конечно, повлияло на всё моё последующее творчество, чему я несказанно рад.

Впоследствии я стал пытаться делать свои демки, какие-то графические и музыкальные эксперименты. Сначала на QBasic; потом на интерпретаторе Си, встроенном в графический пакет Autodesk Animator; затем в ход пошли Assembler, Visual Studio, GCC. Демки, в моём понимании, передают особую атмосферу компьютерного искусства, самодостаточного, не похожего ни на что. Этим я пытаюсь руководствоваться и в своих программах. Например, если беглым взглядом окинуть их скриншоты на сайте warmplace.ru, то вы почти не найдёте фотореалистичных интерфейсов, стилизованных под устройства из реального мира (например, реалистичные крутящиеся ручки с тенями, фотографии панелей реальных синтезаторов). Я нахожу такое попугайство неприемлемым, отвлекающим от сути приложения. С точки зрения пользователя я бы просто чувствовал себя обманутым, видя на экране электронную лампу, но не зная при этом, насколько хорошо внутренние алгоритмы эмулируют ламповое звучание и делают ли это вообще.

— С чего и когда началось создание именно программного обеспечения? Какая мобильная платформа для вас сейчас наиболее предпочтительна и почему?

— Первую строчку кода я написал, если не ошибаюсь, в 1991 году. Мой старший брат Евгений Золотов тогда настоял на покупке компьютера. Им стал самодельный ПК «Специалист» с восьмибитным процессором i8080 (а точнее — его советским аналогом), 48 килобайтами памяти и монохромным выходом на телевизор. Конечно, моё отношение быть серьёзным ещё не могло, и дальше строки PRINT 10 я не уходил. Куда интереснее были игрушки с кассеты, которая шла в комплекте. Брат же довольно быстро освоил Ассемблер и начал писать свои программы, вводя код прямо в виде шестнадцатеричных чисел, помня наизусть коды всех машинных инструкций.

На втором компьютере (клон ZX Spectrum 1993 года) я, опять же глядя на деятельность брата, постарался детальнее освоить язык Бейсик. И, спустя некоторое время, будучи к тому же ярым фанатом тепловозов и железной дороги, написал свою первую «серьёзную» программу — симулятор поезда с видом из кабины, жутко примитивный, но рабочий. Исходники не сохранились, и слава Богу.

Первую поделку, которой реально можно было пользоваться, я написал спустя годы. Это был WorldDesigner — редактор несложных 2D-стрелялок под DOS: рисуем спрайты, затем уровни, выставляем «плохих парней», монстров, жмём Play — всё, можно играть!

В данный момент наиболее удобной для себя считаю систему Linux. Во-первых, это вроде конструктора, собираю под себя ровно то, что нужно, отсекая лишнее. Из оконных менеджеров, например, предпочитаю минималистичный и быстрый OpenBox. Во-вторых, здесь более естественно смотрится GCC — мощный инструментарий разработчика. Один скрипт при помощи GCC компилирует мои программы сразу для нескольких систем: Linux, Windows, Windows Mobile, PalmOS, Android, Maemo, Meego. И всё это не выходя из Linux-терминалки.

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

— А в том, что касается собственно программирования, с чем проще работать, с iOS или Android?

— Сложно ответить. В каждой системе какие-то свои подводные камни. Но, пожалуй отдам предпочтение iOS. Она более хорошо отлажена, меньше неприятных сюрпризов. Впрочем, это и неудивительно, система закрытая и заточена под определённое железо. Чего не скажешь про зелёного робота: сотни устройств, неофициальные сборки Android, сырой NDK для нативных приложений.

— На будущий год планируется выпуск OS BlackBerry 10, построенной на основе системы реального времени QNX. То, что они получат значительную долю рынка в России, далеко не факт, но всё может случиться. Вы не интересовались этой системой?

— Довольно немного знаю о QNX. Помню, в конце 1990-х она распространялась бесплатно в виде образа для дискетки, где помещалась вся ОС, оконный менеджер, браузер и прочее. И всё это летало на стареньком 486SX, в отличие от Windows. Приятная штука. Думаю, разработка нативных приложений для неё была бы интересной. Но боюсь, что бизнес-аудитория BlackBerry — не совсем то, что нужно мне сейчас для распространения звуковых программ. Хотя кто знает. Всё меняется.

— Если говорить по конкретным программам, то что из себя представляет SunVox и как появилась идея её создания? Она при первом же взгляде вызывает массу ассоциаций с NI Reaktor, хотя и не с таким богатым функционалом. На кого, в сущности, рассчитана эта разработка?

— У истоков SunVox как раз то, о чём я писал в ответе на первый вопрос. «Тёплый» музыкальный софт для наладонников. А в начале 2000-х полноценных трекеров для КПК вообще не существовало. Первая итерация — это трекер PsyTexx для платформы PalmOS. Его я успешно протестировал в полевых условиях, написав на карманном компе целый альбом. Практическое использование выявило и недостатки: движок PsyTexx был основан на старом трекерном формате MOD, а следовательно, мог поддерживать только восьмибитные сэмплы. Кроме того, из-за ошибок в проектировании PsyTexx оказался непереносимым на другие платформы. В надежде улучшить программу я было начал писать PsyTexx 2, опираясь на более продвинутый формат XM, но дальше alpha-версии дело не сдвинулось. Решено было создать что-то совершенно иное с нуля. То, чего не хватало мне во всех других музыкальных программах.

Примерно в 2006 году я начал писать SunVox. Требования были следующие. Кроссплатформенность — чтобы одинаково работал как на маломощных наладонниках, так и на обычных настольных ПК. И чтобы при этом графический интерфейс и логика работы не менялись от системы к системе. Встроенный модульный синтезатор, как в NI Reaktor, но слегка упрощённый, как в трекере Buzz (чтобы не распутывать паутину проводов). Встроенный трекер — демосцена здесь, конечно, наложила свой отпечаток, другие типы секвенсоров (пианоролл, матричный) я в то время вообще не рассматривал. Компоновка паттернов на тайм-линии с перекрытием и без привязки к дорожкам, то есть полная свобода.

Особенно сложным местом оказалось написание кода модульного синтезатора для слабых устройств. Например, мой Palm имел процессор с частотой около 150 мГц и был лишен математического сопроцессора. То есть 32-битные вычисления с плавающей точкой отпадали сразу. Поэтому было решено использовать 16-битные числа с фиксированной точкой на слабых компах и 32-битные — на мощных. В целом звук получался идентичным, за исключением большего количества шумов на наладонниках. В итоге — на КПК можно создавать полноценные композиции из десятков синтезаторов и эффектов. Это очень хороший показатель.

С 2006 года многое изменилось. Новые платформы, планшетные ПК, мультитач. А SunVox продолжает развиваться и по сей день хорошо справляется со своими задачами, позволяя писать музыку, не обращая внимания на то, какая у вас система, какое устройство. Программа постепенно обрастает новыми модулями, возможностями. А если какого-то звука/эффекта не хватает, то его, как правило, можно собрать из имеющихся модулей. Ну и, конечно, немаловажная деталь — SunVox полностью бесплатный, за исключением iOS- и Android-версий, где продаётся по смешной цене.

— Несколько вопросов по поводу VirtualANS: насколько программа идентична именно тому самому советскому синтезатору АНС? Каким образом производится интерпретация графической информации в звуковую? Кстати, если не ошибаюсь, аналогичные функции были в Camel Audio Cameleon 5000 (можно было, правда, загружать только BMP, JPEG не поддерживался).

— Идентична железному АНС на 100 процентов. Плюс некоторые дополнительные функции. Информация интерпретируется по следующим правилам: ось X — время; ось Y — тональность от самой низкой ноты к самой высокой; яркость точки — амплитуда синусоиды. Например, если высота картинки — 720 пикселей, то во время её проигрывания мы будем слышать 720 синусоид, играющих одновременно.

Скриншот VirtualANS с загруженным в него изображением

Полученный звук

Изображение, использованное для получения сэмпла

Я не знаком с Cameleon 5000, но думаю, что большинство программ, преобразующих изображение в звук, действуют по похожим правилам.

— Не было ли мысли сделать версию для планшетов? Например, для iPad есть немало весьма качественных программ для рисования (Procreate, например). Возможно, было бы вполне логичным обеспечить возможность загрузки в VirtualANS изображений, сделанных прямо в них?

— Открою секрет: работа над такой версией идёт. Надеюсь в ближайшем будущем порадовать всех продолжением VirtualANS.

— Планируете ли Вы какие-нибудь новые разработки в ближайшее время, ввиду активного развития устройств на iOS и Android и роста их системных показателей?

— Планов довольно много. Всеми поделиться, увы, не могу. Есть несколько идей для новых звуковых приложений. Кроме того, до конца этого года хочу выпустить версию мультимедийного языка программирования Pixilang для Android.

— Что из себя представляет Pixilang? Каково его назначение?

Pixilang — кросс-платформенный язык программирования для небольших программ, так или иначе связанных с графикой и звуком. По синтаксису — что-то среднее между Ассемблером, Бейсиком и Си. В отличие от большинства современных языков, в Pixilang используются некоторые принципы программирования, которые были модными в персональных компьютерах прошлого, когда программы писали, используя Basic или связку Бейсик + Ассемблер для однозадачных операционных систем:

  • программу можно писать без функций, просто списком инструкций с
    условными переходами;
  • сразу после старта программе выделяется чистый экран (или окно), к
    которому можно обращаться на уровне пикселей или использовать готовые
    графические примитивы.

Примеры моих приложений, написанных целиком в Pixilang: PixiTracker, PixelWave, SpectrumGen. Более того, новая версия VirtualANS тоже будет создана при помощи этого языка.

Что будем искать? Например,ChatGPT

Мы в социальных сетях