jackaudio / jack2

jack2 codebase
GNU General Public License v2.0
2.16k stars 371 forks source link

What's going on with Jack DLL's ?? #668

Open johne53 opened 3 years ago

johne53 commented 3 years ago

On Windows, previous versions of Jack installed a whole range of supporting DLL's:-

JackRouter.dll
jack_dummy.dll
jack_loopback.dll
jack_net.dll
jack_netone.dll
jack_winmme.dll

JackRouter.dll doesn't seem to get installed any more for Jack2-64bit (1.9.16). And on my machine, none of the above get installed for Jack2-32bit. Is this intentional?

falkTX commented 3 years ago

the jack drivers are in the jack/ directory. JackRouter.dll is missing because it is unmaintained, see v1.9.15 news

jack install list:

~/.wine/drive_c/Program Files/JACK2$ find . | sort
.
./include
./include/jack
./include/jack/control.h
./include/jack/intclient.h
./include/jack/jack.h
./include/jack/jslist.h
./include/jack/metadata.h
./include/jack/midiport.h
./include/jack/net.h
./include/jack/ringbuffer.h
./include/jack/session.h
./include/jack/statistics.h
./include/jack/systemdeps.h
./include/jack/thread.h
./include/jack/transport.h
./include/jack/types.h
./include/jack/uuid.h
./include/jack/weakjack.h
./include/jack/weakmacros.h
./jack
./jack.ico
./jack/audioadapter.dll
./jack/inprocess.dll
./jack/jack_dummy.dll
./jack/jack_loopback.dll
./jack/jack_net.dll
./jack/jack_netone.dll
./jack/jack_portaudio.dll
./jack/jack_proxy.dll
./jack/jack_winmme.dll
./jack/netadapter.dll
./jack/netmanager.dll
./jack/profiler.dll
./jackd.exe
./lib
./lib/jack
./lib/jack/audioadapter.dll.a
./lib/jack/dummy.dll.a
./lib/jack/inprocess.dll.a
./lib/jack/loopback.dll.a
./lib/jack/net.dll.a
./lib/jack/netadapter.dll.a
./lib/jack/netmanager.dll.a
./lib/jack/netone.dll.a
./lib/jack/portaudio.dll.a
./lib/jack/profiler.dll.a
./lib/jack/proxy.dll.a
./lib/jack/winmme.dll.a
./lib/libjack64.def
./lib/libjack64.dll.a
./lib/libjack64.lib
./lib/libjacknet64.def
./lib/libjacknet64.dll.a
./lib/libjacknet64.lib
./lib/libjackserver64.def
./lib/libjackserver64.dll.a
./lib/libjackserver64.lib
./lib32
./lib32/libjack.def
./lib32/libjack.dll.a
./lib32/libjack.lib
./libjacknet64.dll
./libjackserver64.dll
./qjackctl
./qjackctl/Qt5Core.dll
./qjackctl/Qt5Gui.dll
./qjackctl/Qt5Network.dll
./qjackctl/Qt5Widgets.dll
./qjackctl/Qt5Xml.dll
./qjackctl/platforms
./qjackctl/platforms/qwindows.dll
./qjackctl/qjackctl.exe
./tools
./tools/jack_alias.exe
./tools/jack_bufsize.exe
./tools/jack_connect.exe
./tools/jack_cpu_load.exe
./tools/jack_evmon.exe
./tools/jack_freewheel.exe
./tools/jack_latent_client.exe
./tools/jack_load.exe
./tools/jack_lsp.exe
./tools/jack_metro.exe
./tools/jack_midi_dump.exe
./tools/jack_midi_latency_test.exe
./tools/jack_midiseq.exe
./tools/jack_midisine.exe
./tools/jack_monitor_client.exe
./tools/jack_net_master.exe
./tools/jack_net_slave.exe
./tools/jack_property.exe
./tools/jack_rec.exe
./tools/jack_samplerate.exe
./tools/jack_server_control.exe
./tools/jack_session_notify.exe
./tools/jack_showtime.exe
./tools/jack_simdtests.exe
./tools/jack_simple_client.exe
./tools/jack_simple_session_client.exe
./tools/jack_thru.exe
./tools/jack_unload.exe
./tools/jack_wait.exe
./tools/jack_zombie.exe
./unins000.dat
./unins000.exe

anything missing from the 32bit install maybe?

johne53 commented 3 years ago

Okay... 2 things:-

JackRouter.dll is missing because it is unmaintained, see v1.9.15 news

But surely the whole point of Jack is to act as a router between supported apps? Or is that all handled differently now? (sorry but I don't have 1..9.15 just at the moment)

anything missing from the 32bit install maybe?

This is where it gets weird... yesterday (on my Win32 system) I installed the pre-release Jack (the installer with the very long filename).. But this morning, it's just gone! As if it'd never been installed (and I don't remember uninstalling it). I'll try re-installing it.

kmatheussen commented 3 years ago

On Thu, Nov 12, 2020 at 12:09 PM johne53 notifications@github.com wrote:

Okay... 2 things:-

JackRouter.dll is missing because it is unmaintained, see v1.9.15 news

But surely the whole point of Jack is to act as a router between supported apps? Or is that all handled differently now? (sorry but I don't have 1..9.15 just at the moment)

JackRouter.dll is just an ASIO driver, making it possible for programs supporting ASIO to send and receive audio from Jack. I think, when someone takes upon himself to maintain it, it would be a good idea for the JackRouter to be renamed "ASIOJackDriver" or something like that.

johne53 commented 3 years ago

So is there some other routing mechanism within Jack (i.e. something which doesn't require JackRouter and ASIO ?)

TurqW commented 3 years ago

So is there some other routing mechanism within Jack (i.e. something which doesn't require JackRouter and ASIO ?)

I guess this is a bad time to be an audio processing noob, but I would also like an answer to this. Also, the "Using JACK on Windows" page will need to be updated, and I obviously cannot contribute the PR there because I have no idea what I'm supposed to be using instead.

kmatheussen commented 3 years ago

On Thu, Nov 12, 2020 at 12:57 PM johne53 notifications@github.com wrote:

So is there some other routing mechanism within Jack (i.e. something which doesn't require JackRouter and ASIO ?)

Yes, that's what most of jack is about.

kmatheussen commented 3 years ago

On Sun, Nov 22, 2020 at 3:15 AM MageCity notifications@github.com wrote:

So is there some other routing mechanism within Jack (i.e. something which doesn't require JackRouter and ASIO ?)

I guess this is a bad time to be an audio processing noob, but I would also like an answer to this. Also, the "Using JACK on Windows" https://github.com/jackaudio/jackaudio.github.com/blob/master/faq/jack_on_windows.md page will need to be updated, and I obviously cannot contribute the PR there because I have no idea what I'm supposed to be using instead.

The information on the "Using JACK on Windows" page seems correct to me though. What part could be improved?

kmatheussen commented 3 years ago

On Sun, Nov 22, 2020 at 1:09 PM Kjetil Matheussen k.s.matheussen@gmail.com wrote:

On Thu, Nov 12, 2020 at 12:57 PM johne53 notifications@github.com wrote:

So is there some other routing mechanism within Jack (i.e. something which doesn't require JackRouter and ASIO ?)

Yes, that's what most of jack is about.

I guess the confusion is about the name "JackRouter"? "JackRouter" is just a simple software to make ASIO programs appear as Jack programs. I guess it could be useful for some people, but it's not a part of jack.

johne53 commented 3 years ago

Thanks Kjetil... that suddenly makes sense now.

TurqW commented 3 years ago

https://github.com/jackaudio/jackaudio.github.com/blob/master/faq/jack_on_windows.md#installation-and-configuration literally step 3 is "boot up JackRouter.dll" ?

Nibbler311 commented 3 years ago

https://github.com/jackaudio/jackaudio.github.com/blob/master/faq/jack_on_windows.md#installation-and-configuration literally step 3 is "boot up JackRouter.dll" ?

@MageCity, I think that these informations are for the installation of Jack (1), and not Jack2.

But this leads to another question: what is the use of JackRouter in the Jack solution? I used it to communicate with other audio applications (Jamulus, Studio One), such as an Asio audio driver, but since my switch to Jack2, it is no longer possible for me to do so ... and the applications no longer communicate :/

@kmatheussen : JackRouter seamed to be a easy way to do it work the communication between audio software... no ? Is there a new way to do it with Jack2 ?

sletz commented 3 years ago

https://github.com/jackaudio/jackaudio.github.com/blob/master/faq/jack_on_windows.md#installation-and-configuration literally step 3 is "boot up JackRouter.dll" ?

@MageCity, I think that these informations are for the installation of Jack (1), and not Jack2.

Nope, this is exactly the reverse. JACK1 has never been working on Windows. Part of the reasons for developing JACK2 back in 2005 was to have a new code base more suitable to be ported on several OSs. JACK2 was first developed on OSX then Linux, then ported on Windows in 2006.

But this leads to another question: what is the use of JackRouter in the Jack solution? I used it to communicate with other audio applications (Jamulus, Studio One), such as an Asio audio driver, but since my switch to Jack2, it is no longer possible for me to do so ... and the applications no longer communicate :/

Nothing related to JACK2 there...

@kmatheussen : JackRouter seamed to be a easy way to do it work the communication between audio software... no ? Is there a new way to do it with Jack2 ?

I personally still don't understand why JackRouter support has been stopped, but this is another story.

kmatheussen commented 3 years ago

On Wed, Nov 25, 2020 at 12:15 PM Nibbler311 notifications@github.com wrote:

https://github.com/jackaudio/jackaudio.github.com/blob/master/faq/jack_on_windows.md#installation-and-configuration

But this leads to another question: what is the use of JackRouter in the Jack solution? I used it to communicate with other audio applications (Jamulus, Studio One), such as an Asio audio driver, but since my switch to Jack2, it is no longer possible for me to do so ... and the applications no longer communicate :/

That's because JackRouter is not incuded in the latest binaries. Hopefully someone will step up and compile it.

@kmatheussen https://github.com/kmatheussen : JackRouter seamed to be a easy way to do it work the communication between audio software... no ? Is there a new way to do it with Jack2 ?

Yes, that's what most of jack about. JackRouter is just an ASIO driver making ASIO-programs appear as jack programs.

I personally still don't understand why JackRouter support has been stopped, but this is another story.

That's an easy question to answer: Because no one knows how to compile it. :-) (I don't think anyone's tried either though, but that's more of a reason for the reason)

sletz commented 3 years ago

I guess using the time spent discussing the lack of JackRouter would be better used to try to compile it again... ((-;

kmatheussen commented 3 years ago

But can't you still use the old JackRouter.dll with the newest jack? It's probably not recommended since it has been reported to crash during initialization and cause all ASIO programs to break as well, but if not, it should work I guess...

On Wed, Nov 25, 2020 at 12:38 PM Stéphane Letz notifications@github.com wrote:

I guess using the time spent discussing the lack of JackRouter would be better used to try to compile it again... ((-;

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jackaudio/jack2/issues/668#issuecomment-733654668, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIX3J7ZAKRLVBSGTEFAE5DSRTUETANCNFSM4TTAJ2VQ .

johne53 commented 3 years ago

But can't you still use the old JackRouter.dll with the newest jack?

That might depend on the compiler. Programs built with MSVC almost always support this but I believe it's not guaranteed for gcc builds (in fact, there's a good chance that's probably why the initializations fail).

kmatheussen commented 3 years ago

On Wed, Nov 25, 2020 at 1:10 PM johne53 notifications@github.com wrote:

But can't you still use the old JackRouter.dll with the newest jack?

That might depend on the compiler. Programs built with MSVC almost always support this but I believe it's not guaranteed for gcc builds (in fact, there's a good chance that's probably why the initializations fail).

But I'm pretty sure the JackRouter binaries are compiled with MSVC, right?

Also, wasn't the problems people had with JackRouter caused by loading conflicting versions of portaudio.dll (in libjack)? And isn't portaudio statically linked to libjack now? So I guess it might be safe to use those old JackRouter.dll files now...?

For anyone who wants to try, they can be downloaded here: https://github.com/jackaudio/jack-router/tree/main/binaries

I guess it's enough just to place them somewhere on your filesystem, and run regsvr32?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

lucianoiam commented 3 years ago

Tried that JackRouter.dll on an up to date Win10 PC with JACK2 1.9.16, it even prevents jackd from starting, dunno why.

So I took a while to cleanup the Visual Studio project based on the README_MINGW I wrote last year, before 2020's great building process revamp. PR (including new 64bits binary) here https://github.com/jackaudio/jack-router/pull/4

My two cents on this interesting discussion, IMHO Windows is very relevant in amateurish audio setups (not every young musician can afford a Mac nor is familiar with Linux) and I see why having to deal with two separate pieces of JACK can be confusing. An ideal JACK distribution would install the server, a system service to make it transparent to the user, and the ASIO driver. The service might be started/stopped on demand by the JackRouter, or run continuously (if the ASIO output can be shared, don't know). Surely there are technical implications, the key idea is transparency: the user sets all favorite apps to ASIO/Jack and forgets forever. In my Linux box this is achieved by a systemd service that manages JACK with PulseAudio outputting to it for the non-pro apps. Everything runs so buttery smooth I forgot JACK is there, it just works. Sadly my Windows expertise stops at compiling a VS project ... never really developed for the platform.

As a JACK user on a daily basis, thanks for keeping this great piece of software alive.

kmatheussen commented 3 years ago

On Thu, Nov 26, 2020 at 1:16 AM Luciano Iam notifications@github.com wrote:

Tried that JackRouter.dll on an up to date Win10 PC with JACK2 1.9.16, it even prevents jackd from starting, dunno why.

That has to be caused by JackRouter crashing when the jack server probes portaudio for ASIO drivers. (what else could it be?) I guess you could unregister JackRouter before starting jack, and re-registering JackRouter after jack has started, but chances are that JackRouter might still crash though for mysterious reasons.

lucianoiam commented 3 years ago

I already did all that and posted a solution, thanks.

johne53 commented 3 years ago

I think I've misunderstood something here... why does JackRouter.dll need to get built with MSVC? I can understand the case for libjack.dll (because it needs to link to client apps - which needn't be built with gcc) but it's not the same for JackRouter is it? I could easily be wrong - but AFAIK JackRouter.dll doesn't need to get linked to client apps.

kmatheussen commented 3 years ago

Oh, sorry, I missed that. So, does JackRouter work now?

On Thu, Nov 26, 2020 at 10:52 AM Luciano Iam notifications@github.com wrote:

I already did all that and posted a solution, thanks.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jackaudio/jack2/issues/668#issuecomment-734195118, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIX3J2QWZW7DNDGUJABYDDSRYQMJANCNFSM4TTAJ2VQ .

falkTX commented 3 years ago

I think I've misunderstood something here... why does JackRouter.dll need to get built with MSVC?

This is a very good question. If we are able to build JackRouter with mingw, we can give it the same treatment as regular jack2 - an automated build and release with an installer.

I understand the idea of wanting to make it simple and have JackRouter part of jack2 installation. Not totally against that now, but still feel it would be better as separate project. It is the case with qjackctl, and we still package it together in the end.

lucianoiam commented 3 years ago

@johne53 I made myself the same question in my last year attempt to build a WinJACK from latest source, before falkTX modernized the build scripts

@kmatheussen no worries ! mixed too many topics in a single reply, yes JackRouter works now

@falkTX yeah after writing all that I thought that it would be better to treat it a separate project, something like "winjack". The server would be just (the critical) part of it

sletz commented 3 years ago

JackRouter.dll is indeed a JACK client. It makes any application able to connect to an ASIO become a JACK client. This can easily by checked.... by looking at the source code here: https://github.com/jackaudio/jack-router/blob/main/win/JackRouter.cpp

Nibbler311 commented 3 years ago

JackRouter works now

Yes ! Thank you @lucianoiam - It works perfectly :) (For those having trouble, after copying the new binaries from JackRouter, make sure the registry is properly linked to the DLL)

sletz commented 3 years ago

yes.... finally !!

wholenotes commented 3 years ago

@falkTX Is this the list of files for JACK 1.9.17? I'm also trying to locate the list for JACK 1.9.11 on Win64 to work on a clean uninstaller. Thanks.

the jack drivers are in the jack/ directory. JackRouter.dll is missing because it is unmaintained, see v1.9.15 news

jack install list:

~/.wine/drive_c/Program Files/JACK2$ find . | sort
.
./include
./include/jack
./include/jack/control.h
./include/jack/intclient.h
./include/jack/jack.h
./include/jack/jslist.h
./include/jack/metadata.h
./include/jack/midiport.h
./include/jack/net.h
./include/jack/ringbuffer.h
./include/jack/session.h
./include/jack/statistics.h
./include/jack/systemdeps.h
./include/jack/thread.h
./include/jack/transport.h
./include/jack/types.h
./include/jack/uuid.h
./include/jack/weakjack.h
./include/jack/weakmacros.h
./jack
./jack.ico
./jack/audioadapter.dll
./jack/inprocess.dll
./jack/jack_dummy.dll
./jack/jack_loopback.dll
./jack/jack_net.dll
./jack/jack_netone.dll
./jack/jack_portaudio.dll
./jack/jack_proxy.dll
./jack/jack_winmme.dll
./jack/netadapter.dll
./jack/netmanager.dll
./jack/profiler.dll
./jackd.exe
./lib
./lib/jack
./lib/jack/audioadapter.dll.a
./lib/jack/dummy.dll.a
./lib/jack/inprocess.dll.a
./lib/jack/loopback.dll.a
./lib/jack/net.dll.a
./lib/jack/netadapter.dll.a
./lib/jack/netmanager.dll.a
./lib/jack/netone.dll.a
./lib/jack/portaudio.dll.a
./lib/jack/profiler.dll.a
./lib/jack/proxy.dll.a
./lib/jack/winmme.dll.a
./lib/libjack64.def
./lib/libjack64.dll.a
./lib/libjack64.lib
./lib/libjacknet64.def
./lib/libjacknet64.dll.a
./lib/libjacknet64.lib
./lib/libjackserver64.def
./lib/libjackserver64.dll.a
./lib/libjackserver64.lib
./lib32
./lib32/libjack.def
./lib32/libjack.dll.a
./lib32/libjack.lib
./libjacknet64.dll
./libjackserver64.dll
./qjackctl
./qjackctl/Qt5Core.dll
./qjackctl/Qt5Gui.dll
./qjackctl/Qt5Network.dll
./qjackctl/Qt5Widgets.dll
./qjackctl/Qt5Xml.dll
./qjackctl/platforms
./qjackctl/platforms/qwindows.dll
./qjackctl/qjackctl.exe
./tools
./tools/jack_alias.exe
./tools/jack_bufsize.exe
./tools/jack_connect.exe
./tools/jack_cpu_load.exe
./tools/jack_evmon.exe
./tools/jack_freewheel.exe
./tools/jack_latent_client.exe
./tools/jack_load.exe
./tools/jack_lsp.exe
./tools/jack_metro.exe
./tools/jack_midi_dump.exe
./tools/jack_midi_latency_test.exe
./tools/jack_midiseq.exe
./tools/jack_midisine.exe
./tools/jack_monitor_client.exe
./tools/jack_net_master.exe
./tools/jack_net_slave.exe
./tools/jack_property.exe
./tools/jack_rec.exe
./tools/jack_samplerate.exe
./tools/jack_server_control.exe
./tools/jack_session_notify.exe
./tools/jack_showtime.exe
./tools/jack_simdtests.exe
./tools/jack_simple_client.exe
./tools/jack_simple_session_client.exe
./tools/jack_thru.exe
./tools/jack_unload.exe
./tools/jack_wait.exe
./tools/jack_zombie.exe
./unins000.dat
./unins000.exe

anything missing from the 32bit install maybe?

wholenotes commented 3 years ago

Not sure if the issue belongs in this thread, but I'm working with another developer who says the uninstaller successfully deleted the above list of files, but JACK is still having problems: https://github.com/jackaudio/jack2/issues/706

Wondering if there are lingering JACK files outside this list we need to account for.

SynthiaPayne commented 3 years ago

You might want to look at #714 for more info on issues related to the Win64 problems. Another person, like me, combined the 32-bit version with the 64-bit version and now JACK starts.

synth

On 2/17/2021 1:20 PM, wholenotes wrote:

Not sure if the issue belongs in this thread, but I'm working with another developer who says the uninstaller successfully deleted the above list of files, but JACK is still having problems:

706 https://github.com/jackaudio/jack2/issues/706

Wondering if there are lingering JACK files outside this list we need to account for.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jackaudio/jack2/issues/668#issuecomment-780861698, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVZZKYSIVXFIEANWJVIW6LS7QXKJANCNFSM4TTAJ2VQ.

-- "Go at it boldly, and you'll find unexpected forces closing round you and coming to your aid." -Basil King