Closed benaclejames closed 7 months ago
Was the device actually playing any audio when you tried this? If the device is idle, then loopback capture doesn't provide any data.
It was, yes. Tried playing with spotify, and when I realized it could potentially be something to do with potential DRM, I tried closing it and using youtube instead. Got nothing on both attempts
What do the logs say?
2024-02-13T23:31:35.502757Z [TRACE] (3) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:381] name: Microphone (VIVE Virtual Audio Device)
2024-02-13T23:31:35.502999Z [DEBUG] (3) wasapi::api: default device Ok("Microphone (VIVE Virtual Audio Device)")
2024-02-13T23:31:35.525651Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:381] name: Speakers (3- USB Audio CODEC )
2024-02-13T23:31:35.5258086Z [DEBUG] (2) wasapi::api: default device Ok("Speakers (3- USB Audio CODEC )")
2024-02-13T23:31:35.5284468Z [DEBUG] (3) WasapiTest: Desired capture format: WaveFormat { nAvgBytesPerSec: 352800, cbSize: 22, nBlockAlign: 8, wBitsPerSample: 32, nSamplesPerSec: 44100, wFormatTag: 65534, wValidBitsPerSampl
e: 32, SubFormat: 00000003-0000-0010-8000-00AA00389B71, nChannel: 2, dwChannelMask: 3 }
2024-02-13T23:31:35.5285937Z [DEBUG] (2) WasapiTest: Desired playback format: WaveFormat { nAvgBytesPerSec: 352800, cbSize: 22, nBlockAlign: 8, wBitsPerSample: 32, nSamplesPerSec: 44100, wFormatTag: 65534, wValidBitsPerSamp
le: 32, SubFormat: 00000003-0000-0010-8000-00AA00389B71, nChannel: 2, dwChannelMask: 3 }
2024-02-13T23:31:35.5301698Z [TRACE] (3) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:558] default period 100000, min period 30000
2024-02-13T23:31:35.5302975Z [DEBUG] (3) WasapiTest: default period 100000, min period 30000
2024-02-13T23:31:35.5313753Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:558] default period 100000, min period 30000
2024-02-13T23:31:35.5315757Z [DEBUG] (2) WasapiTest: default period 100000, min period 30000
2024-02-13T23:31:35.5589648Z [DEBUG] (3) WasapiTest: initialized capture
2024-02-13T23:31:35.5592625Z [TRACE] (3) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:666] buffer_frame_count 974
2024-02-13T23:31:35.5638275Z [DEBUG] (2) WasapiTest: initialized playback
2024-02-13T23:31:35.5643289Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:666] buffer_frame_count 1036
2024-02-13T23:31:35.5648915Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 1036
2024-02-13T23:31:35.5650352Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:35.5651816Z [WARN] no data, filling with zeros
2024-02-13T23:31:35.5655058Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.8955109Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 1036 frames
2024-02-13T23:31:44.8958098Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.8960229Z [TRACE] (3) WasapiTest: [src\main.rs:127] capturing
2024-02-13T23:31:44.896156Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 1036
2024-02-13T23:31:44.8962782Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.896437Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.8965291Z [TRACE] (3) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:1016] read 0 frames
2024-02-13T23:31:44.8966707Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.8967794Z [TRACE] (3) WasapiTest: [src\main.rs:127] capturing
2024-02-13T23:31:44.8968945Z [TRACE] (3) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:1016] read 0 frames
2024-02-13T23:31:44.8970158Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 1036 frames
2024-02-13T23:31:44.8971292Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.8997865Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
2024-02-13T23:31:44.8999712Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.9000925Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.9002416Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.9004075Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 441 frames
2024-02-13T23:31:44.9005272Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.9081308Z [TRACE] (3) WasapiTest: [src\main.rs:127] capturing
2024-02-13T23:31:44.9083856Z [TRACE] (3) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:1016] read 0 frames
2024-02-13T23:31:44.9090586Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
2024-02-13T23:31:44.9091748Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.909278Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.9094108Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.9095442Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 441 frames
2024-02-13T23:31:44.9096359Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.9197905Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
2024-02-13T23:31:44.9199755Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.9201132Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.9202518Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.9203795Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 441 frames
2024-02-13T23:31:44.9204713Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.9232605Z [TRACE] (3) WasapiTest: [src\main.rs:127] capturing
2024-02-13T23:31:44.9235385Z [TRACE] (3) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:1016] read 0 frames
2024-02-13T23:31:44.9290273Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
2024-02-13T23:31:44.9292198Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.9293454Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.9295042Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.9296823Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 441 frames
2024-02-13T23:31:44.9298069Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.9397675Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
2024-02-13T23:31:44.9399352Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.9400641Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.9402446Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.9404233Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 441 frames
2024-02-13T23:31:44.9405316Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.9490536Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
2024-02-13T23:31:44.9492386Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.9494242Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.9496019Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.9497793Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 441 frames
2024-02-13T23:31:44.949889Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.9547574Z [TRACE] (3) WasapiTest: [src\main.rs:127] capturing
2024-02-13T23:31:44.9549442Z [TRACE] (3) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:1016] read 0 frames
2024-02-13T23:31:44.9597801Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
2024-02-13T23:31:44.9599839Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.9601226Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.9602729Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.9604211Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 441 frames
2024-02-13T23:31:44.9605527Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.9690145Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
2024-02-13T23:31:44.9691681Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.9692729Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.9693946Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.9695152Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 441 frames
2024-02-13T23:31:44.9695997Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.9707677Z [TRACE] (3) WasapiTest: [src\main.rs:127] capturing
2024-02-13T23:31:44.9708986Z [TRACE] (3) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:1016] read 0 frames
2024-02-13T23:31:44.9798429Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
2024-02-13T23:31:44.9800213Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.9801502Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.9804632Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.980611Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 441 frames
2024-02-13T23:31:44.9807151Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.9856673Z [TRACE] (3) WasapiTest: [src\main.rs:127] capturing
2024-02-13T23:31:44.9858079Z [TRACE] (3) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:1016] read 0 frames
2024-02-13T23:31:44.9890214Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
2024-02-13T23:31:44.98917Z [DEBUG] (2) WasapiTest: need more samples
2024-02-13T23:31:44.9892757Z [WARN] no data, filling with zeros
2024-02-13T23:31:44.9894191Z [TRACE] (2) WasapiTest: [src\main.rs:70] write
2024-02-13T23:31:44.9895624Z [TRACE] (2) wasapi::api: [C:\Users\Ben\.cargo\registry\src\index.crates.io-6f17d22bba15001f\wasapi-0.14.0\src\api.rs:885] wrote 441 frames
2024-02-13T23:31:44.989666Z [TRACE] (2) WasapiTest: [src\main.rs:77] write ok
2024-02-13T23:31:44.9998115Z [TRACE] (2) WasapiTest: [src\main.rs:45] New buffer frame count 441
Just continues on like this indefinitely. Never prints "pushing samples" as it's supposed to in the example loopback demo. Never hits the breakpoint it is supposed to hit whenever the sample queue has enough samples to be bigger than the blockalign * chunksize.
Oh there may be some confusion here. The loopback example doesn't show loopback capture! It's recording from the default recording device, and playing back the recorded audio on the default playback device. This is often also called loopback, but I should probably rename it to something different. In your case it records from the default device which is the VIVE virtual audio driver.
If you want to try loopback capture, in the meaning of recording from a playback device, then look at the record example. You just need to change "Capture" to "Render" on line 19: https://github.com/HEnquist/wasapi-rs/blob/bc340b587f43e643a378f0a693869a86a26a717d/examples/record.rs#L19
Ah, perfect! My mistake for not noticing the winapi sooner! Thank you so much for your help
Not sure what I could be doing wrong here, but running the example loopback code does not appear to show any functionality or results. No audio is ever able to be captured from the loopback device. Is this just me?