< Back to IRCAM Forum

Use a recorded RIR in spat5.oper~

I’m trying to use a recorded room impulse response of a car in spat5.spat~ but it seems like we only can design synthetically room response… Any idea of how can I do to render my sound with my own RIR?
I’ll then play the result on headphones and with a set of speaker.

Thanks in advance


You can use spat5.conv~ to render our RIR.


Thanks but I wanted to use the spat5.spat~ with the .oper~ and wanted to replace or substitute the synthetic RIR present in the artificial reverb in .spat~ by my own RIR. Is this possible? or where should I put my convolution ?

Thanks in advance

No you cannot do that.

Your RIR contains the room acoustics signature (in that case, of the car), and the “hard-coded” spatialization of the scene. This can hardly be modified.
The only available option is to use spat5.converb~, which is similar to spat5.conv~ but further applies filtering to the direct/early/late sections.
The parameters of these filters could be slaved to spat5.oper_ (note the underscore). However this can only alter the spectral characteristics of the RIR. The temporal and spatial aspects cannot be (easily) modified.

Hope this helps.

Ok thanks,
So if i understood well, I’ll need to replace the entire spat~ by the spat5.converb~ and control it with spat5.oper is that it ?
The problematic will still be the time delays effects I understand.

And maybe silly questions:
•1•Is it ok if i put my converb~ before my encoder~ or does it need to be after ?
For example I’m trying to do a spatialization in ambisonic so i put the converb~ then the encoder~, the decoder~ and speakers.

•2•Can i keep the spat~, mute the room reverb in the oper~ and add a converb~ before the spat~ to replace the spat reverberation engine?

Thanks in advance

  1. spat5.converb~ and spat5.hoa.encoder~ both are linear operators, so it doesn’t matter which one goes before the other. In terms of CPU performance, however, one approach might be better than the other.

  2. Yes, you have the right to do so !


ok great thanks !
Do you know if it exists a routine or a plug in that compute a RIR in order to obtain the “high level messages” to feed the oper~ with them?
I’ve already tried the ir.infos~ and ir.analysis~ but I only end up with parameters such as RT and C which I can’t use to slay the parameters in the oper~…

Thanks in advance

This is not an easy task.
We have some prototypes for internal use, but it’s not part of the public release at the moment.