срез частот сабвуфера в alsa (subwoofer crossover frequency) (bass redirection)
Модератор: Модераторы разделов
-
- Сообщения: 18
срез частот сабвуфера в alsa (subwoofer crossover frequency)
Всем привет!
Вообщем, ситуация следующая: имеется SBLive 5.1 и комплект шестиканальной акустики.
Все 6 каналов нормально работают.
НО:
вместе с низкими сабвуфер проигрывает и высокие! Причем из него идет такой противный свистящий звук, что он вообще сводит на нет все преимущества IHOO =(
Ни на google, ни на ya.ru ничего конкретного не нашел.
Узнал что есть такая вещь, как ladspa, и что в ней есть плагин для фильтрации частот.
Пробовал править /usr/share/alsa/alsa.conf - безрезультатно (на сайте www.alsa-project.com) были примеры использования LADSPA, точно уже ссылку не помню.
Дистрибутив SuSE 9.3 alsa 1.0.8
Вот кусок файла alsa.conf:
pcm.lowpass {
type ladspa
slave.pcm $SLAVE
path "/usr/lib/ladspa"
plugins [ {
label lpf
input {
controls [ 150 ]
}
} ]
}
.asoundrc решил не трогать, изменил только alsa.conf (это вроде бы одно и то же)
Прошу реальной помощи от тех кто с этим сталкивался, идиотские посты наподобие "Ставьте Gentoo" и "Лучше установи Windows, там все нормально работает" я буду игнорировать, не засоряйте тему.
Заранее спасибо, Андрей.
Вообщем, ситуация следующая: имеется SBLive 5.1 и комплект шестиканальной акустики.
Все 6 каналов нормально работают.
НО:
вместе с низкими сабвуфер проигрывает и высокие! Причем из него идет такой противный свистящий звук, что он вообще сводит на нет все преимущества IHOO =(
Ни на google, ни на ya.ru ничего конкретного не нашел.
Узнал что есть такая вещь, как ladspa, и что в ней есть плагин для фильтрации частот.
Пробовал править /usr/share/alsa/alsa.conf - безрезультатно (на сайте www.alsa-project.com) были примеры использования LADSPA, точно уже ссылку не помню.
Дистрибутив SuSE 9.3 alsa 1.0.8
Вот кусок файла alsa.conf:
pcm.lowpass {
type ladspa
slave.pcm $SLAVE
path "/usr/lib/ladspa"
plugins [ {
label lpf
input {
controls [ 150 ]
}
} ]
}
.asoundrc решил не трогать, изменил только alsa.conf (это вроде бы одно и то же)
Прошу реальной помощи от тех кто с этим сталкивался, идиотские посты наподобие "Ставьте Gentoo" и "Лучше установи Windows, там все нормально работает" я буду игнорировать, не засоряйте тему.
Заранее спасибо, Андрей.
-
- Сообщения: 18
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
Неужели ни у кого нет похожей проблемы?
Странно, что ни в одном микшере нету этой настройки... вроде kamix использует LADSPA, но не те фильтры, которые нужны =(
Странно, что ни в одном микшере нету этой настройки... вроде kamix использует LADSPA, но не те фильтры, которые нужны =(
-
- Сообщения: 108
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
Насколько я знаю у SB Live! 5.1 нет хардверного сабвуферного кроссовера. Видимо проблема в этом. Больше мне ничего не известно.
Gentoo ~x86•linux-2.6.16-ck11•gcc 4.1.1•X.Org 7.2•KDE 3.5.6
-
- Сообщения: 18
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
Я понимаю что нет. Но ведь как-то можно сделать?! Надо просто грамотно прикрутить LASDPA-lowpass фильтр к каналу, выводящему на саб... А вот как... хз.
-
- Сообщения: 108
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
А у самого саба разве нет кроссовера?! ИМХО это его работа отсеивать всякие левые высокие частоты.
Gentoo ~x86•linux-2.6.16-ck11•gcc 4.1.1•X.Org 7.2•KDE 3.5.6
-
- Сообщения: 18
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
К сожалению, у сабвуфера такой функции нет... При покупке все дело упиралось в деньги, пришлось взять что подешевле... а именно Sven IHOO MT 5.1. Соответственно фильтрация низких частот ложится на звуковуху, а с моей звуковухой, как я понял, сделать это можно только софтварно =(
Я встречал посты на форумах, где люди с таким же железом как у меня писали, что у них получилось настроить, только вот никто не сказал КАК =)
-
- Сообщения: 117
- Статус: вышибала
- ОС: GNU/Linux (Gentoo)
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
1. вроде ж как /etc/asound.conf
Хотя, в принципе, в рахных дистрибутивах может быть по-разному
2. в приведенной тобой схеме
а) вместо $SLAVE указать твое устройство вывода
б) при такой конфигурации ВСЕ что выше 150 Гц урежется
в) соотвественно чтобы услышать эффект выводить звук надо через устройство lowpass (именно так ты гео назвал)
-
- Сообщения: 183
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
Насколько я знаю < 300 надо подавать.
-
- Сообщения: 18
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
theli писал(а): ↑10.10.2005 15:53
1. вроде ж как /etc/asound.conf
Хотя, в принципе, в рахных дистрибутивах может быть по-разному
2. в приведенной тобой схеме
а) вместо $SLAVE указать твое устройство вывода
б) при такой конфигурации ВСЕ что выше 150 Гц урежется
в) соотвественно чтобы услышать эффект выводить звук надо через устройство lowpass (именно так ты гео назвал)
1)не могу понять что такое slave.pcm растолкуйте плиз
2)если выводить через это устройство(lowpass, кстати не я его так назвал, это я нашел где-то в инете), то частота срежется на всех каналах, насколько я понял.
мне надо только на одном. Как это сделать?
3) у меня /usr/share/alsa/alsa.conf сделан в виде скрипта, $SLAVE указывается либо вверху, либо берется из env, не помню.
Вообщем фиг его знает, как прикрутить устройство lowpass к одному каналу на звуковухе snd-emu10k1
Все-таки придется детально изучать мануалы, жаль времени пока на это нет =(
-
- Сообщения: 117
- Статус: вышибала
- ОС: GNU/Linux (Gentoo)
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
slave.pcm = устройство на которое будет подаваться звук после обработки созданным ... т.е. вообще можно создать длиннющую цепочку из различных обработок звука ....
если ты хочешь чтобы после фильтра звук выводился прямо на карточку то и укажи ее
.... hw:0,0 ... или типа того ...
да . не знаю ...
вот тут http://alsa.opensrc.org/SurroundSound задаются тем же вопросом.
можешь поиграться с маршрутизацией каналов и т.д.
если ты хочешь чтобы после фильтра звук выводился прямо на карточку то и укажи ее

да . не знаю ...
вот тут http://alsa.opensrc.org/SurroundSound задаются тем же вопросом.
можешь поиграться с маршрутизацией каналов и т.д.
-
- Сообщения: 18
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
Ага, кажется немного разобрался. Я по этой ссылке и нашел настройки =) там тоже не знают как сделать чтобы только на 1 канал подействовало.
Я конечно понимаю, что разработчики альсы модные програмеры, но такой мудреный конфиг - это уж слишком. На досуге обязательно поиграюсь с настройками.
Я конечно понимаю, что разработчики альсы модные програмеры, но такой мудреный конфиг - это уж слишком. На досуге обязательно поиграюсь с настройками.
-
- Сообщения: 117
- Статус: вышибала
- ОС: GNU/Linux (Gentoo)
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
SuSE писал(а): ↑12.10.2005 23:26Ага, кажется немного разобрался. Я по этой ссылке и нашел настройки =) там тоже не знают как сделать чтобы только на 1 канал подействовало.
Я конечно понимаю, что разработчики альсы модные програмеры, но такой мудреный конфиг - это уж слишком. На досуге обязательно поиграюсь с настройками.
альса не такая уж и сложная изнутри

мне очень жаль все-таки что помочь тебе не могу ...
но просто у меня в феврале защита диплома по компьютерной безопасности ... я а его еще практически не начинал ...
хотя вот если б у меня был сабвуфер

удачных игр с настройками

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


ЗЫ : этой теме место не здесь а в "мультимедиа"
-
- Сообщения: 18
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
:o

в си я пока слабоват для такого =) еще только второй курс, да и программирование по специальности более... высокоуровневое... хотя си надо полюбому =) будем копать...
-
- Сообщения: 9
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
SuSE писал(а): ↑30.09.2005 14:18Всем привет!
Вообщем, ситуация следующая: имеется SBLive 5.1 и комплект шестиканальной акустики.
Все 6 каналов нормально работают.
НО:
вместе с низкими сабвуфер проигрывает и высокие! Причем из него идет такой противный свистящий звук, что он вообще сводит на нет все преимущества IHOO =(
Ни на google, ни на ya.ru ничего конкретного не нашел.
Узнал что есть такая вещь, как ladspa, и что в ней есть плагин для фильтрации частот.
Пробовал править /usr/share/alsa/alsa.conf - безрезультатно (на сайте www.alsa-project.com) были примеры использования LADSPA, точно уже ссылку не помню.
Дистрибутив SuSE 9.3 alsa 1.0.8
Вот кусок файла alsa.conf:
pcm.lowpass {
type ladspa
slave.pcm $SLAVE
path "/usr/lib/ladspa"
plugins [ {
label lpf
input {
controls [ 150 ]
}
} ]
}
.asoundrc решил не трогать, изменил только alsa.conf (это вроде бы одно и то же)
Прошу реальной помощи от тех кто с этим сталкивался, идиотские посты наподобие "Ставьте Gentoo" и "Лучше установи Windows, там все нормально работает" я буду игнорировать, не засоряйте тему.
Заранее спасибо, Андрей.
Я уже столько намучался, правя файл .asoundrc и единственное, чего мне удалось добиться - свистящий звук из колонок. Вот что я писал в том файле:
pcm.lowpass {
type ladspa
slave.pcm "plughw:0,0"
path "/usr/lib/ladspa"
plugins [ {
label lpf
input {
controls [ 50 ]
}
} ]
}
-
- Сообщения: 3
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
Столкнулся с той же проблемой. Пофиксил альсу.
Сабвуфер работает.
Ставится на дебиан стабле. apt-get source alsa-lib; применить патч diff -p1 <файл; dpkg-buildpackage; установить получившийся пакет.
Проверял
.
Внутри описание и пример .asoundrc в каталоге doc.
Исправляет также баги с локалью.
PS. Кто подскажет самый качественный плагин для обрезки и поделится параметрами?
Сабвуфер работает.
Ставится на дебиан стабле. apt-get source alsa-lib; применить патч diff -p1 <файл; dpkg-buildpackage; установить получившийся пакет.
Проверял

Внутри описание и пример .asoundrc в каталоге doc.
Исправляет также баги с локалью.
PS. Кто подскажет самый качественный плагин для обрезки и поделится параметрами?
-
- Сообщения: 9
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
gena2x писал(а): ↑28.10.2005 03:19Столкнулся с той же проблемой. Пофиксил альсу.
Сабвуфер работает.
Ставится на дебиан стабле. apt-get source alsa-lib; применить патч diff -p1 <файл; dpkg-buildpackage; установить получившийся пакет.
Проверял.
Внутри описание и пример .asoundrc в каталоге doc.
Исправляет также баги с локалью.
PS. Кто подскажет самый качественный плагин для обрезки и поделится параметрами?
Мне уже начинает казаться, что в линуксе это неразрешимая проблема.
-
- Сообщения: 3
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
Я же написал как это сделать. внутри приаттаченного к предыдущему сообщению патча (patch.localeANDladspa.txt) даже есть пример .asoundrc файла с конкретной конфигурацией и описанием КАК после применения патча отрезать высокие от сабвуфера и КАК просто смиксовать каналы стерео в 2.1 (стерео+сабфуфер). Пример приведён для M-Audio revolution 7.1 но это НЕ суть. Пример есть мой .asoundrc который работает для всего alsa-умеющего.
Get fun, not pain!
для тех, кому лениво пишу .asoundrc который будет работать с русской локалью и патчем:
+pcm.ice1724_0 {
+ type hw
+ card 1
+ device 0
+ subdevice 0
+}
+
+pcm.ice1724_1 {
+ type hw
+ card 1
+ device 2
+ subdevice 1
+}
+
+pcm.ice1724_2 {
+ type hw
+ card 1
+ device 2
+ subdevice 2
+}
+
+
+pcm.ice_cv {
+ type multi;
+ slaves.a.pcm ice1724_0;
+ slaves.a.channels 2;
+ slaves.b.pcm ice1724_1;
+ slaves.b.channels 2;
+ slaves.c.pcm ice1724_2;
+ slaves.c.channels 2;
+ bindings.0.slave a;
+ bindings.0.channel 0;
+ bindings.1.slave a;
+ bindings.1.channel 1;
+ bindings.2.slave b;
+ bindings.2.channel 0;
+ bindings.3.slave b;
+ bindings.3.channel 1;
+ bindings.4.slave c;
+ bindings.4.channel 0;
+ bindings.5.slave c;
+ bindings.5.channel 1;
+}
+
+
+pcm.ice_plug {
+ type plug
+ slave.pcm ice_cv
+ slave.format S32_LE
+ slave.channels 6
+}
+
+pcm.ice_route {
+ type route;
+ slave.pcm ice_plug;
+ slave.channels 6;
+ ttable.0.0 1;
+ ttable.1.1 1;
+ ttable.0.2 1;
+ ttable.1.3 1;
+ ttable.0.4 1;
+ ttable.1.5 1;
+}
+
+pcm.ice_route2 {
+ type route;
+ slave.pcm ice_plug;
+ slave.channels 6;
+ #channels 4;
+ ttable.0.0 1;
+ ttable.1.1 1;
+ ttable.2.2 1;
+ ttable.3.3 1;
+ ttable.0.4 1;
+ ttable.1.5 1;
+}
+
+pcm.ice2_51to21 {
+ type plug
+ slave.pcm ice_cv
+ slave.format S32_LE
+ #slave.rate 48000
+ slave.channels 6
+ ttable {
+ 0.0 0.3333;
+ 1.1 0.3333;
+ 2.0 0.3333;
+ 3.1 0.3333;
+ 4.0 0.3333; #c->fl
+ 4.1 0.3333; #c->fr
+ 5.2 0.2;
+ 0.2 0.2;
+ 1.2 0.2;
+ 2.2 0.2;
+ 3.2 0.2;
+ }
+}
+
+
+pcm.ice2_20to21 {
+ type plug
+ slave.pcm ice2_21cutoffsub
+ #slave.pcm ice_cv
+ #slave.pcm ladspa
+ #slave.format S32_LE
+ #slave.rate 48000
+ slave.channels 6
+ ttable {
+ 0.0 1
+ 1.1 1
+ 0.2 0.5
+ 1.2 0.5
+ }
+}
+
+pcm.ice2_21cutoffsub {
+ type ladspa
+ slave.pcm ice_plug
+ path "/usr/lib/ladspa"
+ plugins {
+ 0 {
+ label lp4pole_fcrcia_oa
+ policy none
+ input.bindings.2 "Input";
+ output.bindings.2 "Output";
+ input {
+ controls [ 300 0 ]
+ }
+ }
+ 1 {
+ label delay_0.01s
+ input.bindings.0 "Input";
+ output.bindings.0 "Output";
+ input {
+ controls [ 0 1 ]
+ }
+ }
+ }
+}
БЕЗ патча можно применять LADSPA plugin только ко ВСЕМ каналам одновременно. policy none мне НЕ удалось заставить работать, может я чего-то не понял в исходниках, но по моему none вообще НЕ РАБОТАЛ, посему и поправил.
Если не закрыть ВСЕ каналы плугинами клиент может вывалиться в сегфаулт.
См англицкую доку в патче я там всё подробно расписал.
Щит бы побрал эти инстансы...
PS. в самой располедней alsa в cvs ничего в ladspa не поменялось. Так что патч весьма актуален.
Get fun, not pain!
для тех, кому лениво пишу .asoundrc который будет работать с русской локалью и патчем:
+pcm.ice1724_0 {
+ type hw
+ card 1
+ device 0
+ subdevice 0
+}
+
+pcm.ice1724_1 {
+ type hw
+ card 1
+ device 2
+ subdevice 1
+}
+
+pcm.ice1724_2 {
+ type hw
+ card 1
+ device 2
+ subdevice 2
+}
+
+
+pcm.ice_cv {
+ type multi;
+ slaves.a.pcm ice1724_0;
+ slaves.a.channels 2;
+ slaves.b.pcm ice1724_1;
+ slaves.b.channels 2;
+ slaves.c.pcm ice1724_2;
+ slaves.c.channels 2;
+ bindings.0.slave a;
+ bindings.0.channel 0;
+ bindings.1.slave a;
+ bindings.1.channel 1;
+ bindings.2.slave b;
+ bindings.2.channel 0;
+ bindings.3.slave b;
+ bindings.3.channel 1;
+ bindings.4.slave c;
+ bindings.4.channel 0;
+ bindings.5.slave c;
+ bindings.5.channel 1;
+}
+
+
+pcm.ice_plug {
+ type plug
+ slave.pcm ice_cv
+ slave.format S32_LE
+ slave.channels 6
+}
+
+pcm.ice_route {
+ type route;
+ slave.pcm ice_plug;
+ slave.channels 6;
+ ttable.0.0 1;
+ ttable.1.1 1;
+ ttable.0.2 1;
+ ttable.1.3 1;
+ ttable.0.4 1;
+ ttable.1.5 1;
+}
+
+pcm.ice_route2 {
+ type route;
+ slave.pcm ice_plug;
+ slave.channels 6;
+ #channels 4;
+ ttable.0.0 1;
+ ttable.1.1 1;
+ ttable.2.2 1;
+ ttable.3.3 1;
+ ttable.0.4 1;
+ ttable.1.5 1;
+}
+
+pcm.ice2_51to21 {
+ type plug
+ slave.pcm ice_cv
+ slave.format S32_LE
+ #slave.rate 48000
+ slave.channels 6
+ ttable {
+ 0.0 0.3333;
+ 1.1 0.3333;
+ 2.0 0.3333;
+ 3.1 0.3333;
+ 4.0 0.3333; #c->fl
+ 4.1 0.3333; #c->fr
+ 5.2 0.2;
+ 0.2 0.2;
+ 1.2 0.2;
+ 2.2 0.2;
+ 3.2 0.2;
+ }
+}
+
+
+pcm.ice2_20to21 {
+ type plug
+ slave.pcm ice2_21cutoffsub
+ #slave.pcm ice_cv
+ #slave.pcm ladspa
+ #slave.format S32_LE
+ #slave.rate 48000
+ slave.channels 6
+ ttable {
+ 0.0 1
+ 1.1 1
+ 0.2 0.5
+ 1.2 0.5
+ }
+}
+
+pcm.ice2_21cutoffsub {
+ type ladspa
+ slave.pcm ice_plug
+ path "/usr/lib/ladspa"
+ plugins {
+ 0 {
+ label lp4pole_fcrcia_oa
+ policy none
+ input.bindings.2 "Input";
+ output.bindings.2 "Output";
+ input {
+ controls [ 300 0 ]
+ }
+ }
+ 1 {
+ label delay_0.01s
+ input.bindings.0 "Input";
+ output.bindings.0 "Output";
+ input {
+ controls [ 0 1 ]
+ }
+ }
+ }
+}
БЕЗ патча можно применять LADSPA plugin только ко ВСЕМ каналам одновременно. policy none мне НЕ удалось заставить работать, может я чего-то не понял в исходниках, но по моему none вообще НЕ РАБОТАЛ, посему и поправил.
Если не закрыть ВСЕ каналы плугинами клиент может вывалиться в сегфаулт.
См англицкую доку в патче я там всё подробно расписал.
Щит бы побрал эти инстансы...
PS. в самой располедней alsa в cvs ничего в ladspa не поменялось. Так что патч весьма актуален.
-
- Сообщения: 666
- ОС: Suse 11
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
Простите за глупый вопрос, но что-то не догнал как рестартить алсу без перезагрузки компа? или эти эффекты применятся без рестарта оной?
Я так понял, что это делается чере alsactl restore. Но у меня он дает ошибку:
ALSA lib conf.c:1592:(snd_config_load1) _toplevel_:248:11:Unexpected char
ALSA lib conf.c:3056:(snd_config_update_r) /usr/share/alsa/alsa.conf may be old or corrupted: consider to remove or fix it
alsactl: set_controls:1088: snd_ctl_open error: Invalid argument
Вот что добавил в /usr/share/alsa/alsa.conf:
Мне пока что не очень понятно, что тут не так...
Я так понял, что это делается чере alsactl restore. Но у меня он дает ошибку:
ALSA lib conf.c:1592:(snd_config_load1) _toplevel_:248:11:Unexpected char
ALSA lib conf.c:3056:(snd_config_update_r) /usr/share/alsa/alsa.conf may be old or corrupted: consider to remove or fix it
alsactl: set_controls:1088: snd_ctl_open error: Invalid argument
Вот что добавил в /usr/share/alsa/alsa.conf:
Код: Выделить всё
pcm.lowpass {
type ladspa
slave.pcm hw:0,0
path "/usr/lib/ladspa"
plugins [ {
label lpf
input {
controls [ 150 ]
}
} ]
}
Мне пока что не очень понятно, что тут не так...
-
- Сообщения: 3
Re: срез частот сабвуфера в alsa (subwoofer crossover frequency)
Den001 писал(а): ↑06.12.2006 00:27Простите за глупый вопрос, но что-то не догнал как рестартить алсу без перезагрузки компа? или эти эффекты применятся без рестарта оной?
Я так понял, что это делается чере alsactl restore. Но у меня он дает ошибку:
ALSA lib conf.c:1592:(snd_config_load1) _toplevel_:248:11:Unexpected char
ALSA lib conf.c:3056:(snd_config_update_r) /usr/share/alsa/alsa.conf may be old or corrupted: consider to remove or fix it
alsactl: set_controls:1088: snd_ctl_open error: Invalid argument
Вот что добавил в /usr/share/alsa/alsa.conf:
Код: Выделить всё
pcm.lowpass { type ladspa slave.pcm hw:0,0 path "/usr/lib/ladspa" plugins [ { label lpf input { controls [ 150 ] } } ] }
Мне пока что не очень понятно, что тут не так...
Конфиг алсы читается каждый раз при запуске приложения. Т.е. если это xmms достаточно его отредактивать и перезапустить xmms, к xmms и любому следующему запущенному приложению причитается конфиг. Конфиг читает libasound при загрузке приложения.