Comments (5)
I'm guessing this is referring to the windows backend as I remember briefly seeing some documentation on this when working on the wasapi backend. Could you elaborate on how exclusive mode behaves differently from shared mode? Do you see a path towards supporting this for all backends?
from cpal.
When in exclusive mode you can write (or read, I guess) directly to (from) the hardware. It is therefore faster than shared mode, but no other application can access the device in the meanwhile, and we cannot access it if another application already uses it in shared mode.
from cpal.
Ah, thanks for the explanation. I guess this might be useful for some pro-audio software like DAWs and live performance applications. That said, I don't remember seeing anything like this in the coreaudio or alsa backends.
I guess if this were to be implemented, it would be an addition of a whole new wasapi_exclusive
backend, perhaps enabled by a feature?
Alternatively, we could introduce something similar to PortAudio's Host
API? I've opened up #204 for discussion.
from cpal.
CoreAudio also has a hog mode property: kAudioDevicePropertyHogMode
Hog mode is important if you go for the best audio quality. For example, streaming software clients such as Spotify and Tidal have hog mode support. Spotify turns this on by default.
from cpal.
Any update on this? Or is it already implemented in one of the other closed tickets?
from cpal.
Related Issues (20)
- No devices on default host on WASM32, specifically Chromium HOT 1
- What would it take to make WebAssembly audio inputs happen?
- CPal doesn't list mac speakers as an output device HOT 1
- [Android/Arm64] Can't compile cpal
- Main crate example doesn't compile HOT 4
- Having accumulated delay on wasapi HOT 2
- Implement `Send` for `Stream` HOT 2
- Does it make sense for Device to be cloneable? HOT 2
- alsa error HOT 6
- Why is build_output_stream data length different every time? HOT 1
- migrate WASM example and documentation+Wiki from webpack to trunk HOT 3
- [ALSA] Unable to query max channel count for MOTU UltraLite-mk5 (class compliant)
- Support for wasm32-wasi-* targets
- Release a new version to Crates.io to use cpal with ndk 0.8 HOT 2
- CoreAudio on iOS lists no input devices HOT 9
- ALSA function 'snd_pcm_hw_params_set_rate' failed with error 'EINVAL: Invalid argument'
- Little/No documentation around the "timeout" arg to stream-building functions
- Why is thread sleeping needed for stream.play() to stream audio ? HOT 2
- Basic docs for getting started with setup for Android
- Mismatched types cross compiling asio-sys with x86_64-pc-windows-gnu HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cpal.