Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Bug Reports

Reply
 
Thread Tools Display Modes
Old 08-13-2021, 03:23 AM   #1
mutex
Human being with feelings
 
Join Date: Jul 2014
Posts: 43
Default Automation lanes don't respect "Playback time offset"

I use orchestral libraries that have a sample delay, so I use negative "Playback time offset". The problem is, automation lanes don't seem to be affected by this and are therefore constantly out of sync with the audio.

In the attached image I automate the instrument expression from 100% to 0% at the beginning.

- Without the negative delay, nothing can be heard (correct result).
- With -1000ms offset, the sound is heard for 1000ms before the expression drops to 0%.

EDIT: I added a test project that demonstrates the issue. The expected result would be to hear nothing on both tracks.
Attached Images
File Type: png No Automation Offset.png (17.4 KB, 127 views)
Attached Files
File Type: rpp Playback Offset Automation Issue.rpp (6.2 KB, 87 views)

Last edited by mutex; 09-04-2021 at 03:19 AM.
mutex is offline   Reply With Quote
Old 09-04-2021, 03:14 AM   #2
mutex
Human being with feelings
 
Join Date: Jul 2014
Posts: 43
Default

Bump (added test project to demonstrate the issue)
mutex is offline   Reply With Quote
Old 12-03-2021, 11:16 PM   #3
Infrabass
Human being with feelings
 
Join Date: Apr 2014
Posts: 265
Default

+1
I also noticed this the hard way.
Is this a bug or it depends of a setting?
Infrabass is offline   Reply With Quote
Old 12-04-2021, 04:26 AM   #4
mutex
Human being with feelings
 
Join Date: Jul 2014
Posts: 43
Default

Quote:
Originally Posted by Infrabass View Post
+1
I also noticed this the hard way.
Is this a bug or it depends of a setting?
As far as I know, there is no setting. I would consider this to be a bug as I see track automation to be part of the track that should be affected by the offset the same way track items are.
mutex is offline   Reply With Quote
Old 12-04-2021, 06:27 AM   #5
schwa
Administrator
 
schwa's Avatar
 
Join Date: Mar 2007
Location: NY
Posts: 13,708
Default

Track playback time offset only affects media playback, not automation or audio routed to the track or live playback. It's essentially a media read-ahead (or read-behind) setting. So unfortunately you'll need to adjust automation manually.
schwa is offline   Reply With Quote
Old 12-04-2021, 07:17 AM   #6
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 2,984
Default

^^^^^^
schwa, that causes lot of confusion.
Please, reconsider adding 'media' word to the label and the name of this feature so it is obvious what exactly it does.
As it is labeled now it implies playback time offset as offset in time in timeline = whatever (not just 'real-existing' media items) is playing at 'now' will be played lately or early.

As I recommended to Justin already 18 months ago because of the similar problem here:
"Playback time offset" not working with "MIDI Sequencer Megababy" JSFX

Last edited by akademie; 12-04-2021 at 07:23 AM.
akademie is offline   Reply With Quote
Old 12-04-2021, 10:50 AM   #7
Infrabass
Human being with feelings
 
Join Date: Apr 2014
Posts: 265
Default

Quote:
Originally Posted by schwa View Post
Track playback time offset only affects media playback, not automation or audio routed to the track or live playback. It's essentially a media read-ahead (or read-behind) setting. So unfortunately you'll need to adjust automation manually.
Oh sadness 🥺
But thanks for replying Schwa!

I'm in a situation where I stream Reaper signal to my iphone using Airfoil (I'm working on mobile video game) but this introduce 2s of latency, so to be able to keep the sync with the video I need to adjust the playback time offset accordingly.
I created a script to automate the process because in average I'm switching between normal and offset playback 50 times per day.
So manually adjusting the automation is not really possible there.

I guess it's another beast to include automations into the read-ahead or behind process?
Is this a limitation shared by other DAWs?

Any plan to change this behaviour?
Infrabass is offline   Reply With Quote
Old 12-04-2021, 03:48 PM   #8
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 14,646
Default

Quote:
Originally Posted by Infrabass View Post
Oh sadness ��
But thanks for replying Schwa!

I'm in a situation where I stream Reaper signal to my iphone using Airfoil (I'm working on mobile video game) but this introduce 2s of latency, so to be able to keep the sync with the video I need to adjust the playback time offset accordingly.
I created a script to automate the process because in average I'm switching between normal and offset playback 50 times per day.
So manually adjusting the automation is not really possible there.

I guess it's another beast to include automations into the read-ahead or behind process?
Is this a limitation shared by other DAWs?

Any plan to change this behaviour?
Three better solutions:

- Go to preferences/media/video and set the video output delay there (probably the best solution)

- Set an output manual offset in preferences/audio/recording

- Put a JS time_adjustment on the master track, and set the master track's PDC mode to "hardware output compensation" (this is probably the least desirable)

Last edited by Justin; 12-04-2021 at 04:02 PM.
Justin is offline   Reply With Quote
Old 12-04-2021, 06:17 PM   #9
Infrabass
Human being with feelings
 
Join Date: Apr 2014
Posts: 265
Default

Wow thanks Justin!
Didn't know about all those options.

2nd is the best for me because even the playback cursor stay in sync with audio + video.
You just made my work way more fun and efficient 🤗

Now last thing to do is create a script to toggle the output manual offset value automatically.
I think because of Meo-AdaMespotine awesome Config Variables I can do this:
https://mespotin.uber.space/Ultrasch...Variables.html
Infrabass is offline   Reply With Quote
Old 12-04-2021, 06:32 PM   #10
Infrabass
Human being with feelings
 
Join Date: Apr 2014
Posts: 265
Default

The script in case somebody else need it:

function Main()

is_new_value, filename, sectionID, cmdID, mode, resolution, val = reaper.get_action_context()

airfoil = reaper.GetExtState("airfoil_playback_offset", "airfoil_playback_offset_KEY")

sr = reaper.GetSetProjectInfo(0, "PROJECT_SRATE", 0, 0)
offset = sr * 2

if airfoil == "" then
reaper.SNM_SetIntConfigVar("adjrecmanlat", offset)
reaper.SetExtState("airfoil_playback_offset", "airfoil_playback_offset_KEY", "active", 0)
reaper.SetToggleCommandState(sectionID, cmdID, 1)
else
reaper.SNM_SetIntConfigVar("adjrecmanlat", 0)
reaper.SetExtState("airfoil_playback_offset", "airfoil_playback_offset_KEY", "", 0)
reaper.SetToggleCommandState(sectionID, cmdID, 0)
end
reaper.RefreshToolbar2(sectionID, cmdID)
end

Last edited by Infrabass; 12-04-2021 at 06:50 PM.
Infrabass is offline   Reply With Quote
Old 12-04-2021, 06:42 PM   #11
Infrabass
Human being with feelings
 
Join Date: Apr 2014
Posts: 265
Default

A small limitation I just noticed is that the master playrate (transport knob and master track envelope) can't be used with this setup as the video unsync again.
Not sure to understand why though.
Infrabass is offline   Reply With Quote
Old 12-04-2021, 07:48 PM   #12
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 14,646
Default

Quote:
Originally Posted by Infrabass View Post
A small limitation I just noticed is that the master playrate (transport knob and master track envelope) can't be used with this setup as the video unsync again.
Not sure to understand why though.
Try multiplying or dividing the offset by the playrate and maybe that'll make it correct?
Justin is offline   Reply With Quote
Old 12-04-2021, 08:46 PM   #13
Infrabass
Human being with feelings
 
Join Date: Apr 2014
Posts: 265
Default

Yeah, it works!
So I can add a condition to a potential script that, in addition to adjusting the transport playrate, would check if the ext state is active and then multiplying the # of samples by the playrate knob value.

The only thing I see that would still not work in sync is if I draw an envelope (like a ramp) on the master playrate.
Infrabass is offline   Reply With Quote
Old 12-04-2021, 09:27 PM   #14
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 14,646
Default

hmm perhaps we should fix that in reaper (adjust those offsets by play rate for video)
Justin is offline   Reply With Quote
Old 12-04-2021, 09:49 PM   #15
Infrabass
Human being with feelings
 
Join Date: Apr 2014
Posts: 265
Default

Would be the best scenario! 😁
Infrabass is offline   Reply With Quote
Old 12-05-2021, 02:34 PM   #16
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 14,646
Default

Quote:
Originally Posted by Infrabass View Post
Would be the best scenario! 😁
Try today's +dev build
Justin is offline   Reply With Quote
Old 12-05-2021, 03:58 PM   #17
Infrabass
Human being with feelings
 
Join Date: Apr 2014
Posts: 265
Default

So cool you did this!

I just made a few tests:

- For constant varispeed change (transport playrate) it's flawless
- For progressive varispeed change (master track playrate envelope) it's working but some strange things happen with the play cursor and the video playback. ��
See my video screenshot below:
https://dropover.cloud/3b5629

Last edited by Infrabass; 12-06-2021 at 03:38 PM.
Infrabass is offline   Reply With Quote
Old 12-05-2021, 04:10 PM   #18
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 14,646
Default

Quote:
Originally Posted by Infrabass View Post
So cool you did this!

I just made a few tests:

- For constant varispeed change (transport playrate) it's flawless
- For progressive varispeed change (master track playrate envelope) it's working but some strange things happen with the play cursor and the video playback. 😅
See my video screenshot below:
https://www.dropbox.com/s/3wx6hb8nk9...ffset.mov?dl=0
Yeah, that's somewhat to be expected, probably live with it territory
Justin is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 09:30 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.