Lyrebird fails to build

I’m trying to build Lyrebird from the AUR and get this error:

could not satisfy dependencies:
- removing pulseaudio breaks dependency 'pulseaudio=16.1-6' required by pulseaudio-equalizer

Most likely this can be resolved by switching to pipewire via:

sudo pacman -Syu manjaro-pipewire

lyrebird depends on pipewire-pulse which I don’t quite understand why… it should probably depend on just pulseaudio.

It depends on pipewire-pulse because it’s designed to work with PipeWire.

It does not work with PulseAudio even though pactl is provided by libpulse. I tested a modified PKGBUILD removing the pipewire-pulse dependency and tested on a system with PulseAudio:

❯ lyrebird
[info] Starting Lyrebird v1.2.0
[info] Audio server: pulseaudio
Failure: Module initialization failed
Traceback (most recent call last):
  File "/usr/share/lyrebird/app/ui/mainwindow.py", line 179, in toggle_activated
    state.audio.load_pa_modules()
  File "/usr/share/lyrebird/app/core/audio.py", line 55, in load_pa_modules
    self.null_sink = subprocess.check_call(
                     ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/subprocess.py", line 413, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['pactl', 'load-module', 'module-null-sink', 'sink_name=Lyrebird-Output', 'node.description="Lyrebird', 'Output"']' returned non-zero exit status 1.

It seemed to work fine on my other system with PipeWire.

I somehow managed to install it previously, but I can’t seem to figure out how (nothing in my ZSH history).

So it is installed but cannot update.

Things change. You should learn to check AUR page for any AUR package. Then you can check ‘View changes’ and check what changed.

https://aur.archlinux.org/cgit/aur.git/commit/?h=lyrebird&id=a34a76f941d0a9173ca0c0be27bc74d65fc3909a

So switch to pipewire if you want to use it. (before you ask how, search)

Well previously it did depend on pulseaudio, that was changed to pipewire-pulse in 1.2.0 which is kindof a breaking change…

Try reporting this upstream. The release notes for 1.2.0 say PipeWire is supported, not required.

Users could probably downgrade or build previous version of lyrebird for PulseAudio support
https://github.com/lyrebird-voice-changer/lyrebird/archive/refs/tags/v1.1.0.tar.gz

Or use DSP plugins in JACK (or pipewire-jack) with jack_rack or carla:
swh-plugins - Higher Quality Pitch Scaler (pitchScaleHQ, 1194)
tap-plugins - TAP Pitch Shifter
Other DSP plugins are also available in JACK (e.g. use a ring modulator to sound like a Dalek)

Or get a Creative Labs Soundblaster card with built-in audio processing in ALSA

Simple mixer control 'VoiceFX',0
  Capabilities: cenum
  Items: 'Neutral' 'Female2Male' 'Male2Female' 'ScrappyKid' 'Elderly' 'Orc' 'Elf' 'Dwarf' 'AlienBrute' 'Robot' 'Marine' 'Emo' 'DeepVoice' 'Munchkin'
  Item0: 'Neutral'

That’s unfortunate, and confusing… although I wonder if it would work if they used sink_properties="device.description='Lyrebird, Output'".