#include "CSL_Core.h"#include "SpatialPanner.h"#include "FFT_Wrapper.h"Go to the source code of this file.
Classes | |
| class | csl::HRTF |
| class | csl::HRTFDatabase |
Namespaces | |
| namespace | csl |
| < we use the STL vector, map, and string classes | |
Defines | |
| #define | HRTF_BLOCK_SIZE CGestalt::blockSize() |
| Typically CGestalt::blockSize() (or use a block resizer). | |
| #define | HRIR_SIZE 1024 |
| #define | FLIST_NAME "files.txt" |
| name of file list file | |
| #define | DEFAULT_HRTF_FOLDER "IRCAM_HRTF/" |
| where are the HRTFs under the CSL_Data folder? | |
| #define | HRTF_RESOURCE "IRC_1047_R" |
| What's the default HRTF folder under data? | |
| #define | cmac(in1, in2, out) |
Typedefs | |
| typedef vector< HRTF * > | csl::HRTFVector |
| #define HRTF_BLOCK_SIZE CGestalt::blockSize() |
Typically CGestalt::blockSize() (or use a block resizer).
BinauralDB.h -- Specification of the HRTF file format and database This is the CSL 5 version that uses the FFT wrapper framework
Classes HRTF: holds the data that corresponds to an HRTF for a single position as a stereo pair of multi-block arrays of complex spectra. HRTFDatabase: vector of HRTFs; implemented as a Singleton because it's large. Has a vector of HRTFs and can access them by position -- hrtfAt(CPoint) -- or by index -- hrtfAt(unsigned). Create it with a folder/resource name, it reads "files.txt" for a list of HRIR files to load. This has a number of file/folder/DB IO methods for load/store of bulk HRTF data sets in IRCAM format and CSL's pre-processed HRTF.dat files.
The companion file has the classes BinauralPanner: place sources in 3D using block-wise convolution with an HRTF; best heard over headphones . BinauralSourceCache: used for caching previous state of spatial sources.
See the copyright notice and acknowledgment of authors in the file COPYRIGHT Created by Jorge Castellanos on 7/19/06. Inspired by and partially based on the VST HRTF Plug-in written by Ryan Avery. Rewritten for FFT wrappers and pluggable sound file APIs in 8/09 by STP.
Interpolation of HRTFs. Currently the closest HRTF is being used.
geometry is a cr-separated list of 2 integers per line of the azim/elev in degrees of the points; empty line ends list.
Header is followed by the blocks of complex, blocked HRTF complex vectors 16 blocks/set, each has 513 complex values for L and R = 8 * 2 * 513 * 16 = 131 kB / HRTF * 188 = 24.6 MB / DB
Trailer is "\nHRTF\n" The methods storeToDB() and loadFromDB() implement this format.
Referenced by csl::HRTF::HRTF(), csl::HRTFDatabase::HRTFDatabase(), and csl::HRTF::size().
| #define HRIR_SIZE 1024 |
Referenced by csl::HRTF::HRTF(), and csl::HRTFDatabase::HRTFDatabase().
| #define FLIST_NAME "files.txt" |
| #define DEFAULT_HRTF_FOLDER "IRCAM_HRTF/" |
| #define HRTF_RESOURCE "IRC_1047_R" |
What's the default HRTF folder under data?
| #define cmac | ( | in1, | |||
| in2, | |||||
| out | ) |
Value:
out[0] += in1[0] * in2[0] - in1[1] * in2[1]; \
out[1] += in1[0] * in2[1] + in1[1] * in2[0];
1.5.8