LINUX.ORG.RU

Регулировка звука в прослойке между alsa -> jack.

 , , , ,


0

1

Подкиньте идейку, что можно прикрутить между alsa и jack2.

Сейчас это работает так:

gstreamer -> loopback -> alsa_out -> jack2 -> ffado -> звуковушка.

Требуется:

gstreamer -> loopback -> "Что-то-для-регулировки" -> alsa_out -> jack2 -> ffado -> звуковушка.
И нужно чтобы это «Что-то-для-регулировки» показывалось в kmix.

★★★

Если чем-то поможет: gstreamer умеет jack напрямую (возможно плагин доставить придётся)

lazyklimm ★★★★★
()

Решение нашёл в плагинах alsa.

# Смешиваем
pcm.mix {
	# Устанавливаем тип "микшер"
	type 		dmix
	# Уникальный ключ
	ipc_key		542354
	# Подключаемся на выход
	slave.pcm 	"hw:Loopback,0,0"
}

# Используем софтовый регулятор
pcm.vol {
	# Устанавливаем тип "Софтового регулятора"
	type		softvol
	# Подключаемся к микшеру
	slave {
		pcm 	"mix"
	}
	# Устанавливаем название канала регулировки звука
	control {
		name 	"master"
		card	0
  }
}

# Говорим, что использовать по умолчнию 
pcm.!default {
	# Тип "plug" для автоматического ресемплирования 
	type 		plug
	# Подключаемся к регулятору
	slave.pcm	"vol"
}
xSudo ★★★
() автор топика

Оставлю это тут, новый, окончательный вариант asoundrc, добавил дуплекс, эквалайзер.

# Смешиваем
pcm.mix {
	# Устанавливаем тип "микшер"
	type 		dmix
	# Уникальный ключ
	ipc_key		542354
	# Разрешение для разных пользователей
	ipc_perm 0660
	# Подключаемся на выход
	slave.pcm 	"hw:Loopback,0,0"
}

# Используем софтовый регулятор
pcm.vol {
	# Устанавливаем тип "Софтового регулятора"
	type		softvol
	# Подключаемся к микшеру
	slave {
		pcm 	"mix"
	}
	# Устанавливаем название канала регулировки звука
	control {
		name 	"master"
		card	0
  }
}

# Для совместного доступа к устройству захвата
pcm.isnoop {
	# Устанавливаем тип "Совместный доступ"
	type		dsnoop
	# Уникальный ключ
	ipc_key		154879
	# Подключаемся на вход
	slave.pcm "hw:Loopback,0,0"
}

# Говорим, что устройство наше дуплексное
pcm.duplex {
	# Устанавливаем тип "Дуплекс"
	type asym
	# Говорим что воспроизводить будем через софтовый регулятор,
	playback.pcm "vol"
	# а записывать через "совместный доступ"
	capture.pcm "isnoop"
}

# Включаем в цепочку эквалайзер
pcm.eq {
	# Устанавливаем тип "Эквалайзер"
	type	equal
	# Подключаемся к дуплексу
	slave.pcm 	"plug:duplex"
}

# Сообщаем, что наш эквалайзер обзывается как eq
ctl.eq {
	# Устанавливаем тип "Эквалайзер"
	type	equal
}

# Говорим, что использовать по умолчнию 
pcm.!default {
	# Тип "plug" для автоматического ресемплирования 
	type 		plug
	# Подключаемся к эквалайзеру
	slave.pcm	"eq"
}
xSudo ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.