Эта история — отличный пример для тех, кто находит любые отговорки, чтобы не приступать к реализации заветной идеи. Белорусский музыкант и мультимедиа-художник Андрей Савицкий с нуля изучил все технические аспекты, самостоятельно разработал приложение Zillidrone и опубликовал его в AppStore. О начале пути, сложностях и дальнейших планах Андрей рассказал dev.by.
Программист, но не совсем
Андрей признаётся, что никогда бы не подумал, что придётся заниматься написанием текстового кода. Музыкант всё же занимался программированием, использовал в работе Flash Action Script и XAML в WPF, но его знаний было недостаточно для создания полноценного музыкального приложения, ориентированного на профессиональное использование.
«Параллельно занимаясь исследованиями в области программного обеспечения для художников и музыкантов, я волей-неволей занимался визуальным программированием. Это ведь тоже программирование, но другого рода, когда алгоритмы обработки данных создаются не текстовым кодом, а графическими блоками и связями. В частности, я много работал со средой Pure Data и VVVV, которые, используя виртуальный язык программирования, позволяют создавать музыкальные инструменты, обрабатывать видео, сенсорные данные и вообще любые цифровые события», — рассказывает Андрей Савицкий.
Когда несколько лет назад вышла версия визуального языка програмирования Pure Data, совместимая с iOS и Android, Андрей задумался о монетизации имевшихся знаний.
«С появлением версии для мобильных платформ всё изменилось. Мне не нужно было тратить время на изучение, например, CoreAudio для работы со звуком. Весь звуковой движок создан в Pure Data, для AppStore оставалось фактически сделать только интерфейс с контроллерами, отсылающими сигналы в PD», — говорит собеседник.
Теперь все упиралось в создание интерфейса. Просмотр обучающих видео показал, что сложностей с языком Objective-C не возникнет. В интернете подробно разобрано решение каждой задачи, есть масса форумов, где всегда помогут новичку. «Так что я купил Macbook, лицензию разработчика iOS и задал в Сети вопрос, как нарисовать кнопку в Xcode», — вспоминает первые шаги Андрей. Спустя несколько недель у музыканта была уже работающая программа со своим интерфейсом.
Советы новичкам: как освоить Objective-C
Андрей подчёркивает, что не ставил перед собой цели выучить язык программирования. Для него это было лишь средством к достижению цели — собственному приложению. Разработчик не считает себя профессиональным программистом: «Раньше использовались такие слова, как автолюбитель, радиолюбитель. Сейчас они почему-то вышли из оборота, но мне нравится название «программист-любитель» — это именно про меня».
Вот несколько рекомендаций начинающим от Андрея Савицкого.
- Нужна стимулирующая идея. Именно она и видение конечного продукта придают смысл постепенному, вдумчивому изучению самого необходимого на данный момент материала. Начинающему программисту-любителю гораздо легче усвоить информацию, если он формирует для себя некую конечную цель и идёт к ней маленькими шагами, решая постепенно одну задачу за другой. Тогда обучение приобретает смысл и даже приносит удовольствие, так как появляется уверенность в своих способностях.
- Как ни странно, книги оказались бесполезны. Решая реальные задачи, я учился быстрее, чем по книгам.
- Программирование — это не экспедиция в дальний космос. Все проблемы уже решены, не отчаиваемся, если не сразу всё понятно или не сразу всё работает.
- Заручитесь поддержкой профессионалов, но не беспокойте их по мелочам. Спрашивайте совет, когда окажетесь в настоящем безвыходном тупике.
- Предпочтительнее пользоваться англоязычными ресурсами и форумами, там вас никто не упрекнет, что вы книжек не читаете и двоечник, ответят только по делу.
Создавать на ходу
Идея создания музыкального приложения Zillidrone появилась не случайно. Во-первых, Андрей давно увлекается электронной музыкой и знаком с соответствующим софтом. Во-вторых, сказались условия проживания. Белорус на тот момент жил в Германии, где музыкальная сфера хорошо развита.
«Индустрия электронных инструментов и звукопроизводство там очень развиты. Думаю, они вполне сопоставимы с ИT-предпринимательством в Беларуси по масштабу. Это и стартапы, создающие уникальные звуковые устройства, и разработчики аудиософта, и профильные издания, магазины, международные ярмарки, институты по исследованию акустики, школы, академии», — говорит Савицкий.
Zillidrone — это комплекс музыкальных модулей: драм-машина с тремя типами перкуссий, сэмплер, двамульти-осциляторных синтезатора, и шесть эффектов обработки сигнала, каждый из которых имеет свой 32-х шаговый секвенсер, и режим автомэйшн (запись изменения контроллеров) для эффектов и синтезаторных контроллеров. Программа включает библиотеку из 4 категорий сэмплов: snare, hi-hats, kicks и synth (всего их 400), а также предусмотрена возможность загрузки пользовательских сэмпл-паков.
Разработчик Zillidrone поясняет, что европейские реалии другие. Например, многие ездят на работу в другой город, и дорога в поезде занимает час-полтора. Вместо разглядывания пейзажей можно заняться полезным делом, скажем, программированием.
«На тот момент на рынке музыкальных приложений уже сложилась тенденция выпускать программы с чётко разделённым функционалом. Это может быть очень мощный синтезатор, или эмулятор драм-машины, или эффект-процессоры. Для одновременного их использования и синхронизации есть отдельный софт и протоколы. Но если музыкант, запустив пять-шесть приложений, может создать интересную композицию на планшете, то восстановить такую комбинацию снова и воссоздать композицию живьём на концерте не получится», — так Андрей объясняет, почему существовавшие приложения его не устраивали.
«Моя идея заключалась в разработке автономного приложения, которое включает в себя необходимый минимум аудиоинструментов для создания почти полноценных композиций с условием, что музыкант может работать с музыкой где угодно, когда у него есть время. А потом просто открыть проект и сыграть эту композицию на концерте в клубе, не беспокоясь о том, какие программы он запускал для создания той или иной записи, — объясняет собеседник. — Принципиальный момент также в том, что речь не идет о звукозаписи, а именно об игре живьём ранее созданного проекта. Открыв композицию, её нужно оживить своим участием, музыкант должен её сыграть, хотя в программе и присутствует функционал записи и воспроизведения аранжировки».
Автор признаётся, что создавалось и для себя, и для других музыкантов, и для получения прибыли. Точное время, которое понадобилось для написания программы, посчитать сложно. Первые два месяца ушли на изучение Objective-C, интерфейс и юзабилити. Далее началась тестовая дистрибуция на Testflight. После чего настал черёд обучающих видео, пакетов с сэмплами, добавление поддержки Dropbox, протоколов MIDI и Audiobus. Вместе с этим шла чистка приложения от багов.
Выход Zillidrone в AppStore прошел без каких-либо трудностей.
Разработчик приложения говорит, что всё делал сам, но в нескольких случаях пришлось обратиться за помощью к профессионалам: иногда для экономии времени, а порой, чтобы понять, решаема ли проблема в принципе. Однажды Андрей столкнулся с задачей, решение которой смог сказать только инженер из Google, потому что ранее ей никто не занимался.
«И, конечно, еще очень важно, когда есть люди, которые просто поддерживают твою идею и дарят свою продуктивную критику. Я вообще очень благодарен людям, помогавшим с некоторыми неподъемными для самоучки вопросами», — отмечает Андрей Савицкий.
Складывается впечатление, что время грувбоксов прошло, и достаточно скачать на планшет Zillidrone либо аналогичное приложение. Андрей поясняет, что несмотря на широкий функционал его программы, сравнивать Zillidrone с серьёзными музыкальными инструментами некорректно: «Профессионалы упакованы своими устройствами, им ещё одна игрушка не нужна. Zillidrone делался для людей, уже знакомых с принципами создания электронной музыки. Это продукт ориентирован не на массового пользователя. Моя аудитория — музыканты-любители. Но сейчас я выступаю на концертах только с Zillidrone».
Релиз приложения — только начало
После выхода приложения наступает очередной важный этап — его поддержка и обновление. Планы у Андрея на выпуск свежих версий есть: «Сейчас вышла новая версия с интересным функционалом: можно записать с аудиовхода любой звукоряд, создать из него сэмплы и работать уже с ними. Также можно записать свой голос с микрофона или гитары и делать из этой записи новые композиции на лету. Кроме этого появилась возможность использовать Zillidrone как эффект-процессор, то есть аудиосигнал с внешнего источника обрабатывать эффектами моей программы. Дополнительно я готовлю и бесплатную версию с ограниченным функционалом, чтобы новички могли без затрат оценить потенциал программы».
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.