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

Rode A-1 Not being picked up #339

Closed
Snodio opened this issue Dec 28, 2022 · 24 comments
Closed

Rode A-1 Not being picked up #339

Snodio opened this issue Dec 28, 2022 · 24 comments

Comments

@Snodio
Copy link
Contributor

Snodio commented Dec 28, 2022

Hey!

I have to say i love this project!

I can't get my Rode AI-1 interface to be picked up in the logs though, i have tried to tinker around, but i can't seem to figure it out.

Any recommendations?

@mdias
Copy link
Owner

mdias commented Dec 29, 2022

You will need to install the ASIO drivers for your interface.
Usually this just means you have to download and install the latest available drivers from the audio interface manufacturer website, but for your interface there seems to be a "ASIO Service installer" that might be what you're missing.

After you install that, the driver name should appear in the logs and you can proceed with the rest of the setup.

Note that because Rocksmith2014 is a 32-bit game, there must be 32-bit ASIO drivers available for RS ASIO to work with them. Usually when installing drivers both 32 and 64 bit versions are automatically installed though.

@Snodio
Copy link
Contributor Author

Snodio commented May 2, 2023

Hey again!

Sorry for the delay in answering, havent played for a while!

I managed to get it working, thanks for the help! But now i cant manage to get the input detected by the game :/ I can also not hear the game audio

This is my RS_ASIO.ini

# for "EnableWasapiOutputs" you can use -1 to have a message prompting
# to use either WASAPI or ASIO for output every time you boot the game
[Config]
EnableWasapiOutputs=0
EnableWasapiInputs=0
EnableAsio=1

[Asio]
; available buffer size modes:
;    driver - respect buffer size setting set in the driver
;    host   - use a buffer size as close as possible as that requested by the host application
;    custom - use the buffer size specified in CustomBufferSize field
BufferSizeMode=driver
CustomBufferSize=

# if your game hangs or crashes on exit, try setting "EnableRefCountHack" to true.
# when blank or invalid, the value of "EnableRefCountHack" will be interpreted as
# true if RS ASIO detects the usage of Asio4All.
# the same applies for all inputs.
[Asio.Output]
Driver=RODE AI-1 ASIO Driver
BaseChannel=0
AltBaseChannel=
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
EnableRefCountHack=true

[Asio.Input.0]
Driver=RODE AI-1 ASIO Driver
Channel=0
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
EnableRefCountHack=true

[Asio.Input.1]
Driver=
Channel=1
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
EnableRefCountHack=

[Asio.Input.Mic]
Driver=
Channel=1
EnableSoftwareEndpointVolumeControl=1
EnableSoftwareMasterVolumeControl=1
SoftwareMasterVolumePercent=100
EnableRefCountHack=`

@mdias
Copy link
Owner

mdias commented May 2, 2023

The config looks good.
I need to see the log to check what's wrong with the audio though.

Also, with this config you'll need to connect your speakers/headphones to the interface to hear the audio.

@Snodio
Copy link
Contributor Author

Snodio commented May 3, 2023

Thanks for the quick answer!

I do have both my input and output connected to the interface, yes :)

This is my log file :)

0.000 [INFO]   - Wrapper DLL loaded (v0.6.3)
0.000 [INFO]  PatchOriginalCode
0.036 [INFO]  image crc32: 0xd1b38fcb
0.313 [INFO]  Patching CoCreateInstance
0.313 [INFO]  Patch_CallAbsoluteIndirectAddress - num locations: 2
0.313 [INFO]  Patching call at 00C02DBD
0.313 [INFO]  Patching call at 00E75278
0.313 [INFO]  Patching PortAudio MarshalStreamComPointers
0.313 [INFO]  Patch_CallRelativeAddress - num locations: 1
0.313 [INFO]  Patching call at 00E7483F
0.313 [INFO]  Patching PortAudio UnmarshalStreamComPointers
0.313 [INFO]  Patch_CallRelativeAddress - num locations: 1
0.313 [INFO]  Patching call at 00E748F4
0.313 [INFO]  Patching Two Guitar Tones Connected Message Box (num locations: 1)
0.313 [INFO]  Patching bytes at 007C0C5F
0.314 [INFO]  Patched_CoCreateInstance called: IID_IMMDeviceEnumerator
0.314 [INFO]  DebugDeviceEnum::GetDefaultAudioEndpoint - dataFlow: eRender - role: eMultimedia
0.314 [INFO]  RSAggregatorDeviceEnum::UpdateAvailableDevices
0.314 [INFO]  AsioHelpers::FindDrivers
0.315 [INFO]    RODE AI-1 ASIO Driver
0.315 [INFO]  RSAsioDeviceEnum::UpdateAvailableDevices - input[0] requesting ASIO driver: RODE AI-1 ASIO Driver
0.315 [INFO]  Creating AsioSharedHost - dll: c:\program files (x86)\røde microphones\ai-1-asio\rode-ai-1-asio.dll
0.325 [INFO]    ASIO input channels info:
0.325 [INFO]      0 - active: 0, channel: 0, group: 0, isInput: 1, type: ASIOSTInt32LSB, name: Microphone L
0.325 [INFO]      1 - active: 0, channel: 1, group: 0, isInput: 1, type: ASIOSTInt32LSB, name: Microphone R
0.325 [INFO]    ASIO output channels info:
0.325 [INFO]      0 - active: 0, channel: 0, group: 0, isInput: 0, type: ASIOSTInt32LSB, name: Output L
0.325 [INFO]      1 - active: 0, channel: 1, group: 0, isInput: 0, type: ASIOSTInt32LSB, name: Output R
0.325 [INFO]  RSAsioDeviceEnum::UpdateAvailableDevices - OK
0.325 [INFO]  DebugDeviceEnum::UpdateAvailableDevices - 0 render devices, 1 capture devices
0.325 [INFO]    hr: 80070490
0.325 [INFO]    *ppEndpoint: 00000000
0.325 [INFO]  DebugDeviceEnum::GetDefaultAudioEndpoint - dataFlow: eCapture - role: eMultimedia
0.325 [INFO]    hr: S_OK
0.325 [INFO]    *ppEndpoint: 04407AA0
0.325 [INFO]  DebugDeviceEnum::EnumAudioEndpoints - dataFlow: eAll - dwStateMask: 1
0.325 [INFO]    hr: S_OK
0.325 [INFO]    *ppDevices: 0F294C40
0.325 [INFO]  {ASIO IN 0} DebugWrapperDevice::OpenPropertyStore - stgmAccess: 0
0.325 [INFO]  {ASIO IN 0} DebugWrapperDevicePropertyStore::GetCount
0.325 [INFO]    *cProps: 5
0.325 [INFO]  {ASIO IN 0} DebugWrapperDevice::QueryInterface - riid: IID_IMMEndpoint
0.325 [INFO]  {ASIO IN 0} DebugWrapperEndpoint::GetDataFlow
0.325 [INFO]    *pDataFlow: eCapture
0.325 [INFO]  {ASIO IN 0} DebugWrapperDevice::Activate - Activate iid: IID_IAudioClient dwClsCtx: 1
0.325 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::GetDevicePeriod
0.325 [INFO]  {ASIO IN 0} RSAsioAudioClient::~RSAsioAudioClient
0.344 [INFO]  Destroying AsioSharedHost - dll: c:\program files (x86)\røde microphones\ai-1-asio\rode-ai-1-asio.dll
3.751 [INFO]  Patched_CoCreateInstance called: IID_IMMDeviceEnumerator
3.751 [INFO]  DebugDeviceEnum::GetDefaultAudioEndpoint - dataFlow: eRender - role: eMultimedia
3.751 [INFO]  RSAggregatorDeviceEnum::UpdateAvailableDevices
3.751 [INFO]  AsioHelpers::FindDrivers
3.751 [INFO]    RODE AI-1 ASIO Driver
3.751 [INFO]  RSAsioDeviceEnum::UpdateAvailableDevices - input[0] requesting ASIO driver: RODE AI-1 ASIO Driver
3.751 [INFO]  Creating AsioSharedHost - dll: c:\program files (x86)\røde microphones\ai-1-asio\rode-ai-1-asio.dll
3.759 [INFO]    ASIO input channels info:
3.759 [INFO]      0 - active: 0, channel: 0, group: 0, isInput: 1, type: ASIOSTInt32LSB, name: Microphone L
3.759 [INFO]      1 - active: 0, channel: 1, group: 0, isInput: 1, type: ASIOSTInt32LSB, name: Microphone R
3.759 [INFO]    ASIO output channels info:
3.759 [INFO]      0 - active: 0, channel: 0, group: 0, isInput: 0, type: ASIOSTInt32LSB, name: Output L
3.759 [INFO]      1 - active: 0, channel: 1, group: 0, isInput: 0, type: ASIOSTInt32LSB, name: Output R
3.759 [INFO]  RSAsioDeviceEnum::UpdateAvailableDevices - OK
3.759 [INFO]  DebugDeviceEnum::UpdateAvailableDevices - 0 render devices, 1 capture devices
3.759 [INFO]    hr: 80070490
3.759 [INFO]    *ppEndpoint: 00000000
3.759 [INFO]  DebugDeviceEnum::GetDefaultAudioEndpoint - dataFlow: eCapture - role: eMultimedia
3.759 [INFO]    hr: S_OK
3.759 [INFO]    *ppEndpoint: 0ADED978
3.759 [INFO]  DebugDeviceEnum::EnumAudioEndpoints - dataFlow: eAll - dwStateMask: 1
3.759 [INFO]    hr: S_OK
3.759 [INFO]    *ppDevices: 0F505968
3.759 [INFO]  {ASIO IN 0} DebugWrapperDevice::OpenPropertyStore - stgmAccess: 0
3.759 [INFO]  {ASIO IN 0} DebugWrapperDevice::QueryInterface - riid: IID_IMMEndpoint
3.759 [INFO]  {ASIO IN 0} DebugWrapperEndpoint::GetDataFlow
3.759 [INFO]    *pDataFlow: eCapture
3.764 [INFO]  DebugDeviceEnum::RegisterEndpointNotificationCallback
30.254 [INFO]  {ASIO IN 0} DebugWrapperDevice::Activate - Activate iid: IID_IAudioClient dwClsCtx: 17
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::IsFormatSupported - ShareMode: Exclusive
30.254 [INFO]    rejecting IEEE Float as it's incompatible with current ASIO sample type ASIOSTInt32LSB
30.254 [INFO]    requested format is not supported
30.254 [INFO]    hr: AUDCLNT_E_UNSUPPORTED_FORMAT
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::IsFormatSupported - ShareMode: Exclusive
30.254 [INFO]    rejecting IEEE Float as it's incompatible with current ASIO sample type ASIOSTInt32LSB
30.254 [INFO]    requested format is not supported
30.254 [INFO]    hr: AUDCLNT_E_UNSUPPORTED_FORMAT
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::IsFormatSupported - ShareMode: Exclusive
30.254 [INFO]    rejecting IEEE Float as it's incompatible with current ASIO sample type ASIOSTInt32LSB
30.254 [INFO]    requested format is not supported
30.254 [INFO]    hr: AUDCLNT_E_UNSUPPORTED_FORMAT
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::IsFormatSupported - ShareMode: Exclusive
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::Initialize - ShareMode: Exclusive Flags: 40000 bufferDuration: 3ms periodicity: 3ms
30.254 [INFO]  {ASIO IN 0} RSAsioAudioClient::Initialize - host requested buffer duration: 3ms (144 frames)
30.254 [INFO]  {ASIO IN 0} WAVEFORMATEX
  wFormatTag: fffe
  nChannels: 2
  nSamplesPerSec: 48000
  nAvgBytesPerSec: 384000
  nBlockAlign: 8
  wBitsPerSample: 32
  cbSize: 22
  ext.SubFormat: KSDATAFORMAT_SUBTYPE_PCM
  ext.Samples: 24
  ext.dwChannelMask: 3
30.254 [INFO]  {ASIO IN 0} RSAsioAudioClient::Initialize - actual buffer duration: 2ms (128 frames)
30.254 [INFO]  AsioSharedHost::Setup - startCount: 0
30.254 [INFO]    post output ready: 0
30.254 [INFO]    ASIOBufferSize - min: 64 max: 2048 preferred: 128 granularity: -1
30.254 [INFO]    Creating ASIO buffers (2 out, 2 in)...
30.254 [INFO]  AsioSharedHost::AsioCalback_asioMessage - selector: 7 value: 0 | returning: 0
30.254 [INFO]  {ASIO IN 0} DebugWrapperDevice::Activate - Activate iid: IID_IAudioEndpointVolume dwClsCtx: 1
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::GetBufferSize
30.254 [INFO]    *pNumBufferFrames: 128
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::GetStreamLatency
30.254 [INFO]    latency: 2ms
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::GetService - riid: IID_IAudioCaptureClient
30.254 [INFO]    returning capture client
30.254 [INFO]  Patched_PortAudio_MarshalStreamComPointers
30.254 [INFO]  Patched_PortAudio_UnmarshalStreamComPointers
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient3::QueryInterface riid: {F2D67F48-1977-4991-A3FC-A093835A7DC2}
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient2<struct IAudioClient3>::QueryInterface riid: {F2D67F48-1977-4991-A3FC-A093835A7DC2}
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::QueryInterface riid: {F2D67F48-1977-4991-A3FC-A093835A7DC2}
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::SetEventHandle
30.254 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::Start
30.254 [INFO]  AsioSharedHost::Start - enter startCount: 0
30.255 [INFO]    Starting ASIO stream...
30.265 [ERROR]    Failed to start ASIO stream
30.265 [ERROR]  ASIO Error: ASIO OK
30.265 [INFO]    hr: E_FAIL
30.266 [INFO]  {ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::Stop
55.009 [INFO]  DebugDeviceEnum::UnregisterEndpointNotificationCallback
55.244 [INFO]   - Wrapper DLL unloaded

@mdias
Copy link
Owner

mdias commented May 3, 2023

There are 2 issues here.

  1. That log doesn't seem to have been generated with the same config file you posted above (it's missing any audio outputs)
  2. Your interface is reporting a .... strange error: 30.265 [ERROR] ASIO Error: ASIO OK

Did you check if your interface's ASIO drivers are working fine in other programs? Something like the Guitar Rig demo would do.

@Snodio
Copy link
Contributor Author

Snodio commented May 8, 2023

I will try that!

&& I will also generate a new log file and resend the file contents, I have been trying many different configurations hehe

Meanwhile, I espescially noticed this part, is there maybe something here?

{ASIO IN 0} DebugWrapperAudioClient<struct IAudioClient3>::IsFormatSupported - ShareMode: Exclusive
30.254 [INFO]    rejecting IEEE Float as it's incompatible with current ASIO sample type ASIOSTInt32LSB
30.254 [INFO]    requested format is not supported
30.254 [INFO]    hr: AUDCLNT_E_UNSUPPORTED_FORMAT

@mdias
Copy link
Owner

mdias commented May 10, 2023

Meanwhile, I espescially noticed this part, is there maybe something here?

No, this is normal. The game tries to negotiate a Float sample format first, and fails a couple of times before negotiating the compatible format.
You can see that after some tries, DebugWrapperAudioClient<struct IAudioClient3>::IsFormatSupported runs without reporting errors.

@mdias mdias closed this as completed Oct 26, 2023
@Snodio
Copy link
Contributor Author

Snodio commented Nov 22, 2023

Hey!

I am so so sorry that i havent gotten back to you on this.
I dont know what happpened, but when trying again now, with exactly the same config, it now WORKS :)

I have the custom buffer set to 1 and it works perfectly!

So you can gladly add "Røde AI-1" to your list of working defices. Followed the README to a tea :)

Thanks again man for this awesome project!

@SYN75X
Copy link

SYN75X commented Sep 27, 2024

Hi me and my friend are trying to set him up with RS ASIO and he is also using a AI-1 but is having the same issue where the bass he is using is technically being recognized as a real tone cable, but still gives no audio when playing.

@mdias
Copy link
Owner

mdias commented Sep 27, 2024

@SYN75X please post your RS_ASIO.ini and RS_ASIO-log.txt.

If audio output works, it's very likely that it's a minor setup issue that's not allowing you to get input.

@SYN75X
Copy link

SYN75X commented Sep 27, 2024

I will send those in a little bit, I'm currently at work aswell as my friend so as soon as I have the log and ini I will send them over.

@SYN75X
Copy link

SYN75X commented Sep 27, 2024

Sorry for the wait here are the two files.

RS_ASIO-log.txt

RS_ASIO.ini.txt

I apologize if this isn't how I'm supposed to send them. I'm kinda new to Github lol.

@mdias
Copy link
Owner

mdias commented Sep 28, 2024

@SYN75X curiously your drivers are behaving identically to the OP's when he was having the issue.
The driver is failing to start the ASIO audio stream, and when RS ASIO asks it for the reason, it says everything is ok:

3.986 [INFO]  AsioSharedHost::Start - enter startCount: 0
3.986 [INFO]    Starting ASIO stream...
3.993 [ERROR]    Failed to start ASIO stream
3.993 [ERROR]  ASIO Error: ASIO OK

Often a reason this happens is because something else is already using the device, and most ASIO drivers don't allow shared usage of the device.
I'd try 2 things:

  1. Ensure your device is completely disabled in the windows sound settings (both outputs and inputs) to guarantee no application is trying to use it. RS ASIO (and other ASIO applications) should still be able to use it since ASIO drivers communicate with the interface directly without going through windows' sound systems.
  2. Make sure you have the latest drivers available for the interface. Go to your interface's website and download them instead of using drivers that came in the box of the interface.

Looking at your config, it looks like you want sound output on another device instead of also using the interface. If this is a mistake and you want sound output to come through the interface as well, you need to also fill in the Driver for [Asio.Output].

@SYN75X
Copy link

SYN75X commented Sep 28, 2024

Okay we will give these a try. The only thing I could think had been causing issues is that this interface only let's you use 24 bit configurations instead of 16 bit. Do you think that would have any affect since from what I'm seeing rocksmith 2014 only really wants 16? The reason we are using a different audio output is because when we tried setting it up originally it wouldn't give us input or output but when we told the realtek sound mixer to listen to his interfaces headphone line in and disabled the rs asio output setting we were able to start hearing the game.

@mdias
Copy link
Owner

mdias commented Sep 28, 2024

RS ASIO will work fine with 16 bit, 24 bit, 32 bit and 32 bit float. It does require 48000hz support however.
This doesn't seem to be an issue for you though. As far as I can see in the log, you interface's ASIO drivers expect 32 bit data format even if on a hardware level it might work with 24 bit, this is common and it's ok.

@SYN75X
Copy link

SYN75X commented Sep 28, 2024

Okay, and as for the ASIO drives we went to the same link that you sent OP and installed them, they showed up in the list immediately but yeah when we tried to use them they wouldn't work so I will talk to my friend when I get home about checking the windows settings and see what we can do. Thank you for you replies and I will post what we end up finding.

@SYN75X
Copy link

SYN75X commented Sep 28, 2024

My friend also wanted to ask if he is using a sound equalizer program on the interface would that have any affect on it not working?

@mdias
Copy link
Owner

mdias commented Sep 28, 2024

ASIO tends no need exclusive access to the interface, so there's a high chance it affects it.

You can also test if the interface is supposed to be working with a simple application like this one.
RS ASIO runs in 32 bit mode (to be compatible with the game, which is also a 32 bit application) so if you want to test as close as possible to what RS ASIO does, run the 32 bit executable of that test application.
Note that this will only test the output (as far as I know..), so if it is working fine you should be hear a sine tone on the interface's outputs.

@mdias
Copy link
Owner

mdias commented Sep 28, 2024

Correction: I just noticed the test application also supports Pass Through testing if you go to the "Test" menu. With that option selected you should hear your instrument on the output (left channel) of the interface, effectively testing both input and output.

@SYN75X
Copy link

SYN75X commented Sep 28, 2024

Okay the interface has a pass through mode of its own that has been working so I think the interface is working fine, most likely just windows messing with the driver. I will be home in about an hour and we will test to see if disabling it in windows settings helps. If so I will report back with what we did to get it working.

@mdias
Copy link
Owner

mdias commented Sep 28, 2024

The interface's own passthrough mode is usually hardware based for minimal latency, and should work even if windows hasn't booted up for example. The pass through in the application makes the audio go from the input of the interface to the computer software, and then the software itself will send it back to the output of the interface which will test the whole stack.

@SYN75X
Copy link

SYN75X commented Sep 28, 2024

Ohhh okay. Then we will give that a shot. Thank you for the correction. My interface worked pretty much first try so I didn't really have to do a ton of tinkering so I'm still learning about all of this.

@SYN75X
Copy link

SYN75X commented Sep 29, 2024

Okay so disabling the interface in windows did work in getting the game to work. Only problem now is that he can get the rest of the audio on his PC isn't able to go through his headset which is plugged into the interface. Also the game keeps asking for him to use exclusive mode.

@mdias
Copy link
Owner

mdias commented Sep 30, 2024

Only problem now is that he can get the rest of the audio on his PC isn't able to go through his headset which is plugged into the interface.

This is expected. The game usually needs exclusive access to the audio interface for low latency reasons.
Since ASIO usually also requires exclusive access to the audio interface (depends on your interface and drivers really) nothing else can be using the interface while ASIO is using it. This behavior is not exclusive to RS ASIO, any other ASIO software you run will behave like this.

Also the game keeps asking for him to use exclusive mode.

By default Rocksmith will be configured to use ExclusiveMode access to the audio interface, and RS ASIO requires that to work. It's possible your friend has edited Rocksmith.ini to have ExclusiveMode=0 so that he could still use the audio interface with other applications while the game is running. This won't work with RS ASIO, and he needs to have ExclusiveMode=1 for ASIO to work properly.
This is also indicated in the readme.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants