


I haven't really tried this so I would do a few more searches on the topic of something like "velocity sensitive midi arduino". I'll read that article in more detail, as I may have to go with the FSR that he used. So velocity measurement won't be exclusive to each individual key, but every key on that same data bus of the matrix (which is ok with me).ĭo you think having one Arduino doing so many things at once will have noticeable latency? The matrix is kind of like 2 matrices overlapping - one for each type of switch (low hit point and high hit point of the key press). The onboard processor does this well, but the keyboard has no MIDI and it would be cool to also have velocity in MIDI by tapping into that matrix. The speed of hitting the switches per single press translates into velocity. The switches are stacked vertically with a degree of displacement, so when you complete a full press, you turn on both switches. For the keys, each note has two switches (122 total), and so the onboard processor must measure the time it take between hitting each switch during one key press, and generate velocity based on that value. I'm just concerned that the above desired functions will be too much for one Arduino board to handle effectively, and with low latency - as I know that they are serial microprocessors at 16 MHz. And will this allow for polyphony - can all 61 keys be scanned at (actually near, but indiscernible to the human ear) the same time? My question: Is this possible for a 61 key keyboard to have velocity in addition to generating a MIDI signal for the note.AND have a decent level of polyphony and low latency, all from ONE Arduino module? Or would I need to chain additional modules together and assign them specific functions? For instance, Arduino #1 handles velocity measurement, while Arduino #2 handles generating the MIDI note from key press, while #3 combine the data from #1 and #2 to form a complete MIDI signal for output. I've seen tutorials with FSR strips and such, but since my keyboard matrix already has 2 switches per key, I should be able to assign each of the 2 data switches (per note group) to an interrupt and have the Arduino measure the time between the triggering of each switch per note press and convert this time into a MIDI velocity parameter. In other words, I want the MIDI signal generated by the Arduino (after key stroke) to also contain velocity data. I have a 61 key velocity sensitive non-MIDI keyboard and I want to add MIDI to it using the Arduino and still maintain velocity sensitivity as a MIDI function.
