jack-mixer / jack_mixer

A multi-channel audio mixer desktop application for the JACK Audio Connection Kit.
https://rdio.space/jackmixer/
GNU General Public License v2.0
95 stars 20 forks source link

Feature 'add a new track with value -inf' is not working #81

Open moonshaadow opened 3 years ago

moonshaadow commented 3 years ago

This feature is not working : when I add a new track with value -inf, the effective value is 0dB . And the GUI randomly displays -inf or 0dB .

SpotlightKid commented 3 years ago

I can't reproduce this, neither with the latest release 14 nor with the current Git main branch.

Can you please re-check this with the latest Git version?

Can anybody else reproduce this?

moonshaadow commented 3 years ago

Hi there. Sorry for the delay.

I can confirm that issue is here even with last git.

Here a screen after adding 3 new tracks at -inf. Capture d’écran_2021-01-17_22-54-25

It appears randomly, maybe you have to add many tracks to see it.

More, I have got sometimes a crash with a core dumped error when adding a track.

SpotlightKid commented 3 years ago

Thanks for the feedback! Unfortunately I still can't reproduce your results even after adding dozens of new tracks. Alas, if it happens only randomly, it is going to be be difficult to pinpoint possible causes.

Just to make sure, did you recompile with ./configure; make after checking out the Git repo? How did you run jack_mixer?

What I find curious about your screenshot is that the slider level readout for the volume of all channels shows 0.0 even though the slider only is at zero for channel "Input 1".

moonshaadow commented 3 years ago

Yes, I did recompile. git clone; ./configure; make; sudo make install. No error. I run jack_mixer by app menu or by command line.

You're right, display is wrong.

I've just checked again doing a sudo make uninstall before.

I've found another small issue : For me (Ubuntu Studio 18.04), jack_mixer.py and jack_mix_box were installed in /usr/bin and not usr/local/bin. In this cases the install (and uninstall) method from makefile is incorrect : files in /usr/bin are not updated, and then command jack_mixer uses former files.

So I've manually removed : sudo rm /usr/bin/jack_mixer usr/bin/jack_mixer.py usr/bin/jack_mix_box, and then the installation is correct.

But issue is still here : maybe I have forgotten some file to update ?

moonshaadow commented 3 years ago

Sorry I've forgot to say : I had to use ./autogen.sh before ./configure

SpotlightKid commented 3 years ago

Aha! I suspect you were still running an old installed version all along. /usr/bin/jack_mixer is only the top-level Python script, which imports the rest of the jack_mixer Python code from /usr/share/jack_mixer or /usr/local/share/jack_mixer.

To completely uninstall jack_mixer, please de-install the Ubuntu package, if youused any, and then make sure, you have no old versions anywhere, by removing any of these, if found:

And the same as above with /usr/local instead of /usr.

Ubuntu maybe has installed jack_mixer_c.so somewhere else in a Debian/Ubuntu specific location. To find that, do:

python -c 'import jack_mixer_c; print(jack_mixer_c.__file__)'

then remove the path that is printed, if any, and try again, until it reports, that it cannot import jack_mixer_c.


Now, to test & run a version from a git repo checkout, build it with:

./autogen.sh --prefix=/usr
make

and then run it without installation:

PYTHONPATH=".libs" python jack_mixer.py
moonshaadow commented 3 years ago

Thanks. Before your comment, I had found that my installation was not clean. So after removing the content of /usr/share/jack_mixer and try to install, I encountered #47, and used the tip you gave to Houston4444 because I'm also on Ubuntu Studio 18.04 + KX repos + python 3.6. Issue was still there.

Now cleaning all and try to test it without install : it doesnt work :

$ PYTHONPATH=".libs" python jack_mixer.py
Traceback (most recent call last):
  File "jack_mixer.py", line 40, in <module>
    import jack_mixer_c
ImportError: /home/studio/Bureau/jack_mixer/.libs/jack_mixer_c.so: undefined symbol: _Py_FalseStruct

Installation works, but then I have the missing jack_mixer_c, so I manually copy it from /usr/local/lib/python3.6/site-packages to /usr/lib/python3.6/lib-dynload . Then I can run jack_mixer, but can I presume my installation is clean at this point ?

SpotlightKid commented 3 years ago

The ImportError indicates there is something wrong with your .libs/jack_mixer_c.so file. It shouldn't suddenly work when you install it. I suspect it is using another left-over version from somewhere else.

Please make sure that you follow the compilation instructions exactly. If you do and then use make install, there should not be anything installed in /usr/local/lib/python3.6/site-packages! To make absolute sure, that you compile everything new, you can run make clean after the autogen step and then make to build.

moonshaadow commented 3 years ago

I've just solved the ImportError using PYTHONPATH=".libs" python3 jack_mixer.py instead of PYTHONPATH=".libs" python jack_mixer.py

SpotlightKid commented 3 years ago

Ok, can you please verify, whether the level slider / value bug is present when you run from the git repo? Also, can you please go to "Edit/Preferences" and deactivate "Use custom widgets", quit and restart and test again?

moonshaadow commented 3 years ago

Issue is still there, "Use custom widgets" is not activate

moonshaadow commented 3 years ago

To be more precise about the bug : When I add a new track (with default value = -inf) :

SpotlightKid commented 3 years ago

Sorry, I still can't reproduce this.

Would you be able to record a small screencast demonstrating this?

Please open a terminal and run:

git clone https://github.com/jack-mixer/jack_mixer.git
cd jack_mixer
./autogen.sh --prefix=/usr
make
PYTHONPATH=".libs" python3 jack_mixer.py -v

and then add tracks using the menu or Ctrl-N.

make sure the screencast also shows the console. Upload it somewhere and post the link here or contact me by email (see https://chrisarndt.de/contact) or on IRC freenode #jack_mixer and I'll send you a link where you can upload it.

SpotlightKid commented 3 years ago

This should be fixed with d6eba3bc4311cd19b5f5c5e92936fca59c17ad54 and 3a0ecbdd801b4993f55cb8931b5a776a34ae6a62.

I still couldn't reproduce this with creating input channels, but creating output channels could have been affected. If you still experience this problem with the latest version from git, please feel free to re-open the ticket with new detailed evidence (see INSTALL.md for new build instructions!)

moonshaadow commented 3 years ago

Hi @SpotlightKid . The issue is not fixed. Both input and output channels are affected. I have no permission to re-open the ticket.

I could make a screencast with the bug, please could you give me the proper command to run from the build directory ? (meson test -C builddir is not working). Or I could make it from the installed jack_mixer.

Also could you send me a link to upload? I will e-mail you right now.

SpotlightKid commented 3 years ago

The procedure to run jack_mixer from the source directory is now:

meson setup builddir --prefix=/usr --buildtype=release
meson compile -C builddir   # or ninja -C builddir compile
./tools/compile-messages.py
./tools/jack_mixer.sh
moonshaadow commented 3 years ago

You could see on the screencast that the gui displays 0.00 . When saving, the recorded value is 0.000000 .