Мена всегда интересовал вопрос, отчего же на iOS столько крутых музыкальных приложений, а на Android какой-то шлак, прости господи. И я решил в этом вопросе разобраться, как всегда гугл пришел на помощь.
Кстати, в этой статье не забудем мы и про «вот-вот-вот-уже-скоро-выйдет» Windows Phone 8, и Windows RT.
В общем-то, суть проста разработчики музыкального софта под Android просто не могут сделать хорошо работающее приложение под эту операционную систему. Почему?
Что в Android?
Все дело в том, что парни в Google не озаботились проблемами задержки (latency) аудио-сигнала. (Превед ASIO для Windows !). Латенси в Android просто ужасна. Стандартная задержка в Andiod – 100 мс. Если для обычных плееров и других приложений – это не критично, то для приложений для создания музыки, как сами понимаете, это ни в какие ворота не лезет.
Еще раз – 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.
Комментарии и исправление приветствуются!
Автор: CraSS