andrepxx / go-dsp-guitar

A cross-platform multichannel multi-effects processor for electric guitars and other instruments.
Apache License 2.0
186 stars 29 forks source link

Error on Windows 10 #3

Closed ricardoborges closed 3 years ago

ricardoborges commented 3 years ago

I'm trying to run on windows 10 home edition. The program says "libjack64.dll" now found. How can I setup that dependency?

I'm very curious to test this code! Nice job!! Congrats

andrepxx commented 3 years ago

Do you use the provided binary tarball or do you try to build the application from source? I assume the first.

This application uses JACK Audio Connection Kit as the way to access the system's audio devices. It's a so called "sound server" and related API that comes originally from the POSIX / Unix world, but has been ported to Windows as well. It's the way Unix applications access the sound card for latency-sensitive operation, so you can think of it as the Unix equivalent to ASIO. However, it can actually do more, because it can not only connect applications to audio devices, but also applications to one another. For example, you could forward the signal from a software synthesizer through an effects processor (like go-dsp-guitar) and then through your digital audio workstation (DAW), like Ardour, Cubase, Presonus, or whatever.

Setting up JACK and running go-dsp-guitar in real-time mode

First make sure that you have an ASIO-capable driver installed for the audio interface you want to use!

You can download JACK for Windows from here.

https://jackaudio.org/downloads/

Use the 64-bit installer. (Basically all systems have a 64-bit processor now.)

After you installed JACK, open a program called JACK Control to configure the sound server.

Set the following options.

  1. In the "Parameters" tab:

(*) Select the audio interface you want to use for real-time processing (for input and output) here. The interface selected here should use the ASIO driver.

(*) This will give the most stable operation. You can later adjust the frames / period setting from the go-dsp-guitar* user interface while it is running.

  1. In the "Advanced" tab:

If you did not find your interface (with ASIO driver) in the "Interface" list of the "Parameters" tab, instead set the following.

  1. In the "Parameters" tab:
  1. In the "Advanced" tab:

Set all other options as outlined above.

Apply settings by clicking "Ok", then hit "Start" to start the JACK audio server. (JACK then runs as a background service on your system.)

After you did that, you can start go-dsp-guitar in real-time mode. (It's best to use a console window, for example PowerShell for that. Type "./dsp-win-amd64.exe" in PowerShell to start go-dsp-guitar in real-time mode.)

(If the Windows firewall asks you, whether you want to grant go-dsp-guitar access to the network, allow it. It only uses a network socket to provide a server for the browser-based user interface.)

Even now, go-dsp-guitar will probably not have access to your audio hardware yet, because you still have to configure how to map the actual inputs and outputs that your audio hardware provides to the input and output channels of go-dsp-guitar. You can do that in the "Connections" window of the JACK Control application, where go-dsp-guitar should show up as a client when it's running. If you don't want to do this manually all the time, you can also configure these connections in the "Connections" section inside the "config/config.json" configuration file in the location where you extracted go-dsp-guitar. (*)

() To find what to put in that section, and how JACK and go-dsp-guitar* are set up on Linux in general, how the connection setup works, etc., watch this video: https://www.youtube.com/watch?v=fxgwbZSU4_g

Even though you work on Windows, it might still be worth watching, since basically only the initial setup of JACK will be different between Windows and Linux.

Alternatively: Running go-dsp-guitar in batch processing mode

Alternatively, if you want to process audio files instead of processing real-time audio, you can also run go-dsp-guitar in "batch processing mode" instead. To do this, type "./dsp-win-amd64.exe -channels 1" on the console. Replace the number 1 by the actual number of channels you want to process, then type in the sample rate (time discretization) you want the simulation to operate at. (This will be the sample rate of the output files go-dsp-guitar generates.) The sample rate is in Hertz, so type 96000 for 96 kHz. After that, the web interface will be accessible via your browser, where you can configure the signal chain(s). (You will have to bypass a certificate warning in your browser to access it.)

After you are finished configuring, click on the "Process now" button in the web interface. The web interface will "freeze" claiming to be "Synchronizing ...". Return to the console window and answer the questions regarding sample format, bit depth, as well as both input and output paths. You can specify relative paths (relative to the current working directory in the shell / console) or absolute paths for input and output files. Beware that paths you specify as output files will get overwritten without further questions. Paths may not have leading or trailing quotes. Input files have to be in either RIFF WAVE or RF64 format and use either 8 bit, 16 bit, 24 bit or 32 bit linear PCM ("lpcm") or, alternatively, 32 bit or 64 bit IEEE 754 floating-point ("float") format.

Hope this helps. If you have any further questions, please feel free to ask.

ricardoborges commented 3 years ago

Thank you for the lesson! I got the big picture now. I'll try put to work ASAP. Cheers

andrepxx commented 3 years ago

Hey @ricardoborges .

Please take a look at our latest build. We closed another issue (#4), which due to old outdated system libraries used in our cross-compilation builds, caused the application not to run on a fully-updated installation of Windows 10 with the latest version of JACK 2 installed.

Please try at least v1.6.3 (just released) of go-dsp-guitar on Windows, since we updated the sysroot that we use for our cross-compilation builds right before we built that release.

Regards.

ricardoborges commented 3 years ago

Awesome! Thank you for sharing the news!!

As soon as my 1 year old son let me do it, I'll try LoL

On Sat, Dec 26, 2020, 13:53 Andre Plötze notifications@github.com wrote:

Hey @ricardoborges https://github.com/ricardoborges .

Please take a look at our latest build. We closed another issue (#4 https://github.com/andrepxx/go-dsp-guitar/issues/4), which due to old outdated system libraries used in our cross-compilation builds, caused the application not to run on a fully-updated installation of Windows 10 with the latest version of JACK 2 installed.

Please try at least v1.6.3 (just released) of go-dsp-guitar on Windows, since we updated the sysroot that we use for our cross-compilation builds right before we built that release.

Regards.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/andrepxx/go-dsp-guitar/issues/3#issuecomment-751374111, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADCYXBQO5Q5W47WVJN43LLSWYIJVANCNFSM4UBHX6HA .

andrepxx commented 3 years ago

I assume that this issue is resolved.

If you need more help on how to set the application up on Windows 10, take a look here: https://www.youtube.com/watch?v=ujBH5qj3R5A

If there are still issues, please feel free to open another bug ticket.

Regards.

kiraacorsac commented 8 months ago

Setting up JACK and running go-dsp-guitar in real-time mode

First make sure that you have an ASIO-capable driver installed for the audio interface you want to use! ...

This/most of this should be part of a README, or at least some "quickstart" guide. It's very useful, it should not be tucked away in a closed issue.

andrepxx commented 8 months ago

There's a video tutorial on YouTube about how to set this up under Windows, but I'll create an issue to create an "official" (probably Markdown-based) documentation and link this from the main "README.md".

andrepxx commented 8 months ago

Created new issue: #12