Teensy to Axo, which MIDI messages?

midi

#1

Hi there, after a year or so of tinkering, I'm about ready to put my Axoloti into an enclosure. I built a mod matrix with a Teensy and a 4x4 Neotrellis and will be hijacking the MIDI pins behind the DIN input for sending MIDI to the AXO, which should throw a switch in the patch that will route the modulation source to the desired location.

I want to have two layers to the matrix, so I'll need to be able to send messages to 32 separate toggles. I'm not sure what the "proper" MIDI messages to handle this would be, and I'd like to not build something that shoots future me in the foot.

Should I try to find 32 different CC's and send 0 or 127 for off and on, or should I use a handful of CC's and use different CC values to indicate which toggle I'm trying to address? Or is there a preferred method that I don't know about?

Thanks a ton,
Brennan


#2

Which Teensy are you using? If your teensy sends 3.3v logic, and your PA2 and PA3 pins are available (just PA3 if you're only sending MIDI to Axoloti), you can hook a single wire between Teensy TX and Axoloti RX and vice versa, along with a single ground instead of using the pins behind the MIDI jack. That way the jack is still available if you want to use it.

Afterwards the only thing you need to do is put two objects in your controller object: gpio/serial/config (set to baud rate 31250) and script/script2. You can test if this worked by opening a new file and seeing if it receives MIDI. Your controller object will not receive MIDI from the objects, so make sure it's a new file.

How does your mod matrix work? I'm curious.


#3

Thanks for the help, @hitachii. I'm hoping to hold onto PA2 and PA3 for pots, so that's why I'm using the DIN pins.

The matrix is a 4x4 trellis, and right now I have just that and a button hooked up to the teensy, which is then sending CC's to the Axo. I essentially have a grid with four sources across the top (LFO1, LFO2, S&H, Mod Envelope) and then four destinations below. The button connected to the teensy cycles through pages (changing the colors of the neopixels in the trellis for reference) and then sends a CC message to the Axo when one of the buttons is pressed.

The Teensy remembers the state per page, and the active mod->target routing is shown on by lit-up buttons on the trellis.

I've hooked it up by sending 32 different on/off CC triggers, but I'm still not sure that it's the most logical way to handle it. I get how to use CC's for values, but I'm less sure what the standard usage is for on/off.

I'm including my master patch which handles the mod matrix and then a subpatch that handles the voice. Feel free to make suggestions, I'm pretty new to this, so I'm sure there are efficiencies I've missed.

full-synth.axp (19.1 KB)
voice.axs (24.5 KB)


#4

CC messages can be recognized as booleans. If you send a value of 0, it's saying "off". If you send a value of 1 or greater, it's saying "on". You can see how this works pretty easily by hooking up a ctrl/dial/p to a disp/bool and turning it from 0 to anything else.

It appears that you're running the Axoloti 2.0 firmware so I can't open your patch. Many on this forum have advised against using 2.0 because they've had problems and it's still in beta with no foreseeable completion. If it works for you though, what do I know!


#5

Ah. I upgraded to 2.0 when I first got my board, but haven't really run into any problems (that I know of). This explains why I can't find new objects added to the community library!

Anyway, here are two screen grabs of the patch I'm using. I only have one of the pages of the mod matrix built out, but it shows how I'm handling it.

I'm also uploading the start of my panel design. I have a buddy that runs a stainless steel building company, and he laser cuts and engraves panels for me out of scrap. He did a really great panel for a sequencer I built.

Main patch with mod matrix

Subpatch with inlets for mod matrix

Panel mockup