Teletype workflow, basics, and questions

First off, wow! Thank you for such an in depth answer! I’ll try to adress a few key points which may clarify my intentions for looking at teletype along with some of the very valid concerns you raise.

My interest in Teletype is not necessarily in the coding nor the module itself, it lies in the blank canvas approach, that I could design an environment perfectly tailored to my needs and intentions. The coding to me is a means to ann end, just like practicing arpeggios on a guitar. Just repetitions of three notes on three strings is not in itself very exciting nor rewarding but the reward lies within the possibilities the skills to execute that at your chosen bpm opens up if that makes sense. Again, like I wrote in my first post, I may very well be way of base here and Teletype is absolutely not what I’m looking for, hence my inquiries :slight_smile:

I fully agree that my current setup may very well not be where the problem lies. I hesitate to even call it a problem, it’s more of a creative question ie “can I make my instrument do this? If so, how?” and Teletype+Grid may or may not be the answer to that question.

II also figured that since the grids are currently sold out, I may as well raise this inquiry now to know if I should be ready when they become available or not.

I am also actively evaluating how I use the tools I have, there is much to love in those as well, perhaps there’s a different way I could patch things up to reach my desired results? Even being able to ask those questions is part what drew me to modulars in the first place. With a guitar or almost any other instrument, there is a very well developed history of performance techniques the have proven to yield optimum results for various musical applications, with modular there is no such thing and that is wondrous.

Regarding getting rid of my ribbon, the only way I would get rid of it would be if the grid could provide an alternative playing surface along with sequencing duties. I would lose the vibrato ad glissandi but I could probably work around that using my Expressive E. I do absolutely crave being able to get a melody in my head then and there and just improvise it like on any other instrument.

For those of you who will bear with me, and again, feel free to move this to another thread if that is more appropriate, a good example of what I would like to do but on a more complex scale would be along the lines of what Alessandro Cortini did with his Forse series for the Buchla Music Easel.

If you listen to the track Senza Aria from Forse 3, you will hear a 2 note sequence over which he uses the keyboard to both provide a baseline and traspose the sequence. Given that the Easel is such a limited instrument, he can’t transpose the sequence in-scale but just shift it X semitones up or down.

Now imagine you took that very same concept but you had two sequences running, with variable step length, probability for each step and probability of a change of direction through the sequence like Renes snake modes, and of much greater length, more akin to the sequences you can get with Rene or Kria, the keyboard (or ribbon in my case) controlling a third voice and transposing the sequence in-scale, in time with your playing and the possibility of easily and swiftly, mid performance, completely change to another sequence, based on a new scale, with unique parameters for various parts of the piece.

That is what I’m looking for. That to me and my goals would be the perfect marriage between deliberate composition + performance and probabilistic/generative/random events.

Teletype+Grid may or may not be the tools for the job or it may simple be way to complex a task to code something like this but I’m eager to learn more and will continue to read this thread and your other recommendations. If nothing else, I may learn a thing or two I could apply to other tools!

Once again, thank you for your insight and input.

1 Like

for grid/teletype specifically take a look at this list to get an idea of what is possible: CODE EXCHANGE · scanner-darkly/teletype Wiki · GitHub

also take a look at “is it for me” section here: A user's guide to the wonderful world of teletype ⌨

it would be trivial to create a scene that acts as a 2 track sequencer with variable step length and probability for each step, using pattern banks to store pitch / step length / probability. you would be limited to 64 steps for both sequences combined, but you could use different scenes to store different patterns (there would be a small delay when switching scenes, so you might not be able to do it mid performance).

using a ribbon controller to transpose would be simple as well, you could use the CV input on teletype and simply add that voltage - it won’t create glissandi as teletype doesn’t deal with continuous data, every script must be triggered (either by an external trigger or in case of metro by the internal clock), so it would be time quantized. for something like this i would just use a separate CV mixer instead of doing it on teletype.

you could also use norns to achieve this - the language is easier to read and understand, you don’t have the script size limitation and you could store multiple patterns, but you would lose the direct integration with modular - you would need something like crow to send CVs / triggers from norns.

2 Likes

Thank you!

Glissandi from transposing I realize will not be possible and that does not concern me, I get that performance aspect from manually playing the ribbon.

Te question would be if it would be possible to create an interface for creating those two sequences using a grid as to not loose the ability to directly influence/change the sequences and their parameters. Is it possible to program something akin to Renes snake modes? I’ve read short comments in this thread that TT could emulate Rene but it never stated to what degree.

I’ll look into the threads you mentioned as well as what norns+crow+grid have to offer. I’ve been eying norns as well for different reasons ever since I saw a demonstration of the Sway app which is simply magic so Norns could possible fill more than one role for me.

yes, you could certainly create a grid interface for changing the sequences directly, the wiki i linked has several different examples of that. i’m not super familiar with rene snake modes but you could definitely code something that would take an existing sequence and step through it in various ways.

2 Likes

That sounds absolutely brilliant, I’ll continue my investigations by reading everything you and the others have linked, thank you!

Edit: One more question for clarification - when you say that the sequence would be transposable by the ribbon, is it possible to transpose within my chosen scale? IE I set the scale to 0 2 4 5 7 9 11 (C Major for example) and the transposition will be quantized to only those notes until I change to a different pattern with a different scale.

I just wanted to chime in here and say that I think my own use of teletype is similar in spirit at least to what you’re looking for. What I do is spend quite a bit of time (weeks, months even) thinking in very general terms about processes that could potentially generate melodies/harmonies/rhythms in a very abstract way. Then once I think I’ve got it straight in my head, I sit down at teletype and try and construct some code that embodies that idea. But the crucial part of it is that I aim not to hard code any of the specifics. I use the TXi module to add four extra knobs to the teletype (in addition to the one it already has) and also use other sequencers generating incoming triggers and these act as highly playable ways of steering the process that I have designed in my head.

At this point I feel like I’ve not “programmed a sequence” but instead created a new performable instrument, but one that works at a higher, more abstract, level than individual notes. Then I spend months playing with this instrument and learning what it can do. Sometimes I discover things it can do that I never thought of when I originally built the thing.

I’ve posted a couple of examples of these before. For example, my canon generating script is highly playable in that you can twist a knob to generate the overall contour of a melody, and then transpose different voices playing at different rates within key by twisting other knobs, and change keys and chords easily with a twist of yet another knob and so on. I had a certain musical style in mind when I built this, but have actually ended up discovering quite different kinds of things I can use this for.

Similarly, I posted an earlier, more generative, example which also exhibits a surprising amount of playability, which it sounds like you are looking for in your instrument.

These are just two, highly specific, examples - but I hope they help show what can be done with teletype to create steerable, playable, systems for creating music. It’s quite intoxicating when you start to realise what’s possible!

EDIT: to answer your last question…

This is definitely possible and there are new additions to the Teletype language that make quantising to scales easy in one line of code. So you can take some set of varying numbers in a sequence, add an offset to them and then quantise them so they stay in key. If you set the offset to the PARAM knob or the cv input (from your controller) then it’ll do exactly what you’re after. I think if you want a lot of playable inputs then a TXi expander module would be a good addition.

8 Likes

@SimonKirby thank you for another wealth of information and input! This is quickly becoming more and more enticing, so much to read up on though but thoroughly enjoying the process. Going to give this a few weeks or more to just absorb and learn now that I know that it’s even possible and then evaluate my next move.

Incidentally, just speaking about this has given me a few new patch ideas to work with what I already have which feels very exciting in itself!

I’ll continue to follow this thread and start plowing through everyones suggestions.

One again, thank you all!

2 Likes

Hi, newbee here, got Teletype since yesterday.

Is it possible to program for exemple TT05.txt offline, save it to USB and then load into TT?
Because when I put in the USB, every scene on the USB is overwritten immediately…

Regards

Johan

I think you’re looking for this:
https://monome.org/docs/teletype/manual/#usb-backup

First the teletype saves all scens from memory to USB, the first scene name is tt00s.txt (the “s” for saved). Then it looks for files without the s and reads them into the memory, so tt00.txt will be read as the first scene (overwriting the scene in memory).

So just a word of warning: if you put a USB with non-s scenes in your teletype two times in a row, you will effectively have lost all scenes both on USB and in memory (or rather both versions scenes on the stick and the version in memory will be identical, namely the non-s versions)…

2 Likes

I see. Thanks!

I edit the non-s file then so it will be loaded.

1 Like
#I
IN.SCALE 0 4
PARAM.SCALE 0 1
#M
IF PARAM: $ 1; M 25
IF ! PARAM: $ 2

#1
IF EQ A IN: BREAK
CV 1 N PN 0 IN; TR.P 1
PN.NEXT 1 PN 0 IN
DEL 5: A IN
# 2
CV 1 N PN.NEXT 2
TR.P 1; M 120
#P0
0
2
4
7
9

quick sketch, haven’t tested but I use these ideas all the time. Script by script:

The init: Set your input to a range equal to the number of notes in your pitch collection (or scale). Depending on the range of your CV sources you may want to test to make sure you’re getting the full range and nothing extra. Also set your param knob to just off / on (to change which script is playing – PARAM left will be $2, or “listening back” to the sequence, and PARAM right will be $1, or “quantizing and recording inputs”

Script 1: first line says “if the IN has not changed, do nothing.” Second line (which only plays if IN has changed) says "use the value at IN to pick a semitone value to play, output it on CV 1. Save our incoming CV value to pattern one. Also make a trigger. Now wait a second and remember what A was so we can check it against IN.

Script 2: just sets your metro real low and plays back the pattern, stored in $ 2.

I also put the major pentatonic in the tracker so that this’ll sound fun when you get it working.

I think there are some other parts you are looking for, too. For instance, this won’t play back the second pattern in a rhythm, and it won’t play the two patterns simultaneously. Unfortunately, this is more or less at the limit of what I can do without knowing exactly how this is going to be used, and exactly what other options you have in your system for triggers / interfaces. I’d allocate the storage space left in TT differently depending on how we were increasing complexity to, for instace: also store rhythms or generate them, change keys, play back multiple voices, save different patterns to all four sequences and play them back, add randomization, integrate mute / unmute per-channel in that polyphonic arrangement, create a lil switch network to send signals to different parts of the system – really it’s a lot to manage, and hopefully this gets you started with the next part (you should at least get this working before leveling it up). It’s the comparator section (storing a value to A) that hung me up on this use-case, so I’m hoping that frees you!

2 Likes

Not what you asked, but I did a quantizer last summer:

#M
$ 1

#I
M 1
M.ACT 1

#1
I IN
A + * / I 12 12 P % I 12
CV 1 N A

Then populate the first 12 cells of P 0 with the notes you want in your scale so 0 1 2 3 4 5 6 7 8 9 10 11 would be a chromatic scale, 0 0 2 2 4 5 5 7 7 9 9 11 would be a major scale…

3 Likes

If you want to skip the “build a quantizer” step, there are some very functional quantizer OPs included in the beta firmware since last summer. QT.S uses the same scales as N.S, while QT.B allows you to define a 12-tet scale using a 12-bit integer. There’s also a helper OP VN for converting voltage inputs to note numbers. The OP docs are available on github.

Here’s a (untested example) C-major quantized shift register which takes your LFO into the IN jack and a trigger on input 1 to sample new voltage and advance the register:

Init script:

P.L 4

Script 1:

P.INS 0 QT.S VN IN 0 0  //convert voltage input to note number, quantize to c-major, insert at top of pattern
L 0 3: CV + I 1 N P I   //send first four notes to cv 1-4
P.RM 4                  //trash the oldest note

EDIT: this was busted, evident now that i’ve had my coffee. should be fixed.

3 Likes

I see you post and yet there is no ternary operator. Curious.

4 Likes

had coffee ? ternary operators : !bother

5 Likes

Curious as to why this doesn’t show up in the pdf. Is the short ="" only visible in HTML? In the pdf it shows up under “missing documentation” + changelog…

Hi wonderful Teletype folks! I will be getting a teletype soon and have been thinking about what to feed it… I have seen a lot of love for Pam’s + TT and also for Marbles + TT… obviously these are two very different ends of the gate/modulation spectrum, with pams focusing on pre planning and marbles focusing on capturing randomness, but I was wondering how these two different systems of using the TT compared?

In my head the whole point of using external gates to fire TT scripts is that the thing sending the gates should be more hands on than writing a metro script to do the same thing, and Pam’s doesn’t seem hands on enough to make that worth it? Whereas with marbles you would write the more regular or static triggers in teletype and then have marbles for interactive repeatable random fun?

But I have seen enough people praising Pam’s + TT that it must be worth it in some way?

Mainly, I would love to hear about the kind of things people are sending TT, what they wish they could send it, and trigger/gate modules they have but never patch up to TT

Thanks :blush:

I think Pam’s covers some of Teletype’s weaknesses pretty well, but honestly any DUSG-inspired function generator would cover those same weaknesses better and more hands-on. I sold my Pam’s and picked up a 4ms PEG, which has plenty of clocks and curves and attenuverters, instead. Dual function generators are also a much richer target for modulation from TT outputs!

Never used Marbles but I feel like both it and Pam’s often seem equivalent to finished, performable Teletype scripts. I’d rather explore the Marbles-like curves upon the vast manifold which Teletype embodies :dna:

1 Like

This is such a good question, and one that isn’t reflected on enough! In my own uses I realised quickly that I wanted the inputs to Teletype (both triggers and CV, via TXi) to be hands on interactive. Teletype can do all the internal generative/sequencing stuff you could possibly dream of so having some way of steering it as a performer feels like a natural complement to this.

I’ve ended up mostly using Ansible (and grid) as the source of triggers for teletype. I usually either use the meadowphysics or kria modes to create variable patterns of triggers which are relatively easy to “play” via the grid.

But that’s just me! I can also see that other sources of less-hands-on triggering could be cool. For example, I really need to play around with Just Friends as a source of triggers for teletype (and this makes me think of feedback systems where teletype is also controlling just friends via i2c). You can also self-patch teletype which, while not strictly necessary, could be interesting fun!

I’d love to hear other people’s ideas for good Teletype food. :slight_smile:

3 Likes

Thank you! a big part of the appeal of eurorack to me is how massively a modules functions and sounds can vary when paired with one thing or the other. And Teletype seems to be the master of being a different module from patch to patch!

Actually, I imagine the sorts of triggers needed would massively change script to script, so can see why extremely adaptable trigger sources, like pams for pre set up triggers or ansible + grid for interactive pattern sequencing would be so appealing!

2 Likes