Teletype workflow, basics, and questions

teletype

#549

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


#550

Hi Alex, you can split this challenge up into three parts:

  1. Sample & Hold of input voltage
  2. Sequential switching
  3. (OPTIONAL) Gate length management

1 and 2 are very straightforward tasks. 3 is tricky so I’m going to ignore it for now :laughing:

Patch your pitch CV into IN and trigger into 1. Place these expressions in script #1:

X IN

When you fire a trigger, the pitch CV will be stored in variable X.

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 I script: 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 X.


#551

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 !


#552

Thank you so much, gonna try that as soon as possible !


#553

@alex_des_rois

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…

Script 1:

Y WRAP + Y 1 1 2
CV Y IN
$ 2

Script 2:

IF EZ STATE 1: TR 1 0; TR 2 0
ELSE: TR Y 1

Metro script (set metro really fast… 20 mS or so):

$ 2

EDIT: Edited for no loops.


#554

maybe mult the gate from kria to solve this?


#555

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 1 and 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.


#556

Thank you, I begin to understand the teletype logic.


#557

Sorry, not sure I understand the question. can you be more specific?


#558

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.


#559

I think those numbers are for length, start, end, etc. I think those will be generated through the script when you run it.


#560

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.


#561

pattern length
pattern wrap (0 - no wrap, 1 - wrap)
pattern start
pattern end


#562

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.


#563

Ahh yes FLIP is what I was overlooking here, thank you!


#564

I wonder, what are some favoured uses for the PARAM knob? I have a TXi coming, starting to think about ways to utilise.


#565

some things i’ve controlled with param knob(s)

octave
slew amount
probability amount
cock division and/or multiplication
pattern start/end/length


#566

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!


#567

Eager to read how others are applying it too.

I’m also looking forward to trying 16n faderbank as a set of params.


#568

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