Обновить
16K+
9
Дмитрий@MadEnvel

Программист-энтузиаст

32,7
Рейтинг
1
Подписчики
Отправить сообщение

Да, живой код регулярно ломает красивые теории :)

У меня была почти такая же история. В попытке получить более глубокий бас я перешёл с полочных колонок на напольные Tannoy XT 6F, но в моей комнате результат оказался обратным: бас стал чрезмерным, и гудела буквально вся комната, даже на минимальной громкости, закрытие порта фазоинвертора не помогало.

В итоге для моей комнаты со сложной геометрией и острым углом гораздо лучше подошли среднеразмерные KEF R3. Стоячие волны в отдельных точках, конечно, никуда не исчезли, но в обычном месте прослушивания бас воспринимается вполне ровно.

К счастью, эксперимент с Tannoy ничего мне не стоил: на боковой панели обнаружилась царапина, поэтому пару удалось вернуть.

Закольцованность - это организация памяти, а вытеснение - лишь политика при переполнении. У меня запись шла только при наличии места, поэтому буфер оставался обычно ограниченной FIFO очередью.

Похоже на то - по крайней мере в моем сценарии boost::circular_buffer значительно проиграл std::deque. Если можете посоветовать конкретную реализацию, было бы интересно сравнить.

Нужна была FIFO очередь аудиоданных. Изначальна она работала на std::deque, но затем я заменил ее на кольцевой буфер boost::circular_buffer - естесственный выбор для аудио, тем более что ALSA сама использует кольцевой буфер. Семантика не изменилась, поэтому сравнение корректно; неожиданно, кольцевой буфер оказался значительно медленнее.

Это скорее вопрос к разработчикам Music Assistant. В Kalinka такой сценарий сейчас не поддерживается. И если речь о преобразовании сигнала с микрофона в цифровой, то нужен АЦП, а не ЦАП.

Если честно, уже не помню точную логику выбора названия. Мне хотелось название, связанное с ягодой, но не очередную вариацию Raspberry, и при этом с понятной для меня русской ассоциацией.

Связь с «калинкой-малинкой» я уже потом увидел — и она действительно оказалась настолько удачной, будто была задумана изначально.

Русское происхождение названия меня не смущает. Matroska тоже выросла из матрёшки и стала международно узнаваемым форматом в сфере медиа. А Kalinka мне по-прежнему нравится: название короткое, запоминающееся, и вокруг него уже сложились логотип и визуальный стиль.

Хотя «Шпингалет», признаю, был сильным конкурентом.

Спасибо!

Да, архитектура у Kalinka модульная. Сейчас есть плагины для локальной коллекции, Qobuz и Jamendo, но в целом можно подключить любой источник, если у него есть API и условия использования это позволяют. То есть ограничение обычно не в Kalinka, а в доступности самого сервиса.

Raspberry Pi тоже не обязательна. Просто она была целевой платформой с самого начала, поэтому я старался, чтобы всё комфортно работало даже на Pi 4 с 4 ГБ памяти. Но сервер без проблем запускается и на обычном Linux, в том числе на NUC или любом другом мини-ПК.

Насчёт гибрида — мне эта идея тоже нравится. В Kalinka уже есть механизм рекомендаций, привязанный к каждому источнику. Логичным развитием выглядит сценарий, когда рекомендации приходят, например, из Яндекс.Музыки, а найденные треки автоматически ищутся в остальных подключённых каталогах (Qobuz, локальная коллекция и т.д.) и могут воспроизводится уже оттуда. Базовая архитектура это позволяет, просто до реализации этой части пока руки не дошли.

Хороший вопрос. Если связка Navidrome + AudioMuse-AI уже полностью закрывает ваши сценарии, то переходить на Kalinka, скорее всего, смысла нет.

Разница в том, что это немного разные продукты. Navidrome — музыкальный сервер, который отдаёт поток клиентам. Kalinka — домашний Hi-Fi-проигрыватель: сервер сам воспроизводит музыку напрямую в ЦАП через ALSA (bit-perfect, gapless), а телефон или планшет выступают пультами управления. Поэтому сценарий "Windows + мобильник + машина" она не заменяет и не пытается — её ниша ближе к Volumio или Roon, чем к Subsonic/Navidrome.

По AI-поиску идеи действительно похожи: в основе тоже CLAP. В Kalinka поверх него работает небольшая модель valence/arousal, которая заметно улучшила поиск именно по настроению (цифры как раз в статье). Плюс всё это работает на Raspberry Pi 4 с 4 ГБ памяти.

Поэтому, если вас полностью устраивает текущая связка — оставайтесь на ней, она решает свою задачу очень хорошо. Kalinka имеет смысл, когда нужен выделенный домашний проигрыватель: Raspberry Pi рядом с ЦАП, локальная коллекция, bit-perfect/gapless воспроизведение и единая очередь для локальной музыки, Qobuz и Jamendo.

И спасибо за вопрос. Он показал, что я не очень удачно объяснил, что такое Kalinka как продукт. Следующую статью как раз хочу посвятить тому, чем она отличается от Navidrome, Plex, Jellyfin и других подобных решений, и для каких сценариев вообще создавалась.

Информация

В рейтинге
256-й
Откуда
England - London, Великобритания
Зарегистрирован
Активность

Специализация

Фулстек разработчик, Разработчик мобильных приложений
Старший
Git
Python
Linux
Английский язык
C++
Разработка программного обеспечения
C
Dart
Flutter
Разработка под Android