always great to see more people contributing to teletype dev! :black_heart:

let’s use this thread for new features and beta builds so that it’s easy for people to find: Teletype 3.2+ feature requests and discussions

(i think this thread is actually about firmware development, not the firmware itself)

2 Likes

Would it be wise to add a .gitattributes file containing * text eol=lf to the Teletype repo root? This should help Windows users avoid converting line endings when cloning.

I know it is easy in Git Bash to avoid the EoL conversion with a --config core.autocrlf=input argument during clone, but it is not currently possible in GitHub Desktop. :man_shrugging:

EDIT: Testing this out on my own fork, it looks like we would need to call out which types are binary so that it doesn’t screw with the line endings. It looks like this is limited to .png, .jpg, and .ttf right now.

* text eol=lf
*.png binary
*.jpg binary
*.ttf binary
1 Like

Time has passed, I started working with esp N.S and I find it very useful. But I always seems to need a lot of supporting logic code to work with it. Two things that I feel could make it much easier to use:

  1. have it 0-indexed (first degree is not “1” but “0”)
  2. have it span multiple octaves (including negative values)

I know changing this (esp the 0-indexing) would break peoples code, but I have to ask: any chance we could change this?

Alternatively I could make a “parallel” OP that does what I want, which letter would be the least offensive to use over “S”, so N.Q or N.T or something? I’m thinking both in terms of my local version not clashing with future firmware and the prospect of it possibly making it’s way into the official firmware.

2 Likes

After some discussion here last summer, the N.S and N.CS scale degrees were changed to 1-indexed. This matches the music theory they are founded on where degree I is the tonic. Can you share an example of where you are needing extra math to account for the off-by-one issue?

The breaking issue is already on the table for the upcoming numeric release, so that is maybe less of a concern. BTW if this change is made, please change the OP’s code and not the table it draws from. The table is shared by QT.S and QT.CS.

This seems like a decent change to me; basically you would trade the currently common need of calculating the octave for the potential (rare?) need for modulo math if you want to strip out the octave.
E.g. X + N.S Y * 12 / Y 7 becomes X N.S Y, or potentially X N.S % Y 7. As a bonus, this fixes the issues with octave math when you cross into negative octaves.

1 Like

Hmmm. Basically all the time :slight_smile: I understand the urge to reflect music theory, but this is intended for computers and they prefer 0-indexed. Ok, I could just add one to “my” 0-indexed value and use the op, but things like %7 doesn’t play well with this. Also N 0 returns 0, which makes total sense, I’d expect N.S 0 0 0 to return 0 as well.

If all my input for an op like this were coming from patterns (iow: values I put in there) the problem might not that big, but most of my values are calculated or at least transformed by code, so it’s awkward that N.S is different from everything else.

So no concrete example, hope you see what I mean. If I think hard + long I might come up with a concrete example later, but maybe that’s not necessary :slight_smile:

Exactly! Besides that N.S is broken (or I’m using it wrong) on negative degrees.

I went ahead an implemented my N.Q (had to pick a non-clashing name for now). This is basically how I hoped N.S would work, wrapping across octaves (including negative degrees) and 0-indexed. Hope you find to the time to try it out and enjoy it, it feels really good here on my teletype :slight_smile: Not heavily tested, but seems to work as expected…

Oh, and yes, it reuses all tables…

NB: patch-level 0, but you’ll probably figure that out anyhow :slight_smile:

NB: there’s a precious attempt commented out, I’ll clean that up in a minute… (EDIT: done!)
https://raw.githubusercontent.com/attejensen/eurorack_firmware_patches/master/teletype_op_nq.diff

EDIT: Ok, the jury’s still out on 0/1-indexed. After working a bit with the 0-indexed version, I made a 1-indexed version, I’ll report back when I hear from the jury :slight_smile:

2 Likes