could you elaborate a bit on what you are trying to do?

could you elaborate a bit on what you are trying to do?

Yeah, my idea is to let the init script setup the board based on the initial value of PARAM. There’s an ugly few lines that computes whether or not a button should be a “white” or “black” key for all buttons with IDs 0-127 (script 8). After this setup, I use the metro script to resample
PARAM and recompute which buttons should be “white” or “black” (script 7).

  • I think it’s actually OK to reuse script 8 from the metro script, even without the G.RST you suggested, but I figured it doesn’t hurt to have a separate script that just updates the button’s lighting instead of redefining the button.
  • I toggle off the metro script before entering the loop. I doubt this is necessary, but I was afraid looping from 0-127 was taking too long and the metro script was re-executing.

ah i see. in terms of performance there shouldn’t be much difference between initializing buttons or setting their level, so either option works. but re-initializing buttons in this case doesn’t do anything useful since you reapply script 7 after that anyway, so it’s just an unnecessary step (as a side note, you don’t need to G.RST when you reinitialize the same controls - not sure what i had in mind when i suggested adding it!).

i would change it this way: instead of script 8 you could just define the whole button block with one op: G.BTX 0 0 0 1 1 0 0 1 16 8 and then assign brightness levels as you do with script 7: L 0 127: Z I; SCRIPT 7. and then update brightness level in metro script as well. also you only need to readjust brightness levels when PARAM value changes, just add this line to the metro script: IF EQ Y PARAM: BREAK.

glitching likely was due to PARAM value changing slightly. another thing to consider would be replacing the knob with a grid fader.

edit: forgot to include number of columns and rows in G.BTX, fixed. also forgot to mention - you don’t need to use another variable anymore to pass the value of I when you call another script from a loop - just use I in the called script.

1 Like

for folks that use teletype with er-301 - @EqualTemperament started a thread on orthogonal devices forum dedicated to using grid integration specifically for building scenes to control er-301: https://forum.orthogonaldevices.com/t/grid-ops-base-controller-for-er-301/1907

i think there is some incredible synergy potential in the er-301/teletype/grid combo…

14 Likes

finally had the time to add the latest scenes to the grid code exchange page

@misuba, @andrus, @EqualTemperament, @rikrak, @giftculture - thank you so much for contributing to this thread and the grid codex!

7 Likes

morphing faders scene

a set of fine faders (16 when used vertically, 7/15 when used horizontally) with 2 presets. the bottom row is a crossfader that morphs between the 2 presets. you can change values at any point but presets are only set when using the edge points.

you can also clock it (trigger input 1), it will step through morphing (press on the bottom row to hold it there). the knob controls the slew amount (up to 200 ms).

this scene will output to both SC and TO, you can disable whichever one you don’t need (or change it to teletype outputs), to do that edit the appropriate lines in scripts 1, 5 and M.

morphing_faders.txt (2.0 KB)

Summary
MORPHING FADERS

SET OF FADERS WITH 2 PRESETS
AND MORPHING BETWEEN THEM

BOTTOM ROW MORPHS
TRIGGER 1 STEPS THROUGH
MORPHING

SET D TO:
7 FOR GRID 128, 15 FOR 256
SET Y TO:
1 FOR VERTICAL FADERS
0 FOR HORIZONTAL FADERS

KNOB CONTROLS SLEW

CHOOSE OUTPUT IN SCRIPTS
1, 5 AND M

#1
IF G.GBTN.C 0: BREAK
I + T G.FDR.N 0
IF < I 0: I 1; T - 0 T
IF > I 15: I 14; T - 0 T
G.FDR.N 0 I; SCRIPT 2; I + I 1
SC.TR.P I; TO.TR.P I

#2
L 1 16: SCRIPT 3

#3
X G.FDR.N 0
A SCL 0 15 PN 0 I PN 1 I X
G.FDR.V I A
SCRIPT 5

#4
I G.FDRI; A G.FDRV; SCRIPT 5
I G.FDR.N 0
IF EZ I: PN 0 G.FDRI G.FDRV
IF == I 15: PN 1 G.FDRI G.FDRV

#5
SC.CV I A
TO.CV I A

#6

#7
G.FDX 1 0 0 16 1 6 223 4 1 D
G.REC 0 4 16 4 -2 -2
G.REC 0 12 16 4 -2 -2

#8
G.FDX 1 0 0 1 D 7 200 4 16 1
G.REC 4 0 4 16 -2 -2
G.REC 12 0 4 16 -2 -2

#M
A SCL 0 V 10 0 200 PARAM
L 1 16: SC.CV.SLEW I A
L 1 16: TO.CV.SLEW I A

#I
D 7; Y 1
G.RST; G.FDR 0 0 D 16 1 2 4 2
G.GFDR.RN 0 0 V 5; $ 2; T 1
G.BTX 0 0 D 1 1 0 -3 0 16 1
IF Y: SCRIPT 8
ELSE: SCRIPT 7

#P
7	0	0	0
1	1	1	1
4	0	0	0
6	63	63	63

5366	0	0	0
4710	7898	0	0
4710	7898	0	0
4710	7898	0	0
4710	7898	0	0
2826	7898	0	0
2826	7898	0	0
2826	7898	0	0
2826	830	0	0
7362	830	0	0
4148	830	0	0
7864	830	0	0
7362	830	0	0
7362	328	0	0
7362	830	0	0
7362	942	0	0
7362	830	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
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000

14	209	209	209	209	206	206	206	26	34	29	35	34	22	34	37
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

This text will be hidden

video demo

older demos:
one
two
three

11 Likes

must confess I’m brand new to the grid ops stuff, just loaded up the 3.0 firmware, looks like really exciting stuff! loaded up this morphing faders scene and have some very naive questions - what do the faders output to? any of the teletype outputs? in your video demo it looks like you’ve got nothing plugged into the outputs, so what is going on there?

The morphing faders scene is designed to be used with Orthogonal Devices’ ER-301. It should be connected over i2c, hence the lack of cables.

oh, that explains a lot, thanks! :joy:

yep, it’s outputting via i2c to er-301 and 4x telex txo modules. you can easily change it to use teletype outputs by updating the appropriate lines in scripts 1 (which sends a trigger on each step, can be used to trigger samples on er-301, for instance), script 5 (which updates CVs) and metro (which updates CV slew). if you have ansible connected to teletype you can get up to 8 CV outputs.

1 Like

Thank you for posting this! I learn a lot and am inspired from reading code :slight_smile:

1 Like

I went back and played with Fugetta again today and it’s still one of my Favs
I think this would be interesting to have upto 6 playheads combined with the 6 voices of Just Friends/Just Type but would need octave shifting / scale changing. I’m using a beasts chalkboard with 2 external oscillators.

Here is the @scanner_darkly mod of the rhythmicon patch using Just Friends - basically something like this Rhythmicon patch (with playable scales) as the base patch, combined your Fugetta playhead stuff ontop of it.

5 Likes

Awesome, great to see you using these! They sound great. The fugetta scene should be quite easy to adapt for 6 playheads. In theory, because of how I wrote the script, I think you could have up to as many playheads as you have outputs! The UI would be a nightmare though… Probably quite easy to edit for 6JF outputs. It’s been a while since I looked at the code.

3 Likes

thanks for posting, these are great!

you could also use arc / ansible levels for octave shifting / transposition / scale changing, should be easy to code and would leave more grid space available.

2 Likes

Yes, I think you are right, 4 is enough as everything turns to mush soundwise and visually - it’s just being able to use Just Friends instead of 4 independent oscillators. Btw I was on it today and it works really well with 4 x Er301 internal oscillators and a beasts chalkboard on 2 channels for octave shifting.

That’s an interesting idea to use the Arc for octave shifting 4 channels. The script as it is already super impressive with 4 x er301 Osc / envelopes. My Teletype is now becoming full of multiple Fugetta and Rhythmicon / Daemon tracks for livework :slight_smile:

2 Likes

@mlogger Here’s a version of @ghost’s great fugetta scene with:

  • transposition via grid (set to faders per voice next to clock dividers on edit page): transposition values are set with pattern 2 9-15 so you can set them up to whatever values you like (I used a mix of +/- 8ves/4ths/5ths)
  • just type voices: allows for chords per voice, but if you want you can use JF.VOX instead of JF.NOTE
  • TI/TO control for some offsets.
  • mutes moved to bottom row and can be accessed in either page
  • TR/CV outputs still available

fugetta_transp.txt (2.1 KB)

6 Likes

Woah! Can’t wait to try this

Double woah! Gonna try today. Thankyou so much for doing this!

Its awesome! - it encourages me to make Irish jig music and church organs for some reason :joy:

2 Likes