Proyecto Midi piano eléctrico reciclado

Buenas a todos, me presento mi nombre es Leonardo.
Primero ante todo, descubrí este mundo hace exactamente una semana y me absorbió por completo, pero naturalmente mi entusiasmo y ansias no van de la mano con mi entendimiento, (lo mas cerca que estuve de algo similar fue conectar una perilla de luz).

Mi proyecto fue el siguiente: reciclar un piano eléctrico Casio, solo mantener el teclado matricial con las teclas, y con Arduino lograr convertirlo en un piano midi funcional. Para mi asombro luego de leer mucho este foro logre el cometido y mi piano es funcional, transmite midi y suena en orden cada nota, pero me encontré con dos problemas a solucionar.

Problema 1: cuando presiono una tecla del piano, el programa me manda el comando NoteOn y el NotOff seguido uno atrás del otro, sin importar el tiempo que esta este presionada.

Problema 2: El programa que cree no me admite mas de una tecla presionada a la vez.

Obviamente el problema esta en como arme el sketch de Arduino, ya que seguramente en mi inexperiencia no estaré utilizando las funciones correctas para mi objetivo. Adjunto el código que recopile utilizando la librería Keypad y la librería Midi. Espero puedan ayudarme y muchas gracias de antemano.

En cuanto a las conexiones físicas, son simples y no veo problema en ellas, pero repito, soy novato en esto así que ante la duda las declaro: el piano matricial llega con 15 pines de los cuales puede (mediante ayuda de un tester digital, en modo continuidad) identificar a los pines (1,2,3,4 y 5) como columnas, y a los pines (6,7,8,9,10 y 11) como filas.

Teniendo esto en cuenta los conecte en los pines digitales de Arduino de la siguiente forma:

pines teclado

Columnas Filas
1 2 3 4 5 / 6 7 8 9 10 11
12 11 10 9 8 / 7 6 5 4 3 2

pines digitales Arduino

Codigo Usada:

#include <Keypad.h> //cargamos libreria Keypad.

const byte FILAS = 6; //numero de filas Matricial.
const byte COLUMNAS = 5; //numero de columnas Matricial.
byte teclas[FILAS][COLUMNAS] = { // declaramos la forma de la matriz y asignamos el valor Midi de cada nota que queremos representar en cada tecla.
{ 48,54,60,66,72},
{ 49,55,61,67,73},
{ 50,56,62,68,74},
{ 51,57,63,69,75},
{ 52,58,64,70,76},
{ 53,59,65,71,77}
};
byte filasPins[FILAS] = {7, 6, 5, 4, 3, 2}; //declaramos en que pines esta cada fila, se ingresa en orden.
byte columnasPins[COLUMNAS] = {12, 11, 10, 9, 8}; //declaramos en que pines esta cada columna, se ingresa en orden.

Keypad keypad = Keypad( makeKeymap(teclas), filasPins, columnasPins, FILAS, COLUMNAS );

#include <MIDI.h> // Cargarmos libreria Midi.
MIDI_CREATE_DEFAULT_INSTANCE();

void setup() {
MIDI.begin(); //iniciamos transmicion Midi.
Serial.begin(115200); // Cambiamos la velocidad del puerto serie.
}

void loop() {

byte tecla_presionada =keypad.getKey();//declaramos variable de tecla presionada.

if (tecla_presionada)
{MIDI.sendNoteOn(tecla_presionada, 127, 1);
MIDI.sendNoteOff(tecla_presionada, 0, 1);