@scanner_darkly Yes, exactly.

1 Like

cool. looks like there is one available locally, will pick it up next week and do some testing.

1 Like

If you prefer (so that you don’t have to buy a Novation just for this test), I can test stuff on my side too, if you want me to try the special firmware for example

1 Like

thank you - thought about it and it’s likely something that will require me tinkering with the code and trying different things, so easier to just get one. and it’s a nice little controller, if i can make it work :slight_smile:

2 Likes

Yes indeed! Ditto on what nordseele said :relieved:

2 Likes

i found a user launchcontrol mk1 and unfortunately it’s not something i can make work with teletype midi in ops. it registers as a MIDI device not supported by the library, and i don’t have enough knowledge about the USB/MIDI stack to fix it.

so the choice is - abandon the ops altogether, or add them but with a warning that not all controllers are supported.

i’ve updated the experimental beta for the midi in ops (in the OP) so that it now includes everything from the latest “official” beta (see Teletype 3.2+ feature requests and discussions). please give it a test.


…anybody wants novation launchcontrol mk1 and xl mk2? :grimacing:

2 Likes

Is there any reason this wouldn’t work with norns sending midi into TT? :open_mouth:

iiuc norns is a usb host, so it wouldn’t work that way.

1 Like

It does with the sevillasoft dongle in between :blush:

@scanner_darkly
Thank you so much for your effort on this!! It’s a shame. I’d definitely say don’t ditch all the functionality just because a few devices might not work! I use the ops with note messages (keyboard or trigger sequencer).
I would take the xl (always eyed, never got one), but I’m in europe so doesn’t make much sense I guess.

1 Like

I think you should add them anyway, with a warning, rather than abandoning all your work. Many devices will work, these ops will come in handy in many cases.
What about Teensy based devices ? Do you think there’s a way to make them work with TT ? I’m wondering if Bleached would work.

Yeah, I wouldn’t abandon your work. It seems very useful. We can always develop a user community list of devices known to work (and not).

2 Likes

i’m not actually sure if that was the reason the nakedboards controller didn’t work - just a guess. i just tried it again with debugging and it’s the same thing as with launchcontrol mk1 - it’s registered as a MIDI device but as a not supported one, so unfortunately not something i can fix.


this is the reason for my apprehension for adding these ops - i don’t have enough knowledge of USB/MIDI protocol and stack to be able to provide proper support for these ops. like, i don’t even know how typical this type of MIDI controllers is.

For Teensy based devices,this might be something we can fix. At least it will be easier than with a Launchcontrol. I remember that some devices would not recognize the 16n in “Midi” mode but there are several options when you compile the Teensy firmware, setting the Teensy to “USB + Midi” would work sometimes. I remember that I never got the 16n to be recognized by Hermod, probably for the same reasons. I will investigate…

At least it’s working with many midi devices so I would suggest to keep them unless they take a lot of memory I don’t know :man_shrugging: But don’t worry about support, I’m sure people will understand that’s its not working with every midi devices. It’s great to have these ops, just in case

1 Like

so both launchcontrol mk1 and nakedboards reported using interrupt USB endpoints instead of bulk endpoints. the library used by teletype does not support that for MIDI devices, and i don’t know how much work it is to add that (i will definitely say that i’m not touching anything USB related : ).

not sure if that’s something that can be changed on the teensy side (or if indeed it’s teensy related), and not sure how common MIDI controllers that use interrupt endpoints are.

1 Like

To be honest I haven’t read the whole Midi protocol, but I will someday. I was more studying the I2c protocol lately haha :slight_smile: And I’m more in favor of putting the USB cables and the noise they introduce sometimes away from my case but…

I’m often modifying my setup and it’s good to have multiple options, it’s good to know that the TT can serve as a Swiss knife at some point without having to add another module just for sending a few notes or a Midi clock for example. It’s good to know that I will be able to plug an OP-1 to Teletype for example if I don’t have spare room for another module. That doesn’t mean I would rely on TT for all Midi to CV duties, mainly because it’d fail if the midi device connected to it draws too much current from it. But it’s been tested successfully with many devices and we can surely list compatible devices like Joe has suggested.

P.S: I’m still working with “Hans”, perhaps it could serve as a Midi bridge for TT too and handle a part of the job while keeping the USB port of Teletype available for a keyboard or Grid

1 Like

First round testing results for MIDI ops. I’ve only tested the simple MI.L* variants so far.

Devices Tested:

  • Korg Kronos
  • Behringer Deepmind 12
  • Arturia Beatstep Pro **

Observations

  • Note, velocity, controller messages seem to behave as expected - all devices
  • MI.$ 0 x : My thinking was that script x would fire on any event - note, controller, etc. But it only seemed to trigger on note on events
  • The remaining event types did seem to trigger the expected scripts from all devices
  • For the Kronos which can operate across 16 MIDI channels it is detecting all the channels correctly - both notes and controllers
  • Same with BSP’s 2 “melodic” channels, 1 “drum” channel, and 1 “control” channel for CCs.
  • I know you said clock is not supported but I did try firing up the Kronos sequencer. MI.$ 4 4 - script 4 never fires with the sequencer running though I know for sure it is sending MIDI clock.
  • Start/stop controls of the Kronos sequencer do send events 6 and 7 (was expecting 5 and 6 but not sure?)
  • Unable to determine if the BSP’s transport controls are registering an event

** I know testing BSP seems like a weird choice since it has CV outs. But it does have twice as many drum triggers via MIDI, and also sends velocity for the drum sequencer over MIDI, which is not available over CV, so I thought it’d be interesting.

Will try to test the more complex scenario with multiple messages received in the 50ms window soon. Thanks again @scanner_darkly! This is cool stuff! Just wrapping my head around it.

2 Likes

this is super helpful, thank you!

both sound like a bug, will take a look!

1 Like

More data points:

  • MAudio Axiom 61 - does not seem to work [1]
  • Novation Impulse 49 - does not seem to work [2]
  • Roland TD-15 VDrum Module - does not seem to work
  • MAudio Uno - works
  • Korg Nanopad 2 - works, both the drum pads and the XY pad
  • Akai Pro Advance 49 - partially works [2] [3]

MAudio Uno is a MIDI DIN to USB adapter. I tested the TD-15 with this after trying it’s native USB MIDI, and was able to get messages from the vdrum kit with the Uno. I guess this would work with anything with MIDI DIN out.

[1] I have not used this unit in years - probably should verify it works at all, though it did power up and look ok. :slight_smile:

[2] As a point of comparison, I also tested each of these units with Westlicht Per|former module’s USB MIDI port and MIDI monitor page. For the ones I listed as don’t work, they also didn’t work with Per|former. Except the Novation Impulse which seemed to work fine with Per|former but not teletype. Oppositely, Akai Advance mostly worked with teletype but didn’t even register on Per|former

[3] Note and velocity seems to work fine. CCs behave erratically. I am updating T with MI.LC and whenever I move a CC control it alternates between about 3 different numbers. One of them appears to be the correct CC number

OK, I’m going to stop for now as this is starting to feel like confessions of a MIDI device hoarder.

Question: can scripts be overloaded with events? E.g.

MI.$ 1 1
MI.$ 2 1

to fire script 1 for both note on and off?

2 Likes

this is fixed, new firmware in the OP!

i think this might actually work as intended - i vaguely recall seeing some device sending “continue” instead of “start”. do you get event type 6 for “stop”?

this does make me feel better about things not working with teletype! and since teletype uses the same MIDI implementation as ansible i would expect same result with ansible.

i wonder if it actually sends multiple CCs from one knob - like high resolution mode or something like that. can you try this script:

#I
MI.$ 3 1

#1
PN 0 0 MI.CL
L 1 MI.CL: PN 0 I MI.C
L 1 MI.CL: PN 1 I MI.CC

since MIDI events are processed based on a timer, it’s possible that several events can happen before the next check, these op variations allow you to process all events that happened, not just the latest one. this script should process all CC events and place them in pattern banks 0 (controller number) and 1 (CC value) starting with index 1. value in pattern bank 0 at index 0 will contain the total count of events since the last time the script was executed.

this is important if you want to get reliable output from multiple knobs or chords.

yep, you can totally assign same event types to the same script (say, to save space), and then use MI.LE to determine which event triggered the script.

that would make a good name for an album (or a memoir) :slight_smile:
thanks again for your help - if you ever visit vancouver i owe you a beer!

2 Likes

Negative - should we ever meet in person, drinks are on me. :slight_smile:

This was not working in the 2nd build but seems to be fixed in the 3rd build that fixed the MI.$ 0.

Akai Pro Advance 49

So your ‘process events in window script’ helped me figure it out, though it was not actually sending multiple CCs when adjusting a single. What was oddly happening is that I was connecting to teletype via the 2>1. When connected to the 2>1, there is some sort of weird bi-directional jitter going on with MIDI CCs. No clue what’s happening here, as nothing weird happens with the 2>1 with other devices. I think we can confirm Akai Advance 49 works now, when I connect directly to teletype (surprised my old rev teleype powers this thing with its color TFT and huge multi-color LED drum pads). See video for what happens when connected via 2>1.

More Confessions/Device testing

  • Roland Juno-G does not seem to work (with teletype or per|former)
  • MAudio Venom does not seem to work with teletype but does work with per|former

And Then…

I thought I’d actually try to do something a little more advanced and maybe useful. This is an ER-301 chain preset and teletype scene for an 8 voice polyphonic piano with velocity sensitivity that you can play with attached midi controller. It is set up to be last note priority but I have not actually implemented the voice stealing yet - works fine if you don’t exceed 8 notes.

It’s actually working quite well! This is something I haven’t been able to do with modular yet. I could do 8 voice poly, but not with velocity per voice too - that would require a MIDI–>CV converter with 24 CV outs which I don’t have. Until now (kind of) with i2c.

If anyone wants to try it, I think the most fun screens to watch and understand what’s going on are the pattern view on teletype, and the hold mode view on ER-301. Note that if you need to implement an octave transpose to put middle C where you want it, that’s in script 3. Just add or subtract some volts (V). I subtracted 2.

SC.CV + J 1 - MI.NV V 2

I recommend to put the .wav and .slc in /ER-301/samples unless you want to go re-attach the wave file across 8 sample players. I have only tested this on ER-301 v 0.5.03 48kHz version.

Poly 8 Piano ER-301.zip

2 Likes