Нужно! +50 подписчиков для devby. Далучайся 📝
Support us

«Программист-любитель»: как музыкант освоил Objective-C и создал музыкальное приложение

Оставить комментарий
«Программист-любитель»: как музыкант освоил Objective-C и создал музыкальное приложение

Эта история — отличный пример для тех, кто находит любые отговорки, чтобы не приступать к реализации заветной идеи. Белорусский музыкант и мультимедиа-художник Андрей Савицкий с нуля изучил все технические аспекты, самостоятельно разработал приложение Zillidrone и опубликовал его в AppStore. О начале пути, сложностях и дальнейших планах Андрей рассказал dev.by.

Читать далее

Андрей Савицкий. Фото: Artes Liberales.

Программист, но не совсем

Андрей признаётся, что никогда бы не подумал, что придётся заниматься написанием текстового кода. Музыкант всё же занимался программированием, использовал в работе 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 как эффект-процессор, то есть аудиосигнал с внешнего источника обрабатывать эффектами моей программы. Дополнительно я готовлю и бесплатную версию с ограниченным функционалом, чтобы новички могли без затрат оценить потенциал программы».

Читайте также
VK займется дистрибуцией музыки на стриминговые платформы
VK займется дистрибуцией музыки на стриминговые платформы
VK займется дистрибуцией музыки на стриминговые платформы
SoundCloud увольняет 20% глобального штата
SoundCloud увольняет 20% глобального штата
SoundCloud увольняет 20% глобального штата
Як лідар Relikt i продакт Gismart будуе музычную студыю i жыццё ў Варшаве
Як лідар Relikt i продакт Gismart будуе музычную студыю i жыццё ў Варшаве
Як лідар Relikt i продакт Gismart будуе музычную студыю i жыццё ў Варшаве
Аляксандр Дземідзенка — лідар беларускага гурта Relikt і product owner у кампаніі Gismart — пра пераезд у Варшаву, сацыяльную ізаляцыю, выкліканую рэлакацыяй (спойлер — яе наш герой зусім не адчувае!), новы альбом Byli, Jość, Budziem і ў цэлым — жыццё беларускага музыкі-айцішніка ў польскай сталіцы.
The Chainsmokers станут первой группой, которая выступит в космосе
The Chainsmokers станут первой группой, которая выступит в космосе
The Chainsmokers станут первой группой, которая выступит в космосе

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.