From Fedora Project Wiki

PipeWire CLI tools

This test case tests that PipeWire can be controlled using CLI commands.

Setup

  1. This test case should be performed on bare-metal machines. To be able to test with virtual machines, consider a USB device pass-through. Leave a note in the comments if you have performed this test using the VM with the USB Passthrough strategy.
  2. The computer must be equipped with a sound device and a microphone (or another input source of audio).
  3. Install a desktop version of Fedora 35 (or later).
  4. Check that the pipewire-utils and wireplumber packages are installed. If not, report it and install them.
  5. Connect your speakers (headphones) to the default sound device.
  6. Have an audio file in the wav format at your disposal. If you do not have one, you can download a suitable audio file. Some default files can also be found in the /usr/share/sounds/ directory.
  7. Perform the following test case as a regular user.

How to test

  1. List all available devices (targets) and check that all your output sound devices are listed.

    $ wpctl status

    Note that each target has an identification number assigned. The default target is marked with an asterisk (*). Check that it matches your default audio device.

  2. Play a wav sound file over the default target and check that it is correctly played over the default sound device.

    $ pw-cat -p <audiofile.wav>

  3. Play a wav sound file while setting the volume to a low level. Check that the playback is quieter when compared to the previous step.

    $ pw-cat -p --volume=0.1 <audiofile.wav>

  4. List all available devices (targets) and check that all your input sound devices are listed.

    $ wpctl status

  5. Connect your microphone (or another input source of audio) to the default input sound device.

  6. Record a sample recording using your default sound device. Check that it has been correctly recorded. Use the playback command used in Step 2.

    $ pw-cat -r audiotest.wav

  7. Record a sample recording using a different volume level. Check that it has been correctly recorded. Compare the volume level with the first recordings and make sure this one is much quieter.

    $ pw-cat -r --volume=0.1 quiet.wav

  8. Record a sample recording using a different rate. Check that it has been correctly recorded. Compare the quality with the first recording and check that this recording sounds less clean and has an overall "lower" quality.

    $ pw-cat -r --rate=6000 lowrate.wav

  9. If you have more than one audio devices, you can repeat the previous steps with another device using the --target option, such as

    $ pw-cat -p --target=XX <audiofile> or $ pw-cat -r --target=XX <audiofile>

    where XX stands for the device number obtained by the --list-targets option.

  10. Alternatively, you can use dedicated commands to play and record audio, i.e. pw-play and pw-record.

Expected results

  1. Playback targets are listed and they correspond to your audio devices.
  2. Audio files can be played and recorded using the pw-cat command or its dedicated variants.
  3. Connected output and input sound devices work.