The PARIS Forums


Home » The PARIS Forums » PARIS: Main » Paris VST/DX issues
Paris VST/DX issues [message #105148] Sun, 04 April 2010 12:19 Go to next message
drfrankencopter is currently offline  drfrankencopter   CANADA
Messages: 137
Registered: July 2009
Senior Member
In writing up my variant of Senderella aimed at paris I have discovered a number of odd things about Paris' VST/DX implementation. They are summarized in the document I linked below.

http://web.ncf.ca/fk824/paris/Paris-VST-issues.pdf

Cheers

Kris

[Updated on: Sun, 04 April 2010 21:27] by Moderator

Report message to a moderator

Re: Paris VST/DX issues [message #105151 is a reply to message #105148] Sun, 04 April 2010 19:17 Go to previous messageGo to next message
Ted Gerber is currently offline  Ted Gerber   CANADA
Messages: 705
Registered: January 2009
Senior Member
Thanks Kris. Am reading it shortly. Never an issue for mew prior to going XP...

Ted

Re: Paris VST/DX issues [message #105154 is a reply to message #105151] Mon, 05 April 2010 07:11 Go to previous messageGo to next message
drfrankencopter is currently offline  drfrankencopter   CANADA
Messages: 137
Registered: July 2009
Senior Member
Learned a bit more this morning.

Paris handles 24 bit files differently than 16 bit. I get different results with Senderella when using a 16 bit 'silence' track versus a 24 bit 'silence' track.

With a 24 bit silence track I get 960 samples of latency (21 ms) on the return with my variant of Senderella. But, the audio is not garbled at all. This delay is acceptable in some cases (long predelay reverbs and delays), but certainly no good for parallel processing.

I've got more experimenting to do. I'm starting to suspect that the only way to handle Paris' VST/DX implementation is to force a full block of delay on each senderella instance (which will require it to be inserted on every channel of a mix). This would be about 44ms of delay, and I'm not sure how folks would feel about how that would affect their automation line-up.

Cheers

Kris
Re: Paris VST/DX issues [message #105155 is a reply to message #105154] Mon, 05 April 2010 07:24 Go to previous messageGo to next message
dnafe is currently offline  dnafe   CANADA
Messages: 390
Registered: February 2009
Senior Member
I can see some serious head scratching happening

Very Happy
More information mined! [message #105167 is a reply to message #105155] Thu, 08 April 2010 09:14 Go to previous messageGo to next message
drfrankencopter is currently offline  drfrankencopter   CANADA
Messages: 137
Registered: July 2009
Senior Member
Ok, I'm getting somewhere with Senderella now.

It turns out there is a trick to getting it to work with Paris...with only limited testing this is working for me:
(1) The 'silence tracks' (note, that they don't need to be silent, at least in my re-write of senderella) on the return need to be 24 bit (when used on EDS submixes)
(2) The transport 'now-line' must be started well inside all send/return objects. There are problems when object start boundaries are encountered. On some plugins this gives a 'click', on Senderella this introduces a latency on the return. I'm trying to fix this now that I've narrowed it down a bit.
(3) Send/return objects must be continuous (maybe crossfades will work...still needs investigation)
(4) It needs to be wrapped to DX...I suspect this is due to the way paris handles stereo VST's, but I may be wrong.

One of the downsides with (2) is that if you rewind to zero time on the now line (double press rewind button on the C16), you will pass the now line over the start handles for all objects, and Senderella will go out of sync.


And, another discovery:

After getting senderella to work with zero latency (got a perfect null with phase reversed send/return on a single EDS submix), I tried putting the send on EDS submix 1, and the return on EDS submix 2. I could not get a null, but got close (within a few samples) I haven't counted the exact sample delay, but I suspect it's the 9 (is it 9?) sample submix 2+ delay that was identified a few years ago. This would seem to suggest that the delay comes from the EDS mixer itself, and not from the way the tracks are spooled up in the editor window.

I've got a bit more investigation to do, and will continue to report my findings in this 'blog' style.

Cheers

Kris
Re: More information mined! [message #105168 is a reply to message #105167] Thu, 08 April 2010 12:49 Go to previous messageGo to next message
Ted Gerber is currently offline  Ted Gerber   CANADA
Messages: 705
Registered: January 2009
Senior Member
Thanks Kris -

Having the chance to send out to VST/DX on a virtual submix will be great. I'll wait until you feel really confidant with it before I wade in...

Ted

Re: More information mined! [message #105175 is a reply to message #105168] Sun, 11 April 2010 04:41 Go to previous messageGo to next message
Dimitrios is currently offline  Dimitrios   GREECE
Messages: 1056
Registered: August 2005
Senior Member
Hi,
Senderella can work 0 latency on EDS submixes (Not native ones) if you use the EdsTransfer 8,8 or 8,16
Dimitrios
Re: More information mined! [message #105177 is a reply to message #105175] Sun, 11 April 2010 05:15 Go to previous messageGo to next message
drfrankencopter is currently offline  drfrankencopter   CANADA
Messages: 137
Registered: July 2009
Senior Member
Dimitrios,

I have set my EDSTransfer to 8,8 and my results with Senderella are:
1) It will not work as a pure VST in Paris. It needs to be wrapped.
2) The dummy tracks feeding the returns need to be 24 bit (when the sends are 24 bit. Further checking is required when the sends are 16 bit.
3) The 'now line' must not cross any non-continuous object start handles on the sends, or you'll get a nearly random (but < 100 ms) delay for each start handle encountered. The best way to avoid this would be to past all your edits on top of another silence track.
4) Sending a track from EDSsubmix 1 (channel 1) to channel 16 on the same submix resulted in no latency (except for a 100 ms block where the return is briefly muted). Sending from EDSsubmix 1 to EDSsubmix 2 resulted in some latency. If you use Faderworks, you probably wouldn't see this latency.

Cheers

Kris
Re: More information mined! [message #105180 is a reply to message #105177] Sun, 11 April 2010 11:51 Go to previous messageGo to next message
drfrankencopter is currently offline  drfrankencopter   CANADA
Messages: 137
Registered: July 2009
Senior Member
Ok, now I'm really getting somewhere...

Found out some more nuggets about Senderella and Paris:

Regarding 16 bit and 24 bit files:
1) 16 bit source (send) tracks will work fine with 16 bit 'silence' tracks for the return.
2) 16 bit source tracks will work fine with 24 bit 'silence' tracks for the return.
3) 24 bit source tracks will work fine with 24 bit 'silence' tracks for the return.
4) 24 bit source tracks will work fine with 16 bit 'silence' tracks IF the returns are on a native submix.
5) 24 bit source tracks will not work right with 16 bit 'silence' tracks if the returns are on an EDS submix

Regarding object start handles, crossfades, etc:
1) 'return to zero time' can be easily re-set using the locator. Doing this will allow your double rewind press to bring the 'now line' to a position other than the far left extent of the editor window playing field.
2) Crossfades in a send track will result in timing errors on the return...even if the crossfade is full length, and seemingly continuous. For that matter the Paris 'tape' tool refused to see the splices as continuous either...
3) Track #1 is the most picky about the start handles @ time zero on the editor playing field.

Latencies with Senderella:
1) Send on EDS submix 1 to return on EDS submix 2 = 14 samples
2) Send on EDS submix 1 to return on EDS submix 3 = 12 samples (seems odd....)
3) Send on EDS submix 1 to return on native submix 4 = 12 samples
4) Send on EDS submix 2 to return on EDS submix 3 = 2 samples
5) Send on EDS submix 2 to return on native submix 4 = 2 samples

Regarding the FXPansion VST/DX wrapper:
1) It will not save your parameter settings, unless you define at least one program. This would have only affected early releases of Senderella.

Regarding Paris, DX & object edits:
1) Paris uses a block size of 2000 for DX plugins.
2) When paris encounters an edited object (or more correctly an end handle) it will send a smaller block to the plugin. (This is not abnormal)
3) When paris encounters a new start handle, it will always a block of 2000 samples, even if this sample block technically doesn't line up on a 2000 block chunk with respect to the other tracks (This IS abnormal). Because of this, the audio sent to the VST/DX chain on that track is no longer in sync with other tracks that have no edits. The result ends up being okay in the Paris mixer because Paris keeps track of the timing offsets, and corrects them after the VST/DX chain is processed. That's fine for normal DX/VST plugins, which don't communicate to one another, but it wrecks havoc on Senderella. I suspect this is also the reason why stereo DX/VST plugins don't like some edits.
4) Paris does not send sample position, or any other useful timing information to the VST/DX chain. It only reports tempo, time sig, and sample rate.

Unfortunately, because of 3 & 4 above, there are some serious limitations to Senderella in Paris that cannot be addressed. I've tried real hard, but can see no way to handle object start handles/edits because of the way Paris handles them. BUT, at least it can be made to work in a mixdown situation, once all edits are rendered to a continuous file.

I'm moving on in development, and trying to build up the feature set that I want, including latency compensation, and available delay in the send path (for source dependent pre-delay on reverbs).


Cheers

Kris
Re: More information mined! [message #105181 is a reply to message #105180] Sun, 11 April 2010 13:23 Go to previous messageGo to next message
Ted Gerber is currently offline  Ted Gerber   CANADA
Messages: 705
Registered: January 2009
Senior Member
drfrankencopter wrote on Sun, 11 April 2010 14:51
Ok, now I'm really getting somewhere...

Found out some more nuggets about Senderella and Paris:


Unfortunately, because of 3 & 4 above, there are some serious limitations to Senderella in Paris that cannot be addressed. I've tried real hard, but can see no way to handle object start handles/edits because of the way Paris handles them. BUT, at least it can be made to work in a mixdown situation, once all edits are rendered to a continuous file.

Cheers

Kris



Kris -

This is all I want in the Senderella set up. I don't really start mixing until after edits are complete. If something needs to be edited after the start of mixing, it's so easy to render track to disc (or bounce if there are crossfades etc) that the limitation cited seems a non issue to me. Thanks so much for all this!

So I guess I should start diving in to Senderella and Faderworks (or is having both redundant?) to try to learn another aspect to Paris use.

T
Re: More information mined! [message #105182 is a reply to message #105181] Sun, 11 April 2010 13:30 Go to previous messageGo to next message
kerryg is currently offline  kerryg   CANADA
Messages: 1529
Registered: February 2009
Senior Member
Administrator
Kudos, Kris, for pushing the parameters like this - besides the promise Senderella has in and of itself, I wouldn't be at all surprised if some of the fundamental research you're doing breaks new ground for other development too, especially with that kind of methodical documentation.

I think it's pretty cool that now even experienced users can find new things to explore in PARIS once again!


"... being bitter is like swallowing poison and waiting for the other guy to die..." - anon

[Updated on: Sun, 11 April 2010 13:57]

Report message to a moderator

Re: More information mined! [message #105191 is a reply to message #105182] Tue, 13 April 2010 18:36 Go to previous messageGo to next message
drfrankencopter is currently offline  drfrankencopter   CANADA
Messages: 137
Registered: July 2009
Senior Member
A little more research tonight....

1) If you take a senderella send from submix 2 and return it on submix 1, there is 1986 samples of latency.
2) If you take a senderella send from submix 3 and return it on submix 1, there is 1988 samples of latency
3) If you take a senderella send from submix 3 and return it on submix 2, there is 2002
samples of latency

This is interesting, but also not surprising. The reason for this is that Paris processes its channels is a submix by submix fashion and with a single thread. Thus, by the time the thread gets to submix 2, submix 1 has been processed, and any audio sent to the Senerella 'return' must wait until the next block of samples to be processed. Since Paris uses block sizes of 2000 samples, this explains the latency values that we are seeing. Note that the sample delays in cases 1,2, and 3 above relate nicely to the early latency readings that I got, but with a twist.

1) for the send on submix 2, and return on submix 1, the latency was 1986 samples. For the opposite (send on submix 1, and return on submix 2) the latency was 14. Conveniently, 1986+14 = 2000.
2)for the send on submix 3 and return on submix 1, the latency was 1988 samples. For the opposite way around the latency was 12. Conveniently, 1988+12 = 2000.
3) For the send on submix 3 and return on submix 2, the latency was 2002 samples. For the opposite, the latency was 2. Conveniently, 2002-2 = 2000.

It's a little puzzling as to why case 3 needs the latency subtracted to equal 2000...but I can think of a couple of theories as to why this happens.

At any rate, to distill this down, what it means to the Senderella user is "Have your returns on higher numbered submixes than your sends".

My whole rationale for investigating this was to look at inter-submix latency compensation within Senderella. But, I'm not going to compensate for latencies of around 2000 samples (about 90 ms). So instead, I'll just suggest to have your returns on higher submixes than your sends.

Speaking of latency compensation, I'd also like to add a slider to allow for compensation for parallel processing delay. I was thinking of allowing for up to 65 samples of delay compensation there. My reason for choosing 65 is that several plugins on this chart http://www.kerrygalloway.com/WikiPARIS/wikka.php?wakka=Nativ eLatencyDatabase have a latency of 65 or less, and this arrangement would allow for a RenComp + SSL Buss Comp. I don't want to go much higher since the slider for it could become difficult to control for getting precise values. I hope this won't be a problem for folks....let me know, your opinion counts!

Cheers

Kris
Re: More information mined! [message #105219 is a reply to message #105181] Mon, 19 April 2010 18:47 Go to previous message
mikeaudet   CANADA
Messages: 476
Registered: February 2009
Location: Canada
Senior Member
Hi Kris,

There are way to ask the PSCL for the current time in samples, if that helps. You just need to import the PSCL. I'm pretty sure the functions are exported. If you need a hand, I'd be happy to help you with it. Shoot me an email. mike at mikeaudet dot com.

All the best,

Mike
Previous Topic: Ping Mike Audet
Next Topic: adat problem
Goto Forum:
  


Current Time: Fri Nov 15 01:25:55 PST 2024

Total time taken to generate the page: 0.00999 seconds