Skip to content
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

Export - use JumpPosition #44

Closed
rsjbailey opened this issue Jan 15, 2021 · 2 comments · Fixed by #62
Closed

Export - use JumpPosition #44

rsjbailey opened this issue Jan 15, 2021 · 2 comments · Fixed by #62
Labels
enhancement New feature or request extension Issue applies to reaper extension

Comments

@rsjbailey
Copy link
Contributor

Use jump position where we have 2 points on the same timestamp, rather than 2 blocks.
Future - there's actually a threshold for minimum distance between blocks - this jump position logic should apply to create a ramp over a set duration without placing points too close to each other (bear in mind, what if you have >2 points tightly clustered?)

From gitlab 38

@rsjbailey rsjbailey added enhancement New feature or request extension Issue applies to reaper extension labels Jan 15, 2021
@merktj
Copy link
Collaborator

merktj commented Jan 28, 2021

If there are multiple points at the same timestamp, the current implementation always creates 2 blocks. The first block defines the interpolation towards the first point and the second block the interpolation between the first and the last point on the timestamp, but the duration of second block equals 0.
I don't really understand here how to get rid of one of the two blocks. Wouldn't this change the envelope's values, because you would have to chose whether to interpolate towards the first or the last point?
What could be done is setting a JumpPosition for the second block with duration 0 to prohibit interpolation problems for this case.

Regarding the threshold for minimum distance, is there a reference where this is described? Unfortunately so far I couldn't find one.

@firthm01
Copy link
Contributor

firthm01 commented Feb 8, 2021

Having looked in to this again, I think this all arose from testing with Dolby. The minimum block duration comes from the Dolby ADM profile which specifies that blocks within 2ms of a 'breakpoint' can be discarded, and that jumpPosition should be used when instant changes are required. (section 2.5.1 of https://developer.dolby.com/globalassets/documentation/technology/dolby_atmos_master_adm_profile_v1.0.pdf)
Since this is profile specific and zero-duration blocks are legal in BS. 2076, and also given that jump position can not eliminate zero duration blocks in many circumstances, I don't think this is worth worrying about.
However, having spoken with the ADM team here, there is a strong case for at least identifying where these instantaneous jumps occur. The simplest way is as shown by figure 10 of BS.2076-2. That is, just to set the jumpPosition flag to 1 for any zero-duration block (except for the very first block in a channel format since that is just setting initial values). The rest of the existing logic can then remain the same.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request extension Issue applies to reaper extension
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants