sometimes libao corrupts memory, so don't call ao_initialize and ao_shutdown when it's not really needed