jackaudio / jack2

jack2 codebase
GNU General Public License v2.0
2.2k stars 373 forks source link

Windows 10 - jack2-develop - jackd does not run #653

Open oifii opened 3 years ago

oifii commented 3 years ago

Hi All,

I am new to compiling github jack2 developer branch.

Compiling was successful with Code::Blocks/GCC (and Jack router dll with VS2019) under Windows 10.

Now, on first-run attempt, using the command "jackd -R -S -d portaudio -l", is not going through successfully.

I am worried about the messages: "jack_get_descriptor : dll jack_net.dll is not a driver" and "jack_get_descriptor : dll jack_netone.dll is not a driver", should these 2 components be registered as COM servers (with RegServer32) like what's required for the JackRouter.dll?

Here's my log.

Thanks,

Steph.

D:\spibin\spijack>jackd -R -S -d portaudio -l jackdmp 1.9.14 Copyright 2001-2005 Paul Davis and others. Copyright 2004-2016 Grame. Copyright 2016-2019 Filipe Coelho. jackdmp comes with ABSOLUTELY NO WARRANTY This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details Drivers/internals found in : D:\spibin\spijack Could not open component .dll 'D:\spibin\spijack\jack/jack_net.dll': 1114 Could not open component .dll 'D:\spibin\spijack\jack/jack_net.dll': 1114 jack_get_descriptor : dll jack_net.dll is not a driver jack_get_descriptor returns null for 'jack_net.dll' Could not open component .dll 'D:\spibin\spijack\jack/jack_netone.dll': 1114 Could not open component .dll 'D:\spibin\spijack\jack/jack_netone.dll': 1114 jack_get_descriptor : dll jack_netone.dll is not a driver jack_get_descriptor returns null for 'jack_netone.dll' Drivers/internals found in : D:\spibin\spijack Could not open component .dll 'D:\spibin\spijack\jack/jack_net.dll': 1114 Could not open component .dll 'D:\spibin\spijack\jack/jack_netone.dll': 1114 JACK server starting in realtime mode with priority 10 self-connect-mode is "Don't restrict self connect requests" before paHostApiInitializers[0]. after paHostApiInitializers[0]. before paHostApiInitializers[1]. WASAPI: device idx: 00 WASAPI: --------------- WASAPI:0| name[CABLE Input (VB-Audio Virtual Cable)] WASAPI:0| form-factor[1] WASAPI:0| def.SR[48000] max.CH[2] latency{hi[0.010000] lo[0.003000]} WASAPI: device idx: 01 WASAPI: --------------- WASAPI:1| name[55S425CA (Intel(R) Display Audio)] WASAPI:1| form-factor[9] WASAPI:1| def.SR[48000] max.CH[2] latency{hi[0.010000] lo[0.003000]} WASAPI: device idx: 02 WASAPI: --------------- WASAPI:2| name[Speakers/Headphones (Realtek(R) Audio)] WASAPI:2| form-factor[1] WASAPI:2| def.SR[48000] max.CH[2] latency{hi[0.010000] lo[0.003000]} WASAPI: device idx: 03 WASAPI: --------------- WASAPI:3| name[CABLE Output (VB-Audio Virtual Cable)] WASAPI:3| form-factor[2] WASAPI:3| def.SR[44100] max.CH[2] latency{hi[0.010000] lo[0.003000]} WASAPI: device idx: 04 WASAPI: --------------- WASAPI:4| name[Microphone (Realtek(R) Audio)] WASAPI:4| form-factor[4] WASAPI:4| def.SR[48000] max.CH[2] latency{hi[0.010000] lo[0.003000]} WASAPI: initialized ok after paHostApiInitializers[1]. before paHostApiInitializers[2]. Setup called Enum called noError = 0 Enum called noError = 1 Device 1 has render alias Device 1 has capture alias Enum called noError = 1 Device 2 has render alias Enum called noError = 0 Enum called noError = 0 Device 4 has capture alias Enum called noError = 0 Enum called noError = 0 Device 6 has capture alias Enum called noError = 0 Enum called noError = 1 Device 8 has render alias Device 8 has capture alias Enum called noError = 0 Enum called noError = 1 Device 10 has render alias Enum called noError = 0 Enum called noError = 1 Device 12 has render alias Device 12 has capture alias Enum called noError = 1 Device 13 has render alias Device 13 has capture alias Enum called noError = 1 Device 14 has render alias Device 14 has capture alias Enum called noError = 1 Device 15 has render alias Device 15 has capture alias Enum called noError = 1 Device 16 has render alias Device 16 has capture alias Enum called noError = 1 Device 17 has render alias Device 17 has capture alias Enum called noError = 1 Device 18 has render alias Device 18 has capture alias Enum called noError = 1 Device 19 has render alias Device 19 has capture alias Enum called noError = 1 Device 20 has render alias Device 20 has capture alias Enum called noError = 1 Device 21 has render alias Device 21 has capture alias Enum called noError = 1 Device 22 has render alias Device 22 has capture alias Enum called noError = 1 Device 23 has render alias Device 23 has capture alias Enum called noError = 1 Device 24 has render alias Device 24 has capture alias Enum called noError = 1 Device 25 has render alias Device 25 has capture alias Enum called noError = 1 Device 26 has render alias Device 26 has capture alias Enum called noError = 1 Device 27 has render alias Device 27 has capture alias Enum called noError = 1 Device 28 has render alias Device 28 has capture alias Enum called noError = 1 Device 29 has render alias Device 29 has capture alias Enum called noError = 1 Device 30 has render alias Device 30 has capture alias Enum called Interfaces found: 25 Device 1 has render alias Device 1 has capture alias Interface 1, Name: VB-Audio Point Creating pin 0: DR major format 73647561 MaxChannel: 0 Format 16 bit supported Format 24 bit supported 48kHz supported Pin created successfully Creating pin 1: Not source/sink Creating pin 2: DR major format 73647561 MaxChannel: 0 Format 16 bit supported Format 24 bit supported 48kHz supported Pin created successfully Creating pin 3: Not source/sink Filter created Device 2 has render alias Interface 2, Name: Realtek HD Audio output Creating pin 0: No standard streaming Creating pin 1: Not source/sink Filter NOT created Device 4 has capture alias Interface 4, Name: Realtek HD Audio Mic input Creating pin 0: No standard streaming Creating pin 1: Not source/sink Filter NOT created Device 6 has capture alias Interface 6, Name: Realtek HD Audio Stereo input Creating pin 0: No standard streaming Creating pin 1: Not source/sink Filter NOT created Device 8 has render alias Device 8 has capture alias Interface 8, Name: LoopBe Internal MIDI Creating pin 0: DR major format e725d360 Creating pin 1: Not source/sink Creating pin 2: DR major format e725d360 Creating pin 3: Not source/sink Filter NOT created Device 10 has render alias Interface 10, Name: Intel(R) Display Audio Output 1.1 Creating pin 0: No standard streaming Creating pin 1: Not source/sink Filter NOT created Device 12 has render alias Device 12 has capture alias Interface 12, Name: @System32\drivers\bthhfenum.sys,#4;%1 Hands-Free HF Audio%0 ;(huaweidroide) Creating pin 0: DR major format 73647561 MaxChannel: 0 Format 16 bit supported Pin created successfully Creating pin 1: Not source/sink Creating pin 2: Not source/sink Creating pin 3: DR major format 73647561 MaxChannel: 0 Format 16 bit supported Pin created successfully Filter created Device 13 has render alias Device 13 has capture alias Interface 13, Name: Q49 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Filter NOT created Device 14 has render alias Device 14 has capture alias Interface 14, Name: loopMIDI Port 10 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 15 has render alias Device 15 has capture alias Interface 15, Name: loopMIDI Port 11 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 16 has render alias Device 16 has capture alias Interface 16, Name: loopMIDI Port 12 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 17 has render alias Device 17 has capture alias Interface 17, Name: loopMIDI Port 13 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 18 has render alias Device 18 has capture alias Interface 18, Name: loopMIDI Port 14 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 19 has render alias Device 19 has capture alias Interface 19, Name: loopMIDI Port 15 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 20 has render alias Device 20 has capture alias Interface 20, Name: loopMIDI Port 16 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 21 has render alias Device 21 has capture alias Interface 21, Name: loopMIDI Port Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 22 has render alias Device 22 has capture alias Interface 22, Name: loopMIDI Port 1 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 23 has render alias Device 23 has capture alias Interface 23, Name: loopMIDI Port 2 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 24 has render alias Device 24 has capture alias Interface 24, Name: loopMIDI Port 3 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 25 has render alias Device 25 has capture alias Interface 25, Name: loopMIDI Port 4 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 26 has render alias Device 26 has capture alias Interface 26, Name: loopMIDI Port 5 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 27 has render alias Device 27 has capture alias Interface 27, Name: loopMIDI Port 6 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 28 has render alias Device 28 has capture alias Interface 28, Name: loopMIDI Port 7 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 29 has render alias Device 29 has capture alias Interface 29, Name: loopMIDI Port 8 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device 30 has render alias Device 30 has capture alias Interface 30, Name: loopMIDI Port 9 Creating pin 0: DR major format e725d360 Creating pin 1: DR major format e725d360 Creating pin 2: Not source/sink Creating pin 3: Not source/sink Creating pin 4: DR major format e725d360 DR major format e725d360 Filter NOT created Device found name: VB-Audio Point Device found name: @System32\drivers\bthhfenum.sys,#4;%1 Hands-Free HF Audio%0 ;(huaweidroide) after paHostApiInitializers[2]. ** Devices list, 14 detected ** -------- device #0 ------------------------------------------------ Name = MME::Microsoft Sound Mapper - Input Max inputs = 2 Max outputs = 0 Default sample rate = 44100.00 -------- device #1 ------------------------------------------------ [ Default Input ] Name = MME::Microphone (Realtek(R) Audio) Max inputs = 2 Max outputs = 0 Default sample rate = 44100.00 -------- device #2 ------------------------------------------------ Name = MME::CABLE Output (VB-Audio Virtual Max inputs = 8 Max outputs = 0 Default sample rate = 44100.00 -------- device #3 ------------------------------------------------ Name = MME::Microsoft Sound Mapper - Output Max inputs = 0 Max outputs = 2 Default sample rate = 44100.00 -------- device #4 ------------------------------------------------ [ Default Output ] Name = MME::Speakers/Headphones (Realtek(R) Max inputs = 0 Max outputs = 2 Default sample rate = 44100.00 -------- device #5 ------------------------------------------------ Name = MME::CABLE Input (VB-Audio Virtual C Max inputs = 0 Max outputs = 8 Default sample rate = 44100.00 -------- device #6 ------------------------------------------------ Name = MME::55S425CA (Intel(R) Display Audi Max inputs = 0 Max outputs = 2 Default sample rate = 44100.00 -------- device #7 ------------------------------------------------ Name = Windows WASAPI::CABLE Input (VB-Audio Virtual Cable) Max inputs = 0 Max outputs = 2 Default sample rate = 48000.00 -------- device #8 ------------------------------------------------ Name = Windows WASAPI::55S425CA (Intel(R) Display Audio) Max inputs = 0 Max outputs = 2 Default sample rate = 48000.00 -------- device #9 ------------------------------------------------ [ Default Windows WASAPI Output ] Name = Windows WASAPI::Speakers/Headphones (Realtek(R) Audio) Max inputs = 0 Max outputs = 2 Default sample rate = 48000.00 -------- device #10 ------------------------------------------------ Name = Windows WASAPI::CABLE Output (VB-Audio Virtual Cable) Max inputs = 2 Max outputs = 0 Default sample rate = 44100.00 -------- device #11 ------------------------------------------------ [ Default Windows WASAPI Input ] Name = Windows WASAPI::Microphone (Realtek(R) Audio) Max inputs = 2 Max outputs = 0 Default sample rate = 48000.00 -------- device #12 ------------------------------------------------ [ Default Windows WDM-KS Input ] [ Default Windows WDM-KS Output ] Name = Windows WDM-KS::VB-Audio Point Max inputs = 8 Max outputs = 8 Default sample rate = 48000.00 -------- device #13 ------------------------------------------------ Name = Windows WDM-KS::@System32\drivers\bthhfenum.sys,#4;%1 Hands-Free HF Audio%0 ;(huaweidroide) Max inputs = 1 Max outputs = 1 Default sample rate = 8000.00 **** End of list **** Cannot initialize driver JackServer::Open failed with -1 Failed to open server

D:\spibin\spijack>

falkTX commented 3 years ago

In order to get everyone on the same page, please build using waf and ignore codeblocks. Having multiple ways of building the same thing is a pain to maintain, and we know the waf builder works because that is how the official builds are using now.

I think I forgot to remove the codeblocks files, they are not meant to be there (as then gives the impression it is supported, which is not the case). Do you want to take the maintenance of these files though? We can leave them there if someone keeps working on them.

oifii commented 3 years ago

Filipe, for the time being, I would like to keep them there. But I will try to use waf. Yes, I could eventually be maintaining .cbp (if I get the build to run). Do you know if the jack2-develop code base would build when using VS2019 for everything? I'd try this too.

falkTX commented 3 years ago

No ideas on that. You are on your own if going with anything but waf.

oifii commented 3 years ago

Hey,

I don't understand how to run waf in windows, so I am still sticking to my code:blocks/gnu compiler approach.

I am guided by the procedure https://medium.com/@lucianoiam/how-to-build-jack-on-mingw-ad8bcb2c22dd.

And I have a question regarding 2 dependencies: db (libdb) and systre (libsystre).

This reference presents all jack2 dependencies to be: libstdc++-6.dll libdb-6.0.dll libsndfile-1.dll libsamplerate-0.dll libportaudio-2.dll libgcc_s_sjlj-1.dll libwinpthread-1.dll libtre-5.dll libsystre-0.dll

I got them all except libdb-6.0.dll and libsystre-0.dll.

Is libdb the Berkeley db library?

And, is libtre the https://laurikari.net/tre/download/? This libtre has some dependencies, but libsystre is not among them it seem.

lucianoiam commented 3 years ago

Hi,

That guide was written for running waf, however:

Is libdb the Berkeley db library? Yes

And, is libtre the https://laurikari.net/tre/download/? Yes

This libtre has some dependencies, but libsystre is not among them it seem. libsystre depends on libtre and not the other way around

oifii commented 3 years ago

Hey thanks lucianoiam, precious info! I am very close to get a functional windows gcc build now.

When I load the jack2 libjack64.dll in dependencies app, it complains that my tre.dll module has missing imports (function tre_regcomp, tre_regexec and tre_regfree).

I found a jack2 code base using libtre sources directly (version tre-0.8.0), I never succeeded in compiling the sources so far.

Instead, I used microsoft vcpkg to get libtre tre.dll (a different version, no number specified), and did build jack2 code against it.

Anyway, I will keep digging into this libtree tre.dll version issue.

lucianoiam commented 3 years ago

Honestly I do not know, the guide leverages source packages specifically patched for MinGW which one could assume do not lead to dependency issues.

Original Windows build guide at https://github.com/jackaudio/jack2/blob/master/windows/README reads:

_The needed regexp library TRE can be found here http://laurikari.net/tre/. Unzip and place the "tre-0.8.0" folder into the "windows" folder. Then edit and comment "#define snprintf sprintfs" at the end off the "tre-0.8.0/win32/config.h" file before building the JACK project.

The MinGW build package for libtre also points to version 0.8.0 https://github.com/msys2/MINGW-packages/blob/eb61d59f5fa56ed29467755974d2b86cebf909be/mingw-w64-libtre-git/PKGBUILD#L19

Seems like 0.8.0 is supported.

falkTX commented 3 years ago

You can also try to build from the same process as done for the official builds. https://github.com/DISTRHO/PawPaw has the build scripts, then it is just:

./bootstrap-jack2.sh win64
./build-jack2.sh win64

It is supposed to be used under Linux though (doing cross-compilation)