- midiCE: TI-84+ CE as a USB MIDI keyboard
- 02 Jan 2025 10:47:09 am
- Last edited by TIny_Hacker on 02 Jan 2025 12:21:17 pm; edited 1 time in total
Overview
I made a video about this last week, but I figured I should get around to making a post on the forum as well. Over the past year or so, I had thenaive brilliant idea to try to learn some more about the CE C toolchain's USB libraries, and I decided that making a program to output USB MIDI events would not be too hard. It probably wouldn't have taken nearly as long if I had known what I was doing, but going into it completely unknowledgeable was certainly an... interesting experience.
The program is compatible with the official USB MIDI standard, which means it should work with anything that can receive USB MIDI input (such as a DAW on a computer) without needing any additional programs or drivers on the computer side. I've tested on Windows, Linux, macOS, ChromeOS, and Android (not iOS but pretty sure that would work too) and it works, so I'm pretty confident that it should work on other devices without issue.
Interestingly, this is also the first program I've made where a bug crashed my computer instead of my calculator (apparently Windows really doesn't like bad USB descriptors):
Key layout
I decided it made more sense to rotate the calculator during use, so I also designed the settings screen with that in mind. Here's what all the different highlighted keys do:
▪ Green - Regular note input. Each horizontally adjacent key is one whole step greater than the previous and each vertically adjacent key is one half step.
▪ Orange - Note input designated to drums (exclusively channel 10).
▪ Purple - Mappable MIDI controls. Each pair of two keys can be mapped to one control, where the left key decreases the value and the right key increases it.
▪ Pink (Salmon?) - Sustain when held.
▪ Red - Increase or decrease the current octave.
▪ Yellow - Increase or decrease the pitchbend value.
▪ Light Gray - Enter settings edit mode.
▪ White - Exit the program.
(More information is also in the readme)
Download
Available in the Cemetech archives.
Source
On GitHub!
I'm pretty happy with how this turned out and it's actually a lot of fun to mess around with (and the key layout surprisingly works pretty well). Looking forward to hearing what you all think!
I made a video about this last week, but I figured I should get around to making a post on the forum as well. Over the past year or so, I had the
The program is compatible with the official USB MIDI standard, which means it should work with anything that can receive USB MIDI input (such as a DAW on a computer) without needing any additional programs or drivers on the computer side. I've tested on Windows, Linux, macOS, ChromeOS, and Android (not iOS but pretty sure that would work too) and it works, so I'm pretty confident that it should work on other devices without issue.
Interestingly, this is also the first program I've made where a bug crashed my computer instead of my calculator (apparently Windows really doesn't like bad USB descriptors):

Key layout

I decided it made more sense to rotate the calculator during use, so I also designed the settings screen with that in mind. Here's what all the different highlighted keys do:
▪ Green - Regular note input. Each horizontally adjacent key is one whole step greater than the previous and each vertically adjacent key is one half step.
▪ Orange - Note input designated to drums (exclusively channel 10).
▪ Purple - Mappable MIDI controls. Each pair of two keys can be mapped to one control, where the left key decreases the value and the right key increases it.
▪ Pink (Salmon?) - Sustain when held.
▪ Red - Increase or decrease the current octave.
▪ Yellow - Increase or decrease the pitchbend value.
▪ Light Gray - Enter settings edit mode.
▪ White - Exit the program.
(More information is also in the readme)
Download
Available in the Cemetech archives.
Source
On GitHub!
I'm pretty happy with how this turned out and it's actually a lot of fun to mess around with (and the key layout surprisingly works pretty well). Looking forward to hearing what you all think!
