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!

1 Like

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

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
2 Likes

yea that is a good solution.

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

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

1 Like

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…

20 Likes

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

2 Likes

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…

1 Like

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)

4 Likes

Very quiet around here, anyone still building grid ops?

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”.

8 Likes

Need to get back to it !!!

2 Likes

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

2 Likes

Using it now, amazing :slight_smile:

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.

3 Likes

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

@EqualTemperament suggested using SCENE op as a way to extend scripts - dedicate one scene to setting up your grid controls and then call it from the main scene.

3 Likes

Wow! Why did I never think of this? That will open up lots of possibilities. Thanks!!

This post (Teletype 3.+ feature requests and discussion) gave me a MS EXCEL flashback. Not exactly the same as a norm dist OP with mean and std, but you can calculate it outside and provide it as a discrete lookup table.

edit: One thing I have to fix is not every $1 trig provides a value.

edit 2: need to fix output binning, skews to right.

Edit 3: I think I fixed it. Also using local K to free up global R at the expense of 1 line.

LAS VEGAS WEEKEND V3
RANDOM FROM DISCRETE DISTRIBUT
-----
PN 0: LOOKUP DIST (/100)
PN 1: OUTPUT DIST (COUNT)
$ 1: STEP BY 1
$ 2: STEP BY 1000



#1
P.I 0; J P.HERE
K RRAND 0 99
W <= J K: J + J P.NEXT
PN.+ 1 P.I 1

#2
L 0 1000: $ 1

#I
INIT.P 1

#P
...
5	0	0	0
11	0	0	0
21	0	0	0
26	0	0	0
21	0	0	0
11	0	0	0
5	0	0	0
3 Likes

The code for Grid ops is extremely complicated to me at the moment, dunno if I’ll ever get my head around it.