Skip to content

ISM RIR: Incorrect summing of bands? #58

@mtmccrea

Description

@mtmccrea

Description

I may be mistaken, but it looks like the octave band splitting may not be writing the filtered signals out, but rather just copying the input to the output.

In particular, the summing stage of ims_shoebox_renderRIR() sums the input channels for a given band wrk->rir_bands[band][i] into the output buffer &(rir->data[i*(wrk->rir_len_samples)]

        /* Sum */
        for(i=0; i<echogram_abs->nChannels; i++)
            cblas_saxpy(wrk->rir_len_samples, 1.0f, wrk->rir_bands[band][i], 1, &(rir->data[i*(wrk->rir_len_samples)]), 1);

The previous block shows the filtered band channels being stored in the temp variable. I would assume it's this filtered signal, temp that should be summed back into the output.

This may not have been caught because it looks like the ambiRoomSim plugin only uses broadband absorption, and I couldn't find anywhere that ims_shoebox_renderRIRs() was actually called.

Here's the larger block for context
https://github.com/leomccormack/Spatial_Audio_Framework/blob/82e3b75a9e4b9deb098e01416b1e91f6feeafb7f/framework/modules/saf_reverb/saf_reverb_internal.c#L685C3-L709

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions