Ищу библиотеку обработки звука, обработка в реальном времени |
Здравствуйте, гость ( Вход | Регистрация )
Ищу библиотеку обработки звука, обработка в реальном времени |
mezmay |
18.12.2014, 14:19
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Задача: сделать устройство эквализации звука в реальном времени.
Пробовал на Qt 5 в Windows 7 сделать простую передачу звука с микрофона на линейный выход - задержки слишком большие, чтобы это можно было назвать "реальным временем" (ну то есть около 0.3 - 0.5 сек. И это при размере буфера не более 0.001 сек). Конкретно пользовался классами QAudioInput и QAudioOutput. Сейчас рассматриваю два основных варианта реализации - на одноплатном компьютере и на контроллере. Будет ли Qt работать в Linux существенно быстрее со звуком? Если нет, то какую быструю библиотеку ввода/вывода звука стоит посмотреть? upd: код:
Сообщение отредактировал mezmay - 18.12.2014, 14:29 |
|
|
mezmay |
19.12.2014, 13:24
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Поставил Ubuntu 14.04.1, сначала просто запустил тот же исходник на Qt - быстрее, но явно недостаточно для реального времени.
Установил библиотеку PortAudio (и ALSA для нее), при запуске проги на ней в output Creator'a валятся ошибки: Цитата ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side bt_audio_service_open: connect() failed: Connection refused (111) bt_audio_service_open: connect() failed: Connection refused (111) bt_audio_service_open: connect() failed: Connection refused (111) bt_audio_service_open: connect() failed: Connection refused (111) ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave Потом установил jackd, прога на Qt перестала запускаться, output в debug'e: Цитата Debugging starts &"warning: GDB: Failed to set controlling terminal: Inappropriate ioctl for device\n В релизе просто не запускается. upd: удалил pulseaudio, прога на Qt стала запускаться и задержки стали меньше. Прога на PortAudio тоже стала запускаться, но звук сильно прерывается. И думаю что они работают не через jack upd 2: сейчас без pulseaudio на Qt получается "почти риалтайм". При этом сама Ubuntu работает как-то не особенно быстро. Может стоит установить что-нибудь на риалтаймовом ядре, и все будет ок? Сообщение отредактировал mezmay - 19.12.2014, 15:46 |
|
|
Текстовая версия | Сейчас: 24.11.2024, 23:35 |