Skip to content
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

Open
iamthechrisb opened this issue May 7, 2024 · 39 comments
Open

cannot connect with Yamaha MG-XU usb mixers on Windows #35

iamthechrisb opened this issue May 7, 2024 · 39 comments
Labels
bug Something isn't working

Comments

@iamthechrisb
Copy link

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!

@iamthechrisb iamthechrisb changed the title cannot connect with MG usb mixers on WIndows cannot connect with Yamaha MG-XU usb mixers on WIndows May 7, 2024
@iamthechrisb iamthechrisb changed the title cannot connect with Yamaha MG-XU usb mixers on WIndows cannot connect with Yamaha MG-XU usb mixers on Windows May 7, 2024
@christofmuc
Copy link
Owner

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.

@christofmuc
Copy link
Owner

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.

@christofmuc christofmuc added the question Further information is requested label May 7, 2024
@iamthechrisb
Copy link
Author

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.
Thanks for the reply
was compiled with defaults. we want to run at 48, the device supports this and runs fine with Jamulus and Sonobus. If the device is set to 44.1 when not used by say Jamulus, then Jamulus can open it and use it. Is Jamulus telling it to use 48? Feels like something is missing when Jammernetz goes to open the device.

@christofmuc
Copy link
Owner

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.

@iamthechrisb
Copy link
Author

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.

@christofmuc christofmuc added bug Something isn't working and removed question Further information is requested labels May 11, 2024
@christofmuc
Copy link
Owner

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

		JUCE_ASIO_DEBUGGING=1

to line 160 in the CMakeLists.txt file. We should see the full communication and ASIO calls.

@iamthechrisb
Copy link
Author

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

		JUCE_ASIO_DEBUGGING=1

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?

@christofmuc
Copy link
Owner

The client. The server contains no ASIO code as it does not need to work with audio devices directly.

@iamthechrisb
Copy link
Author

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

@iamthechrisb
Copy link
Author

The client. The server contains no ASIO code as it does not need to work with audio devices directly.

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.

@christofmuc
Copy link
Owner

@iamthechrisb I ran the pipeline with the corresponding change, can you try this one: Download artifact

@iamthechrisb
Copy link
Author

@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!
18:31:55: ASIO: found ASIO4ALL v2
18:31:55: ASIO: found AudioBox ASIO Driver
18:31:55: ASIO: found ioStation ASIO Driver
18:31:55: ASIO: found ASIO PreSonus FireStudio
18:31:55: ASIO: found Quantum ASIO driver
18:31:55: ASIO: found Realtek ASIO
18:31:55: ASIO: found ReaRoute ASIO (x64)
18:31:55: ASIO: found Revelator ASIO
18:31:55: ASIO: found Studio 192 ASIO
18:31:55: ASIO: found Studio USB ASIO Driver
18:31:55: ASIO: found StudioLive AR ASIO
18:31:55: ASIO: found StudioLive Classic USB
18:31:55: ASIO: found StudioLive Series III ASIO
18:31:55: ASIO: found Yamaha Steinberg USB ASIO
18:31:55: Accessing audio device ASIO4ALL v2
18:31:55: ASIO: opening device: ASIO4ALL v2
18:31:55: ASIO: 2 in, 8 out
18:31:55: ASIO: 64->2048, 512, 8
18:31:55: ASIO: Rates: 8000 11025 16000 22050 24000 44100 48000 88200 96000 176400 192000
18:31:55: ASIO: Latencies: in = 624, out = 592
18:31:55: ASIO: creating buffers (dummy): 4, 512
18:31:55: ASIO: Latencies: in = 624, out = 592
18:31:55: ASIO: device open
18:31:55: ASIO: closed
18:31:55: Accessing audio device AudioBox ASIO Driver
18:31:55: ASIO: opening device: AudioBox ASIO Driver
18:31:55: ASIO: closed
18:31:55: Accessing audio device ioStation ASIO Driver
18:31:55: ASIO: opening device: ioStation ASIO Driver
18:31:55: ASIO: closed
18:31:55: Accessing audio device ASIO PreSonus FireStudio
18:31:55: ASIO: opening device: ASIO PreSonus FireStudio
18:31:55: ASIO: closed
18:31:55: Accessing audio device Quantum ASIO driver
18:31:55: ASIO: opening device: Quantum ASIO driver
18:31:55: ASIO: closed
18:31:55: Accessing audio device Realtek ASIO
18:31:55: ASIO: opening device: Realtek ASIO
18:31:55: ASIO: 2 in, 8 out
18:31:55: ASIO: 1024->1024, 1024, 0
18:31:55: ASIO: setting default sample rate
18:31:55: ASIO: Rates: 44100 48000 88200 96000 176400 192000
18:31:55: ASIO: getLatencies() failed
18:31:55: ASIO: creating buffers (dummy): 4, 1024
18:31:55: ASIO: error: dummy buffers - Invalid Mode
18:31:55: ASIO: getLatencies() failed
18:31:55: ASIO: error: start - Not Present
18:31:56: ASIO: device open
18:31:56: ASIO: closed
18:31:56: Accessing audio device ReaRoute ASIO (x64)
18:31:56: ASIO: opening device: ReaRoute ASIO (x64)
18:31:56: ASIO: 16 in, 16 out
18:31:56: ASIO: 1024->1024, 1024, 0
18:31:56: ASIO: Rates: 8000 11025 16000 22050 24000 32000 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000
18:31:56: ASIO: Latencies: in = 1024, out = 2048
18:31:56: ASIO: creating buffers (dummy): 4, 1024
18:31:56: ASIO: Latencies: in = 1024, out = 2048
18:31:56: ASIO: device open
18:31:56: ASIO: closed
18:31:56: Accessing audio device Revelator ASIO
18:31:56: ASIO: opening device: Revelator ASIO
18:31:56: ASIO: closed
18:31:56: Accessing audio device Studio 192 ASIO
18:31:56: ASIO: opening device: Studio 192 ASIO
18:31:56: ASIO: closed
18:31:56: Accessing audio device Studio USB ASIO Driver
18:31:56: ASIO: opening device: Studio USB ASIO Driver
18:31:56: ASIO: closed
18:31:56: Accessing audio device StudioLive AR ASIO
18:31:56: ASIO: opening device: StudioLive AR ASIO
18:31:56: ASIO: closed
18:31:56: Accessing audio device StudioLive Classic USB
18:31:56: ASIO: opening device: StudioLive Classic USB
18:31:56: ASIO: closed
18:31:56: Accessing audio device StudioLive Series III ASIO
18:31:56: ASIO: opening device: StudioLive Series III ASIO
18:31:56: ASIO: closed
18:31:56: Accessing audio device Yamaha Steinberg USB ASIO
18:31:56: ASIO: opening device: Yamaha Steinberg USB ASIO
18:31:56: ASIO: 2 in, 2 out
18:31:56: ASIO: 2048->2048, 2048, 0
18:31:56: ASIO: outputReady true
18:31:56: ASIO: Rates: 44100 48000 88200 96000 176400 192000
18:31:56: ASIO: Latencies: in = 2289, out = 2332
18:31:56: ASIO: creating buffers (dummy): 4, 2048
18:31:56: ASIO: Latencies: in = 2289, out = 2332
18:31:56: ASIO: device open
18:31:56: ASIO: closed
18:31:56: ASIO: found ASIO4ALL v2
18:31:56: ASIO: found AudioBox ASIO Driver
18:31:56: ASIO: found ioStation ASIO Driver
18:31:56: ASIO: found ASIO PreSonus FireStudio
18:31:56: ASIO: found Quantum ASIO driver
18:31:56: ASIO: found Realtek ASIO
18:31:56: ASIO: found ReaRoute ASIO (x64)
18:31:56: ASIO: found Revelator ASIO
18:31:56: ASIO: found Studio 192 ASIO
18:31:56: ASIO: found Studio USB ASIO Driver
18:31:56: ASIO: found StudioLive AR ASIO... (10 KB left)

@christofmuc
Copy link
Owner

To compare, this is the log from my successfull Motu M4:

01:00:32: ASIO: opening device: MOTU M Series
01:00:32: ASIO: 8 in, 4 out
01:00:32: ASIO: 32->32, 32, 0
01:00:32: ASIO: Rates: 44100 48000 88200 96000 176400 192000
01:00:32: ASIO: Latencies: in = 59, out = 139
01:00:32: ASIO: creating buffers (dummy): 4, 32
01:00:32: ASIO: Latencies: in = 59, out = 139
01:00:32: ASIO: device open
01:00:32: ASIO: clock: Internal (cur)
01:00:32: ASIO: disposing buffers
01:00:32: ASIO: creating buffers: 4, 32
01:00:32: ASIO: channel format: 18
01:00:32: ASIO: Latencies: in = 59, out = 139
01:00:32: ASIO: 32->32, 32, 0
01:00:32: ASIO: starting

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?

@iamthechrisb
Copy link
Author

To compare, this is the log from my successfull Motu M4:

01:00:32: ASIO: opening device: MOTU M Series
01:00:32: ASIO: 8 in, 4 out
01:00:32: ASIO: 32->32, 32, 0
01:00:32: ASIO: Rates: 44100 48000 88200 96000 176400 192000
01:00:32: ASIO: Latencies: in = 59, out = 139
01:00:32: ASIO: creating buffers (dummy): 4, 32
01:00:32: ASIO: Latencies: in = 59, out = 139
01:00:32: ASIO: device open
01:00:32: ASIO: clock: Internal (cur)
01:00:32: ASIO: disposing buffers
01:00:32: ASIO: creating buffers: 4, 32
01:00:32: ASIO: channel format: 18
01:00:32: ASIO: Latencies: in = 59, out = 139
01:00:32: ASIO: 32->32, 32, 0
01:00:32: ASIO: starting

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

@iamthechrisb
Copy link
Author

To compare, this is the log from my successfull Motu M4:

01:00:32: ASIO: opening device: MOTU M Series
01:00:32: ASIO: 8 in, 4 out
01:00:32: ASIO: 32->32, 32, 0
01:00:32: ASIO: Rates: 44100 48000 88200 96000 176400 192000
01:00:32: ASIO: Latencies: in = 59, out = 139
01:00:32: ASIO: creating buffers (dummy): 4, 32
01:00:32: ASIO: Latencies: in = 59, out = 139
01:00:32: ASIO: device open
01:00:32: ASIO: clock: Internal (cur)
01:00:32: ASIO: disposing buffers
01:00:32: ASIO: creating buffers: 4, 32
01:00:32: ASIO: channel format: 18
01:00:32: ASIO: Latencies: in = 59, out = 139
01:00:32: ASIO: 32->32, 32, 0
01:00:32: ASIO: starting

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:
22:28:04: Accessing audio device Yamaha Steinberg USB ASIO
22:28:04: ASIO: opening device: Yamaha Steinberg USB ASIO
22:28:04: ASIO: 2 in, 2 out
22:28:04: ASIO: 64->64, 64, 0
22:28:04: ASIO: outputReady true
22:28:04: ASIO: Rates: 44100 48000 88200 96000 176400 192000
22:28:04: ASIO: Latencies: in = 261, out = 304
22:28:04: ASIO: creating buffers (dummy): 4, 64
22:28:04: ASIO: Latencies: in = 261, out = 304
22:28:04: ASIO: device open
22:28:04: ASIO: closed
22:28:04: ASIO: opening device: ASIO4ALL v2
22:28:05: ASIO: 2 in, 2 out
22:28:05: ASIO: 64->2048, 256, 8
22:28:05: ASIO: Rates: 8000 11025 16000 22050 24000 32000 44100 48000 88200 96000 176400 192000
22:28:05: ASIO: Latencies: in = 256, out = 256
22:28:05: ASIO: creating buffers (dummy): 4, 256
22:28:05: ASIO: Latencies: in = 256, out = 256
22:28:05: ASIO: device open

@iamthechrisb
Copy link
Author

@christofmuc any thoughts on the output? I notice we never get asio starting..

@christofmuc
Copy link
Owner

@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.

@christofmuc
Copy link
Owner

christofmuc commented May 23, 2024

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.
Output: Log

Example:

D:\Development\github\JammerNetz-OS\builds2024\Debug>test_asio.exe "MOTU M Series"
ASIO: found ASIO4ALL v2
ASIO: found FL Studio ASIO
ASIO: found MOTU M Series
ASIO: found Soundcraft USB Audio ASIO
ASIO: found ASIO4ALL v2
ASIO: found FL Studio ASIO
ASIO: found MOTU M Series
ASIO: found Soundcraft USB Audio ASIO
ASIO: opening device: MOTU M Series
ASIO: 8 in, 4 out
ASIO: 32->32, 32, 0
ASIO: Rates: 44100 48000 88200 96000 176400 192000
ASIO: Latencies: in = 59, out = 139
ASIO: creating buffers (dummy): 4, 32
ASIO: Latencies: in = 59, out = 139
ASIO: device open
ASIO: clock: Internal (cur)
ASIO: Using preferred size for buffer..
ASIO: 32->32, 32, 0
ASIO: disposing buffers
ASIO: creating buffers: 2, 32
ASIO: channel format: 18
ASIO: Latencies: in = 59, out = 139
ASIO: 32->32, 32, 0
ASIO: starting
ASIO device started successfully!

test_asio.zip

@iamthechrisb
Copy link
Author

@christofmuc does anything need to be installed to run this looks like it is looking for some components.

Capture

@christofmuc
Copy link
Owner

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.

@christofmuc
Copy link
Owner

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.

test_asio.zip

@iamthechrisb
Copy link
Author

C:\Users\Mike\AppData\Local\Programs\JammerNetz 2>test_asio "Yamaha Steinberg USB ASIO"
ASIO: found ASIO4ALL v2
ASIO: found ASIO PreSonus FireStudio
ASIO: found Realtek ASIO
ASIO: found ReaRoute ASIO (x64)
ASIO: found Yamaha Steinberg USB ASIO
ASIO: found ASIO4ALL v2
ASIO: found ASIO PreSonus FireStudio
ASIO: found Realtek ASIO
ASIO: found ReaRoute ASIO (x64)
ASIO: found Yamaha Steinberg USB ASIO
ASIO: opening device: Yamaha Steinberg USB ASIO
ASIO: 2 in, 2 out
ASIO: 512->512, 512, 0
ASIO: outputReady true
ASIO: Rates: 44100 48000 88200 96000 176400 192000
ASIO: Latencies: in = 797, out = 928
ASIO: creating buffers (dummy): 4, 512
ASIO: Latencies: in = 797, out = 928
ASIO: device open
ASIO: clock: Internal (cur)
ASIO: rate change: 44100 to 48000
WASAPI error: AUDCLNT_E_DEVICE_INVALIDATED
WASAPI error: AUDCLNT_E_DEVICE_INVALIDATED
ASIO: kAsioResetRequest
ASIO: Using preferred size for buffer..
ASIO: 512->512, 512, 0
ASIO: disposing buffers
ASIO: creating buffers: 2, 512
ASIO: error: create buffers 2 - Invalid Mode
ASIO: error: Can't create i/o buffers - Invalid Mode
Failed to open ASIO device: Can't create i/o buffers

@iamthechrisb
Copy link
Author

iamthechrisb commented May 30, 2024

after setting buffer to 128...

C:\Users\Mike\AppData\Local\Programs\JammerNetz 2>test_asio "Yamaha Steinberg USB ASIO"
ASIO: found ASIO4ALL v2
ASIO: found ASIO PreSonus FireStudio
ASIO: found Realtek ASIO
ASIO: found ReaRoute ASIO (x64)
ASIO: found Yamaha Steinberg USB ASIO
ASIO: found ASIO4ALL v2
ASIO: found ASIO PreSonus FireStudio
ASIO: found Realtek ASIO
ASIO: found ReaRoute ASIO (x64)
ASIO: found Yamaha Steinberg USB ASIO
ASIO: opening device: Yamaha Steinberg USB ASIO
ASIO: 2 in, 2 out
ASIO: 128->128, 128, 0
ASIO: outputReady true
ASIO: Rates: 44100 48000 88200 96000 176400 192000
ASIO: Latencies: in = 392, out = 439
ASIO: creating buffers (dummy): 4, 128
ASIO: Latencies: in = 392, out = 439
ASIO: device open
ASIO: clock: Internal (cur)
ASIO: disposing buffers
ASIO: creating buffers: 2, 128
ASIO: channel format: 18
ASIO: Latencies: in = 392, out = 439
ASIO: 128->128, 128, 0
ASIO: starting
ASIO device started successfully!

This looks better, but still get error opening device when running client -- here is the client log

19:03:15: Welcome!
19:03:15: ASIO: found ASIO4ALL v2
19:03:15: ASIO: found ASIO PreSonus FireStudio
19:03:15: ASIO: found Realtek ASIO
19:03:15: ASIO: found ReaRoute ASIO (x64)
19:03:15: ASIO: found Yamaha Steinberg USB ASIO
19:03:15: Accessing audio device ASIO4ALL v2
19:03:15: ASIO: opening device: ASIO4ALL v2
19:03:15: ASIO: 2 in, 2 out
19:03:15: ASIO: 64->2048, 512, 8
19:03:15: ASIO: Rates: 8000 16000 24000 44100 48000 96000 192000
19:03:15: ASIO: Latencies: in = 544, out = 544
19:03:15: ASIO: creating buffers (dummy): 4, 512
19:03:15: ASIO: Latencies: in = 544, out = 544
19:03:16: ASIO: device open
19:03:16: ASIO: closed
19:03:16: Accessing audio device ASIO PreSonus FireStudio
19:03:16: ASIO: opening device: ASIO PreSonus FireStudio
19:03:16: ASIO: closed
19:03:16: Accessing audio device Realtek ASIO
19:03:16: ASIO: opening device: Realtek ASIO
19:03:16: ASIO: 2 in, 8 out
19:03:16: ASIO: 1024->1024, 1024, 0
19:03:16: ASIO: setting default sample rate
19:03:16: ASIO: error: setting sample rate - Not Present
19:03:16: ASIO: Rates: 44100 48000 88200 96000 176400 192000
19:03:16: ASIO: getLatencies() failed
19:03:16: ASIO: creating buffers (dummy): 4, 1024
19:03:16: ASIO: Latencies: in = 882, out = 882
19:03:16: ASIO: device open
19:03:16: ASIO: closed
19:03:16: Accessing audio device ReaRoute ASIO (x64)
19:03:16: ASIO: opening device: ReaRoute ASIO (x64)
19:03:16: ASIO: 16 in, 16 out
19:03:16: ASIO: 1024->1024, 1024, 0
19:03:16: ASIO: Rates: 8000 11025 16000 22050 24000 32000 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000
19:03:16: ASIO: Latencies: in = 1024, out = 2048
19:03:16: ASIO: creating buffers (dummy): 4, 1024
19:03:16: ASIO: Latencies: in = 1024, out = 2048
19:03:16: ASIO: device open
19:03:16: ASIO: closed
19:03:16: Accessing audio device Yamaha Steinberg USB ASIO
19:03:16: ASIO: opening device: Yamaha Steinberg USB ASIO
19:03:17: ASIO: 2 in, 2 out
19:03:17: ASIO: 128->128, 128, 0
19:03:17: ASIO: outputReady true
19:03:17: ASIO: Rates: 44100 48000 88200 96000 176400 192000
19:03:17: ASIO: Latencies: in = 392, out = 439
19:03:17: ASIO: creating buffers (dummy): 4, 128
19:03:17: ASIO: Latencies: in = 392, out = 439
19:03:17: ASIO: device open
19:03:17: ASIO: closed
19:03:17: ASIO: opening device: Yamaha Steinberg USB ASIO
19:03:17: ASIO: 2 in, 2 out
19:03:17: ASIO: 128->128, 128, 0
19:03:17: ASIO: outputReady true
19:03:17: ASIO: Rates: 44100 48000 88200 96000 176400 192000
19:03:17: ASIO: Latencies: in = 392, out = 439
19:03:17: ASIO: creating buffers (dummy): 4, 128
19:03:18: ASIO: Latencies: in = 392, out = 439
19:03:18: ASIO: device open
19:03:18: Setup>Inputs>Channels>ChannelCount updated: 2
19:03:18: Setup>Mixer>Input0>Target updated: 2
19:03:18: Setup>Mixer>Input1>Target updated: 3
19:03:18: ASIO: found ASIO4ALL v2
19:03:18: ASIO: found ASIO PreSonus FireStudio
19:03:18: ASIO: found Realtek ASIO
19:03:18: ASIO: found ReaRoute ASIO (x64)
19:03:18: ASIO: found Yamaha Steinberg USB ASIO
19:03:18: Accessing audio device ASIO4ALL v2
19:03:18: ASIO: opening device: ASIO4ALL v2
19:03:18: ASIO: 2 in, 2 out
19:03:18: ASIO: 64->2048, 512, 8
19:03:18: ASIO: Rates: 8000 16000 24000 44100 48000 96000 192000
19:03:18: ASIO: Latencies: in = 544, out = 544
19:03:18: ASIO: creating buffers (dummy): 4, 512
19:03:18: ASIO: Latencies: in = 544, out = 544
19:03:18: ASIO: device open
19:03:18: ASIO: closed
19:03:18: Accessing audio device ASIO PreSonus FireStudio
19:03:18: ASIO: opening device: ASIO PreSonus FireStudio
19:03:18: ASIO: closed
19:03:18: Accessing audio device Realtek ASIO
19:03:18: ASIO: opening device: Realtek ASIO
19:03:18: ASIO: 2 in, 8 out
19:03:18: ASIO: 1024->1024, 1024, 0
19:03:18: ASIO: setting default sample rate
19:03:18: ASIO: error: setting sample rate - Not Present
19:03:18: ASIO: Rates: 44100 48000 88200 96000 176400 192000
19:03:18: ASIO: getLatencies() failed
19:03:18: ASIO: creating buffers (dummy): 4, 1024
19:03:18: ASIO: Latencies: in = 882, out = 882
19:03:18: ASIO: device open
19:03:18: ASIO: closed
19:03:18: Accessing audio device ReaRoute ASIO (x64)
19:03:18: ASIO: opening device: ReaRoute ASIO (x64)
19:03:18: ASIO: 16 in, 16 out
19:03:18: ASIO: 1024->1024, 1024, 0
19:03:18: ASIO: Rates: 8000 11025 16000 22050 24000 32000 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000
19:03:18: ASIO: Latencies: in = 1024, out = 2048
19:03:18: ASIO: creating buffers (dummy): 4, 1024
19:03:18: ASIO: Latencies: in = 1024, out = 2048
19:03:18: ASIO: device open
19:03:18: ASIO: closed
19:03:18: Accessing audio device Yamaha Steinberg USB ASIO
19:03:18: ASIO: opening device: Yamaha Steinberg USB ASIO
19:03:21: ASIO: closed
19:03:21: ASIO: opening device: Yamaha Steinberg USB ASIO
19:03:23: Setup>Outputs>Channels>ChannelCount updated: 0
19:03:24: ASIO: opening device: Yamaha Steinberg USB ASIO
19:03:26: Device reports no buffer sizes are available!
19:03:26: ASIO: opening device: Yamaha Steinberg USB ASIO

@christofmuc
Copy link
Owner

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.

@christofmuc
Copy link
Owner

@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!

@iamthechrisb
Copy link
Author

iamthechrisb commented Jun 12, 2024

Still getting an error when starting. I do notice that no ouput channels show up on the right side - not sure if that is significant. Interestingly, it now will work with asio4all and the Yamaha (and it shows 2 output channels..)-- this would not work in the other version..
Capture
:
22:05:59: Welcome!
22:05:59: ASIO: found ASIO4ALL v2
22:05:59: ASIO: found ASIO PreSonus FireStudio
22:05:59: ASIO: found Realtek ASIO
22:05:59: ASIO: found ReaRoute ASIO (x64)
22:05:59: ASIO: found Yamaha Steinberg USB ASIO
22:05:59: ASIO: opening device: Yamaha Steinberg USB ASIO
22:06:00: ASIO: 2 in, 2 out
22:06:00: ASIO: 128->128, 128, 0
22:06:00: ASIO: outputReady true
22:06:00: ASIO: Rates: 44100 48000 88200 96000 176400 192000
22:06:00: ASIO: Latencies: in = 392, out = 439
22:06:00: ASIO: creating buffers (dummy): 4, 128
22:06:00: ASIO: Latencies: in = 392, out = 439
22:06:00: ASIO: device open
22:06:00: Setup>Inputs>Channels>ChannelCount updated: 2
22:06:00: ASIO: found ASIO4ALL v2
22:06:00: ASIO: found ASIO PreSonus FireStudio
22:06:00: ASIO: found Realtek ASIO
22:06:00: ASIO: found ReaRoute ASIO (x64)
22:06:00: ASIO: found Yamaha Steinberg USB ASIO
22:06:00: ASIO: opening device: Yamaha Steinberg USB ASIO
22:06:03: Setup>Outputs>Channels>ChannelCount updated: 0
22:06:10: Setup>Inputs>Channels>Channel0>ChannelActive updated: 1
22:06:10: Setup>Mixer>Input0>Target updated: 2
22:06:10: Setup>Inputs updated:
22:06:11: Setup>Inputs>Channels>Channel1>ChannelActive updated: 1
22:06:11: Setup>Mixer>Input1>Target updated: 3
22:06:11: Setup>Inputs updated:
22:06:14: ASIO: showing control panel
22:06:14: ASIO: spent: 72
22:06:40: ASIO: opening device: Yamaha Steinberg USB ASIO
22:06:43: Device reports no buffer sizes are available!
22:06:43: ASIO: opening device: Yamaha Steinberg USB ASIO

@christofmuc
Copy link
Owner

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.

@christofmuc
Copy link
Owner

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.

@christofmuc
Copy link
Owner

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

@iamthechrisb
Copy link
Author

iamthechrisb commented Jun 22, 2024

still getting cannot connect -- it does show outputs now..
20:10:23: Welcome!
20:10:23: ASIO: found ASIO4ALL v2
20:10:23: ASIO: found ASIO PreSonus FireStudio
20:10:23: ASIO: found Realtek ASIO
20:10:23: ASIO: found ReaRoute ASIO (x64)
20:10:23: ASIO: found Yamaha Steinberg USB ASIO
20:10:23: ASIO: opening device: Yamaha Steinberg USB ASIO
20:10:24: ASIO: 2 in, 2 out
20:10:24: ASIO: 128->128, 128, 0
20:10:24: ASIO: outputReady true
20:10:24: ASIO: Rates: 44100 48000 88200 96000 176400 192000
20:10:24: ASIO: Latencies: in = 369, out = 412
20:10:24: ASIO: creating buffers (dummy): 4, 128
20:10:24: ASIO: Latencies: in = 369, out = 412
20:10:24: ASIO: device open
20:10:24: Setup>Inputs>Channels>ChannelCount updated: 2
20:10:24: ASIO: found ASIO4ALL v2
20:10:24: ASIO: found ASIO PreSonus FireStudio
20:10:24: ASIO: found Realtek ASIO
20:10:24: ASIO: found ReaRoute ASIO (x64)
20:10:24: ASIO: found Yamaha Steinberg USB ASIO
20:10:24: ASIO: opening device: Yamaha Steinberg USB ASIO
20:10:26: Setup>Outputs>Channels>ChannelCount updated: 0
20:10:29: ASIO: opening device: Yamaha Steinberg USB ASIO
20:10:32: Device reports no buffer sizes are available!
20:10:32: ASIO: opening device: Yamaha Steinberg USB ASIO

@christofmuc
Copy link
Owner

This looks still wrong, it has an Output channel count of 0. Did you select two outputs?

@iamthechrisb
Copy link
Author

iamthechrisb commented Jun 24, 2024

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...

@iamthechrisb
Copy link
Author

had yamaha test user load rc4 client and still not seeing outputs.
JammerNetzClient_2 3 0_10_15_2024_11_45_16_PM

23:40:13: Welcome!
23:40:13: ASIO: found ASIO4ALL v2
23:40:13: ASIO: found ASIO PreSonus FireStudio
23:40:13: ASIO: found Realtek ASIO
23:40:13: ASIO: found ReaRoute ASIO (x64)
23:40:13: ASIO: found Yamaha Steinberg USB ASIO
23:40:13: ASIO: opening device: Yamaha Steinberg USB ASIO
23:40:14: ASIO: 2 in, 2 out
23:40:14: ASIO: 128->128, 128, 0
23:40:14: ASIO: outputReady true
23:40:14: ASIO: Rates: 44100 48000 88200 96000 176400 192000
23:40:14: ASIO: Latencies: in = 369, out = 412
23:40:14: ASIO: creating buffers (dummy): 4, 128
23:40:14: ASIO: Latencies: in = 369, out = 412
23:40:14: ASIO: device open
23:40:14: Setup>Inputs>Channels>ChannelCount updated: 2
23:40:14: Setup>Mixer>Input0>Target updated: 2
23:40:14: Setup>Mixer>Input1>Target updated: 3
23:40:14: ASIO: found ASIO4ALL v2
23:40:14: ASIO: found ASIO PreSonus FireStudio
23:40:14: ASIO: found Realtek ASIO
23:40:14: ASIO: found ReaRoute ASIO (x64)
23:40:14: ASIO: found Yamaha Steinberg USB ASIO
23:40:14: ASIO: opening device: Yamaha Steinberg USB ASIO
23:40:17: Setup>Outputs>Channels>ChannelCount updated: 0
23:41:23: ASIO: opening device: Yamaha Steinberg USB ASIO
23:41:26: Device reports no buffer sizes are available!
23:41:26: ASIO: opening device: Yamaha Steinberg USB ASIO

@christofmuc
Copy link
Owner

Disappointing. I guess the output from the testasio program is the same?

@christofmuc
Copy link
Owner

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/

@iamthechrisb
Copy link
Author

Disappointing. I guess the output from the testasio program is the same?

will check, I need to get more time lined up with the test user -- thanks again for the update

@iamthechrisb
Copy link
Author

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/

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.

@christofmuc
Copy link
Owner

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.

@iamthechrisb
Copy link
Author

side note: MG mixer tested on linux with pipewire and working.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants