audiosource refactoring