MIDIbox es un proyecto de código abierto no comercial con una serie de guías sobre cómo construir interfaces de dispositivos de instrumentos musicales ( MIDI). A través de una serie de tutoriales de hágalo usted mismo , los usuarios son guiados en el proceso de construir un microcontrolador básico que también se puede usar para construir unidades de control MIDI de hardware para varios sintetizadores , software de grabación multipista y otros dispositivos MIDI; así como sintetizadores, secuenciadores y otros proyectos independientes.
Historia
La plataforma de hardware MIDIbox es la continuación del trabajo anterior de Thorsten Klose sobre controladores MIDI. [1] [2] Los diseños se basan en un entorno estandarizado de módulos reutilizables e intercambiables. Poco después del lanzamiento de los primeros módulos, un pequeño grupo de entusiastas se formó y se convirtió en una próspera comunidad de desarrollo de código abierto.
La plataforma de hardware MIDIbox (MBHP)
La plataforma se centra en módulos bien definidos y documentados basados en circuitos pequeños y sencillos, para permitir el montaje de aficionados. Estos módulos luego se ensamblan en un proyecto completo. Todas las placas se pueden hacer como una sola capa PCB y placas de prototipos diseñados con un programa gratuito programa de CAD . Casi todos los componentes tienen orificios pasantes para facilitar el montaje.
La primera plataforma de hardware MIDIbox, (MBHP), se basó en su propio sistema operativo de código abierto , MIOS (sistema operativo MIDIbox), escrito en lenguaje ensamblador PIC , para mayor velocidad y precisión. Una capa de envoltura C proporciona una codificación simplificada. MIOS está diseñado y documentado para permitir una simple reconfiguración, adaptación y extensión por parte de aficionados y entusiastas.
La nueva plataforma de hardware MIDIBox, MIOS32, se ejecuta en procesadores basados en ARM LPC1769, de NXP, y STM32F407, de STMicroelectronics , y se basa en un sistema operativo en tiempo real (RTOS) derivado de FreeRTOS . [3] La cadena de herramientas para MIOS32 se basa en GCC y utiliza únicamente lenguaje C.
Los modulos
Actualmente, están disponibles alrededor de 15 módulos separados:
Módulos de microcontrolador
- Módulo principal
- Módulos programadores PIC como un quemador PIC real o el módulo JDM
Módulos de entrada
- Entrada analógica del módulo AIN (0-5 V)
- Entrada digital del módulo DIN (ENCENDIDO / APAGADO)
Módulos de salida
- Salida digital del módulo DOUT (por ejemplo, LED ENCENDIDO / APAGADO)
- Pantalla de cristal líquido del módulo LCD
- Salida analógica del módulo AOUT para salidas de voltaje (para controles)
Módulos secuenciadores
- Secuenciador SEQV4 V4
- Secuenciador SEQV4L V4 Lite
- Secuenciador SEQV3 V3
[ Seq V3 (arriba), MIDIBox FM (abajo) ]
Módulos de sonido
- Módulo SID para el SID de tecnología MOS (como se encuentra en el Commodore 64 )
- Módulo OPL3 para los chips FM YMF262 y YAC512
- Módulo IIC SpeakJet para SpeakJet SoundChip
Módulos de expansión de memoria
- Módulo de memoria BankStick 32k / 64k
Módulos de E / S MIDI
- Indicadores LED MIDI del módulo LTC + 1 salida MIDI + 1 Thru (+ 1 puerto COM opcional)
- Módulos USB Interfaz PC / USB
Módulos varios
- Módulo MF para controlar Motorfaders
- Módulos IIC para comunicarse con otros dispositivos (microcontroladores) a través de I2C
Módulo RTP-MIDI
El sistema operativo MIDIbox (MIOS)
El sistema operativo MIDIbox (MIOS) facilita el diseño de aplicaciones de controlador MIDI flexibles. MIOS se adhiere a una plataforma abierta no comercial como fundamental para el intercambio de ideas y adaptaciones personales que no son posibles con controladores comerciales.
La mayoría de los controladores creados por la comunidad se basan en diseños documentados existentes y comienzan su vida con el conjunto de funciones que proporciona el firmware existente. Los usuarios finales pueden mejorar sus dispositivos con código de programa intercambiable y personalizarlos para que se adapten a su aplicación de host, sintetizador u otro dispositivo MIDI. Los usuarios también pueden personalizar para adaptarse a su propio flujo de trabajo preferido o diseñar un nuevo proyecto desde cero.
El código fuente de la aplicación, los esquemas del módulo y los diseños de PCB están disponibles gratuitamente para uso no comercial como plantillas para modificaciones y mejoras. Por lo tanto, MIOS y la plataforma de hardware permiten una entrada fácil al desarrollo de microcontroladores para aficionados, al tiempo que hacen posibles aplicaciones fuera de los dominios del mercado MIDI convencional y comercial.
MIOS fue licenciado bajo GPL hasta la versión 1.8. Las versiones posteriores ahora requieren el permiso de Thorsten Klose para uso comercial. [6]
Especificaciones
El sistema operativo consta de un kernel que proporciona al usuario enlaces a eventos de hardware y software, y funciones para la interacción con los módulos de la plataforma de hardware. Un módulo de núcleo con un microcontrolador PIC18F452 puede manejar
- hasta 128 entradas digitales
- hasta 128 salidas digitales
- hasta 64 entradas analógicas
- LCD de caracteres y gráficos
- hasta 8 BankSticks ( EEPROM I2C )
- una entrada MIDI y una salida MIDI, o un puerto COM serie RS232
Los controladores en segundo plano están disponibles para las siguientes tareas de control:
- Procesamiento de E / S MIDI
- Cargador de Bootstrap
- Conversión analógica de hasta 64 macetas , deslizadores o otras fuentes analógicas con una resolución 10-bit
- Manejo del motor para hasta 8 faders móviles motorizados con una resolución de 10 bits
- Manejo de hasta 64 codificadores rotativos
- Manejo de hasta 128 botones, sensores táctiles o dispositivos de entrada digital similares
- Manejo de hasta 128 LEDs, relés, Convertidores Digital-Analógicos o dispositivos de salida similares. En el modo multiplexado , se puede controlar un número casi ilimitado de LED, anillos de LED y dígitos de LED
- Lectura / escritura desde / hacia EEPROM, Flash y BankStick
- Vinculación de módulos PIC18F Core a través de MIDIbox Link
Todo el sistema operativo se ha escrito en lenguaje ensamblador y se ha optimizado para la velocidad. MIOS actualmente usa 8k de memoria de programa y 640 bytes de RAM.
Solo se requieren 75 µs para leer 128 pines de entrada digital y escribir en 128 pines de salida. Se manejan 16 codificadores rotativos en 100 µs. Las entradas analógicas se escanean en segundo plano cada 200 µs; los cambios mayores que un rango mínimo definible activan un gancho de usuario.
Hasta 256 eventos MIDI pueden activar funciones dedicadas; el procesamiento de la lista de eventos requiere alrededor de 300 µS. Los eventos MIDI también pueden ser procesados por una rutina de usuario para el análisis sintáctico de Sysex o trabajos similares. Un temporizador de usuario está disponible para el código activado por tiempo.
Es posible el soporte para otros lenguajes de alto nivel además de C.
Hardware MIOS
El hardware MIOS está organizado en torno al concepto de plataforma de hardware MIDIBox (MBHP). Las MBHP son placas base muy versátiles que ofrecen el mayor número posible de conexiones para un procesador determinado. Actualmente hay cuatro versiones de MBHP disponibles:
- MBHP para PIC16F877 y PIC18F452 (procesadores de 8 bits). Los dos chips son compatibles con pines, pero el PCB necesita un simple cambio entre los dos chips
- MBHP para LPC1769 (procesador ARM7 de 32 bits)
- MBHP para STM32F407 (procesador Cortex M4 de 32 bits)
Cuando un proyecto necesita menos E / S que las disponibles en un MBHP dado, el concepto MIDIBox permite crear una PCB simplificada dedicada a este proyecto. Este es el enfoque utilizado en Sammich MIDIBox SID [7] y Sammich MIDIBox FM. Estos dos kits contienen el diseño MBHP original, pero con un PCB simplificado, dedicado a la conexión con un chip SID o un chip YMF262.
En el caso del STM32F407 MBHP, la CPU está montada en un módulo utilizado como placa hija, fabricada por ST y vendida como placa de desarrollo (llamada STM32F4 Discovery by ST). [8] El usuario final no tiene que lidiar con componentes SMD, la placa hija está montada en conectores estándar de 0.1 " [9]
Soluciones completas
En este punto hay disponibles 11 proyectos completamente documentados, así como una gran cantidad de proyectos de usuarios generados por la comunidad. Los proyectos oficiales son los siguientes:
- MIDIbox SEQ V3:
Secuenciador de 16 pistas Live Step y Morph + arpegiador avanzado
- MIDIbox SID V1:
Sintetizador de hardware controlable por MIDI basado en el chip de sonido MOS Technology SID (MOS6581) como se envía con el Commodore 64/128
- MIDIbox FM V1:
Sintetizador de hardware basado en el chip de sonido Yamaha YMF262 (también conocido como OPL3) para generar los famosos sonidos FM conocidos de las tarjetas de sonido Soundblaster (compatibles) de principios de los 90
- Fusión MIDI V1:
Fusiona dos entradas MIDI independientes en una sola salida
- Enrutador MIDI V1:
Enruta varias cajas MIDI a un solo puerto MIDI
- Procesador MIDI:
Proporciona una funcionalidad básica para recibir y transmitir eventos MIDI.
- CV MIDIbox
Proporciona CV y salidas de puerta para controlar dispositivos controlados por voltaje, como sintetizadores modulares analógicos.
- MIDIbox 64:
Controlador MIDI de 64 canales completo
- MIDIbox 64E V2:
Versión extendida de MIDIbox 64
- MIDIO128 V2:
La interfaz MIDIO128 se utiliza para controlar hasta 128 pines de salida digital y reaccionar en hasta 128 pines de entrada digital a través de MIDI
- MIDIbox LC V1:
Alternativa al MIDIbox 64 / 64E
- MIDImon V2:
Informa eventos, que se transmiten a través del cable MIDI, de forma legible
Ver también
- Lista de software de música
Referencias
- ^ "Thorsten Klose", SynthDIY
- ^ Sitio web de Thorsten Klose, "MIDIBOX.org", uCApps.de
- ^ "RTOS (sistema operativo en tiempo real) líder en el mercado para sistemas integrados con extensiones de Internet de las cosas" . FreeRTOS . Consultado el 9 de marzo de 2017 .
- ^ "MIDIbox se convierte en RTP-MIDI ... - Conceptos de diseño - Foro MIDIbox" . Midibox.org . Consultado el 9 de marzo de 2017 .
- ^ [1]
- ^ "Registro de cambios de MIOS8" . UCApps.de . Consultado el 9 de marzo de 2017 .
- ^ "MidiBox SammichSID | Explorador de sintetizadores vintage" . Vintagesynth.com . Consultado el 9 de marzo de 2017 .
- ^ "STM32F4DISCOVERY - Kit de descubrimiento con MCU STM32F407VG * Nuevo código de pedido - STMicroelectronics" . St.com . Consultado el 9 de marzo de 2017 .
- ^ "Página de inicio de BEB DigitalAudio" . Beb.digitalaudio.free.fr . Consultado el 9 de marzo de 2017 .
enlaces externos
- Sitio web del proyecto MIDIbox
- la wiki de MIDIbox
- los foros de MIDIbox
- ucapps.de (Proyectos de bricolaje no comerciales para el sitio web de MIDI Hardware Geeks)
- El Protodeck: controlador midibox diseñado para interactuar con Ableton Live utilizado por protofuse