Как стать автором
Обновить

Почему на iOS делают музыку, а на Android и Windows Phone нет?

Время на прочтение 4 мин
Количество просмотров 142K

Меня всегда интересовал вопрос, отчего же на iOS столько крутых музыкальных приложений, а на Android какой-то шлак, прости господи. И я решил в этом вопросе разобраться, как всегда гугл пришел на помощь.

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


Кстати, в этой статье не забудем мы и про «вот-вот-вот-уже-скоро-выйдет» Windows Phone 8, и Windows RT.

В общем-то, суть проста разработчики музыкального софта под Android просто не могут сделать хорошо работающее приложение под эту операционную систему. Почему?

Что в Android?


Все дело в том, что парни в Google не озаботились проблемами задержки (latency) аудио-сигнала. (Превед ASIO для Windows !). Латенси в Android просто ужасна. Стандартная задержка в Andiod – 100 мс. Если для обычных плееров и других приложений – это не критично, то для приложений для создания музыки, как сами понимаете, это ни в какие ворота не лезет.

Еще раз – latency – это задержка между тем, как вы произвели какое-то действие, например, нажали клавишу на виртуальной клавиатуре (в этом случае в задержку вносится, как правильно заметили в камментах и задержка самого тачскрина) или дернули струну на реальной подключенной к устройству гитаре и услышали звук ( в этом случае задержка тачскрина никакой роли не играет, а латэнси определяется только размером буффера, в котором накапливается аудио-сигнал и тем путем, который проходит сигнал внутри устройства, и именно про эту latency-задержку мы будем говорить). С такой дикой задержкой ни одно музыкальное приложение будет просто не комфортно использовать.

В общем, тут парни из Google дали маху, как говорится. В то время, как парни из Apple сделали все строго наоборот. У них, как говорят, задержка составляет около 10 мс и даже ниже. И это незамедлительно использовали программисты, разрабатывающие музыкальный софт под мобильные платформы.

Для Android все плохо? Хм, скорее да, чем нет, но и отчаиваться тоже рано. В Google осознали свой промах. И в Android 4.1 Jelly Bean постарались исправиться. По крайней мере, заявлена цель в 10мс и ниже. Плюс ко всему, заявлена поддержка USB-audio устройств и многоканальной записи, а это качественные внешние аудио-интерфейсы. В общем-то, круто.

Но скоро сказка сказывается, да не скоро дело делается. Помимо того, что нужно обеспечить поддержку низкой задержки на уровне операционной системы, нужно дать разработчикам возможность пользоваться этой задержкой, а для этого нужно использовать новое API, с которым разработчики, скорее всего, еще не знакомы. Ну и опять же с Android сыграет злую шутку весь зоопарк их устройств. Если, на Samsung Galaxy Nexus, как говорят, удалось добиться задержки в 12мс (неплохо, но менее 10 — гораздо лучше и именно это привлечет разработчиков), то кто даст гарантию, что на железе от Asus, а не Samsung можно будет добиться того же? Тем более есть данные, что на вышедшем летом планшете Nexus 7 с латенси до сих пор есть проблемы.

С другой стороны, есть мнение, что обычным делом для Jelly Bean будет задержка примерно в 15 мс, и этого уже вполне достаточно для «среднего пользователя». Опять же, не исключено, что некоторые вендоры устройств под Android будут стараться уменьшить latency на своих устройствах и позиционировать их, как «устройства для музыкантов».

Итак, что же нам, как людям неравнодушным к музицированию, обещает Andriod 4.1 Jelly Bean?

• Поддержку USB Audio, через Android Open Accessory Development Kit
• Многоканальное аудио через HDMI
• Доступ аудио-кодекам на уровне платформы (с множеством прикольных низкоуровневых фишек)
• Audio record triggering
• Audio preprocessing
• Audio chaining, что среди прочего означает одновременное воспроизведение нескольких потоков.
• Media routing
• Поддержка Midi (была еще на ICS)

В общем-то, с одной стороны все радужно и перспективно, но с другой не понятно, как это все будет реализовано на конкретном устройстве. И опять же, сколько аппаратов под Jelly Bean сейчас на рынке?

А что же Windows?


Ну, для пользователей десктопных версий Windows 8 в Desktop mode для x86 архитектуры все остается по-старому. Нет, даже лучше. По измерениям парней из Cakewalk их продукт на Win 8 работает даже быстрее, чем на Win 7!

Ну, а мобильные приложения? Metro Mode, Windows Phone 8, Windows RT?

До недавнего времени все было плохо, парни из Microsoft ставили перед собой цель в те же пресловутые 100мс задержки. И все по этому поводу сокрушались, мол, как же так! И правильно сокрушались. Ладно бы у Microsoft не было опыта (как у Google) в решении подобных вопросов, но еще в Vista появилось WASAPI (Windows Audio Streaming API), с помощью которого и т.н. «эксклюзивного режима» можно было бы добиваться низких задержек. И тут такой косяк! Кое-кто даже предположил, что Steinberg напишет ASIO-драйвера для Win RT, как они написали их для Win NT, где еще не было WASAPI. Хм, надо ли оно Steinberg? То-то и оно…

Но горевали недолго, те же парни из Cakewalk получили подтверждение от Microsoft, что в Win RT будет поддерживаться WASAPI и т.н. «эксклюзивный режим» (правда, только через C++). Это потенциально обещает задержку на уровне iOS устройств. Но опять же, пока устройств на руках нет, делать какие-либо выводы рановато.

Так же остается открытым вопрос о поддержке USB-audio интерфейсов. Ну, а встроенная поддержка midi в Metro хоть и не заявлена, но она «high in their list», сиречь в приоритетном списке, так что уже можно ждать апдейтов.

Что в итоге?


Подводя итог можно сказать, что iOS, на данный момент, — это бесспорный лидер по количеству и качеству софта для музыкантов и производства музыки. Т.к. все о чем говорилось выше у них уже давно реализовано.

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

Внимательный читатель, наверно, заметил, я все больше говорил про Win RT, а Win Phone 8 у меня была только в заголовках. Это от того, что про Windows Phone 8 мало что известно в плане музыкального применения и работы со звуком. По словам MS, это все же две разные платформы, хоть WP 8 и основана на RT. Последний факт дает надежду, что в телефонной версии Windows 8 все буде примерно так же, как в Windows RT.

Комментарии и исправление приветствуются!
Теги:
Хабы:
+52
Комментарии 108
Комментарии Комментарии 108

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн