Skip to content
This repository has been archived by the owner on Dec 13, 2023. It is now read-only.

Not working on Mint 21.2 Cinnamon #134

Open
GuckicheLorraine opened this issue Sep 27, 2023 · 9 comments
Open

Not working on Mint 21.2 Cinnamon #134

GuckicheLorraine opened this issue Sep 27, 2023 · 9 comments

Comments

@GuckicheLorraine
Copy link

GuckicheLorraine commented Sep 27, 2023

Hi !
The app basically runs but it seems to not create any virtual audio input or things like that.
Plus, when I do run lyrebire through a terminal, it launches but when I click on toggle, it returns with errors in the terminal.
And my pc gets very slow to shutdown when the app is installed but completely fine when not.
After rebooting the pc, the app works but it does not seem to manage to create an audio virtual device even tho its trying and some apps like obs studio starts to not work until I uninstall lyrebird.
It still makes a "dummy output" and my pc is slow to turn off.
Which makes it looks a bit annoying to use and shady...

Regards !

@PGBastien
Copy link

Hi, same for me on Linux Mint 21.2

@PGBastien
Copy link

My terminal returns this error message when i click on "Toggle Lyrebird"

> lyrebird
[info] Starting Lyrebird v1.2.0
[info] Audio server: None
Échec : Échec lors de l’initialisation du module
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.10/subprocess.py", line 369, 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.
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 153, in apport_excepthook
    with os.fdopen(os.open(pr_filename,
FileNotFoundError: [Errno 2] Aucun fichier ou dossier de ce type: '/var/crash/_usr_share_lyrebird_app.py.1000.crash'

Original exception was:
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.10/subprocess.py", line 369, 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.

@ahrnbom
Copy link

ahrnbom commented Oct 28, 2023

Hi!

After trying multiple sound changing apps, I finally found Lyrebird which seems to be exactly the tool I want. Unfortunately, I also ran into a similar issue as the others in this thread.

For me, after installing Lyrebird 1.2.0 on Linux Mint 21.2 and rebooting, audio is completely broken, regardless of if Lyrebird is running or not. Completely broken as in I can neither capture any audio from my microphone, nor play any audio through my speakers. The audio settings in Mint simply can't find any audio devices anymore. I will probably have to reinstall my operating system to get audio running again.

Something about Lyrebird seems extremely invasive, I would not expect that running it would have any lasting impacts, it should clean up after itself so that the state of the device is just like it was before you started the app.

I could help debug this issue, but I might need to find a spare computer or something because I might not have time to reinstall my OS all that often...

@ddan39
Copy link

ddan39 commented Nov 1, 2023

This looks like it might be the same or a similar issue as #125 , and this looks like it is a simple bug due to these lines in the code shown below where it splits the command into arguments by using .split(' '). The problem is the descriptions being set should be only 1 argument, but since there is a space in the description, it is being split into 2 arguments. There are a few ways to do this better:

  1. just type in the list manually, instead of using str.split(' ')
  2. pass in the whole command just like the string as is, without split(), and set shell=True
  3. use shlex.split on the string to properly split it up into a list, and then pass that in (with the default shell=False)

Since this is only a couple hardcoded commands, not a function or user input, I would probably just go with choice 1.

    def load_pa_modules(self):
        self.null_sink = subprocess.check_call(
            'pactl load-module module-null-sink sink_name=Lyrebird-Output node.description="Lyrebird Output"'.split(' ')
        )
        self.remap_sink = subprocess.check_call(
            'pactl load-module module-remap-source source_name=Lyrebird-Input master=Lyrebird-Output.monitor node.description="Lyrebird Virtual Input"'\
                .split(' ')
        )

But even after fixing the argument splitting issue, I am having another issue because of the command trying to use node.description=. Maybe this works with pipewire-pulse, but i am trying to use pulseaudio without pipewire, and it keeps throwing an error. The command below works for me, and I would bet it works with pipewire-pulse also. I also just changed the space to an underscore for simplicity. If someone could try it and see, please let me know if it does:

pactl load-module module-null-sink sink_name=Lyrebird-Output sink_properties=device.description=Lyrebird_Output

@ddan39
Copy link

ddan39 commented Nov 1, 2023

well, even after fixing both of those issues, and it seemingly running without an error, something still isn't linking up properly to work. i can see sox running, and i see the virtual input/outputs, but the virtual input is just silent. in pavucontrol i can see audio going into sox, and then it just stops there and nothing else seems to get it

@ddan39
Copy link

ddan39 commented Nov 2, 2023

i think i have figured out the next issue. it is with the sox command. it runs "sox ... vol 0 downsample 1" but "vol 0" actually sets the volume to 0%. i think what we may want is either "vol 1" or "vol 0db"

@GuckicheLorraine
Copy link
Author

This looks like it might be the same or a similar issue as #125 , and this looks like it is a simple bug due to these lines in the code shown below where it splits the command into arguments by using .split(' '). The problem is the descriptions being set should be only 1 argument, but since there is a space in the description, it is being split into 2 arguments. There are a few ways to do this better:

  1. just type in the list manually, instead of using str.split(' ')
  2. pass in the whole command just like the string as is, without split(), and set shell=True
  3. use shlex.split on the string to properly split it up into a list, and then pass that in (with the default shell=False)

Since this is only a couple hardcoded commands, not a function or user input, I would probably just go with choice 1.

    def load_pa_modules(self):
        self.null_sink = subprocess.check_call(
            'pactl load-module module-null-sink sink_name=Lyrebird-Output node.description="Lyrebird Output"'.split(' ')
        )
        self.remap_sink = subprocess.check_call(
            'pactl load-module module-remap-source source_name=Lyrebird-Input master=Lyrebird-Output.monitor node.description="Lyrebird Virtual Input"'\
                .split(' ')
        )

But even after fixing the argument splitting issue, I am having another issue because of the command trying to use node.description=. Maybe this works with pipewire-pulse, but i am trying to use pulseaudio without pipewire, and it keeps throwing an error. The command below works for me, and I would bet it works with pipewire-pulse also. I also just changed the space to an underscore for simplicity. If someone could try it and see, please let me know if it does:

pactl load-module module-null-sink sink_name=Lyrebird-Output sink_properties=device.description=Lyrebird_Output

Me who just started using linux 2 months ago and that is quite a noob being absolutely afraid by reading what I'm supposed to do.

@ddan39
Copy link

ddan39 commented Nov 6, 2023

whoops, wrong account, let me repeat that...

well, there's nothing for you to really do here. i was more talking to the developer so they could fix it, lol.

@GuckicheLorraine
Copy link
Author

Oh phew ! I was scared for a second ! 😅

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants