Follow

somebody who knows how to use pipewire, please, send help

boost this otherwise <3

Β· Β· 2 Β· 25 Β· 4

@efi I relatively "know" how to use pipewire, what's up?

how can i do something like

pcm.onboard_dmix_out {
type dmix
ipc_key 3216
slave {
channels 6
rate 44100
format S16_LE
# period_size 1024

period_size 128
periods 32
# buffer_size 4096
# buffer_size 8192
# period_time 5000
# buffer_time 20000
pcm {
type hw
card "Creative"
device 0
}
}
}

pcm.rubix24_dmix_out {
type dmix
ipc_key 1366
slave {
channels 4
rate 44100
format S16_LE
# period_size 1024

period_size 128
periods 32
#buffer_size 1024
# buffer_size 8192
# period_time 5000
# buffer_time 20000
pcm {
type hw
card "Rubix24"
device 0
chmap [ "UNKNOWN" "FL,FR,RL,RR" ]
}
}
}

pcm.multi_out {
type plug
hint.description "mixed card"
slave.pcm {
type multi
slaves.a {
#WTF ?
#pcm "rubix24_dmix_out"
pcm {
type plug
slave.pcm "rubix24_dmix_out"
}
channels 4
}
slaves.b {
pcm "onboard_dmix_out"
channels 6
}
bindings {
0 { slave a channel 0 }
1 { slave a channel 1 }
2 { slave a channel 2 }
3 { slave a channel 3 }
4 { slave b channel 5 }
}
}
}

pcm.multi_out_nodmix {
type plug
slave.pcm {
type multi
slaves.a {
pcm {
type hw
card "Rubix24"
device 0
chmap [ "UNKNOWN" "FL,FR,RL,RR" ]
}
channels 4
}
slaves.b {
pcm {
type hw
card "Generic"
device 0
}
channels 6
}
bindings {
0 { slave a channel 0 }
1 { slave a channel 1 }
2 { slave a channel 2 }
3 { slave a channel 3 }
4 { slave b channel 5 }
}
}
}


#pcm.rubix24_out {
# type plug
# slave.pcm "rubix24_dmix_out"
#}

pcm.multi_downmix51 {
type route
slave.pcm "multi_out"
slave.channels 5
ttable.0.FL 1
ttable.1.FR 1
ttable.2.RL 1
ttable.3.RR 1
ttable.4.FL 0.6
ttable.4.FR 0.6
ttable.5.LFE 1
}

pcm.multi_downmix51_scream {
type route
slave.pcm "multi_out"
slave.channels 5
ttable.0.FL 1
ttable.1.FR 1
ttable.4.RL 1
ttable.5.RR 1
ttable.2.FL 0.6
ttable.2.FR 0.6
ttable.3.LFE 1
}

pcm.multi_downmix71 {
type route
slave.pcm "multi_out"
slave.channels 5
ttable.0.FL 1
ttable.1.FR 1
ttable.2.RL 1
ttable.3.RR 1
ttable.4.FL 0.6
ttable.4.FR 0.6
ttable.5.LFE 1
ttable.6.RL 1
ttable.7.RR 1
}


pcm.multi_upmix20 {
type route
slave.pcm "multi_out"
slave.channels 5
ttable.0.FL 1
ttable.1.FR 1
ttable.0.RL 1
ttable.1.RR 1
ttable.0.LFE 0.28
ttable.1.LFE 0.28
}

pcm.rubix24_upmix20 {
type route
slave.pcm "rubix24_dmix_out"
ttable.0.FL 1
ttable.1.FR 1
ttable.0.RL 1
ttable.1.RR 1
}

pcm.rubix24_downmix71 {
type route
slave.pcm "rubix24_dmix_out"
ttable.FL.FL 1
ttable.FR.FR 1
ttable.SL.RL 1
ttable.SR.RR 1
ttable.RL.RL 1
ttable.RR.RR 1
ttable.FC.FL 0.6
ttable.FC.FR 0.6
ttable.LFE.FL 0.3
ttable.LFE.FR 0.3
ttable.LFE.RL 0.3
ttable.LFE.RR 0.3
}

pcm.rubix24_downmix51 {
type route
slave.pcm "rubix24_dmix_out"
ttable.FL.FL 1
ttable.FR.FR 1
ttable.SL.RL 1
ttable.SR.RR 1
ttable.FC.FL 0.6
ttable.FC.FR 0.6
ttable.LFE.FL 0.3
ttable.LFE.FR 0.3
ttable.LFE.RL 0.3
ttable.LFE.RR 0.3
}

pcm.rubix24_surround21 {
type route
slave.pcm "multi_out"
ttable.0.FL 1
ttable.1.FR 1
ttable.2.LFE 1
}

pcm.rubix24_in {
type dsnoop
ipc_key 3310
ipc_perm 0600
slave {
channels = 2
# period_time 2000
pcm {
type hw
card "Rubix24"
device 0
}
}
}

pcm.cam_mic {
type dsnoop
ipc_key 3410
ipc_perm 0660
slave {
channels = 1
# period_time 2000
pcm {
type hw
card "U0x46d0x824"
device 0
}
}
}


pcm.rubix24_asymed {
type asym
playback.pcm "rubix24_dmix_out"
capture.pcm "rubix24_in"
}


#pcm.asymed {
# type asym
# playback.pcm "multi_out"
# capture.pcm "cam_mic"
#}


pcm.softvol_multi_default {
type softvol
slave.pcm "multi_out"
control {
name "Softmaster"
card "Rubix24"
}
}
pcm.softvol_surround51 {
type softvol
slave.pcm "multi_downmix51"
control {
name "Softmaster"
card "Rubix24"
}
}

pcm.softvol_surround71 {
type softvol
slave.pcm "multi_downmix71"
control {
name "Softmaster"
card "Rubix24"
}
}

pcm.softvol_surround40 {
type softvol
slave.pcm "rubix24_dmix_out"
control {
name "Softmaster"
card "Rubix24"
}
}

pcm.softvol_surround21 {
type softvol
slave.pcm "rubix24_surround21"
control {
name "Softmaster"
card "Rubix24"
}
}

pcm.softvol_upmix20 {
type softvol
slave.pcm "multi_upmix20"
control {
name "Softmaster"
card "Rubix24"
}
}



pcm.asymed {
type asym
playback.pcm "softvol_multi_default"
capture.pcm "cam_mic"
}



pcm.!surround51 {
type plug
slave.pcm "softvol_surround51"
}

pcm.!surround71 {
type plug
slave.pcm "softvol_surround71"
}

pcm.!surround40 {
type plug
slave.pcm "softvol_surround40"
}

pcm.!surround41 {
type plug
slave.pcm "softvol_multi_default"
}

pcm.!surround21 {
type plug
slave.pcm "softvol_surround21"
}

pcm.!default {
type plug
slave.pcm "asymed"
}

with pipewire ?

@sss There's a lot going on here and I don't know your system; what exactly are your trying to do?

i need to make from two sound cards combined device with custom channel mapping, also i need to create few channels with combination of other channels with custom volume levels

@sss I can't answer this off the top of my head, but if I have some time it might be interesting to look into.

In the mean time have a look here: git.sr.ht/~nebunez/pipewire-ut
These files are really outdated, but I am working with custom sinks, and there might be something to lead you in the right direction for what you are trying to do.

it was easier than i thought, but i still need apply some volume tuning
https://i.imgur.com/deTfMbx.png
and now i have unpleasant clipping ....
it's nice what in "ProAudio" mode pipewire does not do shit like pulseaudio does...

@sss
yes, Pro Audio mode is one of my fav features

@nebunez I want to load a lv2 plugin in pipewire.conf, but I can't find any examples

@efi Hmm, this is interesting, and I've never considered this use case. Have you done this before with pulse/alsa as a reference or are you hoping that pipewire can achieve this as a new feature?

@nebunez I used to have an equalizer in jack until Carla stopped working on my system
it's eq10q and I have a file saved with the values I liked, but now it's locked 'cause it's a binary file and I'm not sure how to see the values it had
I use it as a system-wide equalizer 'cause I only use headphones and they are way too bassy

@efi hmm, pipewire should support jack applications just fine if you have pipewire-jack installed so that pipewire can do "jack stuff".

The fact that Carla has stopped working leads me to believe that there is either some problem or you don't have all the proper packages installed, because that should work, too.

After you've confirmed you have the proper pipewire-* packages installed, try resetting your pipewire configs to default (back up your current configs!) and see if Carla works again.

@efi For reference, these are the pipewire packages installed on my system

@nebunez but why would I want jack or carla? I only used carla to load the lv2 plugin, which should load on any other thing that can load lv2, which pipewire says it can do

@efi pipewire-jack isn't jack, it just pretends to be jack for applications that want it.

Right now there is not a lot of native support for pipewire but the strength is letting other apps that expect jack, or pulse, think that pipewire is one of those audio servers so it can communicate with them.

I still use Carla to manage my pipewire routing because I am familiar with the interface, it's easy to use and it gets the job done.

As for pipewire natively loading lv2, I have no experience w/ it

@efi Yeah, it took me a while to understand how people are using pipewire even though it's not "supported" --first class hacks, haha!
I hope that info is helpful πŸ˜„

@nebunez very! I can see the values from the old equalizer now! thanks

@nebunez btw, I moved them over to easyeffects and yep, it sounds great now =D
(and bonus I have a proper compressor that prevents loud noises from damaging my ears)

Sign in to participate in the conversation
Chitter

Chitter is a social network fostering a friendly, inclusive, and incredibly soft community.