Need Some Testers For CSS VST/AU Delay Compensation Solution

Discussion in 'SAMPLE Talk' started by calebfaith, Dec 1, 2018.

  1. Dewdman42

    Dewdman42 Senior Member

    912
    337
    Oct 28, 2016
    good point. The VST could be compiled as AU-MFX pretty easily if he's doing AU anyway. I'm not sure whether PDC is handled through those midi plugin slots though, quite possibly not.
     
    NoamL likes this.
  2. OP
    OP
    calebfaith

    calebfaith Senior Member

    Hmm I have another alternative rather than a VST I'm working on at the moment. I'm starting to think a VST won't work for other DAWs which is a pity because of the delay compensation.

    Yeah it literally just has counter for notes active which you increment on note down messages and decrement on note up messages. I do this before any processing so if notes active > 1 it means legato is active. I saw you did a script for Logic maybe you could incorporate that so you don't have to select the start of a phrase?
     
    NoamL likes this.
  3. NoamL

    NoamL Winter <3

    2,234
    4,186
    Jul 6, 2015
    Los Angeles
    I'll do that, if you don't mind me borrowing your idea. Here's an idea for you, if you haven't thought of it already, you should exclude keyswitch notes (below the playable range) from this counter. I've seen many people drag out KS notes below the entire relevant phrase for clarity.
     
    heisenberg and calebfaith like this.
  4. OP
    OP
    calebfaith

    calebfaith Senior Member

    Yeah no worries. Thanks, I didn't think of that!
     
    NoamL likes this.
  5. Dewdman42

    Dewdman42 Senior Member

    912
    337
    Oct 28, 2016
    Just did a test. AU-MFX plugins can report latency and LPX appears to recognize it. So...I think it could be compiled as AU-MFX for use in LPX and PDC should be handled properly.
     
    NoamL likes this.
  6. OP
    OP
    calebfaith

    calebfaith Senior Member

    Great that's good to know. Looks like there are several possible solutions, I'm also investigating the possibility of a Kontakt multiscript but then we lose the auto latency delay compensation. Not sure whether it will be possible but checking it out.
     
    NoamL and Nite Sun like this.
  7. Nite Sun

    Nite Sun Senior Member

    59
    36
    Dec 17, 2016
    London
    Cubase supports MIDI out AFAIK. Very interested to see a vst plugin with auto latency delay compensation etc. Would be cool if the plugin could have user-configurable options to deal with the latencies of other libraries as well.
     
    NoamL and calebfaith like this.
  8. Nite Sun

    Nite Sun Senior Member

    59
    36
    Dec 17, 2016
    London
    My ultimate dream would be if you and @NoamL collaborated on a cross-DAW vst solution with a flexible framework to conform the latency and dynamic discrepancies between all the different libraries out there. Users could upload their library specific presets to save the developer doing all that work. Would definitely pay for that.
     
  9. tack

    tack Damned Dirty Ape

    2,211
    1,751
    Aug 3, 2013
    The cross-DAW part makes this tricky, because to do it properly it needs to be articulation-aware, because within a given library, different articulations require different delay compensations.

    At some point I plan to integrate this capability into Reaticulate, whose raison d'etre is managing articulations, but that doesn't help non-Reaper users (or non-Reaticulate Reaper users for that matter).

    I put together a prototype JSFX for Reaper (looks crudely like this -- let me know if there's any interest in playing with it and I'll post the code), which supports different delays for legato and non-legato notes for up to 8 different velocity ranges, and eventually got it working well enough but ran into some serious obstacles for real-world use, which I believe would be fundamental to any similar type of solution:
    1. Overdubbing on the same channel is basically impossible, because AFAICT something in the FX chain can't discriminate between notes being performed realtime (which you mustn't apply any delay compensation to) and notes being played back from a MIDI item (which require delay compensation). A good solution would at least require some workaround (perhaps involving designation of a separate MIDI channel for realtime input).

    2. My JSFX proof-of-concept wouldn't apply any delay compensation unless the transport was playing. It seemed intuitive that if the transport was stopped or paused no delay should be applied (e.g. you're just noodling at the keyboard) or likewise during recording you wouldn't want any delay imposed on you as you inputted notes.

      However the problem with the record case is that you want tracks you're not recording on to still be delay-compensated. So this requires the FX plugin to understand whether the track is armed for recording or not, and if it's not armed for recording, still apply delay compensation when the transport is recording.

      This is something that at least a JSFX in Reaper can't do by itself. This is where I stopped my proof-of-concept because it required support from a script running outside the context of a track FX chain. (This is something I'll be able to do with Reaticulate since it has that architecture of a long-running DAW-level plugin combined with per-track FX plugins.)
     
    Last edited: Dec 4, 2018 at 5:46 PM
    NoamL likes this.
  10. NoamL

    NoamL Winter <3

    2,234
    4,186
    Jul 6, 2015
    Los Angeles
    I've given up on that. I messed around with Logic's articulationID briefly but it's just not worth it. Seems like a design dead end IMO. One track per articulation, or at least, per group of articulations that have the same delay compensation needs, seems inevitable if people want a cross DAW capable solution. The real dynamite features here, that might have broad appeal, are
    • volume balance,
    • delay compensation,
    • and dynamic-matching
    You, Caleb, I, and @Ihnoc all have good first stabs at the delay compensation, thanks to CSS lighting a fire under our asses. ;)

    I have a first stab at the dynamic-matching.

    Volume balance is pretty trivial, that would just be a chart of published test values that the user can copy in their template.
     
    Nite Sun and heisenberg like this.
  11. OP
    OP
    calebfaith

    calebfaith Senior Member

    Just an update for everyone - it looks like NoamL and myself may be teaming up together to create a plugin but first we need to look at whether it is technically possible.

    So first of all I want to get this working in Cubase and then working in Logic potentially with AU-MFX. If that is verified we'll be proceeding with it.


    I do think that this is possible if we track keyswitches + CC values. But this would be something I think we should target after getting base functionality down.
     
    NoamL and JohannesR like this.
  12. ionian

    ionian Active Member

    38
    43
    Aug 23, 2016
    Queens, NY
    I can do Sonar Platinum and Studio One v4 if you need it.
     
  13. eli0s

    eli0s Senior Member

    117
    128
    Dec 23, 2016
    Great news guys!
    Please give some love to Sonar (Cakewalk) also!!
    :inlove:
     
  14. Nite Sun

    Nite Sun Senior Member

    59
    36
    Dec 17, 2016
    London
    If you need help testing in Cubase, happy to do so
     
  15. OP
    OP
    calebfaith

    calebfaith Senior Member

    Thankyou for all the volunteers! I'll send a PM if we need your help.

    I now have a version successfully working in Cubase as a MIDI insert rather than a VST. Sadly we don't get automatic PDC but it is working with the different delays for legato types with that. End product is exactly the same as the previous video except you have to apply a -400ms track delay.

    Next on the list to verify that it is possible is Logic and an AU-MFX.
     
    ionian, Hywel, Henu and 2 others like this.
  16. NoamL

    NoamL Winter <3

    2,234
    4,186
    Jul 6, 2015
    Los Angeles
  17. Nite Sun

    Nite Sun Senior Member

    59
    36
    Dec 17, 2016
    London

Share This Page