30#ifndef __SAF_REVERB_H_INCLUDED__
31#define __SAF_REVERB_H_INCLUDED__
52#define IMS_MAX_NUM_SOURCES 128
55#define IMS_MAX_NUM_RECEIVERS 16
58typedef struct _ims_rir{
60 int length, nChannels;
106 float roomDimensions[3],
108 float lowestOctaveBand,
147 int fractionalDelaysFLAG);
169 int fractionalDelaysFLAG);
176 float new_roomDimensions[3]);
203 float position_xyz[3],
226 float position_xyz[3],
232 float position_xyz[3]);
237 float position_xyz[3]);
void ims_shoebox_setRoomDimensions(void *hIms, float new_roomDimensions[3])
Sets new room dimensions.
void ims_shoebox_removeSource(void *hIms, int sourceID)
Removes a specific source from the simulation.
int ims_shoebox_addReceiverSH(void *hIms, int sh_order, float position_xyz[3], float ***pSH_sigs)
Adds a spherical harmonic (SH) receiver object to the simulator of a given order, and returns a uniqu...
int ims_shoebox_addSource(void *hIms, float position_xyz[3], float **pSrc_sig)
Adds a source object to the simulator, and returns a unique ID corresponding to it.
void ims_shoebox_applyEchogramTD(void *hIms, long receiverID, int nSamples, int fractionalDelaysFLAG)
Applies the currently computed echograms in the time-domain, for all sources, for one specified recei...
void ims_shoebox_updateSource(void *hIms, int sourceID, float position_xyz[3])
Updates the position of a specific source in the simulation.
void ims_shoebox_computeEchograms(void *hIms, int maxN, float maxTime_s)
Computes echograms for all active source/receiver combinations.
void ims_shoebox_updateReceiver(void *hIms, int receiverID, float position_xyz[3])
Updates the position of a specific receiver in the simulation.
void ims_shoebox_destroy(void **phIms)
Destroys an instance of ims_shoebox room simulator.
void ims_shoebox_renderRIRs(void *hIms, int fractionalDelaysFLAG)
Renders room impulse responses for all active source/receiver combinations.
void ims_shoebox_removeReceiver(void *hIms, int receiverID)
Removes a specific receiver from the simulation.
void ims_shoebox_create(void **phIms, float roomDimensions[3], float *abs_wall, float lowestOctaveBand, int nOctBands, float c_ms, float fs)
Creates an instance of ims_shoebox room simulator.
void ims_shoebox_setWallAbsCoeffs(void *hIms, float *abs_wall)
Sets new wall absorption coefficients per wall and per band.
Output format of the rendered room impulse responses (RIR)