> teletype: grid # code exchange

teletype

#58

correct, this is the case for all PRE ops.


#59

I’ve added a in scale transpose editor to the Fugetta sequencer so that you can transpose individual playheads.

I won’t post the code yet as I want to play with the UI a bit and probably add some more features. Thanks to @scanner_darkly 's latest update with the G.GBX & G.GFX etc. ops, I’ve managed to free up quite a few lines of code.


#60

love seeing more complex examples emerge! glad the new ops can help facilitate that.
are there any other group ops that you think would be helpful in addition to G.GBTN.L, G.GBTN.V and such?


#61

I need to find more time to play with them, but if I think of anything I’ll let you know


split this topic #62

7 posts were merged into an existing topic: Grid ops / integration [beta nov 23]


#63

Just moved 7 posts to Grid ops / integration at @scanner_darkly’s request.

FYI!


#64

20 characters of thanks!


#65

I started making a slice sequencer for use with the ER-301. I’m using all the pattern view columns to create a pattern bank of 16 patterns you can program and switch between. Probably gonna add some controls for changing the speed of sample playback and some randomness per step and also the ability to program a pattern by playing into it live.

Love the grid integration! Thank you @scanner_darkly!

https://www.instagram.com/p/BcajdBunJoj/

#I
G.GBX 0 0 0 0 1 1 0 4 8 16 1
G.GBX 1 17 0 1 1 1 1 4 7 16 1
G.GBX 2 50 0 1 1 1 0 2 2 16 1
G.GBX 3 100 12 4 1 1 1 4 6 4 4
G.BTN.PR 100 1; G.GRP.EN 1 0

#1
Z P.NEXT
G.GBTN.L 0 4 4
G.BTN.L - P.I P.START 8
IF EZ Z: BREAK
G.BTN.PR + Z 49 1
DEL 50: G.BTN.PR + Z 49 0

#2
IF EZ G.BTNV: BREAK
CV 1 N G.BTNX; TR.P 1

#6
G.BTN.SW G.BTNI; A - G.BTNX 12
B * - G.BTNY 4 16
C - P.I P.START; P.N A
P.START B; P.END + P.START 15
P.I + P.START C

#7
G.BTN.SW G.BTNI; C P.START
A P + X C; B - G.BTNI 16
IF EQ A B: P + X C 0; G.BTNV 0
ELSE: P + X C B

#8
G.GRP.EN 1 G.BTNV; X G.BTNX
G.GBTN.V 1 0; A P.START
G.BTN.V + 16 P + G.BTNI A 1
B * 7 G.BTNV
L 50 65: G.BTN.Y I + B 1
`

#66

Holy smokes – my GAS for the ER-301 just went up exponentially. That looks incredibly fun to play with :smile:


#67

I’ve got most of the parts having a Teletype, a few Telex, the ER-301 - but I need a Grid. I guess your and my costs are about the same!


#68

Been searching for how to best integrate my ER-301 and Teletype.

This is wonderful and I’m very excited to try it out! Thanks for sharing. :heart:


#69

great scene! (and really well done video - have you considered doing video tutorials?)
good to see all the recent ops being utilized.
added it to the code exchange page.


#70

This is an amazing scene.

I know I sound like a broken record at this point, but I’d love to see stuff like this live in the Github repo for sharing TT scripts. https://github.com/monome-community/teletype-codex

:slight_smile:


#71

I think there are some typos?

#I
# ...
# G.GBX has too few arguments; G.GRPEN should be G.GRP.EN
G.GBX 3 100 1; G.GRPEN 1 0

#6
# ...
# I think PN.A should be P.N A? 
C - P.I P.START; PN.A

#72

thanks for catching those. i fixed them with an edit!


#73

oops, one more:

#8 
# Should be B * 7 G.BTNV
B * 7 BTNV

#74

fixed! hopefully that’s everything :smirk:


#75

are you retyping it here manually? you can just save to USB stick and upload the file.


#76

I’m trying to write a solid Earthsea style controller for Just Type in Sustain mode to allow variable note length. It’s going ok but far from perfect. Here’s a video of it in action:

It runs into trouble when playing the same button/note twice with different voices and also it doesn’t steal available voices - rather it just goes through them sequentially.

Has anyone made a more successful patch? Seems like a very good use of grid-teletype interaction. I’m anxious of going down the rabbit hole of trying to write a complicated note stealing algorithm!

#1
IF G.BTNV: PN 0 O G.BTNI
L 1 6: SCRIPT 2; Z I

#2
Y - 7 / PN 0 Z 15
X N + * Y 5 % PN 0 Z 15
I G.BTN.V PN 0 Z
PN 1 Z I
IF I: JF.VOX Z X V 8
ELSE: JF.VOX Z X 0

#I
G.BTX 0 1 0 1 1 0 3 1 15 8
JF.MODE 1
O.MIN 1; O.MAX 6; O.WRAP 1
JF.SHIFT V -2

#77

that looks great! some notes:

in script 1 if you’re using Z to pass a value to script 2 from the loop you should set it before calling the script:
L 1 6: Z I; SCRIPT 2

if you’re using the latest grid beta you can also take advantage of G.BTN.X and G.BTN.Y ops, so the first 2 lines of script 2 could be slightly more readable:

Y - 7 G.BTN.Y PN 0 Z
X N + * Y 5 G.BTN.X PN 0 Z

for voice stealing you want it to grab the first available, starting from 1? or something else?