1
Technical Help: IN GAME bugs (after loading world) /
« on: March 05, 2006, 09:13:13 pm »
Indeed, thank you! I\'ve written much of the code for the new sound system in CS. Since so few projects in CS use sound at all, feedback has been sparse.
Any feedback, criticism, bug reports you have are definately appreciated - the point of the system wasn\'t to push any personal agenda, but was to replace the older sound system which had so many hacks and workarounds that it was very difficult to understand, and nearly impossible to fix any bug without breaking something else.
In case you\'re interested, here are the fixes I\'ve made for #1-3 above, which will be commited when sourceforge CVS comes back up:
#1) SndSysOggSoundData - General cleanup. Most variables have been changed to stack based variables instead of heap allocation. Member variables renamed and improved documentation. Memory leak in IsOgg() fixed.
#2) SndSysRendererSoftware - Garbage collection added (fixes memory leak with AutoUnregistered streams). Active sound objects referenced by the sound renderer are now cleaned up on Close(). The RemoveStream() and RemoveSource() functions no longer wait for the background thread to acknowledge removal (this was buggy anyway). Garbage collection runs at most every 500ms.
#3) Software source filters - Egads, I can\'t believe I let this one slip through. The filters are a preliminary idea, and are kind of hacked in at the moment to provide some very basic locational audio functionality. The idea is to make an interface that allows application developers to apply audio distortion procedures to the sound streams (based on source, or renderer). This includes common distortion such as 3d audio cues, as well as custom distortion that can be applied to a stream.
Memory leak should be fixed, the filter chains are now deleted on source destruction, and each filter should delete its children as it\'s deleted. The code is still ugly though
Rhad
Any feedback, criticism, bug reports you have are definately appreciated - the point of the system wasn\'t to push any personal agenda, but was to replace the older sound system which had so many hacks and workarounds that it was very difficult to understand, and nearly impossible to fix any bug without breaking something else.
In case you\'re interested, here are the fixes I\'ve made for #1-3 above, which will be commited when sourceforge CVS comes back up:
#1) SndSysOggSoundData - General cleanup. Most variables have been changed to stack based variables instead of heap allocation. Member variables renamed and improved documentation. Memory leak in IsOgg() fixed.
#2) SndSysRendererSoftware - Garbage collection added (fixes memory leak with AutoUnregistered streams). Active sound objects referenced by the sound renderer are now cleaned up on Close(). The RemoveStream() and RemoveSource() functions no longer wait for the background thread to acknowledge removal (this was buggy anyway). Garbage collection runs at most every 500ms.
#3) Software source filters - Egads, I can\'t believe I let this one slip through. The filters are a preliminary idea, and are kind of hacked in at the moment to provide some very basic locational audio functionality. The idea is to make an interface that allows application developers to apply audio distortion procedures to the sound streams (based on source, or renderer). This includes common distortion such as 3d audio cues, as well as custom distortion that can be applied to a stream.
Memory leak should be fixed, the filter chains are now deleted on source destruction, and each filter should delete its children as it\'s deleted. The code is still ugly though

Rhad