Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER Feature Requests

View Poll Results: Do you need a Track-Playback Parameter "Delay"?
Yes I need it 17 89.47%
Never needed it 2 10.53%
I don't know 0 0%
Voters: 19. You may not vote on this poll

Reply
 
Thread Tools Display Modes
Old 04-15-2018, 04:22 AM   #1
enroe
Human being with feelings
 
Join Date: Nov 2017
Posts: 1,576
Default [suggestion: MIDI] Track-Playback Parameter "Delay"

After a long look at Reaper and a search in
the manual one important missing feature
struck me:

Midi: Track-Playback Parameter "Delay"

---------------------------------------------------------------------------
Midi: Track-Playback Parameter "Delay"
---------------------------------------------------------------------------

If you have many tracks it is important to have some
tracks played some milliseconds earlier than all
the other tracks. Think of instruments with a soft attack
like violins or strings. String instruments which are
tightly quantized on the grid must play ca. 40 ms
earlier than drums and bass.

On the other hand some tracks must be delayed
a little. In case you want a slight "laid back" feeling
you need to have the drums played some milliseconds
later.

So if you want to adjust the microtiming of tracks
in a song you need a "track-playback-parameter"
called "delay". This parameter causes a track
to be played earlier or later.

---------------------------------------------------------------------------
Is there a workaround in Reaper?
---------------------------------------------------------------------------

1. You can select all items of a track and edit (F2)
their properties. Here is a parameter "start in
source". Positive values let all the items play
earlier - negative values later.

But this "start in source" moves all midi notes
inside the items - and thus they don't stay
quantized on the grid. So you can't work and
quantize again on all these midi-items.

"Start in source" is not an item-playback-parameter,
instead it is a real note-move-action. So it's unusable
for microtiming adjustments.

2. The Midi-Plugin "Rea Control MIDI" doesn't
provide a delay-parameter. But the plugin
"JS MIDI Delay" does. Unfortunately you can't
set negative values:



So you can't let all the items play earlier, only
later. Not really good!

---------------------------------------------------------------------------
Conclusion + Solution
---------------------------------------------------------------------------

The best solution would be: Every
Track has a parameter called "Delay" which
effects the way a track is played only. So any
Track can be pushed to an earlier time (in
milliseconds or frames) or to a slightly later
time (in milliseconds or frames).

(If I didn't oversee something or somebody has
a better suggestion ... )
Attached Images
File Type: gif 01 reaper midi - track playback parameter delay 02.gif (10.2 KB, 1251 views)
__________________
free mp3s + info: andy-enroe.de songs and weird stuff: enroe.de

Last edited by enroe; 04-16-2018 at 09:54 PM. Reason: make images visible
enroe is offline   Reply With Quote
Old 04-15-2018, 04:58 AM   #2
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

I see you're pretty new around here. Please do a search on threads because request for this already exists, multiple times.

Also a solution also exists, and it comes with Reaper, use the Time Adjustment JS FX instead of the one you've been using. It just needs one small tweak in order to work for MIDI: add this line before @sample:

Code:
pdc_midi = 1.0

I don't think delay as a track parameter is going to happen for Reaper.

Last edited by EvilDragon; 04-15-2018 at 05:05 AM.
EvilDragon is offline   Reply With Quote
Old 04-15-2018, 05:12 AM   #3
enroe
Human being with feelings
 
Join Date: Nov 2017
Posts: 1,576
Default

Oooohyee,

thank you for your fast answer. I'll check it!
__________________
free mp3s + info: andy-enroe.de songs and weird stuff: enroe.de
enroe is offline   Reply With Quote
Old 04-16-2018, 10:27 PM   #4
enroe
Human being with feelings
 
Join Date: Nov 2017
Posts: 1,576
Default Second look: Track-Playback Parameter "Delay"

--> Now let's have a second look:

The insertion of the modified "JS Time adjustment"
works well, yet it is not as ergonomic as a real "track-
playback parameter".

----------- From an abstract view ... --------------

... the "volume-fader" and the "pan-knob" are
"track playback parameter": They are prominent in the
TCP and in the MCP because they are used often.

But IMO the same applies to "track-delay":
In every MIDI-arrangement I use the negative delay
incessantly and all along, because I have different
VSTis (and sampled-instruments) with very different
attacks. So I have to adjust the "track-delay" nearly
as often as the volume or the pan-knob.

------------------- Philosophy --------------------

Maybe a "track-delay playback parameter" doesn't
fit to the Reaper philosophy, but from the ergonomic
view it would be a big step. And it is all about ergonomics!

The very frequent use of the Track-Delay is a strong
argument for a permanent Track-Delay knob in the TCP
(at least IMO).

Let me hear what you think!
__________________
free mp3s + info: andy-enroe.de songs and weird stuff: enroe.de
enroe is offline   Reply With Quote
Old 04-17-2018, 12:15 AM   #5
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,790
Default

You can add any automatable plugin parameter as a track control, there's an option for it when you click on a parameter, and then click on Param button in Reaper's plugin header. Make a track template.

As mentioned, I don't think we'll ever see track delay as default part of track. Similarly how we don't have surround panners and EQs built into the track like some other DAWs. Reaper does this via additional plugins and track controls - this won't change, I am pretty sure.
EvilDragon is offline   Reply With Quote
Old 04-26-2018, 03:47 AM   #6
enroe
Human being with feelings
 
Join Date: Nov 2017
Posts: 1,576
Default

Quote:
Originally Posted by EvilDragon View Post
You can add any automatable plugin parameter as a track control, there's an option for it when you click on a parameter, and then click on Param button in Reaper's plugin header. Make a track template.
I've done that - and really: It works perfectly! This way it
is ergonomic and easy to use.

Thank you (and thank Reaper of course)!
__________________
free mp3s + info: andy-enroe.de songs and weird stuff: enroe.de
enroe is offline   Reply With Quote
Old 06-03-2018, 12:17 PM   #7
tompad
Human being with feelings
 
Join Date: Jan 2010
Location: Fjugesta, Sweden
Posts: 811
Default

Quote:
Originally Posted by EvilDragon View Post
Also a solution also exists, and it comes with Reaper, use the Time Adjustment JS FX instead of the one you've been using. It just needs one small tweak in order to work for MIDI: add this line before @sample:

Code:
pdc_midi = 1.0
No ; after the code??

Are there no side-effects using this tweak?
__________________
ToDoList Obliques MusicMath Donation Some of mine and my friends music projects on Spotify
tompad is offline   Reply With Quote
Old 04-05-2019, 02:30 AM   #8
enroe
Human being with feelings
 
Join Date: Nov 2017
Posts: 1,576
Default

-------- Philosophy --------

I would summarize the "Reaper-Philosophy" as "as little
as possible but as flexible as possible".

"As little as possible" means that there is no track-EQ.
And also there is NO delay-parameter in the track
control panel (TCP). ED mentioned this already.

---------------------------------------------------------------------

In the TCP we can find a level-fader, a mute knob
and a solo knob. So the big question here is:

Does a track-delay-parameter belong to the very basic
TCP-elements like "mute" and "solo" -- or not?

Arguments for no:

-- The purest Reaper philosophy doesn't allow the
TCP to be bloated.

-- By inserting the modified "JS Time adjustment"
a track-delay parameter button can be set on
the TCP. With track-templates this can be
handled ergonomically.

Arguments for yes:

-- Almost every Midi-track needs a delay-adjustment
depending on the attack-times of the instrument
or the groove pattern used on this track.

-- Also audio tracks often need a delay-adjustment.

-- A default-track-delay parameter could be faster
and more ergonomic than the extra adding of
the modified "JS Time adjustment" plugin.
__________________
free mp3s + info: andy-enroe.de songs and weird stuff: enroe.de
enroe is offline   Reply With Quote
Old 04-05-2019, 05:50 AM   #9
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by enroe View Post
-------- Philosophy --------

I would summarize the "Reaper-Philosophy" as "as little as possible but as flexible as possible".
YEP !!!
This is what is great about Reaper. Stuff that is not used in close to all applications is strictly optional, not cluttering the main product, but (close to) all option are there or supported by 3rd parties

Hence "often" is not an argument.

That way Reaper does not dictate (or suggest) a predefined workflow.

I suppose somebody that especially likes the workflow the DAW "XY" imposes on it's users, is better off when using DAW "XY".

-Michael

Last edited by mschnell; 04-05-2019 at 02:14 PM.
mschnell is online now   Reply With Quote
Old 04-05-2019, 08:56 AM   #10
Thonex
Human being with feelings
 
Join Date: May 2018
Location: Los Angeles
Posts: 1,719
Default

Quoting myself from another thread:

Adding pdc_midi = 1.0 to code is almost a great solution, however, it is not perfect. There is a problem:

1) Insert and instance of the Time Adjustment JS plugin with the custom line of code set to (say) -100ms.
2) Play back a MIDI part with the cursor at the downbeat of the part, the notes on the downbeat don't get played.

This would seem plausible since the notes on the downbeat are actually now moved backward in time so the cursor doesn't "catch" it. However, in my experience, other DAWs don't have this issue (certainly not Cubase or Nuendo) so they must be compensating playback start time somehow.

For most folks, losing the notes on playback where the cursor is parked would be a serious shortcoming. I know it is for me. We always have our MIDI parts set to measures and beats and the cursor follows suit. Any way to fix this?
__________________
Cheers... Andrew K
Reaper v6.80+dev0621 - June 21 2023 • Catalina • Mac Mini 2020 6 core i7 • 64GB RAM • OS: Catalina • 4K monitor • RME RayDAT card with Sync Card and extended Light Pipe.

Last edited by Thonex; 04-05-2019 at 09:08 AM.
Thonex is offline   Reply With Quote
Old 04-05-2019, 12:16 PM   #11
Klangfarben
Human being with feelings
 
Join Date: Jul 2016
Location: Los Angeles, CA
Posts: 1,701
Default

Quote:
Originally Posted by Thonex View Post
Adding pdc_midi = 1.0 to code is almost a great solution, however, it is not perfect. There is a problem:
There's also this issue others have brought up:

Quote:
Originally Posted by Soli Deo Gloria View Post
Well, the first time you set a negative value it probably works; when you begin to fiddle with the values, things go out of control. Evidently, Heda has had a similar experience with the plug, according to the above post. I suppose that with these kind of operations PDC must be somewhat difficult to manage...
So again, I think relating midi offset/delay to PDC is a bad path to go down.
Klangfarben is offline   Reply With Quote
Old 04-05-2019, 12:57 PM   #12
Thonex
Human being with feelings
 
Join Date: May 2018
Location: Los Angeles
Posts: 1,719
Default

Quote:
Originally Posted by Klangfarben View Post
There's also this issue others have brought up:



So again, I think relating midi offset/delay to PDC is a bad path to go down.
Totally... must be addressed, but I think that Sol Do Gloria's issue was a different case. I'm not finding that issue so far using the "dc_midi = 1.0" code.
__________________
Cheers... Andrew K
Reaper v6.80+dev0621 - June 21 2023 • Catalina • Mac Mini 2020 6 core i7 • 64GB RAM • OS: Catalina • 4K monitor • RME RayDAT card with Sync Card and extended Light Pipe.
Thonex is offline   Reply With Quote
Old 04-06-2019, 04:41 AM   #13
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by Klangfarben View Post
So again, I think relating midi offset/delay to PDC is a bad path to go down.
???

"PDC" is defined as the delay IMPOSED ON an audio stream passing through by a plugin.

Hence same should be true for a Midi stream passing through by a plugin.

I do hope this is handled this way - but I am not entirely sure.

-Michael
mschnell is online now   Reply With Quote
Old 04-06-2019, 07:34 AM   #14
Klangfarben
Human being with feelings
 
Join Date: Jul 2016
Location: Los Angeles, CA
Posts: 1,701
Default

Quote:
Originally Posted by mschnell View Post
???

"PDC" is defined as the delay IMPOSED ON an audio stream passing through by a plugin.

Hence same should be true for a Midi stream passing through by a plugin.

I do hope this is handled this way - but I am not entirely sure.

-Michael
We've been discussing the reasons PDC would not be a good way to handle this in the thread below as well as this thread.

https://forum.cockos.com/showthread.php?t=21904
Klangfarben is offline   Reply With Quote
Old 04-06-2019, 09:23 AM   #15
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by mschnell View Post
"PDC" is defined as the delay IMPOSED ON an audio stream passing through by a plugin.
Hence same should be true for a Midi stream passing through by a plugin.
Edit:

If a plugin feature Midi and audio in and out there could be four different PDCs: audio -> audio, Midi -> audio, Midi-> Midi and (e.g. a drum trigger) audio->Midi.

I have no idea if/how a DAW (or whatever instance) would be able to automatically handle this decently.

-Michael
mschnell is online now   Reply With Quote
Old 04-06-2019, 10:06 AM   #16
Klangfarben
Human being with feelings
 
Join Date: Jul 2016
Location: Los Angeles, CA
Posts: 1,701
Default

Quote:
Originally Posted by mschnell View Post
If a plugin feature Midi and audio in and out there could be four different PDCs: audio -> audio, Midi -> audio, Midi-> Midi and (e.g. a drum trigger) audio->Midi.

I have no idea if/how a DAW (or whatever instance) would be able to automatically handle this decently.
Which would be another very good reason to implement midi offset in a different manner that doesn't involve PDC (or using a plugin).
Klangfarben is offline   Reply With Quote
Old 04-06-2019, 03:25 PM   #17
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

PDC simply is an existing concept for a very similar task. So it is the primary candidate.

Even if with two PDCs at the same time, things will get complicate.
OTOH, I doubt that any other versatile concept will be less complicated.
-Michael
mschnell is online now   Reply With Quote
Old 04-09-2019, 06:41 AM   #18
enroe
Human being with feelings
 
Join Date: Nov 2017
Posts: 1,576
Default

Quote:
Originally Posted by mschnell View Post
PDC simply is an existing concept for a very similar task. So it is the primary candidate.

Even if with two PDCs at the same time, things will get complicate.
OTOH, I doubt that any other versatile concept will be less complicated.
-Michael
Things won't get complicate, no no!

--------------- PDC -----------------

The PDC-concept just compensates the latency of all plugins.
PDC compensates for this by finding the track with the greatest
latency and delaying all other tracks just enough to be even
with the track with the greatest latency. Very simple!

------ track-delay-parameter --------

The track-delay-parameter would just only delay this one
individual track where it is applied. In case of negative
values this one track get's an offset, that means: The
whole track is played earlier - nothing more.

Now imagine you have an item at bar 2 to bar 4.
And in this item a note starts at bar 2, just at the
beginning of the item.

If you set a pre-delay to "- 50ms" the whole item
and all notes stay at their position. Only the whole track
will be played 50 ms earlier.

Imagine you have a playback-cycle from bar 2 to bar 4.
If you hit "play" the "note-on" of the first note will not be
played, because it is not in the range of your playback-
cycle. This might be an issue. The solution here is
"chase notes on": The first note will be played if this
note is lasting longer than 50 ms. That's quite logic -
isn't it?

So it is not complicated.
__________________
free mp3s + info: andy-enroe.de songs and weird stuff: enroe.de
enroe is offline   Reply With Quote
Old 04-09-2019, 07:48 AM   #19
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by enroe View Post
The PDC-concept just compensates the latency of all plugins.
This is what PDC mostly is used for.
But in the first place PDC is just a number. (i.e. the count of sample a plugin claims to delay the audio passing through it.).
This is easy for an audio-only ("effect") plgin.

But if a plugin features audio and Midi in and out IMHO things do get complicated.

You might simply day a plugin that does not feature the same delay between either in and either out, but I am not very confident that this really always holds.

Quote:
Originally Posted by enroe View Post
The track-delay-parameter would just only delay this one individual track where it is applied
Delay on Audio or Midi or both ? All Channels ? From the media / Hardware input to the Main (Fader-) output and/or from/to the Routing inputs and/or outputs ?

-Michael

Last edited by mschnell; 04-09-2019 at 12:54 PM.
mschnell is online now   Reply With Quote
Old 04-09-2019, 10:50 AM   #20
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by EvilDragon View Post
I see you're pretty new around here. Please do a search on threads because request for this already exists, multiple times.

Also a solution also exists, and it comes with Reaper, use the Time Adjustment JS FX instead of the one you've been using. It just needs one small tweak in order to work for MIDI: add this line before @sample:

Code:
pdc_midi = 1.0

I don't think delay as a track parameter is going to happen for Reaper.
Why is this solution not integrated then, requiring everyone doing this, a bit strange?
TonE is offline   Reply With Quote
Old 04-09-2019, 10:53 AM   #21
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by enroe View Post
I've done that - and really: It works perfectly! This way it
is ergonomic and easy to use.

Thank you (and thank Reaper of course)!
Thanks enroe, I will use track delay in future as well, thanks to your questions here. Thanks to all helpers, of course AngelDragon mainly here.
TonE is offline   Reply With Quote
Old 04-09-2019, 10:59 AM   #22
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Quote:
Originally Posted by Thonex View Post
For most folks, losing the notes on playback where the cursor is parked would be a serious shortcoming. I know it is for me. We always have our MIDI parts set to measures and beats and the cursor follows suit. Any way to fix this?
Of course, use a custom play command which moves a few ms back in time, then plays from there. Good?
TonE is offline   Reply With Quote
Old 04-09-2019, 12:53 PM   #23
Klangfarben
Human being with feelings
 
Join Date: Jul 2016
Location: Los Angeles, CA
Posts: 1,701
Default

Quote:
Originally Posted by TonE View Post
Of course, use a custom play command which moves a few ms back in time, then plays from there. Good?
No, not good. That is a giant can of worms.

I don't see anything other than a native solution for this as the script coding for this for all the different parameters, tracks and various workarounds would be extremely challenging at best and a nightmare at worst.
Klangfarben is offline   Reply With Quote
Old 04-09-2019, 12:55 PM   #24
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Hmm, then wait for Cockos.
TonE is offline   Reply With Quote
Old 07-24-2019, 06:02 AM   #25
Vadium
Human being with feelings
 
Vadium's Avatar
 
Join Date: Apr 2016
Posts: 117
Default

Yes, I need a delay, built-in Audio/MIDI track as solo/mute, etc., with positive/negative values too!
Vadium is offline   Reply With Quote
Old 09-18-2019, 04:04 PM   #26
enroe
Human being with feelings
 
Join Date: Nov 2017
Posts: 1,576
Default

Solved:

With v5.983+dev0918 - probably 5.984 - there's a delay-parameter
in the I/O-window - look here.

Thank you Developers!
__________________
free mp3s + info: andy-enroe.de songs and weird stuff: enroe.de
enroe 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 07:49 AM.


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