Ну, почнемо 😃 Да прибуде з нами ХОЛІВАР!
Відразу напишу, що прийшов я до цих роздумів не сам, а мене наштовхнули всі потроху - @se ,@oleh_o, @ROst.ADventure, @yuzo, @ES, .... список довгий.
Ну і я зараз знахожусь у пошуку ГУ андроїд (я впринципі її вже вибрав 😃), тепер треба якось дістати з допомогою добрих людей 😉.
Так от, з чого починається звук в авто? Для тих, у кого він починається із колонок - сідайте, вам двійка! В нашій екосистемі автомобіля звук починається з "Джерела". Я спеціально використовую загальне слово "Джерело", бо для когось це буде телефон з блютуз, для когось штатка, для когось CD, а для когось мультимедіа і інтернет. Так от саме про останні на базі Android, з огляду на їх популярність, ми і поговоримо.
Оскільки я гуглив інформацію, яка мене цікавила, в т.ч. з використанням ШІ, то буду описувати матеріал тезисно.
1. В усіх без винятку Android пристроях є така штука - Ресемплінг (Resampling, SRC)
Ресемплінг — це процес перетворення аудіосигналу з однієї частоти дискретизації в іншу. Конкретно Android все ресемплить у → 48 кГц).
🔴 Для Android це як обов'язкова для виконання політика:
майже завжди відбувається примусово для всі пристроїв на базі андроїд
часто низької якості
псує фазу, атаку та сцену
📌 У авто ресемплінг — головний ворог SQ.
2. SRC (Sample Rate Converter)
SRC — алгоритм, який виконує ресемплінг і саме за цей алгоритм відповідає розробник пристрою! По факту - це реалізація аудіо-шляху в Android.
Якість SRC залежить від: (це ШІ видав)
довжини фільтра
типу фільтра (FIR / IIR)
фазових характеристик
SRC може бути 📉 Поганий і 📈 Хороший з мінімальнами артефактами але все одно гірше, ніж без SRC взагалі.
І саме тут починається магія від виробника пристрою, бо ПЗ і аудіо-архітектура - це йо відповідальність. Простими словами, виробник може поставити супер-пупер 25 канальний DSP процесор, який може гнати 32 біт в 384/768 кГц, але все запороти обв'язкою компонентів (схемотехнікою) і софтом. Простий приклад: SRC може виконуватись до входу у вбудований DSP чи після. І це сильно впливатиме на кінцеву якість, бо DSP не врятує поганий вхідний сигнал.
3. Для чого андроїд виконує ресемплінг або що таке AudioFlinger?
AudioFlinger — системний аудіомікшер Android. Його задача звести всі звуки (музика, навігація, повідомлення) єдиний потік, зазвичай 48 кГц
⚠️ саме тому все піддається примусовій обробці
4. Чому деякі "Android-мультимедіа" можуть віддавати чистий сигнал, без сильних заморочок, а деякі ні?
Насправді жодна не може. Це питання мене мучить найбільше.
Для того, щоб отримати чистий сигнал з андроїда, розробнику потрібно навчитись обходити AudioFlinger.
В цьому розробнику пристрою допоможе Audio HAL (Hardware Abstraction Layer) — це прошарок між Android і апаратним аудіо який визначає:
чи можливий Direct USB Audio через exclusive access до USB (у деяких він закритий взагалі)
чи дозволений bit-perfect для цого пристрою/платформи
або яку якість на виході має SRC (див. п.2)
І те, як розробник заморочився в Android з Audio HAL буде залежити якість аудіоматеріалу або його передача без SRC (Sample Rate Conversion).
Здебільшого виробники використовують стандартний Android Audio HAL, але є такі, які його кастомізують або пропатчують під потреби власної платформи пистрою. І такі кастомні HAL дозволяють віддавати аудіосигнал без ресемплінгу (Native Sample Rate) або перемикати частоту дискретизації “на льоту”.
Direct USB Audio — свого роду обхід AudioFlinger і передача аудіо напряму на USB-DAC або на окремий DSP в режимі Bit-perfect.
Це по факту єдиний вірний шлях для аудіозадротів в SQ. Тоб-то в такому режимі реалізований розробкиком кастомний Audio HAL буде виступати, тільки як транспорт в передачі аудіосигналу. І тут як в анекдоті, є два путя: 1. В такому режимі більшість андроїд девайсів не можуть додавати системні звуки android. Тоб-то слухати музику з "американських Ютубів🙃" або стрімінг сервісів буде неможливо. ЇЇ (музику) потрібно буде записати заздалегідь на флеш-носій для відтворення через Direct USB Audio.
2. Але деякі виробники (якщо вірити тестам з тогож Ютубу), навчилися виводити системні звуки андроїд в тракт для Direct USB Audio. Тоб-то тепер можна з сервісу стрімити через інтернет музику з обраною частотою дискретизації без політики ресемплінгу Android, при цьому всі системні звуки (навігації, відповідь на дзвінки) зберігаються. Але є мінус - пропадає курування рівнем гучності з самого пристрою андроїд.
Ще один із варіантів власний/кастомний аудіоплеєр (наприклад USB Audio Player PRO через налаштування UAPP, який показує реальний sample rate і наявність SRC) - дозволяє обійти AudioFlinger і слухати музику через Флеш-носій в Bit-perfect і теж без системних звуків андроїд. Тоб-то андроїд пристрій перетворюється в таку цеглину з ЮСБ і екраном 😄.
Також розробник може додати власний USB stack - по факту це стандарт (протокол) USB, який описує:
як аудіопристрій передає звук по USB
які формати підтримуються
як керуються частота, гучність, канали.
📌 З цього робимо висновок, що два схожі за тех-характеристиками або не схожі пристрої Андроїд, побудовані на SoC, можуть звучати кардинально по-різному через різну реалізацію HAL.
5. Формат аудіо? Взагалі тут хто на що гарізд.
Особисто я вважаю, що для якісного відтворення музики достатньо CD-якості (16 біт/44.1 кГц).
Для задротів SQ систем високого рівня із обладнанням за десятки тисяч долярів ( Hi-Res аудіо наприклад, 24 біт/96 кГц або 24 біт/192 кГц) за очі.
Доречі, про бітність і дескритизацію @ROst.ADventure писав у своєму "зомбі-апокаліпсису" а також трохи привівдкриває завісу еволюції від аналогу до цифри.
Додаю вже після публікації, бо можливо не всі зрозуміли мій посил. Нічого страшного для аудіолюбителів в ресемплінгу андроїда нема. Бо ми всі слухаємо музику через телефони. Набагато важливіше, як розробник пристрою підійшов до реалізації алгоритму SRC і Audio HAL. Всі ці Direct USB Audio або USB stack це рівні аудіофільського задротства.
Все мною вищенаписане прошу вважати особистим потоком думок, який базується на повному незнанні і непрофесіоналізмі у даній сфері😁.
Тримаймося і не забуваємо допомагати армії.
- кастомне ядро
- bit perfect
- USB DAC (по суті любий, без обмежень)
Звук був бомбєзний!
Ось повний допис колись робив
https://driver.top/communities/id588/508544/
З тим SQ-задротством ви збанкрутуєте, воно люто дорого. Я знаю, я ходив тими стежками )
Але як вже дуууже хочеться...
Інтелівська материнка miniATX, з одним PCI-слотом, там є такі, що мають блок живлення на борту, і їм треба лише 12В, щоб не бавитись з комп'ютерними автомобільними БЖ, ну або я користувався таким: https://icarpc.com.ua/uk/autoaccessories-ua/archive-ua/bloki-pitaniya-ua/blok-pitaniya-m2-atx-160w-ua
Ще SSD-диск.
Звукова карта ESI Julia. Ого, вони ще є нові в продажі, бачу: https://luxpro.ua/ua/p212392-zvukova_karta_juli
На цій звуковій є два фізичні кварци, на 44,1 та 48кГц. А драйвери підтримують... от старий склеротик... забув назву, коротше, виведення аудіо потоку мимо системних засобів операційної системи. І без отих усіх проблем з невідтворенням системних звуків. А ще джулію можна розполовинити і ставити лише цифрову частину.
Монітор з тачем і підтримкою vga, чи як там ще захочеться його до компа під'єднати.
Накатуємо стару добру WinXP, ставимо автомобільний софт. Я користувався inCar Terminal.
І маємо на виході чесну цифру і в 44,1, і в 48/96/192, і оптикою, і коаксиалом (якщо треба таки 192).
Тільки от не треба вам того, чесно. Андроїд-смартфон, не найгірший, щоб підтримував HD-кодеки блютузівські, Хеліксівський проц - і доста, отвічяю! )))
ПС. На люто крутій системі з мультибітним цапом пробував почути різницю між компакт-диском і хайрезом. Між 16 та 24 біти ще щось десь вроді ніби здається можливо чути. А між 44,1 і аж до 192 - на рівні самонавіювання.
Більше того скажу. Між лослесом і мп3 практично нема різниці на слух ))))) Ну, тобто, не мп3, скачаним із сайту улюбленіпісні.ком, а якшо взяти лослес, з нього хорошим кодеком скрутити, і тоді слухати.
Та й таке ))
Upd. Ха, не зовсім склеротик, згадав: ASIO-драйвери )))
Мультибітний цап, з А-класовим вихлопом, з усім рештою відповідного рівню, 16 і 44,1 буде грати так, що щелепа відпадає.
І якщо хто має зайві мінімум 10к доларів, то цілком можна собі дозволити. Я навіть за, бо воно того варте, якщо людина здатна зацінити.
Але от погоня за хайрезом та інше задротство - то не треба, не вартує воно.
Основний посил написаного був "чому android звучить по різному" (умовно телефон сяомі і google Pixel 9pro) і де губиться якість? І для себе самого я знайшов відповідь на це питання і поділився своїми думками. Мене влаштовує андроїд простотою користування, доступністю і зручністю. І якості CD мені за очі (16 біт/44.1 кГц), бо навіть тут можна прилипнути на 10кілоДол. і не розкрити потенціал аудіозапису.
Ну але ми робили це, власне, на комп'ютері в якості транспорту, андроїд в ті часи дуже зливав по звуку всім, при чому айфон можна було під'єднувати вже тоді через ейрпорт, а андроїда доводилось рутити, вкомпільовувати щось, виводити аудіо через usb і зовнішню звукову. Люто, коротше, хвала техналоджії, що тепер усе так просто ))
Можна взяти один і той же трек, десь знайти, в 44,1 і в 48кГц, і відтворити й послухати, чи буде різниця під Андроїдом.