Teletype 3.2+ feature requests and discussions

To be honest I’m a bit unsure what the status and plans are for N.S. I agree that non-wrapping would be an improvement.

I wrote the new N.B which allows you to set the scale to any arbitrary note set with binary R notation or from a few presets. After this got accepted I only use N.B, it feels much better to me, to the point that my vote would be to remove N.S. However I think removing features from the firmware is not aligning well with the overall strategy of the teletype firmware.

1 Like

To be honest I’m still a bit intimidated of ops that use binary but I’m sure it’s simpler than i expect! And if you can use user defined scales with it then I’m definitely into it

1 Like

It’s super simple actually, the N.B is a simple representation of the notes as found in an octave. You turn them on/off by 1/0 on the binary. No actual binary understanding needed other than that!

@a773 please remind me are these documented somewhere? They’re not on the official manual, as they were in the beta version, right?

1 Like

It quite simple, most difficult is to Remember R (instead of more obvious B):

Major scale vs bits:
Scale    C Db D Eb E F Gb G Ab A Bb B
Binary R 1 0  1 0  1 1 0  1 0  1 0  1

Major-scale:      R101011010101
Minor-scale:      R101101011010
Major-pentatonic: R101010010100

Set scale (C-major, first arg is transpose, 2nd is scale):
N.B 0 R101011010101

Set scale (D-major, first arg is transpose, 2nd is scale):
N.B 2 R101011010101

Set scale (D-major from preset (0=major)
N.B 2 0

Pull  1st degree from set scale:
N.B 1
Pull octave from set scale:
N.B 8

The real power when you want modal interchange, say C major to Db (neapolitan subdominant), you define everything from the same main root and degrees won’t jump:

N.B 0 R101011010101 // C major
N.B 0 R110101011010 // C-phrygean or Db-lydian

But in both cases

N.B 0 = N 0 = C

@ParanormalPatroler yes it’s documented along with the PR on GitHub, I’m not sure which official manual you’re referring to?


Oh that actually looks really exciting! What would N.B 9 do in that situation, return the first degree again or give the first degree + octave, or just do nothing?
Edit, 9 would actually be 2nd degree +octave, still get caught out from 0 counting

remaining things:

  • run clang format on everything
  • help mode for this PR
  • my PR

unfortunately i’m swamped with day job / home chores / getting ready for FLASH CRASH teletype live coding event, so realistically won’t have my PR ready until mon/tue. we could just punt it from the release if it holds things back!

I think I wrote it wrong (will correct after hitting return), sorry.

It returns the 9th degree, so in C a high D. Works with negative numbers as well:

N.B 0 0 // choose C-major scale

N.B -7 // = N -13 = B,,
N.B -6 // = N -12 = C,
N.B -5 // = N -10 = D,
N.B -4 // = N -8  = E,
N.B -3 // = N -7  = F,
N.B -2 // = N -5  = G,
N.B -1 // = N -3  = A,
N.B 0  // = N -1  = B, 
N.B 1  // = N 0   = C
N.B 2  // = N 2   = D
N.B 3  // = N 4   = E
N.B 4  // = N 5   = F
N.B 5  // = N 7   = G
N.B 6  // = N 9   = A
N.B 7  // = N 11  = B
N.B 8  // = N 12  = c
N.B 9  // = N 14  = d
N.B 10 // = N 16  = e

Ok, that might seem strange at first with negative numbers (anyone into “negative harmony” might discover something interesting…), and obviously note it’s 1-indexed, to match music theory. I had it running with 0-indexed at first but I messed it up all the time. With negative numbers the important thing is math works, +7 transposes up an octave, -7 transposes down an octave.


Ahh that’s wayy easier than handling the degree and the octave separately like with N.S thank you!


No need to rush it, it’s been a year, let’s make it smooth rather than soon!


next week sounds fine to me! psyched for the FLASH CRASH :gem:


I have some plans to try N.Q and QT.Q implementations which could allow you to use the queue to hold an arbitrary quantity of notes. The OPs could interpret the highest value in the queue as the “octave”/scale modulo.


Does that mean you can set a modulo at a value higher than octave?

1 Like

What is the issue with help mode? I could probably tackle it if you need.

apologies, got 2 PRs mixed up! edited my post.

1 Like

Yeah, or lower, however your microtonal needs go.

Just did a PR for AND3, AND4, OR3 and OR4 (&&&, &&&&, ||| and ||||)

&&&  1 1 0   // = 0
|||  0 0 1   // = 1
&&&& 1 1 1 0 // = 0
|||| 0 0 0 1 // = 1 

My brain is kinda reeling from how useful this stuff is gonna be and how it’s gonna turn whole scenes of mine into single lines!!

One question on the QT ops:
When the documentation says it will quantise v/Oct to the various N.S scales, what values is it expecting in and spitting out? Does it take raw 0-32788 values in and output the same?
As in if In was full value range unscaled, would this work:

CV 1 QT.S A 0 0 

Or would the input and output need some N and V processing?

An example of a corrected working version of the above ‘quantise the input to a major scale and send it to CV 1’ script would be much appreciated to clear this up :slight_smile:

If you can, I’d hold my horses, @desolationjones reworked them to use bitwise notation. Unless you rolled your own fw from GitHub??

Ohh ok, very much looking forward to seeing what form they take, they seem incredibly useful

I think they are very useful!

The form (of the new bit wise ones) are fixed, it’s just not “out” yet. It should be just around the corner…