-
Notifications
You must be signed in to change notification settings - Fork 38
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
Improve ADM Renderer, real-time audio process and improve docs #42
Open
peterStitt
wants to merge
35
commits into
videolabs:master
Choose a base branch
from
peterStitt:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Linkwitz-Riley filter splits the signal into a low- and high-passed signal that sum to have a flat magnitude response.
…spherical harmonic order set that it belongs
…misation using Linkwitz-Riley IIR filtering to be more efficient than current linear-phase FIR in AmbisonicShelfFilters Deprecate AmbisonicShelfFilters class in favour of new AmbisonicOptimFilters
… the optimisation shelf filters rather than applying it to the input signal
…ch and roll. Add Octave scripts for the calculation of the rotation matrix equations used in AmbisonicRotator. Deprecate AmbisonicProcessor. AmbisonicRotator is better for real-time does not require intermediate angular representations.
…ence rather than by copy. This avoids potential unwanted allocations.
…ime audio processing
Compensate AmbiX inputs in decoding matrix rather than weighting the input signal. Update preset decoders. Add Octave scripts for generating header files of the presets. Add a test that can be used to verify the output of the preset decoders against data in Octave.
…vector of vectors. More inline with standard practice.
… used by AdmRenderer
…ters. When selecting a 2D playback system (that does not have an associated preset) for a 3D input signal the decoder and optimisation filters are modified to ensure correct max rE decoding in the high frequency range. - Modifies decoder to convert from SN3D to SN2D - Modifies optimisation filters to use 2D max rE gains
…ndard as being optional in a better way. Previously, vectors were used to check if optional parameters were set by checking size() > 0. This was unclear, since it implied some metadata parameters could have multiple values, rather than a maximum of 1.
…fixed value in Configure(). Simplify GainInterp internally to be clearer. AmbisonicEncoder now uses GainInterp internally to handle the smoothing.
1 - Add support for all specified ADM loudspeaker layouts, as well as IAMF layouts (7.1.2 and 3.1.2) and BEAR (9+10+5). 2 - Change HOA decoder in AdmRenderer to use AllRAD 3 - Change binaural rendering in AdmRenderer to decode to a virtual BEAR layout. The virtual speakers are then encoded to HOA and decoded to binaural. 4 - Moved LFE channel insertion to CGainCalculator instead of AdmRenderer to match the processing workflow laid out in Sec. 7.3.1 of ITU-R BS.2127-1.
- Add point source and extent panners. - Change how ObjectMetadata handles the ObjectPosition and ExclusionZone. - Add helper functions related to cartesian metadata.
…3D for processing and decoding.
…igure(). Custom positions are checked against specified ranges. If any loudspeaker is outside of the range then Configure() returns false.
Add missing include directory for dsp folder
This fixes -Wmissing-field-initializers
This fixes -Wunused-function
Fixes "undefined symbol: _ZN11tDesign52006pointsE"
…mples. - README updates - Added docs for main Ambisonic processing - Added docs for ADM processing
…lled the gains will not fade in from zero if Reset() hasn't been called. This is required for CAdmRenderer since the first gain vector is not known until the audio is added, so we cannot set it and call Reset() as we would where we have more control.
…void having unintended non-zero gains on subsequent calls
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Several things in this PR:
Let me know if you see anything that needs changed :)