CV delay when using...
 
Notifications

CV delay when using CV in Add  

  RSS

LarsDaniel
(@larsdaniel)
Active Member
Joined: 4 months ago
Posts: 19
05/04/2020 12:16 pm  

Lately I have been using one track, B, (using Div /16) to transpose a "normal" track, A. This way it is easy to set up a single pattern that evolves over several (up to 16) bars. However there is one issue that can be quite annoying:

Everytime the slow B track moves to the next step, the new voltage comes to the A track on the second 16th note, not on the first.

Example: Track A contains the note F on every step. Track B has C0 for one bar (one step of track B) and D0 for one bar.) The first bar, track A will be untransposed (as C0 is zero volts), so it will play F. The second bar it will be moved up one whole note to G. It should sound like this:

FFFFF etc / GGGGG etc / FFFFF etc / GGGGG etc 

But beause of the delay, it sounds like this:

FFFFF etc / FGGGGG etc / GFFFF etc / FGGGG etc 

This is obviously not ideal. I imagine that there is some quantizing going on, but that should be a matter of milliseconds.

I think a fix for this should be up high on the list.

 

Thanks

-Lars

This topic was modified 3 months ago by LarsDaniel

Quote
Topic Tags
LarsDaniel
(@larsdaniel)
Active Member
Joined: 4 months ago
Posts: 19
06/04/2020 8:57 am  

Right now I am using an analog adder to add voltage from one track to another, and that works perfectly well, but I would much rather have that the CV inputs worked as one would expect in a modular environment. After all, having the root note playing on "1" is a very normal thing.

This post was modified 3 months ago by LarsDaniel

ReplyQuote
WinterModular
(@wintermodular)
Member Admin
Joined: 1 year ago
Posts: 276
06/04/2020 6:18 pm  

Hi @Lars

It is a known behavior, as you mention it is a question of timing, but is some way it is intentional, if not temporal paradox can occur. 😉 

The 'CV ins' are read just before the step jump occurs because the CV in values need to be there when the next step occurs (because in some cases we need this values to decide the behavior in the outputs for the next steps), but a in a case like the one you describe, where the values come from the sequencer itself, this values are generated after the CV ins read, so it is not possible to determine a value based on a value that needs the first value to be determined. messy explanation... :_( do you understand me ?


ReplyQuote
LarsDaniel
(@larsdaniel)
Active Member
Joined: 4 months ago
Posts: 19
06/04/2020 9:49 pm  

Yup, I understand the problem. I see why it must be like this for other purposes of CV In, but for this classic use of step sequencing, it does not work right. I suggest we try to find a good workaround.

I have two suggestions:

1. Make a new setting under Options that will allow direct internal routing and adding of cv from one track to another. (As the purpose will be just one, adding cv, it should be possible to do this with proper timing.) 
(Actually thinking about this, make me realise that it would be totally awesome. And it would free CV inputs for other purposes.)

2. In Options, make a setting that would make CV In be read right AFTER the step, so that the expected transposition can be obtained when adding CV.


ReplyQuote
WinterModular
(@wintermodular)
Member Admin
Joined: 1 year ago
Posts: 276
07/04/2020 9:43 am  

@larsdaniel You are not the first one to ask for internal CV routing (1). Will study the possibility.

Thanks again for your feedback

 

 


ReplyQuote
LarsDaniel
(@larsdaniel)
Active Member
Joined: 4 months ago
Posts: 19
07/04/2020 10:32 am  

@wintermodular

You're welcome.

 

I am assuming, that since internal adding would be in the digital domain, it should *only* be a matter of coding. 😀

Let me know if you need some beta testing.

 


ReplyQuote
WinterModular
(@wintermodular)
Member Admin
Joined: 1 year ago
Posts: 276
08/04/2020 2:23 pm  

@larsdaniel 🤣 it is 'only' a matter of coding, but we still have some kind of temporal paradox or infinite loops. At some point, before the next step event, you need to read all the virtual assignments and then decide the 8 track step values, but those values depend on new step values. Even worse if we create two virtual assignments one depending on the other an infinite loop is created.

 


ReplyQuote
WinterModular
(@wintermodular)
Member Admin
Joined: 1 year ago
Posts: 276
08/04/2020 2:24 pm  

I will need to add some kind of hierarchy


ReplyQuote
LarsDaniel
(@larsdaniel)
Active Member
Joined: 4 months ago
Posts: 19
09/04/2020 11:49 am  

I am thinking: When a CV input is set to ADD, the point in time the input is read, goes from before a step to immidiately after a step. (Internal or external ADD, same principle.)

This will introduce a *very* brief jump in voltage right on the step, but I highly doubt that there will be any musical implications. (In contrast to the current state, where the first step with an added voltage will have the wrong value.)


ReplyQuote
LarsDaniel
(@larsdaniel)
Active Member
Joined: 4 months ago
Posts: 19
09/04/2020 11:58 am  

About infinite loops in regard to internal adding:

Set up a rule that says: If a track N is being added to another track, adding a track to track N is not possible.

 

Infinite loops and external adding (CV input): Well, this is the modular world, and feedback loops can not, and should not be prohibited.


ReplyQuote
WinterModular
(@wintermodular)
Member Admin
Joined: 1 year ago
Posts: 276
10/04/2020 10:02 am  
Posted by: @larsdaniel

I am thinking: When a CV input is set to ADD, the point in time the input is read, goes from before a step to immidiately after a step. (Internal or external ADD, same principle.)

Sorry Lars... I don't understand what you mean... if the read goes after the step it is too late to update the CV value in the track that is attached to the transposer track.

Posted by: @larsdaniel

Set up a rule that says: If a track N is being added to another track, adding a track to track N is not possible.

I meant something like this when I mentioned to apply some hierachy

Posted by: @larsdaniel

Well, this is the modular world, and feedback loops can not, and should not be prohibited.

Absolutely for eurorack world, not so sure about digital/coding. Anyway I use the terminology 'temporal paradox' as a joke, it is something that can be solved applying some rules as both have mentioned.

 

Thanks for the feedback ! The day that I clean and open the code you will be one of the firsts to be invited to play with it.


ReplyQuote