Andersama / obs-asio

ASIO plugin for OBS-Studio
GNU General Public License v3.0
664 stars 43 forks source link

Webcam not available after installing plugin #104

Closed Geoff12889 closed 2 years ago

Geoff12889 commented 2 years ago

My Razer Kiyo has not been available after installing the ASIO plugin. I think it's because the built-in mic is being used by the plugin, making the webcam inaccessible to OBS. Does anybody have a quick fix for this, or a way I can test it to confirm the plugin is the issue, and not something else?

SPIKEYPUP commented 2 years ago

Well my first instinct is to just uninstall/remove the plugin, restart your PC and see if the camera is restored, that should be a good indicator. However, are saying the video portion is not accessible? I don't know about the Kiyo so much but your typical webcam runs Audio and Video separately as different devices, one as a USB vid device, the other as USB Audio endpoint device for input (mic). The contention of the MIC should NOT interfere with video output, meaning even if the plugin were to grab the audio pins of the device for the audio device itself by ID or whatnot, it should not cause the video to stop being accessible. The only way I see it going haywire as a result of the plugin is if it tried grabbing all the pins for video and audio, but the thing with that is, they're separate devices, the mic vs. the video, and have their own pins... So unless the plugin is accidentally grabbing the video device as audio...I'm not sure.

Honestly I just watch this repo, I haven't evaluated any of the code or what not as i'm still considering installing this but have yet to install, so I am just speaking from a troubleshooting, general angle. You seemed like you really wanted to figure this out fast so I thought I'd offer my suggestion to aid in troubleshooting, so I apologize in advance for not having a great answer for you at this time.

You can shoot me your OBS log and I can tell you what's going on from that front if you like... so we can get more info on the issue and rule in or out OBS.

-Patrick aka Spikeypup

On Sat, Sep 4, 2021 at 10:23 AM Geoff12889 @.***> wrote:

My Razer Kiyo has not been available after installing the ASIO plugin. I think it's because the built-in mic is being used by the plugin, making the webcam inaccessible to OBS. Does anybody have a quick fix for this, or a way I can test it to confirm the plugin is the issue, and not something else?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Andersama/obs-asio/issues/104, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPM2K45FGRH4MOWFH2XEBLUAJIXHANCNFSM5DNPKZVQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Geoff12889 commented 2 years ago

Well my first instinct is to just uninstall/remove the plugin, restart your PC and see if the camera is restored, that should be a good indicator. However, are saying the video portion is not accessible? I don't know about the Kiyo so much but your typical webcam runs Audio and Video separately as different devices, one as a USB vid device, the other as USB Audio endpoint device for input (mic). The contention of the MIC should NOT interfere with video output, meaning even if the plugin were to grab the audio pins of the device for the audio device itself by ID or whatnot, it should not cause the video to stop being accessible. The only way I see it going haywire as a result of the plugin is if it tried grabbing all the pins for video and audio, but the thing with that is, they're separate devices, the mic vs. the video, and have their own pins... So unless the plugin is accidentally grabbing the video device as audio...I'm not sure. Honestly I just watch this repo, I haven't evaluated any of the code or what not as i'm still considering installing this but have yet to install, so I am just speaking from a troubleshooting, general angle. You seemed like you really wanted to figure this out fast so I thought I'd offer my suggestion to aid in troubleshooting, so I apologize in advance for not having a great answer for you at this time. You can shoot me your OBS log and I can tell you what's going on from that front if you like... so we can get more info on the issue and rule in or out OBS. -Patrick aka Spikeypup On Sat, Sep 4, 2021 at 10:23 AM Geoff12889 @.***> wrote: My Razer Kiyo has not been available after installing the ASIO plugin. I think it's because the built-in mic is being used by the plugin, making the webcam inaccessible to OBS. Does anybody have a quick fix for this, or a way I can test it to confirm the plugin is the issue, and not something else? — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#104>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPM2K45FGRH4MOWFH2XEBLUAJIXHANCNFSM5DNPKZVQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I appreciate the response. I'm going to try removing the plugin and seeing if that makes a difference. I should note, this is not the only program I have this issue (but the issue is related). As a alternative to OBS ASIO, I tried Voicemeeter and XSplit and had the same issue. If I launch XSplit first, Voicemeeter doesn't have access to any of the audio but the camera functions as expected. If I launch Voicemeeter first, the audio works as expected, but the camera won't work in XSplit. Maybe it's just an issue with the Razer Kiyo webcam :/

Anyways, here's the OBS log. Thanks for the help.

https://www.dropbox.com/s/8655jxkxg4r4c0i/2021-09-04%2020-50-03.txt?dl=0

SPIKEYPUP commented 2 years ago

Interesting.

I'm a very familiar user of Voicemeeter Potato and VBAN etc. Very familiar. What you described shouldn't be happening, there may be an issue elsewhere we need to look at. I will get back to the log and let you know if I spot anything, perhaps the developer here on this plugin will chime in if they are familiar with the issue you are having.

On Sat, Sep 4, 2021 at 7:04 PM Geoff12889 @.***> wrote:

Well my first instinct is to just uninstall/remove the plugin, restart your PC and see if the camera is restored, that should be a good indicator. However, are saying the video portion is not accessible? I don't know about the Kiyo so much but your typical webcam runs Audio and Video separately as different devices, one as a USB vid device, the other as USB Audio endpoint device for input (mic). The contention of the MIC should NOT interfere with video output, meaning even if the plugin were to grab the audio pins of the device for the audio device itself by ID or whatnot, it should not cause the video to stop being accessible. The only way I see it going haywire as a result of the plugin is if it tried grabbing all the pins for video and audio, but the thing with that is, they're separate devices, the mic vs. the video, and have their own pins... So unless the plugin is accidentally grabbing the video device as audio...I'm not sure. Honestly I just watch this repo, I haven't evaluated any of the code or what not as i'm still considering installing this but have yet to install, so I am just speaking from a troubleshooting, general angle. You seemed like you really wanted to figure this out fast so I thought I'd offer my suggestion to aid in troubleshooting, so I apologize in advance for not having a great answer for you at this time. You can shoot me your OBS log and I can tell you what's going on from that front if you like... so we can get more info on the issue and rule in or out OBS. … <#m-6849514010254377870> -Patrick aka Spikeypup On Sat, Sep 4, 2021 at 10:23 AM Geoff12889 @.***> wrote: My Razer Kiyo has not been available after installing the ASIO plugin. I think it's because the built-in mic is being used by the plugin, making the webcam inaccessible to OBS. Does anybody have a quick fix for this, or a way I can test it to confirm the plugin is the issue, and not something else? — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#104 https://github.com/Andersama/obs-asio/issues/104>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPM2K45FGRH4MOWFH2XEBLUAJIXHANCNFSM5DNPKZVQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub .

I appreciate the response. I'm going to try removing the plugin and seeing if that makes a difference. I should note, this is not the only program I have this issue (but the issue is related). As a alternative to OBS ASIO, I tried Voicemeeter and XSplit and had the same issue. If I launch XSplit first, Voicemeeter doesn't have access to any of the audio but the camera functions as expected. If I launch Voicemeeter first, the audio works as expected, but the camera won't work in XSplit. Maybe it's just an issue with the Razer Kiyo webcam :/

Anyways, here's the OBS log. Thanks for the help.

https://www.dropbox.com/s/8655jxkxg4r4c0i/2021-09-04%2020-50-03.txt?dl=0

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Andersama/obs-asio/issues/104#issuecomment-913071391, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPM2K55U3BEEFHBUMEQ6YTUALF3LANCNFSM5DNPKZVQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

SPIKEYPUP commented 2 years ago

Missing Images in Comment below this message!

First you should run the program as Admin ALWAYS to avoid many issues, just FYI. For example this was in your log, see below: [image: image.png] ^^^Which is a bad problem to have for capture in general^^^ So, make sure you start it as Admin from now on, you can make this automatic (will still popup to ask you to allow though with UAC window) by right clicking the link for OBS, and selecting the Compatibility tab, and checking the box that says "Run this program as Administrator" and it will always start with it. You can also click on the Avanced button of the link on the Shortcut Tab of it, and select the run as administrator box there alternatively.

I see the capture error but lacking major details: [image: image.png] this occurs for a few reasons and is a general windows error. It means that something wasn't available, but we don't know exactly what. It could mean that the camera pins itself were not available, in other words yes it's being used by something else and that's why you can't "grab" it when you ask. OR it means you are out of USB overhead. Can you explain the topology of your USB or use something like USB Device Tree Viewer (uwe-sieber.de) https://www.uwe-sieber.de/usbtreeview_e.html , then produce an XML report via "file" menu and send me the report? This way I can know more about the devices, know more about the pins, and know more about your controllers and bandwidth and if there are problems there.

When there is not enough USB Bandwidth available, you get a black screen or empty audio. And it's EASY to saturate USB with a 60FPS capture of 1080P or higher, so that's why we need to look how you have things hooked up and how to better distribute the load or where to add a hub. I run 4 cameras, that didn't happen overnight, that's how I know about the USB saturation issue lol.

We need to run OBS with a special startup string to get more verbosity in the logfile. Start OBS from an administrator command line using the following parameters: "--unfiltered_log --verbose" without quotes! [image: image.png]

This will instruct OBS to not skip or concatenate repeats and to provide more data. Once OBS is going, go through the motions of streaming or recording, do a test rec/stream, try to work with the camera(s), also attempt try to get them working. Just quickly what you've tried thus far. Doing all of that helps get a myriad of data to view and see what's happening.

If you've found that the plugin was the issue already (by uninstalling it), then generate a log without it installed doing the above tips, and then generate one WITH it installed, doing the above tips. Then send that log(s), as it will have lots of good data to help see what is happening and with both copies we can see what the plugin changes/does vs. when it is not installed, it could help the developer.

I didn't see anything much else in the log, but then again you didn't try to really do anything lol so it makes sense. Go ahead and do as above and let me take a look at your logs and XML. Good luck!

Patrick / Spikeypup

On Sat, Sep 4, 2021 at 7:04 PM Geoff12889 @.***> wrote:

Well my first instinct is to just uninstall/remove the plugin, restart your PC and see if the camera is restored, that should be a good indicator. However, are saying the video portion is not accessible? I don't know about the Kiyo so much but your typical webcam runs Audio and Video separately as different devices, one as a USB vid device, the other as USB Audio endpoint device for input (mic). The contention of the MIC should NOT interfere with video output, meaning even if the plugin were to grab the audio pins of the device for the audio device itself by ID or whatnot, it should not cause the video to stop being accessible. The only way I see it going haywire as a result of the plugin is if it tried grabbing all the pins for video and audio, but the thing with that is, they're separate devices, the mic vs. the video, and have their own pins... So unless the plugin is accidentally grabbing the video device as audio...I'm not sure. Honestly I just watch this repo, I haven't evaluated any of the code or what not as i'm still considering installing this but have yet to install, so I am just speaking from a troubleshooting, general angle. You seemed like you really wanted to figure this out fast so I thought I'd offer my suggestion to aid in troubleshooting, so I apologize in advance for not having a great answer for you at this time. You can shoot me your OBS log and I can tell you what's going on from that front if you like... so we can get more info on the issue and rule in or out OBS. … <#m-6849514010254377870> -Patrick aka Spikeypup On Sat, Sep 4, 2021 at 10:23 AM Geoff12889 @.***> wrote: My Razer Kiyo has not been available after installing the ASIO plugin. I think it's because the built-in mic is being used by the plugin, making the webcam inaccessible to OBS. Does anybody have a quick fix for this, or a way I can test it to confirm the plugin is the issue, and not something else? — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#104 https://github.com/Andersama/obs-asio/issues/104>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPM2K45FGRH4MOWFH2XEBLUAJIXHANCNFSM5DNPKZVQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub .

I appreciate the response. I'm going to try removing the plugin and seeing if that makes a difference. I should note, this is not the only program I have this issue (but the issue is related). As a alternative to OBS ASIO, I tried Voicemeeter and XSplit and had the same issue. If I launch XSplit first, Voicemeeter doesn't have access to any of the audio but the camera functions as expected. If I launch Voicemeeter first, the audio works as expected, but the camera won't work in XSplit. Maybe it's just an issue with the Razer Kiyo webcam :/

Anyways, here's the OBS log. Thanks for the help.

https://www.dropbox.com/s/8655jxkxg4r4c0i/2021-09-04%2020-50-03.txt?dl=0

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Andersama/obs-asio/issues/104#issuecomment-913071391, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPM2K55U3BEEFHBUMEQ6YTUALF3LANCNFSM5DNPKZVQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

SPIKEYPUP commented 2 years ago

Here are the images from that file unnamed ^^ your log showing needs Admin Priv unnamed (1) ^^ USB Devices Needing Mre resources Section unnamed (2) ^^ Commandline To run OBS with more logging (run in ADMIN command window!!!)

Geoff12889 commented 2 years ago

I tried uninstalling the plugin with no success. After completely removing OBS Studios, the webcam operates as expected, even after installing the ASIO plugin. However, after setting up sound devices and restarting my computer, the webcam no longer works. I've provided two logs, 1) the webcam works; 2) the webcam does not work. I'm not knowledgeable enough to notice anything out of the ordinary for why this is happening. Maybe the ASIO plugin is not to blame, however, it only starts happening after installing it.

1) Works: https://www.dropbox.com/s/xysj862sgq6l7sw/Works.txt?dl=0 2 Doesn't Work: https://www.dropbox.com/s/ry0tpc7728i4sq0/Doesn%27t%20Work.txt?dl=0

SPIKEYPUP commented 2 years ago

I will need to see your USB topology in this case; using the tool I previously mentioned, please provide an XML report. I will review the logs shortly, but I will still need that XML report. Thanks.

On Sun, Sep 5, 2021 at 1:28 PM Geoff12889 @.***> wrote:

I tried uninstalling the plugin with no success. After completely removing OBS Studios, the webcam operates as expected, even after installing the ASIO plugin. However, after setting up sound devices and restarting my computer, the webcam no longer works. I've provided two logs, 1) the webcam works; 2) the webcam does not work. I'm not knowledgeable enough to notice anything out of the ordinary for why this is happening. Maybe the ASIO plugin is not to blame, however, it only starts happening after installing it.

  1. Works: https://www.dropbox.com/s/xysj862sgq6l7sw/Works.txt?dl=0 2 Doesn't Work: https://www.dropbox.com/s/ry0tpc7728i4sq0/Doesn%27t%20Work.txt?dl=0

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Andersama/obs-asio/issues/104#issuecomment-913222702, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPM2KYUX4ZQV4KBDGWEHW3UAPHIVANCNFSM5DNPKZVQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Geoff12889 commented 2 years ago

Thanks @SPIKEYPUP for all your hard work.

USB TreeView Report

SPIKEYPUP commented 2 years ago

No problem! Thanks for your patience and getting the report done. I will analyze them together with the other logs tonight when I inevitably get up from my insomnia, or first thing in the morning if by some miracle I sleep longer than 3 hours. We'll find out what happens soon enough! :) Have a good night, I'll let you know how it goes.

Patrick

On Sun, Sep 5, 2021 at 6:39 PM Geoff12889 @.***> wrote:

Thanks @SPIKEYPUP https://github.com/SPIKEYPUP for all your hard work.

USB TreeView Report https://www.dropbox.com/s/v5yxeynddn90823/UsbTreeView_report_GEOFFREYS-PC.xml?dl=0

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Andersama/obs-asio/issues/104#issuecomment-913276802, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPM2K2QFE6Y7RXXXPD4W53UAQLVDANCNFSM5DNPKZVQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Andersama commented 2 years ago

Well I've been away. @SPIKEYPUP I guess you're already on this. Don't think I can contribute much. I'll add ASIO is not much like WDM, there are no "pins". It's a very barebones api, you're meant to register a callback function for when the device is ready with a buffer. There is a function to specify to a certain degree what you expect out of the device when you initially connect, that is another pain point of the ASIO api, the settings are definitely not expected to change in use, and if they do change or if there is an error you're meant to specify a function to handle those as well. The experience I've had with ASIO related issues is it tends to be poorly written drivers.

There is a weird chance the plugin by trying to connect to the device with ASIO might just bug the device out. We've had it where 32 bit drivers for a particular device were stable, but 64 bit drivers were not, we've had drivers for devices where having two applications try to use the device at the same time crashed the device. We've had devices which crashed when hardware settings were changed (there are parts of the api for signal handling so this should absolutely not happen). I would not discount that connecting to the device using ASIO couldn't create other issues. The bugs related to drivers are so odd you can even find comments in Juce's code about some devices needing a particular sequence of ASIO api calls or you risk the device malfunctioning. A bit of the stuff I wrote in the wiki for the plugin is roughly to help people avoid those issues because they're not plugin related, it's just odd stuff no one has control over except for the people making the devices.

For reference I suspect the people complaining about staticy or choppy audio might have the plugin to blame, though I'm not sure. I didn't invest a ton of time into Juce, more or less when I found it was pretty stable I stuck with it. I didn't ever check to see how Juce's audio pipeline really worked, one part of the audio processing involved requiring specifying a period of time to wait before the next time it'd be called. I think that might allow for hardware related issues because at least on my machine I don't think any of the static I've ever dealt with was from the plugin, and outside static (which I have had issues with w/o the plugin) I never ran into problems. It could be that Juce's audio pipeline is threaded and a cpu being taxed by a high load could create issues, or that the callback functions aren't run fast enough. I think this might just be an issue in general with ASIO as someone submitted a PR because their device wasn't responding properly when initially connected, meaning even though I had assumed callbacks only ever were made when the device was ready that also appears to not be the case for some devices, so when the plugin gets rebuilt that'll be a new necessary feature.

Outside odd audio noise I wouldn't think the plugin is at fault, the thing with ASIO is it's an extremely limited api. I pretty much explained it in full already.

The other recent thing I suspect is a real plugin issue is that I effectively removed any ability for the user to control any of the device parameters. I originally thought this would cut down on the problems people had because those should match the settings your device is already using (otherwise you risk the device changing settings and who knows if the device can handle that). The Juce based version at the moment queries the device before establishing a connection, allowing me to basically fill in the blanks for the parameters when initially establishing that connection to make sure that doesn't happen. However some people it seems have issues with the devices not replying with their current settings (bad driver again, but not necessarily catastrophic, but obviously can be given what I've already run into), not something I had considered when I rewrote the plugin.

SPIKEYPUP commented 2 years ago

Great point on the pins, I forgot, because I use ASIO4ALL in my setup, which is really just a WDM wrapper as you know, my mind...it's going lol. Thanks for the insights on this, they're greatly appreciated! Always happy to learn more on the inner workings, I find ASIO so interesting personally. I agree with the move to remove the controls, let the query handle it, it's safest. In my experience, most don't have a clear idea what they're doing with most settings and cause more issues than solve them when doing so, best to use the query data as you can count on it most of the time, except when encountering crap drivers/hardware that responds incorrectly, ala Realtek in some older situations I had.

Yeah for this case I don't think it is the plugin either, I believe this is something else on @Geoff12889 system, that's why I'm going to look at the USB topo, as you are probably aware it can saturate fast and a lot of times when dealing with capture devices for video whether webcam or display, it takes huge amounts of bandwidth, and more often than not this particular problem is simply a matter of insufficient resources on that controllers bus...blah blah anyway, that's where I'm looking first.

It's probably more a general system issue, and luckily I kind of know a lot about OBS, Directshow, and Voicemeeter, so hopefully it'll come in handy to aid our friend @Geoff12889

Thanks again for your input and time @Alex Anderson! @Geoff12889 - I am just about to review your logs and reports, thanks for your patience, sorry I wasn't able to this last evening.

On Mon, Sep 6, 2021 at 12:35 AM Alex Anderson @.***> wrote:

Well I've been away. @SPIKEYPUP https://github.com/SPIKEYPUP I guess you're already on this. Don't think I can contribute much. I'll add ASIO is not much like WDM, there are no "pins". It's a very barebones api, you're meant to register a callback function for when the device is ready with a buffer. There is a function to specify to a certain degree what you expect out of the device when you initially connect, that is another pain point of the ASIO api, the settings are definitely not expected to change in use, and if they do change or if there is an error you're meant to specify a function to handle those as well. The experience I've had with ASIO related issues is it tends to be poorly written drivers.

There is a weird chance the plugin by trying to connect to the device with ASIO might just bug the device out. We've had it where 32 bit drivers for a particular device were stable, but 64 bit drivers were not, we've had drivers for devices where having two applications try to use the device at the same time crashed the device. We've had devices which crashed when hardware settings were changed (there are parts of the api for signal handling so this should absolutely not happen). I would not discount that connecting to the device using ASIO couldn't create other issues. The bugs related to drivers are so odd you can even find comments in Juce's code about some devices needing a particular sequence of ASIO api calls or you risk the device malfunctioning. A bit of the stuff I wrote in the wiki for the plugin is roughly to help people avoid those issues because they're not plugin related, it's just odd stuff no one has control over except for the people making the devices.

For reference I suspect the people complaining about staticy or choppy audio might have the plugin to blame, though I'm not sure. I didn't invest a ton of time into Juce, more or less when I found it was pretty stable I stuck with it. I didn't ever check to see how Juce's audio pipeline really worked, one part of the audio processing involved requiring specifying a period of time to wait before the next time it'd be called. I think that might allow for hardware related issues because at least on my machine I don't think any of the static I've ever dealt with was from the plugin, and outside static (which I have had issues with w/o the plugin) I never ran into problems. It could be that Juce's audio pipeline is threaded and a cpu being taxed by a high load could create issues, or that the callback functions aren't run fast enough. I think this might just be an issue in general with ASIO as someone submitted a PR because their device wasn't responding properly when initially connected, meaning even though I had assumed callbacks only ever were made when the device was ready that also appears to not be the case for some devices, so when the plugin gets rebuilt that'll be a new necessary feature.

Outside odd audio noise I wouldn't think the plugin is at fault, the thing with ASIO is it's an extremely limited api. I pretty much explained it in full already.

The other recent thing I suspect is a real plugin issue is that I effectively removed any ability for the user to control any of the device parameters. I originally thought this would cut down on the problems people had because those should match the settings your device is already using (otherwise you risk the device changing settings and who knows if the device can handle that). The Juce based version at the moment queries the device before establishing a connection, allowing me to basically fill in the blanks for the parameters when initially establishing that connection to make sure that doesn't happen. However some people it seems have issues with the devices not replying with their current settings (bad driver again, but not necessarily catastrophic, but obviously can be given what I've already run into), not something I had considered when I rewrote the plugin.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Andersama/obs-asio/issues/104#issuecomment-913416646, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPM2K7HIZWMNQDAKNOMNRTUARVNPANCNFSM5DNPKZVQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Andersama commented 2 years ago

ASIO's definitely nice, so long as whatever device you've got actually follows the specifications. The low latency and usage of a double buffer which essentially just swap is very much what you'd expect out of something like a graphics card with a swap chain. It's fairly intuitive at least to me, the disappointing bit is how many devices people have had problems with. I wish there was more put into the specifications about making sure multiple applications should be able to use the device at once, and similarly something on that same idea but for output (like a mixer).

The fact that for example you'd be inclined to think you can capture output channels from the api (because it's just a pointer why not), is the most frustrating bit at least for me having made the plugin. For context the input and output buffers should be swapping every call, so in theory you should always be able to access the past output audio buffers contents, however exactly what is in that buffer is completely in the air, it could be one application writing audio, it could be multiple, it could be pre-zeroed, it could be absolute garbage data, you'll have no idea. I think Juce goes out of its way to prezero the data, but I can't remember.

SPIKEYPUP commented 2 years ago

@Andersama Thanks so much, these tidbits of info are awesome to have! I recommend closing this issue, I do not believe it is plugin related, after reviewing logs and his USB topology the problems are more than likely related to configuration within OBS/Other apps, or realistically USB assignment as well, as he's got few controllers/hubs and a tremendous amount of device bandwidth usage. The problem is probably there. I will reach out to @Geoff12889 to communicate with me through my Guilded or Discord for further assistance on this matter. Thanks!

Geoff I tried to message you on here but looks like I can't? No worries, reach my on my Guilded or Discord:

Simply join either of my servers here and send me a DM. I'll be happy to continue our support session. Thanks!

https://www.guilded.gg/i/aEA0W6Yp https://discord.gg/t9GwQNMZ (link will expire in 7 days)