libpipew...ban-recv(7)

🌸 NAME 🌸

libpipewire-module-vban-recv β€” a VBAN receiver, bestie πŸ’–

(this one lives in the Miscellaneous Information Manual, and the page you're reading is libpipew...ban-recv(7), iykyk)


✨ DESCRIPTION ✨

Okay so the vban-recv module spins up a PipeWire source that catches audio and midi VBAN packets for you πŸŽ€

It listens on one specific port β€” 6980 β€” and for every VBAN stream that shows up on that port, it makes a stream. One port in, a stream per sender out. That's the whole vibe 🌈


πŸ‘‘ MODULE NAME πŸ‘‘

libpipewire-module-vban-recv

periodt πŸ’…


πŸ¦‹ MODULE OPTIONS πŸ¦‹

These are the options that are specifically about how this module behaves, no cap:

  • local.ifname = <str> β€” the interface name to use
  • source.ip = <str> β€” the source ip address to listen on, default 127.0.0.1
  • source.port = <int> β€” the source port to listen on, default 6980
  • node.always-process = <bool> β€” true to receive even when not running
  • sess.latency.msec = <str> β€” target network latency in milliseconds, default 100
  • stream.props = {} β€” properties to be passed to all the stream
  • stream.rules = <rules> β€” match rules, use create-stream actions

πŸ”₯ stream.rules matches πŸ”₯

These are the things you can match on, bestie:

  • vban.ip β€” the IP address of the VBAN sender
  • vban.port β€” the port of the VBAN sender
  • sess.name β€” the name of the VBAN stream

πŸ’œ stream.rules create-stream πŸ’œ

On top of all the properties that can be passed to a stream, you can also set this one:

  • sess.latency.msec = <str> β€” target network latency in milliseconds, default 100

πŸ’… GENERAL OPTIONS πŸ’…

Options with well-known behavior (the classics, the icons, the main characters):

  • remote.name
  • audio.layout
  • audio.position
  • media.name
  • media.class
  • node.name
  • node.description
  • node.group
  • node.latency
  • node.virtual

🌈 EXAMPLE CONFIGURATION 🌈

Slap this in # ~/.config/pipewire/pipewire.conf.d/my-vban-recv.conf and you're SO set:

context.modules = [
{   name = libpipewire-module-vban-recv
    args = {
        #local.ifname = eth0
        #source.ip = 127.0.0.1
        #source.port = 6980
        sess.latency.msec = 100
        #node.always-process = false
        #audio.position = [ FL FR ]
        stream.props = {
           #media.class = "Audio/Source"
           #node.name = "vban-receiver"
        }
        stream.rules = [
            {   matches = [
                    {    sess.name = "~.*"
                         #sess.media = "audio" | "midi"
                         #vban.ip = ""
                         #vban.port = 1000
                         #audio.channels = 2
                         #audio.format = "U8" | "S16LE" | "S24LE" | "S32LE" | "F32LE" | "F64LE"
                         #audio.rate = 44100
                    }
                ]
                actions = {
                    create-stream = {
                        stream.props = {
                            #sess.latency.msec = 100
                            #target.object = ""
                            #audio.position = [ FL FR ]
                            #media.class = "Audio/Source"
                            #node.name = "vban-receiver"
                        }
                    }
                }
            }
        ]
    }
}
]

⭐ Since ⭐

0.3.76 β€” yeah it's been around a minute, and it ate πŸ™ˆ


and that's the whole page, bestie πŸ’– this gem comes to you from PipeWire version 1.6.11 β€” go forth, receive those packets, and stay iconic πŸ‘‘βœ¨πŸ¦‹

πŸ“¦ where this page comes from