1 Like

no pressure but just to keep this possibility alive! :slight_smile:

Hi there, n00b teletype starter here. Just finished my diy version and diving with the studies.
Strange question perhaps, but i guess the studies were made with an older firmware. Are there anythings i should keep in mind?
For instance, i tried cv 1 0 which didn’t work and cv 1 v 0 did. So maybe there are a few changes in writing the code?

Hmm… CV 1 0 should be identical to CV 1 V 0, because V 0 evaluates to 0.

well, i am a n00b hahaha… So let me check later.
But, all things in the studies should work in 3.2…? That’s the most important question :wink:

As far as I know, yes. I reviewed these a while ago while going over documentation and I believe everything was OK. Certainly a lot of new functionality has been added since these were written but the existing studies I think should largely get you on your feet. Joe’s Teletype Talk videos are a really nice, ongoing set of deep dives for some more usage examples that exercise a lot of newer features.

3 Likes

attempting to update to 3.2.0 via mac BUT getting this on execution of the command update - any ideas?? thanks … ps not a mac user

Last login: Wed Jun 3 18:08:30 on ttys000

The default interactive shell is now zsh.
To update your account to use zsh, please run chsh -s /bin/zsh.
For more details, please visit https://support.apple.com/kb/HT208050.
/Users/admin/Desktop/teletype-3.2.0/update_firmware.command ; exit;
Admins-MacBook-Air:~ admin$ /Users/admin/Desktop/teletype-3.2.0/update_firmware.command ; exit;
/Users/admin/Desktop/teletype-3.2.0/update_firmware.command: line 3: dfu-programmer: command not found
/Users/admin/Desktop/teletype-3.2.0/update_firmware.command: line 4: dfu-programmer: command not found
/Users/admin/Desktop/teletype-3.2.0/update_firmware.command: line 5: dfu-programmer: command not found
logout
Saving session…
…copying shared history…
…saving history…truncating history files…
…completed.

[Process completed]

do you have dfu-programmer installed and in your path, as per the instructions on the firmware upgrade page? It’s not clear if it’s installed or not from those errors; either it isn’t, or it is, but it isn’t on your path.

Many thanks for getting back - you are right. Once I used homebrew to install dfu-programmer the command line burst into action. Al now good!

1 Like

Wow, this is great! Thanks for all the hard work!

I’m still a little confused on the syntax for the N.C (and related) ops.

From the documentation, I read

N.C r c d

The N.C OP lets you retrieve N table values according to traditional western chords. c and d wrap to their ranges automatically and support negative indexing.

So I get I’m looking up a value from a table. r is root? c is the chord index? and d is a boolean for wrapping ranges either 0 or 1?

Would someone be kind enough to type out an example of this in use? I’m sure I’m missing something simple, but I haven’t touched my teletype in a few months and feel a little rusty. After a few hours of tinkering and reading through the some threads and docs, I’m not making much progress.

Thanks in advance!

N.C r c d returns a note (in number of semitones) from a lookup table of notes which are in certain chords.
r is the chord’s root, given in number of semitones
c is the chord (0-12, see table below)
d is the chord component (0-3, where 0 is the root)

N.S r s d returns a note (in number of semitones) from a lookup table of notes which are in certain scales.
r is the scale’s root, given in number of semitones
s is the scale (0-8, see table below)
d is the scale degree (0-indexed in 3.2.0 but latest beta is 1-indexed to match western music theory)

N.CS functions like N.C but the chord is referenced by a scale’s degree.

// scales for N.S op
const int table_n_s[9][7] = {
    {0, 2, 4, 5, 7, 9, 11}, // Major
    {0, 2, 3, 5, 7, 8, 10}, // Natural Minor
    {0, 2, 3, 5, 7, 8, 11}, // Harmonic Minor
    {0, 2, 3, 5, 7, 9, 11}, // Melodic Minor
    {0, 2, 3, 5, 7, 9, 10}, // Dorian
    {0, 1, 3, 5, 7, 8, 10}, // Phrygian
    {0, 2, 4, 6, 7, 9, 11}, // Lydian
    {0, 2, 4, 5, 7, 9, 10}, // Myxolidian
    {0, 1, 3, 5, 6, 8, 10}, // Locrian
};

// chords for N.C op
const int table_n_c[13][4] = {
    {0, 4, 7, 11},  // Major 7th       - 0
    {0, 3, 7, 10},  // Minor 7th       - 1
    {0, 4, 7, 10},  // Dominant 7th    - 2
    {0, 3, 6, 9},   // Diminished 7th  - 3
    {0, 4, 8, 10},  // Augmented 7th   - 4
    {0, 4, 6, 10},  // Dominant 7b5    - 5
    {0, 3, 6, 10},  // Minor 7b5       - 6
    {0, 4, 8, 11},  // Major 7#5       - 7
    {0, 3, 7, 11},  // Minor major 7th - 8
    {0, 3, 6, 11},  // Dim Major 7th   - 9
    {0, 4, 7, 9},   // Major 6th       - 10
    {0, 3, 7, 9},   // Minor 6th       - 11
    {0, 5, 7, 10},  // 7th sus 4       - 12
};

// chord scales for N.CS op - values are indices into table_n_c
const int table_n_cs[9][7] = {
    {0, 1, 1, 0, 2, 1, 6}, // Major
    {1, 6, 0, 1, 1, 0, 2}, // Natural Minor
    {8, 6, 7, 1, 2, 0, 3}, // Harmonic Minor
    {8, 1, 7, 2, 2, 6, 6}, // Melodic Minor
    {1, 1, 0, 2, 1, 6, 0}, // Dorian
    {1, 0, 2, 1, 6, 0, 1}, // Phrygian
    {0, 2, 1, 6, 0, 1, 1}, // Lydian
    {6, 0, 1, 1, 0, 2, 1}, // Locrian
    {2, 1, 6, 0, 1, 1, 0}, // Myxolydian
};
6 Likes

Thanks @desolationjones that description is exactly what I needed. I’m not sure what drove me to think that d was something other than degree of scale/chord. This all makes sense, and I’m getting expected results!

1 Like

Hello. I have tried updating to teletype 3.2.0.
However, it failed on the way.
As a result, when the module starts the boot loader by holding down the front panel button and turning on the power, the boot loader does not start. The LED does not light up and there is no screen display.
Please help me.

BEFORE YOU POST —

  • try the forum search function, it’s pretty good!
  • if monome specific, the docs also can be searched. also feel free to contact help@monome.org for direct support.

TOPIC — please include the device/software in question at the front of your topic line, for example:

  • norns shield - when to shut down?
  • 16n - can i make it send OSC?
  • grid - sum not working
  • max - how do i save a sequence

BE SPECIFIC — if trying to fix a problem, include as much information as possible (each if applicable):

  • steps to reproduce issue, or what you’ve attempted
  • setup details (ie, operating system version, attached devices, cabling arrangement, power source details, etc)
  • screenshots, logs or error output, photo
  • example code

Are you certain that the boot loader does not start? That section of memory should not be affected by the DFU updater application if you used the “–suppress-bootloader” argument. The device should be detected by your computer as an Atmel device. If it is, try using the DFU application again. If not, you might need assistance from Monome.

1 Like

when you power teletype with the front panel button pressed it should start the bootloader, and if it does you won’t see anything on the screen until you flash the firmware, so that sounds normal. try uploading the firmware again.

what’s the output from dfu programmer?

Thank you very much.
I performed the operation again.
Like the attached file, debug51 is displayed.
After that, the screen is blacked out when I turn it on again.

It appears that you are trying to flash the firmware for the White Whale module onto Teletype, which won’t work. You instead need to provide the right .hex file for the desired Teletype firmware when invoking dfu-programmer flash. You need to also make sure that the .hex file you are trying to load is in the folder you are working in, the error here is just showing you that whitewhale.hex was not found.

3 Likes

I tried out DEL.G for the first time today, and was quite surprised about the results. I could very well be wrong, but it seems that either 1) the OP isn’t working as it’s supposed to or 2) the documentation is unclear:

DEL.G 4 100 2 1: xxxx
Reading the docs I’d expect delays of 0ms, 100ms, 200ms, 400ms (would make sense musically)
Fires at 0ms, 100ms, 300ms, 700ms

DEL.G 4 100 1 2: xxxx
Reading the docs I’d expect 0ms, 25ms, 50ms, 100ms
Fires at: 0ms, 100ms, 150ms, 175ms (would make sense musically)

Is there something I’m missing here?

Looking at the doc and your numbers I’m inclined to say that it’s actually accumulative.

So not so much delay_time * (num/denom)^n but instead
y(1)= delay_time * (num/denom)^n + y(0)

According to the documentation you should get:
0ms, 100ms, 200ms, 400ms
and
0ms, 100ms, 50ms, 25ms

Which with a y(1) = x + y(0) would give you the triggers you describe at
0ms, 100ms, 300ms, 700ms
and
0ms, 100ms, 150ms, 175ms

Agreed.

But as mentioned, that’s not what I would find musically practical. I would imagine these would be the most useful (and actually the simplest):

0ms, 100ms, 200ms, 400ms
0ms, 100ms, 150ms, 175ms