I got a Teletype a few weeks ago - getting my head around it has been a great holiday project. Still very early days, but I thought I’d share something I’ve been working on as a learning exercise.
Feeling inspired by Noise Engineering’s Zularic Repetitor, but not having one (nor having room for one!), I thought it would be an interesting exercise to code up some patterns from the Zularic (which are available in the manual), and see how much of that module’s functionality I could emulate, including using a grid to visualise the patterns, select different patterns, and shift the phase of the individual “child” rhythms.
To get started I chose 4 16 beat patterns (Rhumba, Clave, Gahu, Funk 1) from the Zularic manual, transposed them into the pattern memory. For example, P 0 [rows 0-15] contains the top line “mother” rhythm and P 1-3 [rows 0-15] contain the “child” rhythm for Rhumba, and so on for rows 16-31, 32-47, 48-63.
Scripts 1 - 4 render the patterns out via triggers 1-4, and also render the pattern to the top 4 rows of the grid. In the bottom half of the grid, 4 buttons in column 1 jump between patterns, and the 6 buttons in cols 4-5 allow each of the 3 child patterns to be rotated forward and back. Drive the scene with a clock into Input 1 (Script 1 calls the other 3 children - not sure if that is really the right teletype ‘idiom’ - still learning about timing management, metro etc).
With this template it should be possible to create other scenes which have other patterns. It is probably easier to group patterns of the same length into the same scene, and then adjust Script 7 to jump the pattern start and end forward appropriately - I’m not sure it would be that easy to have patterns of variable lengths, but perhaps there’s a way.
I’m sure there may be lots more efficiencies that people could suggest to make this more compact. I imagine in theory that using some shift register math it would be possible to store a lot more patterns by using the “compiled” value of a pattern rather than an explicit string of 1’s and 0’s, but I haven’t tried to get my head around that just yet.
One limitation I’m experiencing with my current set up is that when I plug in an actual grid, I get a lot of weird additional triggers out of TR 3 (well at least the Peaks module I’m triggering is registering additional triggers, although I’m not seeing extra LED activity at TR 3 on the TT). I have a new batch TT, so I’m plugging the grid directly into the TT, so I guess this is an electrical noise issue? Anyone else seen similar things?
ZULARIC EMULATRIX
#1
A PN.NEXT 0; B - + PN.I 0 15 Y
IF A: TR.PULSE 1
IF A: G.BTN.L B 15
ELSE: G.BTN.L B 5
SCRIPT 2
#2
A PN.NEXT 1; B - + PN.I 1 31 Y
IF A: TR.PULSE 2
IF A: G.BTN.L B 15
ELSE: G.BTN.L B 5
SCRIPT 3
#3
A PN.NEXT 2; B - + PN.I 2 47 Y
IF A: TR.PULSE 3
IF A: G.BTN.L B 15
ELSE: G.BTN.L B 5
SCRIPT 4
#4
A PN.NEXT 3; B - + PN.I 3 63 Y
IF A: TR.PULSE 4
IF A: G.BTN.L B 15
ELSE: G.BTN.L B 5
#5
L 0 3: PN.I I Y
X 0
#6
A G.BTNI; B ? % A 2 -1 1
IF < A 3: PN.I 1 + PN.I 1 B
ELIF < A 5: PN.I 2 + PN.I 2 B
ELSE: PN.I 3 + PN.I 3 B
X + X B
#7
Y * - G.BTNI 7 16
L 0 3: PN.START I Y
L 0 3: PN.END I + Y 15
L 0 3: PN.I I Y
L 0 3: PN.L I 64
L 15 79: G.BTN.L I 5
#8
G.BTX 1 3 5 1 1 0 5 6 2 3
G.BTX 15 0 0 1 1 0 5 0 16 1
G.BTX 31 0 1 1 1 0 5 0 16 1
G.BTX 47 0 2 1 1 0 5 0 16 1
G.BTX 63 0 3 1 1 0 5 0 16 1
G.BTX 7 0 4 1 1 0 5 7 1 4
#M
#I
X 0
Y 0
SCRIPT 8
#P
64 64 64 64
1 1 1 1
48 48 48 48
63 63 63 63
1 1 1 0
0 0 0 0
0 0 1 1
1 1 1 1
0 0 0 0
0 0 1 0
0 0 0 1
1 1 1 1
0 0 1 0
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 0
0 0 1 0
0 0 0 1
0 0 1 1
1 1 1 0
0 0 0 0
0 0 1 1
1 1 1 1
0 0 0 1
0 0 1 0
1 1 0 1
0 0 1 1
0 0 1 0
0 0 0 0
1 1 1 1
0 0 0 0
1 1 1 0
0 0 1 0
0 0 0 1
0 0 1 1
1 1 1 1
1 1 0 0
0 0 0 0
1 1 0 1
0 0 0 0
1 1 0 0
0 0 0 0
1 1 0 1
0 0 0 0
1 1 0 0
0 0 0 0
1 1 0 1
0 0 0 0
1 1 0 1
0 0 0 0
0 0 0 0
1 0 0 0
0 0 1 1
0 1 0 0
1 0 1 0
0 0 0 0
1 0 1 1
0 1 0 0
0 0 1 0
1 0 0 0
0 0 1 1
0 1 0 0
1 0 1 0
0 0 0 0
1 0 1 1
0 1 0 1
0 0 1 1
#G
0000000000000000
0000000000000000
0000000000000000
0000000000000000
0000000000000000
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
Summary
This text will be hidden