Menú
gratis
Registro
Hogar  /  Problemas/ Controlador midi de suelo DIY. Cómo hacer un controlador MIDI barato basado en Arduino con tus propias manos

Controlador midi de suelo de bricolaje. Cómo hacer un controlador MIDI barato basado en Arduino con tus propias manos

El teclado está diseñado para conectarse a un módulo de sonido externo o a una computadora (si hay una interfaz adecuada) utilizando el protocolo MIDI, para grabar música en un programa secuenciador o presentaciones en vivo. El número de teclas en la versión propuesta es 48, pero se puede aumentar a 64 sin alterar el circuito. Una característica distintiva del teclado propuesto es su sensibilidad a la fuerza del impacto sobre la tecla.

Historia del dispositivo

Hace algún tiempo, en relación con la compra de un apartamento, me vi obligado a perder un instrumento de lujo que me servía como teclado MIDI: era el legendario YAMAHA DX-7. Cuando la tristeza disminuyó, surgió la pregunta con toda su severidad y fealdad: ¿en qué trabajar? Fue en este momento que, gracias al esfuerzo de mi amigo, cayó en mis manos un circuito a medio ensamblar para el KR1816BE39 (en términos adversarios, este procesador se llama 8048). El circuito es fácil de montar y configurar y, lo más importante, llegó a mano en el momento adecuado. Monté el teclado en forma de matriz de 8x6 usando KR1533ID7 y KR1533KP7. También hubo una mosca en el ungüento: dos inconvenientes de este esquema acaban con todas sus ventajas: la falta de sensibilidad a la velocidad de pulsación de teclas (altavoces) y la rueda PITCH WEEL. Bueno, una vez programé en el Z-80 (e incluso hice un secuenciador que funcionara) y decidí deshacerme de los viejos tiempos. Descarté decisivamente el Z-80 como CPU por considerarlo moralmente obsoleto. Además, no quería soldar mucho y decidí tomar como base este mismo dispositivo en el KR1816BE39, equipándolo con otro multiplexor para los contactos de ruptura (superiores) de las teclas. Encontré documentación (no lo creerá, en la biblioteca, el libro "Diseño de dispositivos digitales en microprocesadores de un solo chip") para el ensamblador KR1816BE39 y garabateé un programa... Y luego resultó que el programador ROM de un amigo había murió, y simplemente no había nada con qué flashear el programa... Por pena, perdí completamente la cabeza y decidí reescribir el mismo algoritmo para PIC. En medio día, se soldó el programador (LUDIPIPO), luego se hizo un prototipo a partir de un socket, KR1533ID7 y un par de KR1533KP7, y MGTF realizó toda la instalación sin ningún sello. Y el proceso comenzó...

Primero se lanzó una versión no dinámica del programa (también la presento para quienes tienen un teclado con un contacto por tecla). Entonces comenzó la versión dinámica. Y entonces surgió la idea de añadir botones y un indicador. El hecho es que tuve un WAVEBLASTER (un sintetizador de tabla de ondas hijo para sistemas de sonido muy antiguos) inactivo durante mucho tiempo. Al conectarlo a mi creación, obtuve algo en lo que puedes jugar (lo mejor que puedas y talento) sin una computadora, lo cual a veces es bastante conveniente. Esto determinó el conjunto de funciones de los botones; puede resultar útil al conectar módulos de sonido durante la reproducción "en vivo". Las funciones de los botones son fáciles de cambiar escribiendo sus propios controladores y utilizando mis procedimientos de sondeo y visualización. De alguna manera, el teclado ensamblado en una caja de hierro resultó ser más conveniente que el YAMAHA PSS (todavía teclas de tamaño completo, un pedal y, lo más importante, ¡dinámica!). En medio del proceso creativo, surgió el difícil deseo de hacer una versión del teclado MIDI exclusivamente para computadora: el indicador y los botones son opcionales, pero se necesitan las ruedas PITCH WEEL y MODULATION. Luché con ello por un tiempo, pero finalmente me di por vencido y volví a encender el soldador. La electrónica no es difícil de montar, pero la mecánica es algo más complicada y comencé a fruncir el ceño ante el diseño de las ruedas. Después de pensarlo un poco, decidí abandonar la segunda rueda; de todos modos, nunca hago girar ambas a la vez, por lo general escribo notas y tono primero, y luego agrego modulación. Una de las consideraciones más importantes fue reducir a la mitad el volumen de trabajo mecánico que tanto me gustaba. Para los menos perezosos, a continuación os explico cómo hacer dos ruedas casi sin complejidad. Para poder seguir escribiendo modulación, decidí organizar tres modos de funcionamiento de la rueda: tono para 2 semitonos, tono para 1 semitono (conveniente) y modulación. Puede cambiar todo esto con un botón e indicar el modo con un par de LED. Para simplificar el circuito, eliminé los botones e indicadores restantes; todo esto no es necesario para trabajar con programas secuenciadores modernos.

La rueda, por supuesto, debe colocarse en el eje del potenciómetro, esto es comprensible, pero ¿a qué se debe conectar? Lo primero que pensé fue utilizar un one-shot en el temporizador 555, pero los cálculos mostraron que sería difícil lograr precisión y estabilidad en la medición de la duración del pulso al intentar proporcionar una frecuencia de muestreo de rueda aceptable, ya que el procesador está principalmente ocupado midiendo. el tiempo de conmutación de los contactos del teclado. La única forma que queda es utilizar un convertidor analógico a digital (ADC). Como usé un Pic16F84 sin un ADC incorporado, recordé mi experiencia en ingeniería (y mi fábrica nativa) e hice un ADC a partir de varias resistencias con un comparador (y un fragmento de programa). Resultó sencillo, económico y bastante preciso.

Les presento ambos diagramas, tanto con botones como con rueda, así como programas para ellos. Si lo desea, ambos circuitos se pueden combinar fácilmente cambiando ligeramente las direcciones de los dispositivos externos; sólo debe recordar que el modo CHORUS (STEREO) utiliza el tono para obtener la desafinación y debe eliminarlo o preocuparse por transmitir el tono con desafinación; a través de canales.

Entonces, el teclado real

Diagrama del dispositivo

La primera que apareció fue una versión no dinámica, insensible a la fuerza del impacto sobre la tecla, para probar la funcionalidad del diseño.

Utilicé el PIC16F84 como procesador por varias razones: este chip está disponible, es barato y fácil de programar, además, era el que tenía a mano. Atención: PIC16C84 no es adecuado: solo tiene 36 celdas de RAM y el programa no funcionará. Sin embargo, el circuito de la rueda utiliza menos celdas de RAM y su programa se puede introducir en el PIC16C84 reduciendo un par de celdas más, por ejemplo MIDCH (asignando un canal MIDI constante a todos los datos transmitidos).

El diagrama de un teclado dinámico con indicación se muestra a continuación:

El circuito es tradicional en muchos aspectos: es difícil reinventar una bicicleta sin pedales ni ruedas. El puerto J J funciona para la transmisión; los 7 bits inferiores generan la dirección clave en la matriz o datos para dispositivos externos (indicador y DAC de rueda). El bit más significativo se utiliza para generar datos MIDI en código de serie; la conversión y la salida se realizan en software. Por lo tanto, el cristal debe estar a 4 MHz a menos que desee reescribir la rutina de salida de bytes MIDI. Los dos bits menos significativos del puerto A funcionan para la recepción: reciben señales de los multiplexores de los contactos de tecla "liberados" y "presionados", y los tres bits más significativos determinan la dirección. dispositivo externo(a través de otro decodificador KR1533ID7). En el circuito con la rueda, abandoné el decodificador de direcciones del dispositivo externo para simplificar el circuito y liberar el bit alto del puerto PA4 para la entrada de datos del comparador, por lo que las direcciones del teclado y los botones son diferentes. Al combinar los circuitos, será necesario devolver este microcircuito, para descifrar la dirección, utilizar los bits de puerto PA2 y PA3 y direccionar 4 dispositivos: teclado, botones, registro de datos de indicación dinámica y registro de familiaridad de indicación dinámica. Será necesario reescribir la indicación del modo de rueda.

El circuito con la rueda PITCH WEEL / MODULATION tiene este aspecto:

Se instala un diodo en cada tecla para desacoplar. Las resistencias en las entradas de los multiplexores no deben ser superiores a 8k; de lo contrario, es posible que se produzcan fallos debido a la capacitancia de montaje. Indicador: cualquiera con un ánodo común de 3 dígitos, si los terminales de los segmentos de cada dígito se emiten por separado, los terminales de los segmentos del mismo nombre deben combinarse: la indicación es dinámica y los dígitos se iluminan secuencialmente. Cualquier botón, sin bloqueo, el rebote de contactos se controla mediante software. Los LED están instalados cerca de los botones del mismo nombre e indican la activación de los modos correspondientes; los botones "+" y "-" no tienen LED. Los transistores del indicador son de conducción inversa de alta frecuencia y baja potencia. Se utilizan dos registros KR1533IR23 para bloquear alternativamente la dirección y el código del dígito indicador actual (los LED también están agrupados en dos cuasi dígitos). he usado teclado estándar de órganos eléctricos soviéticos con 48 teclas (también se produjo por separado como constructor de radio "START" y está bastante extendido). Para reducir la altura del teclado y el grosor del instrumento, se dejaron dos de los seis grupos de contacto debajo de cada tecla, y se cortó y volvió a pegar todo. En general, un grupo de conmutación por tecla es suficiente, pero era más conveniente pegarlo de esta manera. Las barras colectoras de los contactos “liberados” y “presionados” tienen una longitud de 8 teclas. Si lo desea, también puede utilizar un teclado donde, en lugar de un grupo de contactos de conmutación, se utilizan dos pares de contactos de cierre: un par se cierra al comienzo del movimiento de la tecla y el otro al final (como en los instrumentos YAMAHA). En este caso, la señal a PA0 debe ser suministrada desde la salida inversa del multiplexor (pin 6). Sin cambios en el circuito, puedes usar un teclado con 64 teclas (estándar – 61, es decir, 5 octavas). Si es necesario, el número de claves se puede aumentar al menos a 127; para ello, es necesario introducir otro decodificador KR1533ID7 en el circuito.

Es muy importante configurar bien la mecánica: los contactos superiores DEBEN cerrarse cuando se sueltan las teclas. Si no se hace esto, el programa considera que dichas teclas están presionadas e intenta procesarlas, por lo que presionarlas nuevamente no produce ningún sonido. Además, el número máximo de notas que se pueden tocar simultáneamente es 10 (si a alguien le han crecido más dedos en la mano, este número se puede cambiar fácilmente), y no soltar las teclas reduce este número. Por las mismas razones, el número de teclas especificadas en el procedimiento de sondeo del teclado DEBE coincidir con el número de teclas reales. El software suprime el rebote de contactos.

Para un ADC de matriz resistiva R-2R, es aconsejable seleccionar resistencias con una precisión del 1 al 2%, y los valores absolutos pueden ser diferentes, la relación es importante. Sin embargo, no debe aumentar mucho el valor nominal; esto aumentará el tiempo de conversión debido a la capacitancia de entrada del comparador. yo usé resistencias SMD sin selección, aunque las mediciones han demostrado que en una tira de montaje las resistencias suelen coincidir con una precisión superior al 1%. Estoy seguro de que el circuito funcionará con resistencias imprecisas, pero la linealidad de la característica se deteriorará. La rueda en sí está hecha de un mango de un televisor antiguo y tiene un resorte en el eje del potenciómetro que la devuelve a la posición media. Para la comodidad de configurar la mecánica, cuando enciendes la alimentación con el botón de modo presionado, se activa un programa de depuración que enciende el LED cuando la rueda está en la posición media, esto te permite ajustar la posición cero. de la rueda sobre el eje del potenciómetro. Si existe la necesidad y el deseo de hacer una rueda de MODULACIÓN separada, es necesario conectarla a un elemento comparador libre (hay cuatro), y la matriz R-2R es común para ambas ruedas. Para conmutar las salidas de los comparadores, es mejor utilizar un microcircuito adicional y utilizar PA2 como señal de control.

Si lo desea, puede ensamblar una versión dinámica del teclado sin indicación, botones y rueda de MODULACIÓN / PITCH WEEL, simplemente sin ensamblar la parte no utilizada del circuito. Todos los parámetros modificables se configurarán por defecto cuando se encienda la alimentación...

Todo esto se puede alimentar desde cualquier cosa; el consumo de corriente depende del indicador específico y no supera los 100 mA. Tengo un estabilizador 7805 directamente en la placa sin disipador de calor (se puede ver claramente en la foto). Se necesita un radiador pequeño si se le suministran más de 9v. El comparador funciona con una tensión de 9 a 12 V, preferiblemente estabilizada. Sí, utilicé microcircuitos de fabricación soviética a partir de existencias antiguas; hay una gran cantidad de sus análogos modernos, el reemplazo es posible e incluso deseable; los análogos modernos tienen un consumo menor.

Programa

El algoritmo para procesar teclas presionadas proviene del propuesto en la revista “Microprocessor Tools and Systems” No. 5, 1986. Fue esta publicación (o mejor dicho, un error en el programa propuesto) la que me impulsó a estudiar ensamblador. En realidad, la única idea tomada de allí fue registrar el número de cada tecla presionada en un área de RAM especialmente asignada (CHAN), para que cuando el teclado sea sondeado nuevamente, no procese nuevamente la tecla ya procesada. Tengo dos celdas de RAM asignadas para cada una de las teclas presionadas (no más de 10 en total): en la primera se registra el número de la tecla presionada, en la segunda, su VELOCIDAD (velocidad de presión). Repito: solo hay 20 de estas celdas y la dirección inicial viene con el nombre CHAN. El signo de un par libre es el bit más significativo del conjunto de la primera celda. El bit más significativo de la segunda celda que se establece significa que la NOTA ON para esta clave ya se ha transmitido y no necesita procesamiento adicional.

No describiré todo el programa en detalle; el código fuente está repleto de comentarios y es bastante accesible para una persona capacitada. Por lo demás, proporciono inmediatamente firmware listo para usar en los archivos Dinamic.hex y Pitchmod.hex. Explicaré sólo algunos puntos no obvios. Bueno, primero que nada, sobre la dinámica: en el momento en que se abren los contactos superiores de una llave, su número se escribe en la primera celda del primer par libre del área CHAN, restableciendo simultáneamente el signo del par libre. El valor inicial VELOCIDAD = 127 se escribe en la segunda celda. La sensibilidad del teclado está determinada por la frecuencia de interrupción, ya que el procesamiento de interrupciones reduce los valores de VELOCIDAD para todas las teclas para las que aún no se ha transmitido NOTA ON. Las interrupciones son causadas por un temporizador incorporado. En el momento en que se cierran los contactos inferiores de la tecla, se establece el signo “transferido” en la celda CHAN correspondiente y se transmite NOTA ON con la VELOCIDAD actual. Para mejorar la curva de sensibilidad, los valores de VELOCIDAD disminuyen según una ley logarítmica: 1/16 de su parte, reducido en 1, se resta del valor de VELOCIDAD actual, así, mientras la tecla se desplaza del contacto superior al inferior. uno, el valor de VELOCIDAD en la celda CHAN correspondiente disminuye de acuerdo con la ley logarítmica, y cuanto más rápido se mueve la tecla, mayor es la VELOCIDAD en el momento en que se cierran los contactos inferiores de la tecla y se transmite NOTA ON. Las interrupciones también controlan la visualización dinámica, esto se hace para eliminar el parpadeo del indicador.
Funciones de los botones: TRANSPONER: todas las teclas se reducen a su La menor favorita: rango +/- 15 semitonos. PRG asigna un timbre (instrumento) a un preset determinado (UP1-UP5) y VOL asigna su volumen. Configuración actual se muestra en el indicador y se puede cambiar usando los botones “+” y “-” TWIN muestra un timbre “doble”: uno de los preajustes (UP1-UP5) y, al mismo tiempo, el sonido preestablecido INFERIOR simultáneamente. STEREO emite el sonido del preset actual a los canales estéreo derecho e izquierdo con una ligera “desafinación” (efecto “chorus”). El botón SPLIT no está activado. El pedal SUSTAIN está diseñado como uno de los botones; la capacitancia de su cable no debe ser muy grande. Las direcciones de los controladores de botones se recogen en una tabla al comienzo del programa; al cambiar las funciones de los botones, puedes sustituirlas por las tuyas.

El ADC de la rueda es mitad software, funciona mediante un algoritmo de aproximación sucesiva, la matriz R-2R realiza la conversión de digital a analógico. Primero, se aplica un 1 en el dígito más significativo a la matriz R-2R y el comparador determina si es mucho o poco. Si hay poco, 1 permanece en el bit más significativo, si hay mucho, 0. Luego sucede lo mismo con cada bit de orden inferior posterior (6 pasos en total) y obtenemos un número de seis bits correspondiente al ángulo de rotación de la rueda. Esta precisión me parece suficiente, pero puedes añadir un bit más aumentando la matriz y el programa de conversión.

Diseño

Como teclado real, utilicé un constructor "Start" de fabricación soviética, ahora, tal vez, sea más fácil encontrar un Yamaha o Casio viejo e inoperable, esto también resolverá el problema de fabricar la carcasa, a menos, por supuesto, que sea viejo; El instrumento está relativamente intacto...

No se desarrolló una placa de circuito impreso; consideré inapropiado dedicar tiempo a cablear y hacer una placa para hacer una sola copia del dispositivo, y el diseño se realizó en una placa de circuito utilizando puentes MGTF. Como conector y cable para el teclado, utilizamos un cable de una unidad de disquete de una computadora con un conector correspondiente en cada lado; esto facilita el montaje/desmontaje del dispositivo terminado.

En mi caso, el cuerpo estaba doblado con una fina chapa de acero (lo que tenía a mano), con lados de madera (como viejos instrumentos soviéticos).

Bueno, en resumen, eso es todo. ¡Éxito creativo!

Lista de radioelementos

Designación Tipo Denominación Cantidad NotaComerciomi bloc de notas
Esquema número 1.
MicrocontroladorPIC16F841 al bloc de notas
ChipKR1533ID71 al bloc de notas
ChipKR1533KP71 al bloc de notas
Regulador lineal

LM7805

1 al bloc de notas
Diodo

KD522A

64 al bloc de notas
Condensador22 pF2 al bloc de notas
Condensador0,1 µF2 al bloc de notas
100 µF2 al bloc de notas
Resistor

220 ohmios

2 al bloc de notas
Resistor

6,8 kOhmios

8 al bloc de notas
resonador de cuarzo4MHz1 al bloc de notas
Botón del teclado 64 al bloc de notas
Esquema número 2.
MicrocontroladorPIC16F841 al bloc de notas
ChipKR1533ID72 al bloc de notas
ChipKR1533KP72 al bloc de notas
ChipKR1533IR232 al bloc de notas
Regulador lineal

LM7805

1 al bloc de notas
transistores bipolares

KT315A

5 al bloc de notas
Diodo

KD522A

80 al bloc de notas
Condensador22 pF2 al bloc de notas
Condensador0,1 µF2 al bloc de notas
condensador electrolítico100 µF2 al bloc de notas
Resistor

180 ohmios

7 al bloc de notas
Resistor

220 ohmios

2 al bloc de notas
Resistor

6,8 kOhmios

16 al bloc de notas
Resistor

8 kOhmios

1 al bloc de notas
resonador de cuarzo4MHz1 al bloc de notas
LED de 3 dígitos indicador digital, con ánodos comunes. 1 al bloc de notas
CONDUJORojo12 al bloc de notas
interruptor de llave 64 al bloc de notas
Botón 16 al bloc de notas
Esquema número 3.
MicrocontroladorPIC16F841 al bloc de notas
ChipKR1533ID71 al bloc de notas
ChipKR1533KP72 al bloc de notas
Comparador

El controlador MIDI es un dispositivo que convierte un determinado proceso físico en un conjunto de comandos digitales en formato MIDI. El proceso físico puede ser cualquier cosa, desde presionar una tecla con el dedo hasta girar la perilla de volumen. El flujo de comandos resultante se transmite a través del protocolo MIDI a otros dispositivos: una computadora, muestreadores de hardware, sintetizadores o secuenciadores externos y allí se descifra de cierta manera. El tipo más común de controlador MIDI es el teclado MIDI, el equivalente electrónico de un teclado de piano. También hay muchos otros tipos de controladores, incluidas las baterías electrónicas.

En mercado moderno presentado gran cantidad varios controladores MIDI instalaciones electronicas, diferenciándose según diversos criterios, como precio, calidad, características técnicas, etc. También hay varios dispositivos de usuario terminados que se implementan como proyectos comerciales (eDrum, megaDrum). Pero, a pesar de todo esto, el deseo de crear un dispositivo de este tipo con sus propias manos todavía vive en la mente de los Kulibins modernos.

Así que hace unos años, un poco tarde, me interesé en crear un dispositivo de este tipo, ya que formaba parte de un grupo de música heavy. Tocábamos hard rock, o más bien algo así como brutaldeath, goregrind, grindcore. Toqué la guitarra eléctrica. Un poco antes compramos una batería Sonor y por las noches hacíamos ruido en el garaje. Posteriormente nos preguntó el garaje, y surgió la duda sobre el local. Al no encontrar nada que valiera la pena, decidimos ensayar en casa, lo que inmediatamente provocó un conflicto con los vecinos. Aquí surgió la cuestión de la batería electrónica.

Paralelamente a tocar instrumentos en vivo, escribía música electrónica y usaba instrumentos y complementos VST, en particular para crear partes de batería, prefería Addictive drums y ezDrums, que tienen la capacidad de trabajar con una interfaz MIDI. Sin siquiera googlear este tema, Me lancé de lleno al desarrollo de mi propio controlador MIDI en un microcontrolador ATMega32 asequible en un paquete DIP, que tenía 8 canales ADC a bordo. No quería cercar el circuito y decidí limitarme a 8 entradas. Como el ATMega32 no tiene hardware usb, utilicé conexión estándar al ordenador mediante usb virtual. Después de trastear con la programación durante varios días, logré poner en marcha el dispositivo. Imagínense mi sorpresa cuando en Internet descubrí un dispositivo ya preparado con un diagrama de circuito y firmware (MegaDrum). Pero todo lo que no se hace es para mejor.


USB completo

De profesión soy programador, pero de profesión soy programador de electrónica, candidato a ciencias técnicas y, como solía decir mi antiguo supervisor, soy suizo, segador y trompetista. Como suele ocurrir, me obsesioné con los AVR, no porque sintiera algo por ellos, sino porque eran completamente satisfactorios en el trabajo. caracteristicas tecnicas. Pero llegó el momento en que ya no fueron suficientes. Y luego vino el stm32 para reemplazarlo, entre otras cosas, teniendo a bordo un completo interfaz usb. De aquí surgió la idea de crear un controlador MIDI completo. Además, ya tenía experiencia trabajando con una interfaz MIDI.

¿Por dónde empezar? No teníamos stm32 en paquetes DIP (si es que existen en la naturaleza), por lo que la idea de soldar en la placa de circuito desapareció de inmediato. En ese momento comenzaron a aparecer placas de desarrollo baratas basadas en microcontroladores stm32, como DISCOVERY. Y ahora soy el feliz propietario de la placa de depuración STM32F407DISCOVERY, que también incluye un programador ST-Link. El procesador STM32F407 tiene 16 canales ADC, aunque 4 canales están ocupados por periféricos con los que simplemente se rellena la placa de depuración. Pero para mis propósitos, 12 canales fueron suficientes.


Después de haber dedicado algún tiempo a estudiar el entorno de programación Keil, la arquitectura del microprocesador STM32F407, así como bibliotecas estándar periféricos para trabajar con USB, escribí un programa para sondear todos los canales ADC utilizando un canal de acceso directo a la memoria, así como un compuesto dispositivos USB, que incluye MIDI Audio Device y HID para cambiar la configuración del dispositivo.

Como sensores para los tambores utilicé una campana piezoeléctrica ZP-1, que se podía comprar en una tienda a un precio económico.


Tomé el diagrama de cableado de MegaDrum.


El programa de control lo escribí en Delphi con una reserva de 16 canales. En principio, el número de canales del dispositivo se puede aumentar infinitamente agregando multiplexores analógicos al circuito, como se hace en Megadrum, pero para nuestros propósitos 16 canales son suficientes, ya que no somos músicos tan avanzados. Y para un baterista novato, esta cantidad de tambores será muy fácil.


El dispositivo se probó tanto en Windows como en Linux utilizando el rastreador Renoise. No se encontraron problemas especiales en el trabajo.
Pero decidí no detenerme ante este resultado. El STM32F407 es un procesador bastante sofisticado, por lo que es relativamente caro. Era más barato fabricar un dispositivo con STM32F103. eBay vino al rescate. Compré una placa de desarrollo con STM32F103RBT6 incorporada.


Es cierto que no tiene programador incorporado. Tuve suerte porque todavía tenía un programador ST-Link de mi trabajo anterior.


Tuvimos que reescribir completamente el firmware, ya que los principios operativos de los procesadores 407 y 103, aunque no radicalmente, son diferentes.
Luego encontré una placa de depuración en Internet, que en realidad costaba un centavo, y decidí que de esta manera podría reducir el costo de los componentes al mínimo.

Básicamente, el artículo está destinado a guitarristas y otras personas como ellos, ya que pocas personas necesitan un pedal, encienden el teclado adicional, atan las teclas y listo. Aunque dicho control puede resultar bastante apropiado para los DJ. Pero funciona mejor con Guitar Rig y TH1. En general, hoy recopilaremos algo similar a:

Entonces, primero necesitas recolectar los repuestos necesarios. Aquí tienes una pequeña lista de ellos:

Marco. Se requiere lo primero y más básico, es difícil encontrar el adecuado. Compré un estuche para el taco para este propósito.
- teclado USB, preferiblemente no muy antiguo, porque es posible que el cableado no funcione.
- Llaves (las que recogí): PBS-16B (PIES), SPA-101B4 (ADOPS), PBS-15B push ON (ON). Todo sin fijación. Puedes comprarlo en Chip and Dip.
- Cables. Muchos de un solo núcleo. creo que es mejor para esto par trenzado. 2 metros detrás de los ojos. Es simplemente incómodo relajarse.
- Bueno, creo que casi todo el que decide montar este dispositivo tiene un soldador.
- Herramientas para realizar agujeros en la carcasa. Si eres hábil con algo, puedes incluso usar un tornillo autorroscante y luego usar un cuchillo para editarlo, pero repito, creo que todos tienen un taladro.

Bueno, comencemos. Lo primero que debes hacer es marcar y perforar agujeros en la carcasa:

Ahora pasemos a la parte más dañina de hacer nuestro pedal. Soldamos los cables de acuerdo con el diagrama, no olvide colgar hojas de identificación con los números de entrada en las entradas del teclado:

Debería verse así:

Ahora comenzará el muy elaborado proceso de soldar al controlador desde el teclado USB. Déjame señalar que si tienes la suerte de comprar/encontrar/quitar un teclado con un controlador como el del diagrama adjunto arriba, entonces sin estación de soldadura no puedo arreglármelas. Puedes fijar el tablero a la carcasa con casi cualquier medio disponible, clavos líquidos, tornillos autorroscantes, superpegamento, silicona y, en general, si no lo pateas demasiado fuerte, aguantará, pero depende del En este caso, el par trenzado presiona firmemente el tablero.

Hacemos mejoras cosméticas; quien quiera, soldar un diodo al cuerpo de NUB LOCK... Haga un agujero para el cable y vuelva a cablearlo. Cable USB. Bueno, ya no queda mucha imaginación. Resultado final:

Fase 2: Configuración del software. Espero que esto no sea un problema para todos los que fabricaron este dispositivo. Para Guitar Rig, todo puede ser más fácil que nunca: active el bloqueo numérico, encienda el equipo, abra OPCIONES - CONTROLADOR, presione MENÚ, busque acción requerida, haga clic en el botón Aprender y seleccione el botón apropiado en nuestro controlador. Luego haga clic en Agregar controlador y vuelva a realizar las mismas operaciones. Y así hasta que tecleamos todo lo que necesitamos o nos quedamos sin claves. También puedes asignar una clave a casi cualquier acción en la tercera plataforma, hacer clic derecho en el objeto y presionar Aprender nuevamente.

Pero ahora, si está interesado en configurar toda esta creación en el comando Midi, tendrá que divertirse un poco más.
Esto significa que necesitamos un software que vincule las teclas a los comandos midi. Y existe un programa de este tipo, aunque no he visto ningún análogo, afortunadamente no hay necesidad de tratar la codicia. Se llama Virtual Midi Controller, la acción clave se configura en la pestaña C IN, instalación - Configuración - Siguiente - Siguiente. Aquí está el enlace.


También se incluye un cable MIDI virtual, para que no tengas que hacer ningún movimiento innecesario. Para los realmente perezosos, estoy publicando un banco preestablecido para el pedal: bank - deberían reemplazar el archivo en la raíz de la carpeta del programa, por defecto C:\Program Files\Virtual Midi Controller\, después de salir de VMC. Para mayor comodidad, en CONFIGURACIÓN, marque la casilla de verificación Ejecutar en segundo plano y en la ventana principal de VMC, haga clic en la letra K, después de lo cual el programa aceptará comandos en modo minimizado. Ahora para salir del programa necesitas eliminarlo de la bandeja. Y a partir de ahora podrás controlar tanto Nuendo como Sonar desde el pedal. Bueno, por supuesto, TH1 también toma nuestro teclado vía midi.

Cualquier duda, por favor contacte...

Próximos proyectos previstos:
- Blindaje de guitarra.
- Combinación de bricolaje.

Buena suerte para ti en tus actividades musicales...

Desde hace mucho tiempo, para los productores e ingenieros de sonido, un controlador MIDI se ha convertido en un atributo importante que ayuda a crear música hermosa. Los instrumentos virtuales siempre suenan especiales, por eso son la decoración de cualquier melodía.

Debido a que muchos músicos están muy preocupados por la calidad de sus productos, surge la pregunta: cómo elegir un controlador tipo midi? Este artículo describirá consejos y criterios básicos de selección.

¿Qué es un controlador MIDI?

En la década de 1980, se utilizaba un dispositivo llamado controlador para permitir que un músico controlara el funcionamiento de varios sintetizadores a la vez usando un teclado. Esta idea fue un éxito, por lo que los dispositivos de este tipo se extendió inmediatamente. Si no todos pudieran comprarlos entonces, entonces en este momento Los controladores han bajado significativamente de precio. Músicos, ingenieros de sonido, compositores, intérpretes, DJ: todos utilizan estos dispositivos.

¿Qué es un dispositivo que tiene teclado? Es similar a las teclas del piano y del sintetizador. Ha agregado perillas, varios botones y controles deslizantes. Al interactuar con ellos, la melodía se transmite a módulos de sonido, que son de tipo externo. Estamos hablando de portátiles y otros dispositivos. En otras palabras, los controladores (la mayoría de ellos) no son capaces de producir sonido por sí solos. Están diseñados para regular bits, notas y otros parámetros reproducidos desde un dispositivo externo (módulo de sonido).

¿Cuáles son las ventajas de un controlador MIDI? Lo más obvio: es versátil y portátil. Gracias a él, puedes aplicar todos los efectos virtuales y controlar el software moderno. Se puede transportar fácilmente utilizando, por ejemplo, una bolsa para portátil.

¿Qué buscar al comprar?

Antes de comprar cualquier controlador, debes pensar para qué sirve. Sería útil responder las siguientes preguntas; le darán una idea precisa de qué opción de la gran variedad es adecuada.

¿Para qué se utilizará el controlador? Un dispositivo destinado a representaciones teatrales debe tener un material resistente a la tensión mecánica. Teniendo en cuenta que la mayoría de los controladores están hechos de plástico, debes prestar atención a las opciones de metal. También debe decidir el tipo de mecanismo y el número de llaves. Si hay demasiados, existe la posibilidad de confundir el propósito de cualquiera de ellos durante una actuación en vivo.

Un pequeño controlador MIDI funcionará bien para un DJ. No es nada difícil hacerlo con tus propias manos si una persona entiende de electrónica. Esto significa que los DJs suelen utilizar dispositivos caseros. Puedes leer más sobre esto a continuación. Debe comprar dicho dispositivo teniendo en cuenta el hecho de que también necesitará manijas y controles deslizantes. Sin ellos, el programa (el controlador MIDI solo funciona en conjunto con él) no realizará las funciones deseadas.

Si un músico edita pistas en la cama, en un avión, en un coche u otro lugar, la principal consideración a la hora de elegir será la portabilidad. Teniendo en cuenta que el dispositivo está encendido, es necesario prestar atención a aquellos que se pueden cargar desde el bus USB.

Controladores MIDI de Pioneer

El controlador MIDI Pioneer es un dispositivo que siempre ha tenido una gran demanda. En el mercado de equipos similares. este fabricante Ha estado entre los tres primeros durante mucho tiempo. ¿Qué distingue a los modelos Pioneer “relacionados” entre sí? Sólo disponibilidad funciones adicionales, que en el panel de control parecen botones mecánicos normales. Cualquier controlador de esta marca tiene excelentes jog wheels. Apariencia serio y elegante. El impresionante tamaño del dispositivo se compensa con su máxima funcionalidad.

No hay necesidad de preguntarse qué modelo elegir. Inmediatamente deberías echar un vistazo más de cerca al DDJ-T1. El dispositivo es recomendado por muchos. La relación calidad-precio es bastante buena. El panel de control es cómodo, los botones se pueden pulsar sin problemas y el dispositivo es fácil de transportar.

Controlador de plataforma de lanzamiento Novation

El controlador MIDI Novation Launchpad está diseñado específicamente para funcionar con Ableton Live. El dispositivo es adecuado tanto para actividades de escenario como de estudio en casa. Con él también será fácil celebrar discotecas. La cuadrícula del dispositivo consta de 64 botones. Está equipado con efectos adicionales, así como funciones para trabajar con software. El dispositivo se puede conectar a una computadora y funciona tanto con la familia Windows como con algunos otros sistemas operativos.

Controlador MIDI DIY: ¿realidad o mito?

Los controladores MIDI caseros tienen una gran demanda desde hace mucho tiempo. ¿Qué se necesita para hacer realidad tu idea? Necesita un diagrama según el cual se soldará y montará el dispositivo, un presupuesto, un físico o un electricista versado en este campo.

Más allá del conocimiento lado técnico, también debes preguntarte cuánto sabe el creador sobre controladores. Para ensamblar adecuadamente un dispositivo que cumpla con todas las expectativas, es necesario comprender qué mejor base uso, por qué se ensamblará el modelo y también dónde se debe instalar el panel de control. La cuestión es bastante compleja, pero completamente solucionable. Hoy en día existen muchos circuitos prefabricados que se pueden utilizar para ensamblar un controlador. Lo principal es la confianza en tus planes y la paciencia.

modelo marca akai

Akai lanzó recientemente un nuevo controlador llamado MPC Touch. A diferencia de los dispositivos relacionados, éste tiene una pantalla de 7 pulgadas. Esto hace que trabajar con él sea mucho más fácil. Según las revisiones, hay que decir que el modelo descrito se utiliza como ejemplo cuando se trata de controladores profesionales. Mirándolo y considerando la funcionalidad, la pregunta de cómo elegir dicho dispositivo desaparece de inmediato. Software Funciona con bastante rapidez y eficacia, no surgen problemas y las averías son extremadamente raras.

El único inconveniente es que el controlador no puede funcionar sin una fuente de alimentación, ya que no tiene batería. La marca Akai es conocida en el mercado desde hace mucho tiempo. Su controlador MIDI es un dispositivo potente y de alta calidad que puede soportar cargas pesadas. A menudo se utilizan algunos modelos en el escenario.

Una vez más, tocando la guitarra y controlando el sonido a través de Peavey ReValver y otros Amplitubes, pensé en comprar un controlador MIDI. Los dispositivos de marca, como Guitar Rig Kontrol 3, cuestan alrededor de 13.000 rublos y solo se pueden colocar en el suelo. Es decir, cambiar rápidamente las posiciones de varios reguladores es muy problemático.

Varios controladores direccionales de DJ parecían más interesantes debido a la abundancia de atenuadores y codificadores. Decidieron combinar negocios con placer y hacer yo mismo un controlador MIDI.

Requisitos iniciales: 2-7 faders, la misma cantidad de potenciómetros/codificadores giratorios, alrededor de 10 botones, conexión USB.

Luego comencé a elegir componentes. Elegí Arduino por su disponibilidad, en principio puedes usar el mismo ATmega32u4, STM u otro controlador. Encontré los atenuadores y los botones en una tienda de radio local. El codificador y los potenciómetros ya se compraron en algún momento. Encontré los interruptores de palanca en el garaje. Decidí hacer el estuche desde la tapa superior de un reproductor de DVD.

Accesorios:

  • Arduino UNO R3 1 ud.
  • Faders sp3-25a 5 uds.
  • Boca. potenciómetros 3 uds.
  • Codificador 1 ud.
  • Botones pbs-26b 16 uds.
  • Funda DVD 1 ud.
  • Interruptores de palanca 2 uds.

Primero, doblé el cuerpo y le hice agujeros con un taladro para los atenuadores:

Luego taladré los agujeros para los interruptores de palanca y la boca. potenciómetros, marcaban la posición de los botones. Como no tenía un taladro de 19 mm (ni siquiera un portabrocas correspondiente), taladré los agujeros para los botones a 13 mm y luego los agrandé con un escariador.

La base está lista, ahora puedes pensar en cómo conectar todo esto al Arduino. Mientras estudiaba este tema me encontré con un maravilloso proyecto HIDUINO. Este es el firmware para ATmega16u2 integrado en Arduino, gracias al cual el dispositivo se define como un dispositivo MIDI USB-HID. Lo único que podemos hacer es enviar datos MIDI vía UART a 31250 baudios. Para no saturar el código fuente con definiciones con códigos de eventos MIDI, utilicé esta biblioteca.

Como usaba Arduino, decidí hacer un escudo al que se conectarían todos los periféricos.
Esquema de escudo:

Como puede ver en el diagrama, los botones están conectados mediante un circuito matricial. Se utilizan las resistencias pull-up integradas del ATmega328, por lo que la lógica es inversa.

Botones de inicialización

para (byte i = 0; i< COLS; i++){ //--Конфигурируем строки мтрчн клвтр как выходы pinMode(colPins[i], OUTPUT); //--подаём на них лог. 1 digitalWrite(colPins[i], HIGH); } for(byte i = 0; i < ROWS; i++){ //--Конфигурируем столбцы мтрчн клвтр как входы--------- pinMode(rowPins[i], INPUT); //--включаем встроенные в мк подтягивающие резисторы-- digitalWrite(rowPins[i], HIGH); }

Valores de lectura

para (byte i = 0; i< COLS; i++) //-Цикл чтения матричной клавиатуры----- { digitalWrite(colPins[i], LOW); //--На считываемый столбец выставляем 0--- for(byte j = 0; j < ROWS; j++) //--Построчно считываем каждый столбец-- { //--И при нажатой кнопке передаём ноту-- dval=digitalRead(rowPins[j]); if (dval == LOW && buttonState[i][j] == HIGH) MIDI.sendNoteOn(kpdNote[j][i],127,1); if (dval == HIGH && buttonState[i][j] == LOW) MIDI.sendNoteOff(kpdNote[j][i],127,1); buttonState[i][j] = dval; } digitalWrite(colPins[i], HIGH); }




Se me olvidó colocar diodos en el sello, tuve que soldarlos a los botones.

Los potenciómetros están conectados mediante un multiplexor 4052b a las entradas del ADC.

Lectura de posiciones del potenciómetro

para(byte chn = 0; chn< 4; chn++) //-Цикл чтения значений потенциометров { set_mp_chn(chn); //--Задаём параметры мультиплексора val=analogRead(0) / 8; //--Считываем значение с канала X if (abs(val-PrVal) >5) //--Si el valor actual es ex. del pasado ( //-- más de 5, luego envía un nuevo valor MIDI.sendControlChange(chn,val,1); PrVal=val; ) val=analogRead(1) / 8; //--Leer el valor del canal Y de la misma manera que X if (abs(val-PrVal) > 5) ( MIDI.sendControlChange(chn+4,val,1); PrVal=val; ) )


El codificador estaba configurado en una interrupción de hardware.

Leyendo el codificador

void enc() // Procesamiento del codificador ( currenttime=millis(); if (abs(ltime-currenttime)>50) // anti-rebote ( b=digitalRead(4); if (b == HIGH && eval<=122) eval=eval+5; else if (b == LOW && eval>=5) evaluar=evaluar-5;


MIDI.sendControlChange(9,eval,1);

tiempo = milis();



) )

Diseñé la placa de circuito impreso en el diseño Sprint, luego la hice con el viejo LUT usando película autoadhesiva y cloruro férrico. La calidad de la soldadura se ve afectada por una soldadura terrible.

  • Escudo listo:
  • Para cargar firmware a ATmega32u4, cortocircuité 2 pines ICSP y luego usé Flip. Más tarde conecté un botón a estos pines.
  • El firmware funciona, solo queda atornillar las paredes y el panel frontal. Como marqué todo en su lugar, me tomó más tiempo dibujar el panel que todo lo demás. Se veía así:
  • 1. Se utilizó papel cuadriculado como fondo de la imagen.
  • 2. Se marcaron agujeros
  • 6. Se instaló el panel, se colocaron todos los botones/potenciómetros.
  • 7. Hubo inconsistencias entre la plantilla y el cuerpo.
  • 8. Vaya al paso 2 hasta que todos los agujeros coincidan.
El panel está hecho de PET milimétrico, cubierto con una película impresa y laminada, los agujeros fueron cortados con láser a partir de un archivo CDR. De los anunciantes de Irkutsk, todo esto me costó sólo 240 rublos.

Las paredes laterales fueron cortadas de madera contrachapada.

Tipo de dispositivo actual:

Costo de los componentes:

  • Arduino UNO R3 RUR 320
  • Faders sp3-25a 5x9=45 r.
  • Boca. potenciómetros + perillas 85 frotar.
  • Codificador 15 frotar.
  • Botones pbs-26b 16x19=304 frotar.
  • Panel 240 frotar.
  • Multiplexor 16 frotar.
  • Madera contrachapada, textolita, interruptores de palanca, estuche para DVD; en mi caso, gratis.
Total: 1025 frotar.

El controlador hace frente a las tareas que se le asignan y controla el sonido en casi cualquier programa de procesamiento de audio.

Los planes son cubrir la madera contrachapada con tinte y cortar la cubierta inferior de plexiglás. Agregue también un puerto de expansión para conectar un controlador de piso.

Código para Arduino y signet en Github.