|
CSL
5.2
|
HRTFDatabase: has a vector of HRTFs and can access them by position – hrtfAt(CPoint) – or by index – hrtfAt(unsigned). Implemented as a Singleton because it's large (typ 188 HRTFs, 25 MB). 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. More...
#include <BinauralDB.h>
Public Member Functions | |
| ~HRTFDatabase () | |
| unsigned | numHRTFs () |
| Total number of HRTFs loaded into the database. | |
| unsigned | windowSize () |
| The size of the analysis window (in samples). | |
| unsigned | hrtfLength () |
| The length (in samples) of the Transfer Function buffer. | |
| unsigned | hrirLength () |
| The length (in samples) of the impulse responses loaded. | |
| unsigned | numBlocks () |
| The length (in windows) of the impulse responses loaded. | |
| unsigned | hrtfAt (CPoint srcPos) |
| answer the index of the HRTF nearest the given point | |
| HRTF * | hrtfAt (unsigned index) |
| answer an HRTF* by index | |
| void | dump (bool verbose=false) |
| Print all the HRTFs in the database. | |
| unsigned | size () |
| returns the size on bytes of the receiver's storage | |
| void | storeToDB (const char *filename, const char *same) throw (CException) |
Static Public Member Functions | |
| static HRTFDatabase * | Database () |
| accessor for the singleton instance | |
| static void | Destroy () |
| free the instance | |
| static void | Reload (char *folder) |
| load the singleton from the given data folder | |
| static void | convertDB (const char *listname) throw (CException) |
| bulk-convert DBs | |
Protected Member Functions | |
| HRTFDatabase (const char *folder) | |
| constructor that loads from a folder (protected) | |
| void | loadFromFolder (const char *folder) throw (CException) |
| load a set of HRTFs from a folder or a file list file | |
| void | loadFromFile (const char *filename) throw (CException) |
| void | loadFromDB (const char *dbName) throw (CException) |
Protected Attributes | |
| HRTFVector | mHRTFVector |
| vector of the HRTFs that constitute the database | |
| unsigned | mWindowSize |
| FFT sizes (1024) | |
| unsigned | mHRTFLength |
| 513 | |
| unsigned | mHRIRLength |
| The length of the Head Related Impulse Response (8192) | |
Static Protected Attributes | |
| static HRTFDatabase * | mDatabase = 0 |
| The protected single instance of the HRTF Database. | |
HRTFDatabase: has a vector of HRTFs and can access them by position – hrtfAt(CPoint) – or by index – hrtfAt(unsigned). Implemented as a Singleton because it's large (typ 188 HRTFs, 25 MB). 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.
Definition at line 128 of file BinauralDB.h.
|
inline |
Definition at line 130 of file BinauralDB.h.
|
protected |
constructor that loads from a folder (protected)
Definition at line 196 of file BinauralDB.cpp.
References CSL_NAME_LEN, HRIR_SIZE, HRTF_BLOCK_SIZE, csl::kLogError, csl::logMsg(), and csl::CException::mMessage.
|
static |
accessor for the singleton instance
Definition at line 152 of file BinauralDB.cpp.
References csl::CGestalt::dataFolder(), and DEFAULT_HRTF_FOLDER.
Referenced by csl::BinauralPanner::BinauralPanner(), csl::BinauralSourceCache::BinauralSourceCache(), convertDB(), and csl::BinauralPanner::nextBuffer().
|
static |
free the instance
Definition at line 163 of file BinauralDB.cpp.
|
static |
load the singleton from the given data folder
Definition at line 184 of file BinauralDB.cpp.
Referenced by convertDB().
|
static |
bulk-convert DBs
Definition at line 541 of file BinauralDB.cpp.
References CSL_NAME_LEN, Database(), csl::CGestalt::dataFolder(), csl::logMsg(), Reload(), and storeToDB().
| unsigned HRTFDatabase::numHRTFs | ( | ) |
Total number of HRTFs loaded into the database.
Definition at line 460 of file BinauralDB.cpp.
| unsigned HRTFDatabase::windowSize | ( | ) |
The size of the analysis window (in samples).
Definition at line 466 of file BinauralDB.cpp.
Referenced by csl::BinauralPanner::BinauralPanner(), and csl::BinauralPanner::nextBuffer().
| unsigned HRTFDatabase::hrtfLength | ( | ) |
The length (in samples) of the Transfer Function buffer.
Definition at line 472 of file BinauralDB.cpp.
Referenced by csl::BinauralPanner::BinauralPanner(), csl::BinauralSourceCache::BinauralSourceCache(), and csl::BinauralPanner::nextBuffer().
| unsigned HRTFDatabase::hrirLength | ( | ) |
The length (in samples) of the impulse responses loaded.
Definition at line 478 of file BinauralDB.cpp.
| unsigned HRTFDatabase::numBlocks | ( | ) |
The length (in windows) of the impulse responses loaded.
Definition at line 484 of file BinauralDB.cpp.
Referenced by csl::BinauralPanner::BinauralPanner().
| unsigned HRTFDatabase::hrtfAt | ( | CPoint | srcPos | ) |
answer the index of the HRTF nearest the given point
Definition at line 437 of file BinauralDB.cpp.
References csl::CPoint::distance2(), csl::kLogError, csl::logMsg(), and csl::CPoint::normalize().
Referenced by csl::BinauralPanner::nextBuffer().
| HRTF * HRTFDatabase::hrtfAt | ( | unsigned | index | ) |
answer an HRTF* by index
Definition at line 426 of file BinauralDB.cpp.
References csl::kLogError, and csl::logMsg().
| void HRTFDatabase::dump | ( | bool | verbose = false | ) |
Print all the HRTFs in the database.
Definition at line 406 of file BinauralDB.cpp.
References csl::logMsg().
| unsigned HRTFDatabase::size | ( | ) |
returns the size on bytes of the receiver's storage
dump the DB as a single binary file
Definition at line 417 of file BinauralDB.cpp.
| void HRTFDatabase::storeToDB | ( | const char * | filename, |
| const char * | same | ||
| ) | throw (CException) |
Definition at line 498 of file BinauralDB.cpp.
References CSL_DEGS_PER_RAD, csl::HRTF::mHrtfL, and csl::HRTF::mHrtfR.
Referenced by convertDB().
|
protected |
load a set of HRTFs from a folder or a file list file
Definition at line 243 of file BinauralDB.cpp.
References CSL_NAME_LEN, and FLIST_NAME.
|
protected |
Definition at line 252 of file BinauralDB.cpp.
References csl::CSL_FFT_COMPLEX, CSL_NAME_LEN, and csl::logMsg().
|
protected |
Definition at line 305 of file BinauralDB.cpp.
References CSL_DEGS_PER_RAD, CSL_LINE_LEN, CSL_NAME_LEN, csl::kLogError, kPolar, csl::logMsg(), csl::HRTF::mHrtfL, csl::HRTF::mHrtfR, csl::HRTF::mPosition, and csl::CPoint::set().
|
protected |
vector of the HRTFs that constitute the database
Definition at line 160 of file BinauralDB.h.
|
protected |
FFT sizes (1024)
Definition at line 162 of file BinauralDB.h.
|
protected |
513
Definition at line 163 of file BinauralDB.h.
|
protected |
The length of the Head Related Impulse Response (8192)
Definition at line 164 of file BinauralDB.h.
|
staticprotected |
The protected single instance of the HRTF Database.
Definition at line 166 of file BinauralDB.h.