Paso 7: Definición de los modos de
Nuestra primera y por defecto será el modo de notas como se mencionó anteriormente.
void SendNotes() { if ( zx_sensor.positionAvailable() ) { z_pos = zx_sensor.readZ(); if ( z_pos != ZX_ERROR ) { if (z_pos != last_z_pos) { MIDI.sendNoteOn(z_pos, 127, midi_channel); // delay(100); // MIDI.sendNoteOff(z_pos, 127, midi_channel); } last_z_pos = z_pos; } } }
Es posible enviar el método NoteOff después de un retraso, pero esto es puramente personal y usted puede elegir cualquiera de ellas. También puede aumentar o disminuir el retraso para dar el mensaje de nota un cierto efecto.
En este método siguiente es nuestro segundo modo. Como se puede ver este método envía los cambios de Control a un efecto de control por ejemplo. Lee el X y el eje del sensor. De esta manera puede simular un pad X-Y en algunos controladores midi. Para dar el valor de estabilidad un poco más nos aseguramos de que el nuevo valor nunca puede ser el mismo que el valor anterior. De esa manera el valor de salida será un poco más consistente.
void SendCC() { if ( zx_sensor.positionAvailable() ) { x_pos = zx_sensor.readX(); if ( x_pos != ZX_ERROR ) { int ccX = constrain(x_pos, 0, 127); MIDI.sendControlChange(3, ccX, midi_channel); } z_pos = zx_sensor.readZ(); if ( z_pos != ZX_ERROR ) { if (z_pos != last_z_pos) { int cc = constrain(z_pos, 0, 127); MIDI.sendControlChange(2, cc, midi_channel); } z_pos = last_z_pos; } } }
Nuestra tercera y última fue el modo de configurar. En este modo puede aumentar o disminuir el canal MIDI de salida. Esto puede ser útil cuando quieres cambiar de instrumentos.
void ConfigureMode() { if ( zx_sensor.gestureAvailable() ) { gesture = zx_sensor.readGesture(); gesture_speed = zx_sensor.readGestureSpeed(); switch ( gesture ) { case NO_GESTURE: break; case RIGHT_SWIPE: if (midi_channel < 16) { midi_channel++; } break; case LEFT_SWIPE: if (midi_channel > 1) { midi_channel--; } break; case UP_SWIPE: currentMode = CC; default: break; } } }
He intentado escribir el código como auto explicativo posible. Usted puede siempre me pregunta si algo no está claro.