filter-chain: add more mixer ports

Add option to set NULL data as the port data so that plugins can
skip processing.
Add 8 mixer ports and skip NULL data.
Move silence and discard samples to static area.
Improve the virtual sink examples. use the correct mixing for the HRIR
channels.
This commit is contained in:
Wim Taymans 2021-08-24 16:23:47 +02:00
parent 123fe3d1c5
commit 1e4e83d305
5 changed files with 177 additions and 48 deletions

View file

@ -35,7 +35,7 @@ context.modules = [
{
type = builtin
label = convolver
name = convFL
name = convFL_L
config = {
filename = "hrir_kemar/hrir-kemar.wav"
channel = 0
@ -44,10 +44,28 @@ context.modules = [
{
type = builtin
label = convolver
name = convFR
name = convFL_R
config = {
filename = "hrir_kemar/hrir-kemar.wav"
channel = 4
channel = 1
}
}
{
type = builtin
label = convolver
name = convFR_L
config = {
filename = "hrir_kemar/hrir-kemar.wav"
channel = 1
}
}
{
type = builtin
label = convolver
name = convFR_R
config = {
filename = "hrir_kemar/hrir-kemar.wav"
channel = 0
}
}
{
@ -71,16 +89,16 @@ context.modules = [
{
type = builtin
label = convolver
name = convSL
name = convSL_L
config = {
filename = "hrir_kemar/hrir-kemar.wav"
channel = 1
channel = 4
}
}
{
type = builtin
label = convolver
name = convSR
name = convSL_R
config = {
filename = "hrir_kemar/hrir-kemar.wav"
channel = 5
@ -88,48 +106,80 @@ context.modules = [
}
{
type = builtin
label = mixer
name = mix1L
label = convolver
name = convSR_L
config = {
filename = "hrir_kemar/hrir-kemar.wav"
channel = 5
}
}
{
type = builtin
label = convolver
name = convSR_R
config = {
filename = "hrir_kemar/hrir-kemar.wav"
channel = 4
}
}
{
type = builtin
label = mixer
name = mix1R
name = mixL
}
{
type = builtin
label = mixer
name = mixC
name = mixR
}
{
type = builtin
label = mixer
name = mix2L
label = copy
name = copyFL
}
{
type = builtin
label = mixer
name = mix2R
label = copy
name = copyFR
}
{
type = builtin
label = copy
name = copySL
}
{
type = builtin
label = copy
name = copySR
}
]
links = [
{ output = "convFL:Out" input = "mix1L:In 1" }
{ output = "convSL:Out" input = "mix1L:In 2" }
{ output = "copyFL:Out" input = "convFL_L:In" }
{ output = "copyFL:Out" input = "convFL_R:In" }
{ output = "copyFR:Out" input = "convFR_R:In" }
{ output = "copyFR:Out" input = "convFR_L:In" }
{ output = "convFR:Out" input = "mix1R:In 1" }
{ output = "convSR:Out" input = "mix1R:In 2" }
{ output = "copySL:Out" input = "convSL_L:In" }
{ output = "copySL:Out" input = "convSL_R:In" }
{ output = "copySR:Out" input = "convSR_R:In" }
{ output = "copySR:Out" input = "convSR_L:In" }
{ output = "convFC:Out" input = "mixC:In 1" }
{ output = "convLFE:Out" input = "mixC:In 2" }
{ output = "convFL_L:Out" input = "mixL:In 1" }
{ output = "convFR_L:Out" input = "mixL:In 2" }
{ output = "convFC:Out" input = "mixL:In 3" }
{ output = "convLFE:Out" input = "mixL:In 4" }
{ output = "convSL_L:Out" input = "mixL:In 5" }
{ output = "convSR_L:Out" input = "mixL:In 6" }
{ output = "mixC:Out" input = "mix2L:In 1" }
{ output = "mix1L:Out" input = "mix2L:In 2" }
{ output = "mixC:Out" input = "mix2R:In 1" }
{ output = "mix1R:Out" input = "mix2R:In 2" }
{ output = "convFL_R:Out" input = "mixR:In 1" }
{ output = "convFR_R:Out" input = "mixR:In 2" }
{ output = "convFC:Out" input = "mixR:In 3" }
{ output = "convLFE:Out" input = "mixR:In 4" }
{ output = "convSL_R:Out" input = "mixR:In 5" }
{ output = "convSR_R:Out" input = "mixR:In 6" }
]
inputs = [ "convFL:In" "convFR:In" "convFC:In" "convLFE:In" "convSL:In" "convSR:In" ]
outputs = [ "mix2L:Out" "mix2R:Out" ]
inputs = [ "copyFL:In" "copyFR:In" "convFC:In" "convLFE:In" "copySL:In" "copySR:In" ]
outputs = [ "mixL:Out" "mixR:Out" ]
}
capture.props = {