В предыдущей части цикла мы разобрались в том, как отличить смартфон с настоящим, а не маркетинговым, музыкальным потенциалом. Сегодня же мы поговорим о софте, который поможет его раскрыть. И не будем ограничиваться только приложениями-плеерами. Мы копнем глубже. Гораздо глубже.
Корень зла
Казалось бы, смартфон с хорошим DAC-чипом сможет обеспечить отличное звучание в любом случае. Увы, нет. И дело тут не только и не столько в подборе правильного приложения-плеера. Сама система Android становится почти непреодолимой преградой на пути меломана!
Дело в том, что вплоть до актуальных версий Android 5.0.* и 5.1 на уровне драйверов система “из коробки” воспринимает только режим 16/44.1 или 16/48. Довольствуется убогим штатным ресемплером и DSP-эффектами. Пользователи Linux, от которого Android получил ALSA в наследство, прекрасно знают эти “грабли”. Это стена, которую необходимо разрушить для получения действительно качественного звучания!
Всё, что выходит за рамки указанных выше ограничений, на лету проходит некачественную понижающую постобработку/передискретизацию. А это значит, что, независимо от “железа”, вы не получите возможность действительно слушать музыку в формате FLAC 24/96, не говоря уже о 24/192. Казалось бы, занавес. Тушите свет, сушите весла. Тема закрыта. Можно начинать Плач Ярославны, кормить троллей-фанбоев Google :), читать гневные комменты об оскорблении чести и достоинства их кумира. При этим не важно, что это “Божество” не дает им же использовать на полную катушку хорошее аудио-железо, появившееся в смартфонах еще в каменном веке во времена Galaxy S1. Не важны и не оправдавшиеся анонсы со стороны Google о исправлении косяков. Ведь это же Корпорация Добра. И миллионы мух не могут ошибаться. Здравомыслящим же остается только печалиться и посыпать голову пеплом…
Но нет! У нас тут, черт возьми, geek-комьюнити. Поэтому мы будет дорабатывать “ведерко” напильником самостоятельно! Вы рассчитывали прочесть очередной псевдоgeekовский бред со сравнением ресемплеров популярных плееров для Android или очередной опус о плацебо в лице эквалайзерных “улучшайзеров”? Не тот формат! Далее будет только хардкор. И только попытка решить проблему в корне, попутно матеря Корпорацию Добра на чем свет стоит.
Задача сводится к организации на базе Android-смартфона максимально линейного аудиотракта “приложеие-плеер→DAC-чип” взамен изгаженного системными ограничениями и службами монстра. То есть создать для Android аналог ASIO :)
Желаемыей результат
Пациент
В качестве подопытного сегодня у нас будет выступать заслуженный, но до сих пор сверхпопулярный “ветеран” среди смартфонов. Старый конь, не портящий борозду. Samsung Galaxy S3 i9300. То есть международная версия. Ни в коем случае не американская! Ликуйте, счастливые обладатели эс-третьего. После того, как вы пройдете описанные ниже шаги, ваш “старичек” будет вертеть на оси мироздания чуть ли не все современные флагманы по качеству звучания!
Почему S3? Всё просто и сложно одновременно. Во-первых, на борту международной версии этого смартфона трудится великолепный DAC-чип Wolfson WM1811. Datasheet последнего указывает на то, что мы имеем дело с маленьким монстром, способным при соотношении SNR (сигнал/шум) в 100 дБ не вспотев выдавать режим 24/96. Аппаратно. На уровне своих собственных драйверов. Но, к сожалению, изначально чип задушен самой ОС с ее захардкоженным режимом 16/44.1.
А во-вторых S3 является уникальным смартфоном, для которого существует бескомпромиссное софтверное решение, способное раскрыть весь потенциал этого чипа.
☠ Описанные ниже шаги применимы только для Samsung Galaxy S3. Не пытайтесь повторить их для других моделей смартфонов! Все действия вы проводите на свой собственный страх и риск. Автор не несет ответственности за ваши ошибки при выполнении инструкции. Но результат того стоит! :).
Подготовка
Для успеха эксперимента, кроме собственно Galaxy S3 нам понадобится следующий набор инструментов:
USB-драйверы для смартфона. Их можно добыть вот здесь;
актуальная версия TWRP (custom recovery). Забираем здесь;
последняя версия weekly-билда прошивки CyanogenMod 12 для Galaxy S3 (Non-official). Гарантированно работоспособна и беспроблемна на момент написания статьи была только эта версия! Нажимаем кнопку Download переходим дальше;
самая свежая версия Google Apps для CyanogenMod 12. Забираем от сюда;
ключевой компонент – кастомное ядро ОС Boeffla Kernel для CM12. Оно содержит тот самый вожделенный аудиодрайвер для DAC-чипа и позволяет сторонним приложениям-плеерам обращаться напрямую к DAC, минуя всевозможные штатные службы Android. Скачиваем здесь;
наушники. Это могут быть как внутриканальные арматурные “затычки”, так и полноразмерные наушники. форма и размеры не важны. Главное – качество. Нижней планкой для арматурных наушников могут служить Sony XBA-C10. Для накладных и/или полноразмерных наушников планка качества стартует с AKG K518DJ. Увы, что-либо менее качественное будет узким местом системы.
Готово? Хорошо. А теперь скопируйте на свой смартфон ваш любимый альбом в формате FLAC. Лично я для себя выбрал Belleruche – 270 Stories, Massive Attack – Mezzanine, Bonobo – Black Sands и Carmen Rizzo – Looking Through Leaves в качестве тестовых записей, покрывающих весь частотный диапазон и одновременно инструментально насыщенных. И воспроизведите его при помощи Neutron Music Player. Запомните звучание. Этот убогий и зажатый звук вы слышите в исполнении своего S3 в последний раз :). Зарядите смартфон до по крайней мере 70% емкости батареи. Продолжаем.
Подготовка завершена. Настало время действовать. Начинаем операцию по пересадке нашему смартфону правильных “мозгов”:
устанавливаем драйвер;
распаковываем архив с Odin и запускаем приложение с правами Администратора (!);
выключаем смартфон. Зажимаем кнопки Volume Down, Home и Power одновременно и держим их зажатыми до перехода смартфона в Download Mode. При отображении Caution -экрана нажимаем кнопку Volume Up для продолжения;
подключаем смартфон в этом режиме к ПК;
запущенный до этого момента Odin при подключении должен распознать устройство, выдав информацию о порте подключения в окошке ID:COM;
убедитесь, что в Odin у вас стоят галочки только(!) на пунктах Auto Reboot и F. Reset Time;
нажмите на кнопку AP в Odin и выберите .tar-файл с TWRP;
нажмите Start. В случае появления контрольно диалога, согласитесь с установкой;
дождитесь завершения установки TWRP и перезагрузите смартфон. Закройте Odin. Он нам больше не понадобится;
сделайте резервные копии всех важных данных, контактов, файлов и т.д. на ПК;
скопируйте на внешнюю sd-карту (не во внутреннюю память!) смартфона zip-архивы в CM12, ядром Beoffla и Google Apps.
выключите смартфон;
загрузите смартфон в режиме TWRP recovery. Для этого зажмите и удерживайте кнопки Voulme Up, Home и Power на ~5-8 секунд. Одновременно отпустите кнопки сразу же при появлении логотима TeamWin. Дождитесь загрузки меню TWRP;
зайдите в раздел Wipe. Перейдите в пункт Advanced Wipe. Отметьте галочками Dalvik Cache, Cache, System, Data и Internal Storage. Свайпните по ползунку Swipe to Wipe внизу экрана для проведения очистки (wipe) данных пунктов. После завершения wipe-а вернитесь в корневое меню TWRP;
зайдите в раздел Settings. Снимите галочку с пункта “Zip file signature verification”. Вернитесь в корневое меню TWRP;
зайдите в раздел Install. Через здешний аналог “проводника” найдите раздел external_sd. Это раздел внешней sd-карты. Навигация тут происходит с помощью тач-экрана. Потому это будет достаточно легко сделать. Разыщите в этом разделе файл cm-12-WEEKLY-8-i9300.zip. То есть тот самый архив с прошивкой CM12, который мы заблаговременно скопировали туда. Тапните по этому файлу. В открывшемся меню свайпните по ползунку Swipe to Confirm Flash для начала установки прошивки. После завершения установки вернитесь в пункт Install и снова зайдите в раздел external_sd;
найдите файл boeffla-kernel-3.0-alpha10-CM12.0-NG-i9300.zip и установите его;
перезагрузите смартфон;
после загрузки CM12 и стандартных действий по предварительной настройке системы, зайдитев Настройки/Settings системы и перейдите в раздел About phone. Тапните 7 раз по строке Build number для активации раздела Developer options. Вернитесь в корневое меню Settings/Настроек и перейдите в появившийся пункт Developer Options;
в разделе Developer Options активируйте пункт Advanced Reboot. Найдите пункт Root access и перейдите в него. Выберите опцию Apps and ADB. Закройте Settings;
снова запустите телефон в режиме TWRP Recovery. Для этого повторите действия пунктов 12-13;
зайдите в раздел Install и повторите знакомые по пунктам 15 и 16 действия по установке для архива gapps-lp-20141212-signed.zip;
перезагрузите смартфон;
зайдите в Play Store под своим аккаунтом. В разделе My Apps обновите все приложения Google. После завершения обновления найдите в Play Store и установите приложение SuperSU. Запустите это приложение и утвердительно ответьте на его запрос об обновлении. выберите пункт TWRP/CWM в диалоге выбора вариантов перезагрузки. нажмите Grant в диалоге о предоставлении приложению root-прав;
смартфон самостоятельно перезагрузится в TWRP и выполнит скрипт. Перезагрузите смартфон;
активируйте Boeffla Sound, переведя переключатель в положение On;
активируйте настройку DAC Direct. Это и есть то самое, ради чего мы и затеяли весь эксперимент! Это активация прямого обращения приложения-плеера к DAC, в обход всех ограничений и мусора ОС;
активируйте настройку FLL Tuning;
установите ползунок пункта Headphones Volume в значение 50-57. Для большинства наушников этого хватит. Но в дальнейшем вы можете экспериментировать со значениями этого параметра для достижения наилучших результатов. Для внутриканальных наушников с импедансом менее 32 Ω рекомендую устанавливать значение этого параметра не должно превышать 50. В случае с полноразмерными наушниками не рекомендую устанавливать значение данного параметра выше 57;
перейдите в меню Advanced Settings и установите галочку Set On Boot. Это позволит приложению с заданными параметрами загружаться при каждом старте ОС.
Настройка плеера Neutron Music Player:
после стартовых настроек и определения местоположения папки Music (рекомендую Manual-режим для того, чтобы Neutron не совал в медиатеку файлы из игр и т.д.), переходим в меню Settings плеера;
отключаем(!) все пункты в корневом меню кроме Automatic Gain Protection, Service, Lyrics и Ratings. Replay Gain и 64-Bit Processing должны быть отключены(!);
в пункте Resampling устанавливаем значение Audiophile;
переходим в пункт Audio Hardware меню Settings. Отключаем пункты Dither, Generic Driver (за музыку у нас теперь отвечает DAC-драйвер) и 32-bit Output (никакого переквантования!). Подтверждаем изменения.
Всё! А теперь, дорогие читатели, вы можете снова прослушать те же альбомы. Ну как? Чувствуете разницу? Теперь вы смело можете чихать на кривые ограничения, убогие штатные ресемплеры и понижающее переквантование ваших треков системой. WM1811 теперь работает так, как должен был работать изначально. В полную силу.
Связка Boeffla+Neutron с выключенными по максимуму настройками является на сегодняшний день эталонным решением.
Возможные варианты
Ваш смартфон называется не S3, но в нем есть хороший DAC-чип? В таком случае у вас есть множество иных вариантов по организации близкого к линейному аудиотракта.
Вот некоторые из них:
для OnePlus One существует такое же как и для SGS 3 решение. Да, для этого замечательного смартфона существует Boeffla Kernel! В этом смартфоне трудится решение от Yamaha. Упомянутое ядро можно забрать здесь;
Noozy. Если вы хотите выжать максимум возможного из своего смартфона, но при этом лишены возможности пользоваться всеми благами Boeffla Kernel, то вам поможет абсолютно бесплатный и уникальный по своим возможностям плеер. С его помощью вы приблизите аудиотракт своего смартфоа к ультралинейному. Noozy основан на разработке гиковской Noozxoide Labs – звуковом движке EIZO-rewire M, поддерживающем DAC-чипы BurrBrown, Sabre 32 (ESS ES-серии), Wolfson. А также чип-кодеки S-Master и Qualcomm на уровне драйверов. Этот движек, так же как и Boeffla Kernel, позволяет избавиться от системных служб обработки звука. Но у такого решения есть серьезный недостаток – оно не поддерживает Android 5.*. Увы и ах. Приложение может быть установлено на смартфон с “пятеркой”, но полноценно работать не будет. Плеер радостно сообщит вам, что работает в Debug-режиме и ограничится лишь мелкими “улучшайзерами” звучания на уровне собственных настроек эквалайзера. То есть без переключения на кастомные драйверы. Увы, только Android 4.*. Звук в данном случае требует жертв. Попрощайтесь с обновлениями на “леденец”. Или же откатитесь на более раннюю версию. Еще один недостаток состоит в том, что Noozy не поддерживает(!) FLAC, отличный от 16/44.1. Да, он способен отыграть 16/44.1 идеально. Без убогих штатных микшеров и семплеров Android. Но забудьте с ним о 24/96;
для владельцев смартфонов с чипом Qualcomm Snapddragon 800 (прежде всего производства Sony) есть замечательное решение – мод под названием Project Sonico. Это практически прямой порт DSEE HX фич великолепного плеера Sony ZX1 и смартфона Z3 на более ранние девайсы;
сообщество xda-developers работает еще над одной вариацией на тему DSEE HX и других аудио-наработок от Sony – портом приложения Walkman. Ознакомиться с ним можно здесь. Достаточно подробный мануал (англ.) по установке приведен там же.
В крайнем случае (вы не гик, прошивка смартфона вызывает у вас панический ужас, вы страшитесь потери гарантии) вы можете просто довольствоваться возможностями Neutron Music Player и ждать. Ждать обещанных Корпорацией Добра еще в 2014 году доработок аудио-части. Столь желанные многими меломанами улучшения и доработки так и не вошли ни в один из выпущенных релизов 5.0.*. Остается надеяться и верить в лучшее.
Выводы
Что же мы имеем в целом? Крайне неоднозначную ситуацию. С одной стороны – существенное количество смартфонов с отличными DAC-чипами на борту. А с другой – убивающую качественный звук на корню ОС Android. В третьей же – попытки open source сообщества исправить эту ситуацию. Пока, к сожалению, возымевшие успех только в случае с отдельно взятыми моделями смартфонов. Вендоры, выпускающие смартфоны, со своей стороны не особо стараются исправить проблемную ситуацию, ограничиваясь лишь косметическими “улучшайзерами” на уровне эквалайзеров и т.д. Никто из них не хочет лезть на уровень ядра.
Никто, кроме Sony. Сколько бы гнилых овощей ни летело в сторону мобильного подразделения японской компании, но они – пионеры Hi-Res audio для смартфонов среди вендоров. Можно так же недоумевать относительно выпуска японцами того самого ZX1 и его наследника – ZX2. Но на практике эти устройства выступили великолепным тестовым полигоном. Первым блином, который при это вышел не комом. Японцы доказали себе и всему миру, что создать великолепно звучащее устройство с Android на борту возможно. Теперь же плодами этих смелых экспериментов могут пользоваться обладатели Z3. А благодаря портированию DSEE HX энтузиастами, еще и владельцы Z1, Z1c, Z Ultra и тэ дэ.
Даже 16/44.1 при качественном плеере и линейном доступе к драйверу DAC-чипа способен радовать вас звучанием. Именно этот вариант FLAC является народным форматом для мобильных устройств на сегодняшний день, а Neutron Music Player – единственным универсальным решением.
Вот и всё касательно софта. С радостью отвечу на ваши вопросы в комментариях. А в следующей статье цикла мы поговорим о наушниках.