30#ifndef __SAF_REVERB_H_INCLUDED__
31#define __SAF_REVERB_H_INCLUDED__
54#define IMS_MAX_NUM_SOURCES 128
57#define IMS_MAX_NUM_RECEIVERS 16
60typedef struct _ims_rir{
62 int length, nChannels;
108 float roomDimensions[3],
110 float lowestOctaveBand,
149 int fractionalDelaysFLAG);
171 int fractionalDelaysFLAG);
178 _Atomic_FLOAT32 new_roomDimensions[3]);
182 _Atomic_FLOAT32* abs_wall);
205 float position_xyz[3],
228 float position_xyz[3],
234 _Atomic_FLOAT32 position_xyz[3]);
239 _Atomic_FLOAT32 position_xyz[3]);
void ims_shoebox_removeSource(void *hIms, int sourceID)
Removes a specific source from the simulation.
void ims_shoebox_updateReceiver(void *hIms, int receiverID, _Atomic_FLOAT32 position_xyz[3])
Updates the position of a specific receiver in 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_setWallAbsCoeffs(void *hIms, _Atomic_FLOAT32 *abs_wall)
Sets new wall absorption coefficients per wall and per band.
void ims_shoebox_computeEchograms(void *hIms, int maxN, float maxTime_s)
Computes echograms for all active source/receiver combinations.
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_updateSource(void *hIms, int sourceID, _Atomic_FLOAT32 position_xyz[3])
Updates the position of a specific source in the simulation.
void ims_shoebox_setRoomDimensions(void *hIms, _Atomic_FLOAT32 new_roomDimensions[3])
Sets new room dimensions.
Main header for the utilities module (SAF_UTILITIES_MODULE)
Output format of the rendered room impulse responses (RIR)