> teletype: grid # code exchange

teletype

#185

If you’re like me, then you love flipping around different loop points in Kria. I was feeling limited by having to use the modifier key AND only messing with the loop on one track at a time, so I made a Teletype scene to enhance loop control! No patching required!

The bottom four rows correspond to the four tracks and the 7 parameters (TR, NOTE, OCT, DUR, RATCHET, ALT NOTE, SLIDE). The top four rows visualize the loop for the selected parameter for the corresponding track. First press will set the start point of the loop and a second press will change the length! Loops wrapping around the 16th step are supported!

This version leaves scripts 4 and 5 free for whatever you want and there is plenty of space left in I.

You can optionally remove script 6 and M if you don’t need the playhead of the loops visualized. Everything else will still work.

I use A, B, C and D for a lot of locally scoped variables, but X, Y, and Z are untouched.

Sorry no video yet, but maybe I’ll get around to it :stuck_out_tongue:

KRIA REMOTE

#1
IF == G.BTNV 0: BRK
A + G.BTNY 1; B PN 0 A
C + A 4; D G.GBTN.C C
IF == D 1: KR.L.ST A B G.BTNX
ELSE: $ 3
L 1 4: $ 7

#2
A G.GRPI; B + G.BTNX 1
G.GBTN.V G.GRPI 0; G.BTNV 1
C KR.L.ST A B; D KR.L.LEN A B
PN 0 A B
L 1 4: $ 7

#3
C KR.L.ST A B; D + G.BTNX 1
IF < C D: KR.L.LEN A B - D C
ELSE: KR.L.LEN A B - + D 16 C

#4

#5

#6
A KR.POS I PN 0 I
G.REC A - I 1 1 1 0 16

#7
IF == I 1: G.CLR
B PN 0 I
C KR.L.ST I B; D KR.L.LEN I B
I - I 1; G.REC C I D 1 0 8
A - + C D 16
IF > A 0: G.REC 0 I A 1 0 8

#8
B * 16 I; C + I 3; D + I 4
G.GBX I B 0 C 1 1 1 2 2 7 1
B * 16 + I 4; I - I 1
G.GBX D B 0 I 1 1 0 2 1 16 1
G.KEY 0 C 1

#M
L 1 4: $ 7
L 1 4: $ 6

#I
L 1 4: $ 8
M 10

#P
1	0	0	1
1	1	1	1
0	0	0	0
63	63	63	63

0	0	0	0
1	0	0	0
1	0	0	0
1	0	0	0
1	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
4	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0
0	0	0	0

#G
0001111000000000
1000000000000000
1000000000000000
1000000000000000
1000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000

0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0

kria_remote.txt (1.6 KB)


Kria strategies
#186

awesome, thanks for posting - so much potential using teletype as a meta controller for ansible/trilogy. need to find the time to research this area more.


#187

whoa… was just looking at the fader documentation and see there are these dot faders now which would probably make my kria remote a bit more concise!


#188

Early 2018 misuba: make grid apps for all the things!

Late 2018 misuba: if I can’t do it with grid control mode… do I really need to do it

:frowning:


#189

i take it the grid control mode works well then :slight_smile:

it can be fun to do super simple grid apps as well, like just using it for visualization, drawing random dots and rectangles, control their brightness with the input value etc. i should also implement x/y pad fully (it’s actually already there, just not finished but totally usable), then you could have the grid control mode in one half of 128 and use the other half with x/y pad to control 2 CVs.

the code exchange list can also be a good source of inspiration!


#190

a further thought on doing some more work with the grid ops… did you ever consider an option at button creation for a preference for the script to call on press, release or both? Often I only want one and I hate losing a line of code writing IF EZ G.BTNV: BRK


#191

was going to say it’s very difficult to add any more parameters - button creation ops are very packed already, but what i could do is just re-use an existing parameter. instead of specifying latching / non latching it could be used to specify the button type:

  • 0 - non latching, script triggers on both press and release
  • 1 - latching
  • 2 - non latching, script triggers on press only

#192

yea that is a good solution.

another request: G.BTNG, returns the group of the most recently pressed button


#193

if you don’t use the assigned script for any other controls you can do this with G.GRPI


#194

Finally sat down to start with grid ops last night – still so much to wrap my head around, but so much fun. This is extremely simple (heck, I don’t even really know if it’s useful), but it was a blast to make as an introductory project: a control surface for Mannequins w/

  • First horizontal fader is to control the WS.PLAY op
  • Second fader is to control the WS. REC op
  • Third block is a set of buttons to control WS.CUE
  • The last button is just an on/off toggle for WS.LOOP
W/ GRID CONTROL

#1
WS.LOOP G.BTN.V 4
WS.PLAY SUB G.FDR.N 1 1
WS.REC SUB G.FDR.N 2 1

#2
IF G.BTN.V 1: WS.CUE -1
IF G.BTN.V 2: WS.CUE 0
IF G.BTN.V 3: WS.CUE 1

#3

#4

#5

#6

#7

#8

#M

#I
G.BTN 4 15 7 1 1 1 5 1
G.FDR 1 0 7 3 1 2 5 1
G.FDR 2 4 7 3 1 2 5 1
G.BTX 1 8 7 1 1 0 5 2 3 1
L 1 2: G.FDR.N I 1

Download the scene (1.2 KB)

I imagine this could end up being a more interesting control interface when the list of w/ ops grows over time…


Mannequins W/ (with)
#195

This is awesome! Exactly what i would love to see added to the factory scripts, as most i2c functionality is covered but there is still much room to expand


#196

Thanks :slight_smile: I’m really hoping we see new w/ ops in the not too distant future. Faders for fine control over the overdub/overwrite range would be awesome, for instance. That could free up my Cold Mac for other duties…


#197

awesome, thanks for posting! added it to the code exchange list (also forgot to add @freqout’s kria remote scene earlier, added it as well)


#198

Very quiet around here, anyone still building grid ops?


#199

this is a good reminder i really need to get to working on grid studies again, long overdue. i’ll make sure to do this soon (likely after next polyearthsea beta).

also i’m planning to pick some scenes from this code exchange, refactor them a bit / document and post them as a “preset pack”.


#200

Need to get back to it !!!


#201

Inescapably delayed by the fact that one needs to know how the hell an ER-301 even does things before writing apps that connect to it

But that’s not true, I wrote a much better pressure-points-ish thing than the last one, designed to run alongside grid control mode. Let’s see if I remember how it works


#202

Using it now, amazing :slight_smile:


#203

Yes, but as I expect is also true for others, my scenes are quite specific to my setup. I’ve also been really frustrated recently that when trying to create more complex scenes I very quickly run out of scripting space. I usually need 2 or 3 full scripts just to init all the grid ops etc. Other things that take up too much space include packing/unpacking multiple values into the 14bits of one pattern cell. I always seem to be short just ONE character on script lines arrggghh!! The 2 extra local vars have really helped things though. I’ve also started using unused/hidden groups of buttons and faders as storage (button levels, fader values) which is great. However, after seeing the amazing progress on PolyES, I think it is time for me to get an Ansible and use the Teletype more as a macro sequencer.


#204

(Pattern slots are in fact 16 bit… it’s possible that this is still incorrect in the docs, I’ve tripped on it myself)