Can you tell us a little more about the ideal situation here? Are you hoping to sample incoming pitch CV or generate it yourself? What features do you want? etc
Hi Alex, you can split this challenge up into three parts:
- Sample & Hold of input voltage
- Sequential switching
- (OPTIONAL) Gate length management
1 and 2 are very straightforward tasks. 3 is tricky so I’m going to ignore it for now
Patch your pitch CV into
IN and trigger into
1. Place these expressions in script #1:
When you fire a trigger, the pitch CV will be stored in variable
TR.TOG 1; TR.TOG 2
Trigger 1 goes high, trigger 2 goes low. And vice versa every time there’s a trigger. You’ll need to set trigger 2 high manually before this will work, or you can tuck this into your
TR 2 1
EVERY 2: CV 2 X
OTHER: CV 1 X
Alternating between CV output 1 and 2, set the output to stored pitch
Ideally, I would like to sample an incoming cv from Kria and feed 2 oscillators, . Noob question, maybe is there a way to do this without patch cable ?
Thank you for answering !
Thank you so much, gonna try that as soon as possible !
If you want gate lengths which match your gate input you’ll have to get a bit crafty. There’s not way to detect a falling edge by default, so you could either use a loop or a fast metro script to watch the state on input 1. I haven’t tested any of this…
Y WRAP + Y 1 1 2
CV Y IN
IF EZ STATE 1: TR 1 0; TR 2 0
ELSE: TR Y 1
Metro script (set metro really fast… 20 mS or so):
EDIT: Edited for no loops.
maybe mult the gate from kria to solve this?
patch like so: Ansible
TR 1 to Teletype input
1 and (optionally,) mult it to whatever you use to gate your oscillators. Then in Teletype Script 1, go
I FLIP; A KR.CV 1 IF EZ I: CV 1 A IF NEZ I: CV 2 A
and then patch Teletype’s CV 1 and CV 2 to control your oscillators.
Let’s walk through what this means:
FLIP will alternate between
0 each time it’s called.
KR.CV 1 gets the CV value of Kria’s track 1. Then we check: if
I is zero (so
EZ I results in
1), send our sampled CV value,
A, out of the first CV output. If
I is non-zero, i.e.
NEZ I results in
1, then send it out of CV 2.
Thank you, I begin to understand the teletype logic.
Sorry, not sure I understand the question. can you be more specific?
Sure - when people are sharing scenes here on the forum, usually that’s the first thing I see at the pattern tracker section. Those first sixteen numbers, followed by the longer section of numbers that I would actually input into the pattern tracker. I’m just not exactly sure what I’m supposed to do with those first numbers.
I think those numbers are for length, start, end, etc. I think those will be generated through the script when you run it.
How would I write something to be able to alternate between two scripts every x amount of bars? I know it’s probably a very simple solution but I can’t figure out a way to do it.
Context, if it helps: I want to program simple key changes in JF synth mode. M script is triggering script 2 which provides note values for JF channels. Script 2 is the original key (JF.SHIFT N 0), script 3 moves everything down a fourth (JF.SHIFT N -5). I want to somehow alternate which one is triggered at a fixed interval.
pattern wrap (0 - no wrap, 1 - wrap)
You could accomplish this by using the EVERY and FLIP commands. Something like this would work in the M script if it’s every 4 metronome ticks:
EVERY 4: X FLIP IF EQ 1 X: SCRIPT 2 IF EQ 0 X: SCRIPT 3
Every 4 ticks we flip the variable x, which becomes 0 or 1. Then we check them with EQ.
Ahh yes FLIP is what I was overlooking here, thank you!
I wonder, what are some favoured uses for the PARAM knob? I have a TXi coming, starting to think about ways to utilise.
some things i’ve controlled with param knob(s)
cock division and/or multiplication
Pretty new to using
PARAM in a more performative way, but one of my favorite use cases so far is scaling the knob value (ex.
PARAM.SCALE 1 4), and then using
BRKs to halt the execution of scripts (or sections within them) based on the current value of the knob. Pretty simple stuff, but I like the more hands-on approach to logic.
Eager to hear more examples, as I just received my TXi last week!
Eager to read how others are applying it too.
I’m also looking forward to trying 16n faderbank as a set of params.
There was a really neat use which i think i saw on a post here ( can’t recall where sadly ) where param was being used to select which script would be triggered