Edit: these were accepted and merged. They will feature in the mainline teletype firmware when there is a new point release.

Hi everyone! I’d love to share a new set of Teletype OPs I’ve been working on. I’m sharing to gauge interest and to seek feedback before going through necessary steps to open a PR. I’m quite happy for these to stay on my own branch, but I’d also like to give back to this great community if you think there’s a place for them in the master firmware. The changes are currently sat on a branch.

They’re a set of Drum Ops, loosely related to ER and NR. They function in largely the same way but operate differently. When the functions are used together they give you the power of a souped up MI Grids with different (and more) patterns and rhythmic possibilities.

**Audio Demo**

I’m very happy with the overall effect. Here’s a clip of me manipulating the helpers in pretty much the most basic way possible. I’m just switching the patterns for each drum periodically.

**The OPs**

NB: They probably don’t stick to teletype op naming conventions closely enough right now but I’m willing to do the work to get them into shape if there’s a desire for me to do so.

`DR.P`

- Drum Pattern Helper

prototype = `DR.P b p s`

`b`

is the drum bank (`0-4`

), `p`

is the pattern (0-215) and step is the step number (0-15), returns `0`

or `1`

The drum helper uses preset drum patterns to give 16-step gate patterns. Gates wrap after step 16.

There are five banks of preset drum patterns:

Bank 0 is a mostly random set of gates increasing in density at higher numbered patterns, where pattern 0 is empty, and pattern 215 is 1s.

Bank 1 is bass drum patterns.

Bank 2 is snare drum patterns.

Bank 3 is closed hi-hats.

Bank 4 is open hi-hits and in some cases cymbals.

Bank 1-4 patterns are related to each other (bank 1 pattern 1’s bass drum pattern fits bank 2 pattern 1’s snare drum pattern).

The patterns are from Paul Wenzel’s “Pocket Operations” book: https://shittyrecording.studio/ (Yes, I typed them by hand. Yes, it took ages. @pwenzel I hope you don’t mind - some money was donated to Tree Trust for the usage).

`DR.V`

- Velocity Helper

prototype = `DR.V p s`

`p`

is the pattern (0-9). `s`

is the step (0-15)"

The velocity helper gives velocity values (0-16383) at steps. The values are intended to be used for drum hit velocities. There are 16 steps, which wrap around.

`DR.T`

- Drum Tresillo Rhythm Helper

prototype = `DR.T b p q l s`

`b`

is the drum bank (`0-4`

), `p`

is first pattern (0-215), `q`

is the second pattern (0-215) and `l`

is length (`1-64`

), step is the step number (0-length-1), returns `0`

or `1`

The Tresillo helper uses the preset drum patterns described in the drum pattern help function in a 3, 3, 2 rhythmic formation. In the tresillo, pattern 1 will be repeated twice for a number of steps determined by the overall length of the pattern. A pattern of length 8 will play the first three steps of your selected pattern 1 twice, and the first two steps of pattern 2 once. A pattern length of 16 will play the first six steps of selected pattern 1 twice, and the first four steps of pattern 2 once. And so on. The max length is 64. Length will be rounded down to the nearest multiple of 8. The step number wraps at the given length.

**Explanation of the audio demo above**

Pam’s is triggering scripts 7 and 8 with a little bit of swing.

In script 8, separate faders are assigned to change each preset pattern for Bass Drum, Snare, and Closed/Open Hi-Hats. A Verona DRM1 is triggered via I2M but any eurorack module could be used using triggers as usual. Velocity helpers with different patterns are applied to the snare and hi hits.

In script 7, the pseudo-random bank of triggers are being fed through the tresillo function to trigger the clap. Two faders have been set to change the preset for each part of the tresillo. A third velocity helper is applied to this.

In the audio clip I’m just manipulating the faders, changing the patterns. I haven’t yet experimented with probability, logic, switching patterns programmatically, and all the other things teletype would allow.

Thanks for reading to the end! Feedback welcome.