-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cannot connect with Yamaha MG-XU usb mixers on Windows #35
Comments
Hm, the log file should list the sample rates and buffer sizes reported to be available by the interface. Also, some drivers on Windows do not allow the software to configure the audio device, but only the driver's control panel. So the sample rate needs to be set to 48000 and the buffer size to 128 manually before launching the software. But first check the output to see which values are reported. Worst case would be to recompile once you found out which samplerate/buffer size is supprted by the audio interface - try to adjust the buffer and sample rate settings in the BuffersConfig.h - https://github.com/christofmuc/JammerNetz/blob/master/common/BuffersConfig.h. I have not managed to get a good experience with Asio4all, I would strongly recommend the native driver if one is available. |
No buffer sizes could actually point to a wrong sample rate. The software is compiled for 48000, and needs to be recompiled for different sample rates. |
|
Hm, the code is pretty straightforward and in line with the ASIO functions. The problem might lie within the JUCE library used by Jammernetz, there is an additional define possible to turn on ASIO detailed logging. What library is used by Jamulus and Sonobus? I know JUCE is no longer that well maintained by now. |
Sonobus is Juice as far as I know. Jamulus uses the ASIO SDK? I thought JUICE was pretty active. Is there something that needs updated perhaps? I recall some time ago there were issues with JUICE and yamaha. |
You might be referring to https://forum.juce.com/t/yamaha-steinberg-usb-asio-problems-since-july-commit/36685/30 What we need to find out is if Jammernetz makes anything funny - I don't think so, but we can investigate when compiling with -DJUCE_ASIO_DEBUGGING=1, e.g. by adding
to line 160 in the CMakeLists.txt file. We should see the full communication and ASIO calls. |
clarification - would this be for the client build or server? |
The client. The server contains no ASIO code as it does not need to work with audio devices directly. |
makes sense -- just did not want to build the client and wanted to make sure |
It could take me a while to get this built. Would you be willing to build a client with this option? it could be a handy command line switch to help troubleshoot other potential ASIO issues. |
@iamthechrisb I ran the pipeline with the corresponding change, can you try this one: Download artifact |
Error in GUI: Device could not be opened -- error opening audio device. 18:31:55: Welcome! |
To compare, this is the log from my successfull Motu M4:
It looks like the Yamaha above is currently configured at a buffer size of 2048, while my Motu does 32. Shorter is better until the computer becomes too slow for it. What happens when you press the Configure button on the machine with the Yamaha selected - for my Motu it does open the GUI of the driver where I can set the buffer size e.g. to 32, and JammerNetz does take that value. It might make a difference if this is set before launching JammerNetz or afterwards with the Configure button. Also, some Audio software might also lock the settings in the device - make sure to test it on a rebooted machine with no other Audio software running (Ableton...). The GUI error could also indicate that too many or no input channels were selected. Can you attach a screenshot with the setup and the error? |
will do. I see the 2048 and the yamaha/steinberg driver control app was set for 128.. strange |
Did this at 64 and 128 changing via the configure button: |
@christofmuc any thoughts on the output? I notice we never get asio starting.. |
@iamthechrisb Sorry, was on a festival this weekend. True, it looks like the ASIO start function never happens, and that is the JUCE internal code, there should be no JammerNetz code in between... Some of the devices are extremely timing sensitive, and JammerNetz does multiple open and close commands when starting up. What we could do is write a little program that does only the very necessary steps to see if the JUCE ASIO code can actually use the device. |
I made a test program, not sure if that will help. I needed to reboot my Motu before it would be recognized. Input: Exact name of Audio device in quotes. Example:
|
@christofmuc does anything need to be installed to run this looks like it is looking for some components. |
Ah, that is a debug library. Sorry, I need to make you a release build and then it needs to be dropped into the Knobkraft folder where the exe is. |
Can you try this one? Drop it into the exe directory of the Jammernetz executable. Run it with test_asio "somedevicename". If the devicename is not known, it outputs the list of known device names. |
C:\Users\Mike\AppData\Local\Programs\JammerNetz 2>test_asio "Yamaha Steinberg USB ASIO" |
after setting buffer to 128... C:\Users\Mike\AppData\Local\Programs\JammerNetz 2>test_asio "Yamaha Steinberg USB ASIO" This looks better, but still get error opening device when running client -- here is the client log 19:03:15: Welcome! |
Ok, good to know the ASIO drivers and JUCE can actually open the device successfully. So this looks like the typical case of the JUCE state machine getting out of sync with ASIO, and not being able to recover. This was a very similar post in the forums: https://forum.juce.com/t/asio-failure-on-windows-10-thunderbolt-3/37953/12 I think what we need to do is to disable the auto-detection of compatible devices altogether, it probably kicks the ASIO state machine out of sync opening and closing all devices querying for supported sample rates and buffer sizes. Idealy, the JammerNetz code then only runs the commands the successful test_asio code ran. I need to rework the UI a little bit to not react immediately on drop down and checkbox changes, but rather to offer a "start audio button" that needs to be pressed by the user. |
@iamthechrisb I made a new release candidate for the 2.3.0, this has a new button you need to press to get the Audio thread spinning. Also, when you change input or output channels you need to stop the audio and start it again using this button. This is less convenient but this version does not mess with the ASIO devices you do not intent to use. Let me know if that makes any sense! |
Hm, the output devices should be listed. I will check, there is still a bug. When this is fixed, you'd probably need to remove the JammerNetz.settings file from %APPDATA%\JammerNetz. Will need another round. |
The output channels definitely are a problem. Can you try to first select the Output device and then the Input device? I would be interested to see if the device can list its output channels at all. |
Here is a new build that should work with the output channels. Try moving the settings file in %APPDATA%\JammerNetz file away to a different name to test a fresh start: https://artprodsu6weu.artifacts.visualstudio.com/A6d66facc-b722-4445-8f4b-4d54ba6a54ea/83c86e0a-cd61-4c8f-b24b-53955eb614ac/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2NocmlzdG9mMDc1OS9wcm9qZWN0SWQvODNjODZlMGEtY2Q2MS00YzhmLWIyNGItNTM5NTVlYjYxNGFjL2J1aWxkSWQvNTk2L2FydGlmYWN0TmFtZS9XaW5kb3dzSW5zdGFsbGVy0/content?format=zip |
still getting cannot connect -- it does show outputs now.. |
This looks still wrong, it has an Output channel count of 0. Did you select two outputs? |
Sorry, had to go back and check this again. the outputs are not appearing. The user had selected a different driver apparently when they saw the outputs... |
Disappointing. I guess the output from the testasio program is the same? |
Googling this device a bit more leads to several pages of people not being able to use it as an input device. Some suggest to setup the routing in the OS, maybe Windows audio setup interferes and it needs to be setup to be the default Windows device? https://obsproject.com/forum/threads/audio-issue-yamaha-mixer.121358/ |
will check, I need to get more time lined up with the test user -- thanks again for the update |
can check this too. PS - I know these devices work without these issues on Jamulus and Sonobus - and not selected as default. Is the device support the same as Sonobus as they are both JUCE? We had been them to help windows Jamulus users a while back to deal with only 2 in/out issues.. and have quite a few of them out there. |
Jamulus does not use Juce, it is build on Qt and Jack. Sonobus uses Juce (an old, modified branch of JUCE 6), but it does not seem to have Asio specific changes in that branch of JUCE. From what I understand the architecture is very different from JammerNetz, it is actually using Audio plugins and a head less plugin host. Sadly that makes the whole audio path not very comparable with my solution. I still think the issue must be something simple, like the audio device resetting its buffers on its own or something similar, which prevents the open call to report the output devices. |
side note: MG mixer tested on linux with pipewire and working. |
great project! Been testing with a few people and have not been able to get anyone on that has one of the Yamaha MG-XU usb mixers -- eg the MG10XU and 16. This happened with both the Yamaha/Steinberg Driiver and Asio4all. The device would show as unsupported at times. These messages were seen in the log:
22:29:24: Accessing audio device Yamaha Steinberg USB ASIO
22:29:28: Setup>Inputs>Device updated: Yamaha Steinberg USB ASIO
22:29:31: Device reports no buffer sizes are available!
Any Ideas?
Thank You!
The text was updated successfully, but these errors were encountered: