jamulussoftware / jamulus

Jamulus enables musicians to perform real-time jam sessions over the internet.
https://jamulus.io
Other
997 stars 222 forks source link

Add ASIO4All setup aid on first setup #710

Closed ann0see closed 3 years ago

ann0see commented 3 years ago

Follow up https://github.com/corrados/jamulus/issues/598#issuecomment-697825195 (this idea will not solve the problem but rather mitigate it)

It would be great to add a link to the ASIO4All setup on the new homepage if ASIO4All was detected on the first start of Jamulus/if Jamulus detects that something is wrong to facilitate the setup of ASIO4All.

Furthermore I experienced a hang on "Trying to connect..." if the soundcard was wrongly setup.

(For me the Trying to connect... message is too general at the moment, but that's another issue)

corrados commented 3 years ago

Furthermore I experienced a hang on "Trying to connect..." if the soundcard was wrongly setup.

This is already covered here: https://github.com/corrados/jamulus/issues/710

ann0see commented 3 years ago

@corrados I think you linked the wrong issue

ann0see commented 3 years ago

My proposal would be to check the ASIO driver name on Windows and show a message next to the ASIO setup Button which links to the wiki. I can look into it.

corrados commented 3 years ago

You are right. This is the correct link: https://github.com/corrados/jamulus/issues/129

gene96817 commented 3 years ago

@ann0see I like your idea. How hard would it be to indicate that there is no audio-in or audio-out configured?

ann0see commented 3 years ago

Unfortunately I don't know. How would you check if the wrong input/output was set up? We don't know which the right ones are.

I think the main mixer board should look different if you are not connected to a server. My proposal looks ugly: proposalFirstStart

But something like that including a link to settings with has a small "play sound" button and a light indicating that the microphone detects something would be great.

I don't think only ASIO4All would profit from that.

gene96817 commented 3 years ago

Of course, we cannot know what is the right connection for the user. All we can tell the user is the connection is not defined (not connected to a device).

ann0see commented 3 years ago

I don't even think that we know that (since ASIO4ALL is automatically selected).

ann0see commented 3 years ago

I came up with another (probably bad) idea: We know that Jamulus needs exclusive access to the sound card. What if we start a program which wants to claim the soundcard (mic and output) and look for red crosses/yellow symbols? It could cause even more problems if the program accessing the soundcard doesn't give it back to jamulus but it might also help in short therm. I will look at it

gene96817 commented 3 years ago

This seems to be a problem with Windows. This is primarily a problem if the user tries to use Jamulus with Zoom/Jitsi. Both programs can share the mic on a Mac. For Windows, the desired behavior is for Jamulus to keep the mic connection and let Zoom/Jitsi just have the video connection This suggests to me that the user just needs a warning that another application is attempting to access the mic. This doesn't solve the problem if Jamulus starts up after another app already has a connection to the mic.

ann0see commented 3 years ago

Yeah. I couldn't get the read cross again (started edge with Jitsi) so it's not really an option.

What I also experienced:

You must disable stereo mix to get correctly configured devices working.

Also there are a lot of problems with MS GS Wavetable Synth.

corrados commented 3 years ago

It would be great to add a link to the ASIO4All setup on the new homepage if ASIO4All was detected on the first start of Jamulus/if Jamulus detects that something is wrong to facilitate the setup of ASIO4All.

I don't think we should introduce another link to the Wiki in the GUI. We already have links in the Help menu (and if a user needs help, I hope he will look into that menu).

A better solution would be that Jamulus just runs correctly without having to setup anything (i.e. not using ASIO4All at all). A possible solution would be to use Portaudio. We already have an issue about this: https://github.com/corrados/jamulus/issues/116

Portaudio can use Windows native audio interfaces so you do not need ASIO at all. Of course, it has to be evaluated what latency you will get by this but if you use your Laptop internal audio card with ASIO4All I assume the latency is not better than using Portaudio anyway.

corrados commented 3 years ago

BTW: The link in the Jamulus software Edit menu to the manual points to "https://github.com/corrados/jamulus/blob/master/src/res/homepage/manual.md". Havn't you moved that page? Should we update the link in the Jamulus software then?

ann0see commented 3 years ago

Yes, the site has been moved, but at the moment there's a discussion changing it a little bit: https://github.com/jamulussoftware/jamulussoftware.github.io/issues/14#issuecomment-718903325

Yes, moving away from ASIO4ALL would be great. We don't know if PortAudio adds latency, so I think we have to try it.

ann0see commented 3 years ago

We could also really just add a button which plays a tone through the selected output next to the driver selection and a small level meter/flashing LED which indicates that sound is coming in via the inputs. This is not really a fix but would allow to trace down issues which are related to wrongly configured in/outputs.

corrados commented 3 years ago

@ann0see You have implemented something in the Jamulus installer now to check for an ASIO driver. If you detect that ASIO4All is installed, couldn't you implement this in the installer? I.e. if the user installs Jamulus and ASIO4All is detected then show him a dialog with a link to the Wiki page?

ann0see commented 3 years ago

Yes. This is almost what happens now. The section where it links to might need to be improved and maybe explain briefly what ASIO is.

ann0see commented 3 years ago

Closed with new windows installer