Paso 14: Software - programa de procesamiento
Este programa se conecta al puerto serie de la plataforma podemos recibir la señal. Obtiene los mensajes, descifra y formatos de un mensaje MIDI y envía hacia fuera. También incluye una interfaz de usuario que le permite seleccionar el puerto serie adecuado y la conexión MIDI. Puede jugar algunos bastante espeluznante piano con el teclado si se conecta al sintetizador MIDI de Microsoft! De todos modos, te voy a dar una visión general de cómo el software funciona y entonces decirle cómo configurarlo. Necesitamos algunas cosas primero.
Materiales:
- Procesamiento de IDE
- 1,0 biblioteca proMIDI
- Biblioteca controlP5
Ver el paso anterior para enlaces
Obtener configuración
Comenzar con la instalación de las bibliotecas. Encontrar la carpeta de proceso (generalmente en documentos) y el ir a Processing\libraries. Extracto de las bibliotecas en esta carpeta y debe todo listo (es lo mismo que instalar las bibliotecas de Energia o Arduino).
Entender el código
Hay algunas partes del código no relacionado con el procesamiento de la entrada del controlador DJ. Se trata de manejar el puerto serie y las conexiones MIDI, así como crear la interfaz de usuario. No cubriré estas partes del código. Consulte la página de cierta biblioteca en cuestión si desea una explicación de cómo funciona.
Los datos desde el controlador entra en nuestro programa en la función denominada 'serialEvent'. En esta función, los dos bytes separados del mensaje se combinan en un char 16 bits (no entero... porque el proceso no tiene tipos de datos sin signo, ver los comentarios de código para obtener más información y ranting). Entonces llama a la función 'ParseMessage'...
ParseMessage es el punto de partida para el procesamiento de los bits que recibimos desde el controlador. Utiliza matemáticas bit a bit para decodificar el número y tipo de control que envió el mensaje. Basándose en estas propiedades, puede entonces enviar el mensaje a la función adecuada para ser procesados.
Si el control es un control analógico, llama 'ProcessAnalog'. Esta función decodifica el valor de 10 bits de control y lo convierte en un valor de MIDI entre 0 y 127. A continuación, envía un mensaje de MIDI de cambio de control mediante una llamada a 'SendControlChange'. Un cambio de control es un control de tipo MIDI que tiene una entrada variable en lugar de una nota, que tiene un estado encendido y apagado.
Si el control es un control digital, tiene 3 opciones en cómo procesarla: Si el número es 0, ese número es reservado para el teclado por lo que envía a 'ProcessKeypad'. Si el número es 1, ese número es reservado para el codificador rotatorio por lo que envía a 'ProcessRotary'. Si el número de ID es ninguno de estos valores reservados, procesa como una entrada digital general (también conocido como botón) enviando el mensaje a 'ProcessDigital'.
ProcessKeypad descifra Qué tecla se presionó, su estado de encendido/apagado, el modo que seleccionó en el momento y la cubierta que fue seleccionada en el momento. A continuación, envía una nota de MIDI basada en esta información. El número de nota MIDI se calcula mediante un algoritmo especial que da a cada combinación de un valor de nota única.
ProcessRotary decodifica lo que el valor del mensaje es y si se pulsa el botón integrado mientras que el codificador rotatorio se convirtió. Los valores van de 0 a 2, con 0 significa rotación, rotación en sentido antihorario 1 sentido y 2 lo que significa un doble click (utilizado para cargar las pistas a la cubierta seleccionada). La broca de superspeed se establece en 1 si el botón integrado fue empujado hacia abajo mientras gira, y si se presiona hacia abajo, el programa envía 10 mensajes MIDI. Puesto que el codificador rotatorio está destinado a ser utilizado para navegar por una biblioteca, esto le permite desplazarse más rápidamente a través de canciones.
ProcessDigital simplemente descodifica el último bit del mensaje y que indica si se debe enviar un sobre o un mensaje MIDI de la nota específico asociado a ese control.
Para obtener más información sobre el protocolo utilizado en este proyecto, vea el primer paso en la sección de Firmware.
Ejecutar el código y configuración del Software
Ahora que entiendes el código, permite llegar a correr!
Te darás cuenta cuando primero abra de procesamiento es casi idéntica a la Energia. Parten de lo mismo tipo de (cableado, creo). Esto es super intuitivo para empezar! Copie y pegue mi código en la ventana del editor y haga clic en el botón de Play en la esquina superior izquierda ("Run").
Una pequeña ventana debe aparecer que tiene tres botones y dos menús desplegables. Estos controles le permiten seleccionar qué salida MIDI para conectar a y entrada de puerto serie para escuchar. El botón actualizar permite actualizar las listas si usted desenchufe el enchufe en el launchpad o una conexión MIDI. Para nuestros propósitos, conecte la línea de salida MIDI para loopMIDI (Windows) o el puerto MIDI virtual creado anteriormente (Mac/Linux). Conecte en el controlador y el puerto serie al puerto serie que el controlador está en. Debe ser utilizado con Energia. Entrada MIDI de su controlador debe llegar ahora a lo que está conectado al otro extremo de su puerto MIDI virtual.