I know Core Media is late (according to my own deadline), but family visited last weekend so I couldn’t land as many hours as I wanted into the audio code (the last part missing).
I committed a mostly functional RX::CardAudioSource tonight. I didn’t test very small looping sources yet, but I don’t expect I’ll even encounter those so it can wait. Otherwise, I’m pretty happy with the performance of the audio engine and will begin work on RXSoundGroup tomorrow. That class basically manages one or more RX::CardAudioSource instances so that you can stop, start and fade in or out a set of sources at once. This is the direct representation in the Riven X engine of SLST records.
After that, I’ll need to add SLST record loading to RXCard and implement the relevant opcodes. Hopefully I’ll get this thing out the door by the weekend