First time here? Check out the FAQ!
x

Quantize multigrid track select

0 votes
611 views
Hi there

I'm trying to figure something out and going round in circles a little working out what my best and easiest options are.  I'm using a GlobalSeq (part of the NELabs current lab) which is being clocked by an external clock being generated at 64ppqn from a Expert Sleepers plugin in my DAW (piped to Kyma via ADAT on Audio Input 3).  The same plugin also generates a run signal/gate on Audio Input 4 which goes high when playing and low when not.  I'm using a SoundtoGlobalController on the run signal to convert to !Run.  The external clock is going straight into GlobalSeq and this tracks very well.  I've also tried using a SoundtoGlobalController using "( Audio Input 3 L durationBetweenTriggers: 64) s bpm removeUnits" to convert to !BPM.  This works fine but is a little slopier in timing (especially upon hitting play in Ableton) than just using the external clock straight in.  This all works fine - my sound tracks Ableton very well.

I'm now trying to put a few GlobalSeq sounds into a multigrid to play (which needs some prefixers to stop controls being shared).  I can get my tracks to all play in time using the same clock and I've set up a shared !Reset control.  This also works ok.  Where i'm stuck though is that i'd like to quantise turning a track on and off within the multigrid, so that tracks only start in time with a user defined number of beats from the original clock being generated in ExpertSleepers/DAW.  

By using another SoundtoGlobalController with the following:

 "Audio Input 3 L triggerEvery: (!ExtClockPPQ * !BeatsinaBar) reset: !Run" i've succesfully got a "!Phrasereset" global controller being generated at intervals of my choosing (based on the parameters of !ExtClockPPQ and!BeatsinaBar).  What i can't now figure out is how to use this to help quantise the multigrid (presumably using the algorithmic control function?).  I think my answer lies with an 'alignWith:' but I'm a bit stuck and would love some help.  I'm sure there a few ways to do what i'm doing...perhaps i'm overthinking!

Thanks

Geoff
asked Jun 9, 2018 in Using Kyma by ghood (Master) (3,060 points)

1 Answer

+1 vote

If you check the Algorithmic control box at the top of a Multigrid track, the default algorithmic control aligns the Sound activation in that track to 8 beats of a metronome running at !BPM:

(!Select_Trk1 hasChangedInLast: !BPM bpm s) alignWith: ((1 bpm: !BPM dutyCycle: 0.5) triggerEvery: 8)

In your case, what is the controller that is selecting the active Sound in the track and what is the beats-per-minute expression?

answered Jun 10, 2018 by ssc (Savant) (127,080 points)
Thanks for getting back.  I'm not using !BPM as I'm just using an external clock (64ppqn square wave) straight into the sequencer which i find much tighter timing than using the SoundtoGlobal Controller '(Audio Input 3 L durationBetweenTriggers: 64) s bpm removeUnits' - which converts the clock to !BPM.

So the algorithmic expression (default at least) won't work.  I was hoping I could align button presses on the grid so that the sound on that track only starts when my !PhraseReset trigger is generated.  Perhaps I'm misunderstanding how !Select_Trk1 works though....I was assuming !Select_Trk1 is sent when you click a sound in a grid.  I couldn't see where !Select_Trk1 is generated on the VCS?

Hopefully I'm making sense...
You could try putting your SoundToGlobalController that generates !PhaseReset into a Multigrid track and leave it selected all the time so it is always generating that global controller. !PhaseReset should also be added to the list of global shared controllers.
Then in the Algorithmic trigger box you could use:
(!Select_Trk1 hasChangedInLast: 0.1 s) alignWith: !PhaseReset
Thanks, I will try this next time I'm in front of my pacarana.  I did have !PhraseReset being generated in a multigrid track and shared - I think my algorithmic trigger box was wrong though.  Can I just check that !Select_Trk1 is a controller which is generated by clicking on a sound in a multigrid track?
Hmm, I'm still stuck with algorithmic trigger part...perhaps i'm completly mis-understanding !Select_Trk use.  I'm successfully sharing !Run, !PhraseReset and my clock around the grid using shared controls.  However, using (!Select_Trk2 hasChangedInLast: 0.1 s) alignWith: !PhaseReset in the trigger box of track 2 (and !Select_Trk2 in the Selection box i'm not getting the desired action, which is to wait until the !PhraseReset trigger before actually selecting the sound - in my case only two sounds in the track (an inactive one and the sound itself).  
Many thanks
Geoff
Is it activating the Sound immediately when you click (not waiting to align with the !PhaseReset)? Or is it not selecting at all? What does your !PhaseReset signal look like? How long does it stay at 1? Does it go to 0 in between? You could try
(!Select_Trk2 hasChangedInLast: 0.1 s) alignWith: !PhaseReset asLogicValue to see whether that makes a difference in the behavior.
(Are you using !PhraseReset or !PhaseReset?)
It's activating immediately. I'll try again with asLogicValue as maybe it isn't reaching 1. Thanks for help. (Ps. Using !PhraseReset throughout....phase was a typo here only).
Just to follow up on this. After checking some levels I can confirm this works! Thanks so much.
Thanks, Geoff. Just to confirm, is this the expression that works as the Trigger?

(!Select_Trk2 hasChangedInLast: 0.1 s) alignWith: !PhraseReset asLogicValue
...