Russian Qt Forum

Компиляторы и платформы => Linux => Тема начата: mezmay от Декабрь 19, 2014, 16:02



Название: Работа со звуком в реальном времени
Отправлено: mezmay от Декабрь 19, 2014, 16:02
Задача: на недорогом одноплатном компьютере работать со звуком в "реальном" времени.
Сама обработка очень простая.

Сейчас работаю на полноценном ПК в Ubuntu 14.04.1 и на Qt 5. Для тестирования скорости сделал предельно простую программу, принимает звук через QAudioInput и сразу выдает на QAudioOutput. Кроме этого, удалил pulseaudio. В результате получился "почти риалтайм", задержка очень маленькая, но заметная.

Отмечу, что сама убунта работает не быстро.
Вопрос: решится ли проблема переходом на "что-то с риалтаймовым ядром", установкой риалтаймого ядра на эту систему,  или надо как-то прикручивать JACK ?


Название: Re: Работа со звуком в реальном времени
Отправлено: mezmay от Декабрь 19, 2014, 17:26
upd: jack'ом проблема судя по всему не решится: сконнектил в джеке вход на выход, всё равно задержка есть


Название: Re: Работа со звуком в реальном времени
Отправлено: Bepec от Декабрь 19, 2014, 23:59
Писать нужно драйвер, а не программу.


Название: Re: Работа со звуком в реальном времени
Отправлено: kuzulis от Декабрь 20, 2014, 00:25
Возможно надо пошаманить с настройками альсы и прочих бекендов через которые работает QAudioInput/Output. Возможно отказаться от Qt, т.к. для этой задачи он слишком "жирный", имхо. Да и зачем реалтайм то?


Название: Re: Работа со звуком в реальном времени
Отправлено: vbv от Декабрь 20, 2014, 03:06
gstreamer - не....
Просто и красиво. И, для Вашей, задачи QT не нужен.


Название: Re: Работа со звуком в реальном времени
Отправлено: mezmay от Декабрь 20, 2014, 14:06
А как вообще делать чтобы приложение "работало через JACK"?


Название: Re: Работа со звуком в реальном времени
Отправлено: mezmay от Декабрь 21, 2014, 11:26
Поставил Ubuntu Studio.
Не могу запустить Jack, ошибки:

Цитировать
11:17:27.613 Patchbay deactivated.
11:17:27.615 Statistics reset.
11:17:27.618 ALSA connection change.
11:17:27.621 D-BUS: Service is available (org.jackaudio.service aka jackdbus).
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
11:17:27.626 ALSA connection graph change.
(qjackctl:2151): Gtk-CRITICAL **: IA__gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed
(qjackctl:2151): Gtk-CRITICAL **: IA__gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed
11:17:50.137 D-BUS: JACK server could not be started. Sorry
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
(qjackctl:2151): Gtk-CRITICAL **: IA__gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed
(qjackctl:2151): Gtk-CRITICAL **: IA__gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed
Sun Dec 21 11:17:50 2014: Starting jack server...
Sun Dec 21 11:17:50 2014: JACK server starting in realtime mode with priority 10
Sun Dec 21 11:17:50 2014: ERROR: cannot register object path "/org/freedesktop/ReserveDevice1/Audio0": A handler is already registered for /org/freedesktop/ReserveDevice1/Audio0
Sun Dec 21 11:17:50 2014: ERROR: Failed to acquire device name : Audio0 error : A handler is already registered for /org/freedesktop/ReserveDevice1/Audio0
Sun Dec 21 11:17:50 2014: ERROR: Audio device hw:0 cannot be acquired...
Sun Dec 21 11:17:50 2014: ERROR: Cannot initialize driver
Sun Dec 21 11:17:50 2014: ERROR: JackServer::Open failed with -1
Sun Dec 21 11:17:50 2014: ERROR: Failed to open server
Sun Dec 21 11:17:51 2014: Saving settings to "/home/vladimir/.config/jack/conf.xml" ...
11:17:57.369 Could not connect to JACK server as client. - Overall operation failed. - Unable to connect to server. Please check the messages window for more info.
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started

Гуглил, но не понял что с этим делать