Stereo -> Binaural using impulse responses
2003-12-07 18:41:14
I'm trying to find a good way to convert stereo -> binaural. So far I've experimented with impulse responses (convolution), based on - HRTF measurements by MIT - calculations about echos in rooms taking into account -- shift due to distance differences -- attenuation due to distance differences -- echos with non-flat frequency response depending on material covering walls etc. Attatched to this thread there's a zip with two flac'ed impulse responses. Here's how to create a binauralized .wav for testing:1. Load a file to fb2k (necessary DSPs: "Convolver", "Reverse stereo channels". 2. Put these DSPs (in this order) to active DSPs: 2.1. Resampler (SSRC), set to 44100 Hz [b]if the source file is sampled != 44100 Hz[/b] 2.2. Reverse stereo Channels 2.3. Convolver 3. Convolver settings: 3.1. load prototype_X_1_eq01.flac 3.2. Disable "Auto level adjust", leave other parameters on default values 4. Diskwriter settings: 4.1. Choose some output directory you'll find later;) 4.2. Choose a filename like %_filename%_X (X because we create the crossfeed signal now) 4.3. Enable "Use DSP", disable replaygain 4.4. Use 16bit for output. Soxmix won't understand 24 or 32 bit. 5. Write: Convert -> Run conversion Now create the 2nd file we need: 6. Remove "Reverse stereo Channels" from Active DSPs 7. Convolver settings: 3.1. load prototype_II_1_eq01.flac, leave other settings allone. 8. Diskwriter settings: 8.1. Choose some output directory you'll find later;) 8.2. Choose a filename like %_filename%_II (II because the file we create now is 'parallel' - left speaker -> left ear and vice versa) 8.3. All other settings must be the same (see 4.) 9. Write: Convert -> Run conversion 10. Now use Soxmix (SOX is a commandline sound editor avail. at soureforge, I include Soxmix.exe in the .zip) to mix both files like this: Soxmix file_X.wav file_II.wav file_binaural.wav For comparison to the original you might want to use replaygain (trackgain) as the volume is decreased. Attatched to the 2nd post in this thread I'll upload an example I created exactly as described above. Enjoy testing. This is a first trial but IMO results are at least comparable with existing sollutions. I hope Garf will find this motivating enough to add crossfeed functionality to fb2k Convolver (or maybe someone else's interested). Any feedback is welcome, I'd be glad to discuss details with everyone interested, but this post is already long enough