Jackd: Измеряем задержку аудио сигнала в цепочке обработки

06 Sep 2020

Теги: аудио jackd linux

Категории: HowTo

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

Но что на самом деле означает эта задержка? Это лишь время, которое будет затрачено на обработку сигнала после поступления его в роутер (в моем случае в роли роутера выступает jackd).

А как измерить полную задержку вместе со временем на обработку и перевод сигнала в аналог?

jack_iodelay - утилита генерирует тестовый сигнал, который можно направить в роутере куда угодно, потом вернуть на вход этой же утилиты и посмотреть в консоли что получится.

Для измерения нам потребуется небольшой патч чтобы соединить один из входов интерфейса с выходом.

После этого запускаем утилиту, коммутируем нужный вход и выход в роутере и смотрим на результат в консоли.

Показатели задержки сигнала

Общая задержка составляет в среднем 820 фреймов. Чтобы узнать задержку в миллисекундах делим это число на частоту семплирования. (96кГц). Это 8,5мс.

Поле extra loopback latency содержит лаг, который был вызван ЦАП’ом и АЦП.

Задержка зависит и от настроек джека. От количества семплов и периодов на буфер

Для текущего теста 2 периода на буфер и 128 сэмплов. Итого 384. И ~430 фреймов - это задержка на железе. В сумме и получается ~820.

Можно пользоваться опциям -I и -O. Они отдельно позволяют посмотреть задержку по входу и выходу сигнала.

Linux: Настраиваем МФУ pantum

29 Aug 2020

Теги: cups администрирование linux sane

Категории: HowTo

Есть такие новые китайские принтеры (относительноо новые) Pantum. В них и wifi, и поддержка linux из коробки. Достал я и себе такое чудо платы лутом делать и шаблоны для фоторезиста печатать.

Настроить wifi в принтере (если он есть) без смартфона не получится - лезем туда и делаем все по инструкции (она с картинками).

Теперь надо поставить драйвера и настроить сканирование и печать по wifi. Если у вас убунту или дебиан, то драйвера скачиваются и устанавливаются в виде пакета. Если федора, то придется немного покомпилировать.

Пакеты для fedora

Предварительно потребуется собрать библиотеку libjpeg so.8. Иначе вы не сможете поставить sane-драйвера.

nothing provides libjpeg so.8()(64bit) needed by pantum-m6xxx-sane-1 4 0-2 fc28 x86_64
$ sudo dnf install rpm-build spectool git
$ rpmdev-setuptree
$ git clone https://github.com/RussianFedora/compat-libjpeg8.git
$ cd compat-libjpeg8
$ spectool --all --get-files --directory ~/rpmbuild/SOURCES compat-libjpeg8.spec
$ rpmbuild -bb compat-libjpeg8.spec
$ sudo dnf install ~/rpmbuild/RPMS/$(uname -m)/compat-libjpeg8-1.5.3-3.fc32.x86_64.rpm

А теперь можно собирать и ставить драйвера для pantum.

$ sudo dnf install rpm-build spectool git
$ rpmdev-setuptree
$ git clone https://github.com/EasyCoding/pantum-m6xxx.git
$ cd pantum-m6xxx
$ spectool --all --get-files --directory ~/rpmbuild/SOURCES pantum-m6xxx.spec
$ rpmbuild -bb pantum-m6xxx.spec
$ sudo dnf install ~/rpmbuild/RPMS/$(uname -m)/pantum-m6xxx-*.rpm

Настройка cups

Заходим в веб-интерфейс и добавляем принтер. Никаких сложностей нет.

Настройка sane

Тут сложнее. Ставим sane-backend, а потом добавляем удаленный сканер.

sudo dnf install sane-backends-daemon

Добавляем в /etc/sane.d/dll.conf

pantum6500
pantum_mfp

Получаем доменный адрес принтера через avahi. Я уже писал о том, как работать без локального днс.

$ avahi-browse-domains -alr

Среди полученных адресов вы увидите адрес принтера Pantum-XXXXXX.local. Этот адрес надо добавить в /etc/sane.d/net.conf.

Запускаем saned.

$ sudo systemctl start saned.socket

Проверяем наличие сканера.

$ scanimage -L 
device `v4l:/dev/video0' is a Noname HD WebCam: HD WebCam virtual device 
device `airscan:e0:Pantum M6500W series[XXXXX]' is a eSCL Pantum M6500W series[XXXXX] eSCL network scanner

Литература

Ошибка юнита systemd-modules-load.service

28 Apr 2020

Теги: secureboot systemd uefi

Категории: linux

Узнаем почему не загружается vboxdrv и починим.

Python: Чем плох datetime.replace?

11 Sep 2019

Категории: Разработка HowTo

Чем плох datetime.replace?

Поговорим сегодня про даты и часовые пояса. А именно о том, почему не стоит использовать datetime.replace совместно с таймзонами из pytz если вы не уверены (вообще не стоит).

Конечно все с оговорками. Иногда так надо. Но все равно не стоит так делать.

Linux: Обрабатываем RAW-изображения

28 Jul 2019

Теги: консоль linux фотография

Категории: Обработка изображений HowTo

resize_resultМы не будем говорить о том, как правильно\неправильно обрабатывать raw’ки. Мы поговорим об инструментах (конечно же консольных), которые можно применять для конвертирования, склейки и других операций.

Фото на превью - это то, что удалось вытащить из raw (конечно же оно пожатое в джипег и отресайзено для публикации).