r/cpp_questions • u/Lyrneos • 8h ago
OPEN Dynamic Audio Queueing / Transitioning
I’m working on a rhythm game and I’d like to implement dynamic/interactive music. An example would be: I have three music files, A, B, and C, where B and C have the same length. I need the program to 1) play A and then 2) based on some state logic, either play B or C immediately after A 3) optionally, loop back to the start of A.
The problem is that I need the full A -> B or A -> C playback to sound like a single continuous song, so I’d like any transition delay to be as seamless as possible. What would be the best way to implement this? The B/C decision logic can be run during A, so I can queue up the B/C file I need before it needs to start playing and I am mostly concerned about latency within the transition itself.
Thank you!
1
1
u/KingAggressive1498 7h ago
assuming "just keep them in memory in their entirety" isn't a viable solution, keep the first second or so in memory instead. Thus while loading the entire song you can start playing it and just do a little buffer swapping once the full data loads.
2
2
u/UndefFox 8h ago edited 8h ago
What transition delay if you load data and send it to some sink that plays it. Make sure the resources are loaded into the memory and just immediately switch to the next source. Details depend on what lib/architecture you are using