Git Product home page Git Product logo

Comments (9)

ddan39 avatar ddan39 commented on May 28, 2024 1

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.

from lyrebird.

PGBastien avatar PGBastien commented on May 28, 2024

Hi, same for me on Linux Mint 21.2

from lyrebird.

PGBastien avatar PGBastien commented on May 28, 2024

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.

from lyrebird.

ahrnbom avatar ahrnbom commented on May 28, 2024

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...

from lyrebird.

ddan39 avatar ddan39 commented on May 28, 2024

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

from lyrebird.

ddan39 avatar ddan39 commented on May 28, 2024

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

from lyrebird.

ddan39 avatar ddan39 commented on May 28, 2024

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"

from lyrebird.

GuckicheLorraine avatar GuckicheLorraine commented on May 28, 2024

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.

from lyrebird.

GuckicheLorraine avatar GuckicheLorraine commented on May 28, 2024

Oh phew ! I was scared for a second ! 😅

from lyrebird.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.