it does reset all scripts assignments when a new scene is loaded but not if you just re-execute the init script. as a workaround you could add MI.$ 0 -1 to the init - this will reset all currently assigned scripts.

1 Like

in your cycles MIDI ports config what do you have OUT TO set to? M+U?

I tried the three options. USB, USB + Midi and Midi only, obviously Midi only wouldn’t work but I switched to this when doing the tests with Mio.

I can do more tests tomorrow, with the Launchcontrol and Cycles connected to the Mac, there’s probably something obvious in the way their midi spec is implemented I don’t know. Unless it’s related to some kind of “handshake” USB devices do when connected together, I’m not a specialist :smiley: I remember noticing that in Midi Monitor, some CC send their number whereas other devices send the parameter name (Cycles does that) I don’t know if it’s related. Theoretically, as you mentioned earlier the LauncCtrl is class compliant and doesn’t require a specific driver.

Do you think it’s possible to display a feedback in Live View on the TT when we connect a device ? I mean, display manufacturer, device id etc just as a debugging console ? I guess a complete midi monitor on TT would be too complicated, displaying only a confirmation that new device is connected maybe ?

I have a few other devices I can test with TT if it’s helpful: Octatrack, Linnstrument, Hermod, DSI synths, Nord, Push 2 in standalone mode, Console 1, I can also retry with the OP-1. Really strange this one failed, it’s not supposed to draw power from the USB, there’s an option to avoid that unlike the Roli Blocks.

The Teletype receives MiDi thanks to your work and that’s already a major improvement but if I can help testing in order to ameliorate the compatibility with a large number of midi controllers, I’m happy to do so :slight_smile:

1 Like

thank you! - the more controllers we can test the better.

re: MIDI monitor - something to consider - not sure whether it would be helpful for this particular scenario as it either recognizes a MIDI device or not, so just seeing that confirmed is not that helpful.

less concerned with more “obscure” devices not working (or when there is a workaround, like using the MIDI out on cycles) but typical MIDI controllers like novation should definitely be supported, so this one is more of a concern. if anybody is able to test with novation controllers this would be super helpful.

1 Like

could you try this version with novation and cycles usb? (should display MIDI IN 2* on bootup)

teletype.hex (632.2 KB)
teletype.zip (184.0 KB)

1 Like

You’re right, Novation produces standard Midi devices and have probably implemented the midi spec correctly so it’s worth investigating.

I’ve found something that might be useful, I’m not sure. Last year I had a chat with both T.E and KMI about a compatibility issue between their Oplab and a Softstep 2. To put it briefly, some midi messages sent by a Softstep to OP lab were completely skipped, or a note on message would be triggered only after receiving another kind of midi message, a real mess. I should check if every midi messages is skipped by TT or if some of them are delayed or kind of “pushed” after, it was the case with KMI and OPlab. Not easy to check with the filter written in the init script but I’ll write something to trigger a different script based on the type of midi message received.

Well, on both ends (kMi and T.E), they didn’t want to investigate further, the Op-lab has been discontinued since 2015 etc… Fair enough.

This was the last reply from KMi:

“ *“Based on your description I am almost certain its a running status issue. Basically, running status omits the status byte of MIDI messages of the same type, decreasing the amount of data, and increasing efficiency, especially with high density data streams. It can easily be overlooked by developers, but definitely shouldn’t be.” (KMI support)”

This status byte thing, does it help ?

Yeah it was an issue with KMi and not Novation, and in our case KMi Qunexus works fine with TT… :face_with_monocle: I’ll try your latest firmware, first thing tomorrow…

1 Like

Sure. I will try tomorrow morning and report here :wink:

1 Like

no luck with a launchcontrol either, same on 2*. though now the 16n also doesn’t work, which I had working before. reflashing to 2 didn’t help. I’ll try to do more testing tomorrow.

2 Likes

For me the 16n never worked in this config (plugged directly to TT) but mine has a very old firmware :slight_smile: I read “ teensy based devices that report themselves as serial might not get properly recognized.” so I didn’t investigate any further…

yeah 16n might not work but less concerned about it for now since there is the i2c route.

guess i’m getting a launch control!

i’ve ordered a launch control, should arrive next week. in the meantime, here is an example of using the MIDI IN ops to create a ryk m185 style sequencer intended to be used with korg nanokontrol2 (but could be easily adapted for other controllers):

rykm185.txt (1.9 KB)

the scene assumes factory settings on nanokontrol (i’m on windows 10 and korg does not have a working editor for it). one improvement that could be made is making buttons latching so you get visual feedback on the controller itself - or you could just use the grid visualizer by going to the live screen and pressing alt-g once or twice.

  • knobs control sequence notes
  • faders control repetitions 1-8
  • S buttons select slides
  • M buttons mute steps
  • R buttons switch between 1/all
  • start/stop control sequencer
  • << >> control direction
  • param knob controls speed

scene breakdown
#I
MI.$ 3 1
O.MIN 0; O.MAX 7; O.INC 1
Z 0

assign MIDI CC events to script 1
set up variable O to be used as the current step number

#1
J MI.CL
L 1 J: A MI.C; B MI.CC; $ 2

for every received MIDI CC event, store the controller number in A and the value in B and execute script 2

#2
IF && B == A 41: M.ACT 1; BRK
IF && B == A 42: M.ACT 0; BRK
IF && B == A 43: O.INC -1; BRK
IF && B == A 44: O.INC 1; BRK
SCRIPT 3

if controller number is 41 (play button) start the metro script
if it’s 42 (stop button), stop it
if it’s 43 (<<) change direction to reverse
if it’s 44 (>>) change direction to forward

#3
IF < A 24: SCRIPT 4; BRK
IF == B 0: BREAK
PN 1 - A 32 ! PN 1 - A 32
L 0 7: SCRIPT 5

if controller number is less than 24 (so either faders or knobs) call script 4 and exit.

at this point it should only be one of the buttons, in the default mapping buttons send CC 0 or 127, since they’re momentary we only want to react to when CC is not 0.

pattern bank 1 stores states of slides/mutes/repeats. whenever a button is pressed we flip it (using ! op). as buttons controller numbers start with 32 we subtract it so we can store everything in one pattern bank. script 5 will show current states using the grid visualizer.

#4
K ? > A 8 11 7
P A SCL 0 127 0 K B

script 4 is called when either knobs or faders were moved. we store their values in pattern bank 0 - for knobs (notes) we scale 0…127 CC range to 0…11 (one octave), for faders (repeats) we scale it to 0…7

#5
C * I 2
G.LED C 1 ? PN 1 I 15 4
G.LED C 3 ? PN 1 + 16 I 15 4
G.LED C 5 ? PN 1 + 32 I 15 4

use grid ops to visualize current states for slides/mutes/repeats

#7
G.REC 0 7 16 1 0 0
G.LED * D 2 7 15
DEL / M 2: G.REC 0 7 16 1 0 0

visualize current step - first clear the bottom row, then draw a dot and clear it again after each repeat

#8
D O; Z P D
SC.CV 1 N + 20 P + D 16
SC.CV.SLEW 1 ? PN 1 D V 1 0
Y PN 1 + D 32; X ! PN 1 + D 16

get the current step from O (which will increment/decrement) in D so we can use it multiple times. set Z to the number of repetitions for the current step. set CV (er-301 CV here) to the pitch of the current value, set the slew based on the slide state for the current step, Y is set if only one repeat and X is set if the step is not muted.

#M
M SCL 0 V 10 400 30 PRM
IF < Z 1: SCRIPT 8
IF X: SC.TR.P 1; SCRIPT 7
IF ! Y: X 0
Z - Z 1

use the param knob to determine the speed.
if no repetitions left, get the next step, otherwise check if it’s not muted and send a trigger. if only one repeat, set X to 0 so it won’t trigger any more for this step. finally, decrement repetitions.

video demo

5 Likes

finally got around to installing this, and wowee is it nice! thank you @scanner_darkly!!

1 Like

which controller are you using?

i’ve been using an OP-1 quite successfully :slight_smile:

i like that you include continue as a type, this makes OP-1 controller usage much easier!

2 Likes

cool, good to know! +characters

1 Like

my novation launch control XL arrived and i’m able to use it with teletype. didn’t update the novation firmware - wanted to see if it would work without updating and it did.

i see that they have a new firmware option available for download for both mk1 and mk2, and it mentions this:

New features:

  • Added full class compliance (LaunchControl XL now supports use with MIDI-hosts like Kenton “MIDI USB Host” or iConnectivity “iConnect MIDI”)

which makes me think it wasn’t class compliant previously - in which case it wouldn’t work with teletype. if you don’t mind updating yours, could you check if this fixes the issue? i did update mine and it still works fine - it’s possible mine came with the latest firmware already installed.


can also confirm linnstrument 128 works.

2 Likes

how disappointing, after the dedication you show!

unfortunately I have an original launch control (no XL). and sadly I don’t see a firmware update for it beyond 1.0. (the fact that in 2018 a windows driver was released might indicate something shaky in the implementation. pretty sure the thing should be class compliant, should work with ios)

it’s not a mayor issue for me, I just tested what I had lying around emitting midi (same with 16n).
next is op-z (after finding that usb-c cable that is). I’m was using it mainly with note input from qunexus so far.

it makes me a bit sad that you specially acquired HW and got nothing out of it… :smirk:

edit: let me know if I could check/test anything else (I’m CLI savy, though not much knowledge of the low level stuff)

2 Likes

Hi!
Same thing for me, I own a simple launchcontrol and not the XL with faders. I think it’s already up to date with the latest firmware but I will check again :wink: this device is quite old (2013).

Speaking of controllers, is anybody able to test with a QuNeo ?

1 Like

thank you - i didn’t mind buying the XL specifically for testing as novation is one of the main makers of midi controllers, so i want to make sure it works with their hardware.

yeah, not sure what else i can do for the original launch control. checking the manual it does say it should be class compliant. to investigate the easiest would be to actually have one since i need to debug with teletype, i’ll see if i can find one used, but one thing we could try is - i can make a special version that will print out some info and if you could try it it would be great. should have it in the next day or two.

1 Like

Can confirm the OP-Z works. Controlling Just Friends with the script from the second post in the thread. Incredible. Completely upends my system orientation. Free’s up my arc and grid from ansible to now be used with my norns and gives me the full power of the op-z for composition over my main rig. Will continue to test further, but beyond excited so far. Many thanks @scanner_darkly

4 Likes