Comments (4)
That's a great question. PortAudio and RtAudio both have much to recommend them. The original implementation was created with platforms in mind (Windows, macOS, Linux, etc.) RtAudio arrived as a way to flesh out the Windows implementation quickly, but it's clearly useful cross platform. At this point, I'd be inclined to say the way forward should be to organize the backends according to implementation, not platform. A nice approach would be a cmake variable that specifies which backend a user prefers.
I'd be open to PRs implementing new backends, such as PortAudio.
from labsound.
kthx, at some point I'll take a look at the complexity of a new backend implementation. I concur that if we use RtAudio or PortAudio or the like, the per-platform differences should ideally be kept to a minimum.
from labsound.
I have one opinion on this: PortAudio is considerably harder to build, whereas RtAudio is just a few header files and a single cpp. There's also libsoundio
which is new on the scene: http://libsound.io/
from labsound.
It makes more sense to organize by backend than platform overall, as there are many viable backends per platform. Linux users might like to choose between rtaudio, asound, alsa, or whatever for example.
As of this commit (7357ca5) there is a backends directory, currently populated with linux, windows, and darwin (macos/ios). There could easily be an RtAudio backend directory, or a PortAudio backend.
If a backend combo needs to be specially made, then a new triple-named directory (e.g. linux-rtaudio-asound) should be created rather than trying to wedge many implementations into a single linux directory.
from labsound.
Related Issues (20)
- QOA to shrink the HRTF database?
- WaveShaperNode missing oversample property? HOT 1
- Cmake doesn't work in windows for latest main branch commits HOT 2
- HRTF loader doesn't return boolean false if .wav not found HOT 5
- AudioNodeOutput->bus(r) returns m_inPlacebus instead of m_internalBus HOT 1
- ChannelSplitter/Merger - can only get first 2 channels from 6 channel Bus HOT 2
- miniaudio backend upgrade
- Simple example to play a wav file? HOT 2
- ADSRNode issues HOT 7
- oscillator waveforms are not band limited HOT 6
- DynamicsCompressorNode crashes if input and output has different number of channels HOT 1
- No ConstantNode HOT 2
- disconnecting and reconnecting nodes seems to break connection HOT 6
- WaveShaperNode seems to cause memory corruption while upsampling and subsequently SEGFAULTs HOT 35
- PannerNode HRTF constructor HOT 3
- LOG_PRINT should replace ASN_PRINT, printf, and std::iostream HOT 4
- Logger is in global namespace HOT 2
- CMake defaults to MD runtime HOT 5
- PingPongDelayNode issue HOT 4
- HRTF example has a resampling bug HOT 1
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 labsound.