MIDI, Serial Protocols, and Baud Rates Oh My!

Good evening folks,

I’m working on a MIDI controller design, and I have a question that I have to imagine has come up here and there and would like some perspective.

So, the controller I want to make is a pretty straight forward Arduino controller. However, I want to make it as versatile as possible as far as output options are concerned with: Traditional MIDI out socket, 3.5mm MIDI out audio barrel socket, MIDI-USB out via USB-C, and 0-5v Pitch CV for Teenage Engineering products.

I have most of the electronics figured out. I want to use a Teensy 4.1 powered from a 5v power supply, which will output the MIDI signal to a MOSFET (BSS138) to shift the MIDI to the 5v required per the MIDI protocol.

My question is with the MIDI-USB and MIDI signal baud rates. USB is 9600 bps and MIDI is 31250 bps, and I think I can put put both signals using the AltSoftSerial library for Teensy. My question is, does this work in practice? Who’ll the controller appear to constantly connect and disconnect from the DAW?

Any insight into this issue would be appreciated. Thanks.

There are 8 hardware serial ports on the teensy 4.1, no need to use software serial, hardware supported serial is a far better choice if it’s available.

In terms of general approach, yes it works just fine to transmit both USB midi and serial midi.

USB midi should be significantly faster than 9600 buad and midi baud rates.

There are two standards for TRS midi, on my midi controllers I tend to only add TRS midi and use a TRS to DIN midi adapter.


Thanks. I was a bit unclear as to how the serial ports worked with respect to clocks and timers.

Using the hardware serial pins will be much easier.

And I’m adding all the ports partly for ease of use in lots of situations and partly as a study in various signal outputs. I was also going to add the midi over Bluetooth protocol and use low energy ble.

Thanks clarification. I appreciate it.

1 Like