Video Demo
Quick Notes
A sound engine derived from Windows XAudio2 created to demo a concurrent application.
Design DocumentGDSoundEngine is a project created as part of DePaul University's Real-Time Multithreading Architechture class, the idea was to set up a Sound engine that could use multiple threads to perform playback and management of audio files loaded through XAudio2. The engine uses five threads in total, four that are managed (Game, Audio, File, Helper) and one unmanaged (XAudio2), due to the nature of the unmanaged thread we only use this thread for audio playback, any callbacks are delegated to other threads.
GDSoundEngine allows for playlist creation and playback, in the next iterations I would like to add these playlists as serialized objects, these would be loaded into the sound engine and played normally. Playlists consist of sound files refered to as Voices and Commands which are actions performed on the voices at times specified by the user. This implementation allows for basic actions such as Play, Change Volumen, Pitch and Panning, Instancing, Voice Stitching, Priority Playback, Asynchronous and Synchronous Loading.