-
Notifications
You must be signed in to change notification settings - Fork 47
Update API and IAMF Compatibility #50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
…ral rendering, breaking from BEAR spec.
…efix 'C' from class names
…annels and layouts and to allow easier construction of default channels or layouts.
…s are ADM and which are more generic.
…rsion of the Binaural output of the AdmRenderer/Renderer class. Also removed HOA from the Layout class so it expects only layouts in OutputLayout
…fils the same purpose
…thout the need to use the Renderer class or metadata
…2094::channelLabels. Changed renaming to avoid incorrectly labelling LFER as LFE1
…ensure correct rendering
…runcation in pre-processing. Ensure that the input to Process() is not overwritten by the optimisation shelf filtering.
…ction as required for setting the positions.
… via the metadata. This already existed of Objects but has been added for HOA and DirectSpeaker streams. An overall gain can also be optionally applied to the output signal.
/** Set a gain target that is to be applied to all channgels and the time in samples to interpolate to it. | ||
* | ||
* @param newGainVec Linear gain value to be applied to all channels. | ||
* @param interpTimeInSamples The number of channels over which to interpolate to the new gain value. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this be "number of samples" and not channels?
/** Set the gain vector target and the time in samples to interpolate to it. | ||
* | ||
* @param newGainVec Vector of new gains. Must have the same length as number of channels set in the constructor. | ||
* @param interpTimeInSamples The number of channels over which to interpolate to the new gain vector. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above
) | ||
|
||
if(MYSOFA_FOUND) | ||
message("Found mysofa!") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems this was accidentally included in the commit
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You should already be able to see if it found mysofa in the CMake log output btw:
-- Checking for module 'libmysofa'
-- Found libmysofa, version 1.3
. Before that commit the decoder coefficients in AmbisonicDecoder assumed N3D normalisation and correction for SN3D normalisation (used by the lib) was done at decoding. 1dc37eb moved the N3D->SN3D correction to the decoder coefficients. However, the old correction was left in AmbisonicBinauralizer, leading to double "correction". This commit also fixes a bug where the correction gain was not applied to the highest order channels.
Here is an update that hopefully makes the API clearer and easier to use, as well as to make it more compatible with the IAMF specification. The main changes are:
Once we settle on these changes I still need to update the docs to reflect the API changes and to make it clearer what the lib can do :)