root@yuby:~# cat FAQ.txt
// abort, retry, fail?
FAQ
1. Does Yuby own the audio device, or does the app call it from an existing callback (JUCE processBlock, Core Audio, WASAPI, AAudio, WASM worklet)?
Yuby doesn't own any audio device. It can be used in any audio callback, whether it's set up by JUCE, Core Audio, WASAPI, or anything else. Yuby also ships with open-source classes to set up audio I/O (the audio callback).
2. Do any realtime paths allocate, lock, or syscall on the audio thread?
Absolutely not. This is a golden rule in professional audio processing.
3. What's the smallest block size that stays honest — 32, 64, 128 frames?
Below 32, CPU load grows significantly, and most audio I/O doesn't operate below 64, so going that low is usually unnecessary. Going below 128 doesn't help in 99% of cases, even in low-latency apps such as DJ scratching.
4. Who handles sample-rate changes, channel-count changes, and float32 vs int16 vs float64?
Most Yuby features can operate at any sample rate and handle sample-rate changes internally. The process function simply takes the current sample rate as an argument. I/O is typically float32, as it provides the best audio quality, headroom, and low noise. Float64 is overkill.
5. Which SIMD do you ship, and is it compile-time or runtime dispatch (NEON, SSE, AVX, SVE)?
Yuby uses the fastest available instruction set and handles this internally. You don't need to deal with SIMD.
6. If I already have a JUCE AudioProcessor graph, how do I hook Yuby without wrapping every node?
Just call any Yuby feature inside processBlock in C++.
7. Does Yuby replace juce::dsp, or sit next to it?
Yuby sits next to it. You can use both at the same time, but Yuby offers far more DSP features.
8. How many players/decks in one process, and do they share resampler/FFT memory?
As many as your CPU can handle. Four players/decks on the first iPad was possible with time-stretching, pitch-shifting, scratching, UI, and everything else. Compare that single-core 400 MHz CPU to anything today. The number of players is not a limitation anymore. Resampling and FFT are handled inside the players. You don't need to take care of any of that.
9. Scratching and sync: keylock while scratching, vinyl interpolation, BPM and beatgrid — or just a pitch slider?
You can set time-stretching, aka master tempo, for any feature. The Yuby player is a CDJ-3000X, really.
10. Time-stretch and pitch: what algorithm, latency in samples, CPU at 64 frames?
These algorithms are proprietary Yuby innovation. Time-stretch latency is about 2048 frames, but the player automatically compensates that to 0 frames.
11. Can MP3/AAC/FLAC/ALAC decode touch the audio callback? Gapless? File vs memory vs HTTP?
Decode is automatically handled on background threads so it never hits the audio callback. Gapless playback is supported by measuring the silence at the beginning, which gives the true audio start frame, not the algorithmic one. Playback from files and memory is supported immediately, or you can create a thin wrapper around your favorite HTTP library (such as the single-header httplib) to feed the players online data (HTTP, HTTPS, or more).
12. Can I insert FX on the player, or do I always mix/route in my own buffer?
The player generates audio without any routing. You can simply process its output with any FX.
13. AEC: what is the reference, how much tail, and does it survive a 64-frame mobile callback?
The reference is just a buffer you provide, so it's very flexible. It survives any-sized mobile callback, because Yuby is extremely fast.
14. WASM: AudioWorklet or ScriptProcessor? SharedArrayBuffer required? Same 0 ms-in-library story in Safari?
AudioWorklet only, because ScriptProcessor is officially dead. Every major web browser already supports AudioWorklet. SharedArrayBuffer is not required, but can be used if available. 0 ms everywhere.
15. Binary size of the lib and the wasm, Base vs Pro vs Ultra?
The binary size is similar for all flavors and is typically around 1 MB, depending on CPU architecture and operating system.
16. Is everything in-callback, or can analysis/decode/stems run on a worker and hand results back?
That's up to you. I wouldn't run analysis, decode, or stems in the audio callback.
17. Denormals: flushed? What happens at digital black?
Handling denormals in every Yuby feature would eat a lot of CPU. Slap a Clipper at the beginning or end of your audio chain to handle them cheaply.
18. Two players, one FX, two threads, one process — what is legal?
Every part of an audio chain should run in the same thread.
19. What does Yuby refuse to be, on purpose, vs Rubber Band / SoundTouch / miniaudio / PortAudio?
Those libraries offer only a handful of Yuby features with far more CPU and RAM usage.
20. Closed source: what do I get when it crashes — symbols, version stamp, anything?
We're very proud of Yuby technology, so we don't offer any insider look. Sorry.
21. In one sentence: what is Yuby for, and what is it not?
It's the audio processing component of your application that produces and/or transforms audio.
22. I already have JUCE for IO and UI. What does Yuby add that juce::dsp, AudioTransportSource, and Rubber Band do not?
More features and better performance (lower CPU and RAM load).
23. When should I stay on JUCE-only, FMOD/Wwise, Superpowered, miniaudio, or raw Web Audio instead of Yuby?
Those frameworks can still be great for audio I/O and UI. You can simply use Yuby inside them.
24. Can I ship a commercial iOS/Android DJ or instrument app with Yuby? What's the license on the lib and the wasm?
Absolutely. What's the point of Yuby if you can't ship something that makes money?
25. C API, or C++ only? Swift / Kotlin / C#?
C++, but in a very simple caveman style. No need for modern C++ if you don't like it. JavaScript on the web, of course. For higher-level languages such as Swift or Kotlin, we offer demos on how to interface with them.
26. How do I actually get the bits — CMake, CocoaPods, SPM, AAR, zip + headers?
Nothing fancy, just a simple download.
27. Same input buffer, same output on Intel64 vs ARM64, native vs WASM — bit-exact or musically exact?
Everything is the same, apart from the extremely tiny numerical differences from how ARM vs Intel processors compute floating point. Musically exact, bit-exact most of the time.
29. MIDI, transport, tempo map: in Yuby, or in my app?
Yuby has no MIDI features.
30. Can Yuby live inside a VST3 / AU / AAX / CLAP, and does it care if the host buffer size jumps every block?
Absolutely, and yes, Yuby is prepared to handle host buffer-size changes and strange buffer sizes. We're looking at you, FL Studio.
31. FX parameter automation: sample-accurate or block-accurate?
Block-accurate. Calculating sample-accurate parameter changes is extremely expensive even on today's computers. Use small blocks (such as 64) if you want precision.
32. Sidechain, buses, send/return: Yuby's or mine?
Yuby operates on raw buffers. What they represent (sidechain, bus, send/return, etc.) depends on you.
33. Anything beyond stereo — 5.1, ambisonics, HRTF, multi-out?
Most Yuby features are stereo, so you need multiple of them to support more channels. That isn't a problem, because Yuby is extremely efficient. The Yuby Player outputs 8 channels if stems are enabled.
34. iOS interruptions, route changes, Bluetooth/AirPlay, Android AAudio vs Oboe — Yuby or my IO layer?
Yuby offers open-source classes to set up audio I/O and handle these. You can also use your own or a third-party implementation.
35. Recorder: bit depth, monitor while recording, play + record + AEC in one callback?
The recorder saves audio to a WAV file on disk in 16-bit stereo. You specify which buffer goes into the recording. The same buffer can participate in any kind of playback or DSP.
36. Stems: how many, on-device RAM, first-block latency, and can I bring AudioShake / Demucs / my own?
Stems integration in the Yuby player allows any stems API/model, including AudioShake or Demucs, via a very simple interface. The player automatically hides latency. RAM usage depends on the model, but multiple players can share the same model, so RAM stays at one model instance.
37. DJ kit: vinyl interpolation, needle-drop, sync lock, loop roll, slip, stems-as-decks — which of those are real?
All of them. Yuby provides every DJ feature you can imagine or see in rekordbox, Serato, VirtualDJ, and more.
38. HTTP progressive download / HLS: player feature, or I fetch and Yuby plays bytes?
You can create a thin wrapper around your favorite HTTP library (such as the single-header httplib) to feed the players online data (HTTP, HTTPS, or more).
39. WASM in Safari and Node: AudioWorklet, SharedArrayBuffer, COOP/COEP, memory cap?
Yuby uses WebAssembly inside, but you don't need to manage that. It works in all major web browsers and Node. It can be used in AudioWorklet, or even ScriptProcessorNode. SharedArrayBuffer support is included, but it's optional, not mandatory. COOP/COEP is not needed for Yuby itself, but is required for many browser features (such as SharedArrayBuffer). Yuby caps WebAssembly memory at 1 GB, which allows huge audio graphs, because Yuby components are very efficient with memory.
40. Decode error, underrun, OOM in the callback: silence, return code, throw, or abort?
Decode errors are reported via a returned string. Yuby doesn't throw or abort.
41. What docs will actually exist in September: headers, JUCE sample, WASM sample, Superpowered migration map, changelog?
The single yuby.h header is the entire Yuby API. We will also provide an open-source yubycompat.h header for drop-in Superpowered replacement. Can't promise examples for September.
42. Support: where, SLA, how long a version is kept?
hello@yuby.com and GitHub issues.
43. Does the library add telemetry or require cloud infrastructure?
Yuby doesn't add any telemetry and doesn't require any cloud infrastructure.
44. What is guaranteed for September vs still in progress (web, Intel64 parity, Demucs OOTB)?
Private beta in September without example projects.
45. For a DJ app, a synth, VoIP, karaoke, in-car, a browser DAW-lite — is Yuby the engine, a library inside the engine, or the wrong tool?
A library inside the app, which may or may not be used in an engine.
46. Do you detect BPM, or do I pass it in? Can I override?
Yuby Ultra offers BPM detection, but you can always provide a BPM value.
47. Do you own a beat grid (downbeat, bar vs beat, tap, nudge), and does it survive stretch and keylock?
The player supports a fixed beat grid (constant spacing between beats). You specify the first grid position and the BPM. Yuby Ultra can also detect these. The beatgrid is maintained even with time-stretching or heavy tempo manipulation.
48. Are hot-cues, loops, and sync quantized to that grid? What resolutions? Per-deck on/off?
Yes. Any positions can be quantized to the beatgrid at any resolution, for any player.
49. Cue points: how many, hot-cue vs memory cue, cue-play vs cue-pause, stored in Yuby or my DB?
Maximum 256 cue points. Any of them can be a hot cue, a memory cue, or a loop. Cue-play and cue-pause are supported. Positions need to be saved in your own database. Yuby doesn't offer a database engine. It's an audio library.
50. Loops: auto-loop, in/out, roll vs true loop, slip, loop-move? Still honest under stretch and scratch?
All of these are supported and maintained under any heavy manipulation.
51. Key detection in-library? Camelot / Open Key? Live vs file tag?
Yuby Ultra offers key detection, and the result can be displayed in any key format, such as Camelot or Open Key. Yuby can also read the key metadata from an audio file.
52. Is there a library/crate/playlist API, or is that 100% my app?
No. Yuby is an audio processing library, not a library/database solution.
53. Can the player play DRM'd Apple Music (or Spotify / Tidal), or only files/bytes I have the right to decode?
The point of DRM is a completely sealed, protected playback infrastructure. Yuby or any other third-party player cannot access that content. DRM wouldn't be DRM otherwise.
54. MIDI controllers: does Yuby map jog / pitch fader / platter, or do I bind MIDI to C++ calls?
Yuby offers no MIDI features.
55. Do you generate overview + scrolling waveform + beat-marker data, or do I decode and draw?
Yes. Yuby Ultra offers complete audio analysis, including waveform data, BPM, beatgrid, and key.
56. Scratch / jog API: vinyl vs CDJ, position vs speed, needle-drop, inertia, 33/45, safe from a 64-frame callback?
All of these are supported at any buffer size.
Join the waitlist
Do you copy? Early access for people shipping audio in-app. Drop dates, SDK notes, a seat when private beta opens.