Things expected to implement:
Controller:
- Async and multiprocess support.
- Chunked data processing.
- Real time processing.
- Real time convert from wav to other encodings formats.
- Multiple players independently
Pipewire's API implementation:
- Play
pw-play - Record
pw-record - Cat
pw-cat - JACK-servers
pw-jack - pipewire command line.
- control over multiple pipewire cat running.
-
pw-mondumps and monitors the state of the PipeWire daemon -
pw-dotcan dump a graph of the pipeline, check out the help for how to do this. -
pw-topmonitors the real-time status of the graph. This is handy to find out what clients are running and how much DSP resources they use. -
pw-dumpdumps the state of the PipeWire daemon in JSON format. This can be used to find out the properties and parameters of the objects in the PipeWire daemon. -
pw-cli ls Deviceto list devices -
pw-metadataget metadata -
pw-cli cn adapter factory.name=audiotestsrc media.class="Audio/Source" object.linger=1 node.name=my-null-source node.description="My null source"Null sources can be created with the native API -
pw-cli cn adapter factory.name=audiotestsrc media.class="Stream/Output/Audio" object.linger=1 node.name=my-sine-stream node.description="My sine stream" node.autoconnect=1You can create a sine stream -
pw-cli cn adapter factory.name=audiotestsrc media.class="Audio/Source" object.linger=1 node.name=my-sine-source node.description="My sine source"Or a sine source -
pw-cli s <card-id> Profile '{ index: <profile-index>, save: true }'# set new default -
pw-cli e <card-id> ProfileYou can query the current profile with -
pw-cli ls Node -
pw-metadata 0 default.configured.audio.sink '{ "name": "<sink-name>" }'You can change the configured defaults with
External aps
- Easyeffects
- PYPI package releases
- CI/CD implementation
Graphic User Intefrace:
- GUI similar to
pavucontrol, maybepwcontrol.
All APIS here
More info here