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 bricolaje , se guía a los usuarios en el proceso de construcción de un microcontrolador básico que también se puede utilizar para construir unidades de control MIDI de hardware para varios sintetizadores, software de grabación multipista y otros dispositivos MIDI; así como sintetizadores independientes, secuenciadores y otros proyectos.
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, se formó un pequeño grupo de entusiastas que se convirtió en una próspera comunidad de desarrollo de código abierto.
La plataforma se centra en módulos bien definidos y documentados basados en circuitos pequeños y sencillos, para permitir el montaje por parte de aficionados. Estos módulos se ensamblan posteriormente para formar un proyecto completo. Todas las placas se pueden fabricar como PCB de una sola capa y placas prototipo diseñadas con un programa CAD gratuito . Casi todos los componentes son de orificio pasante para facilitar el montaje.
La primera plataforma de hardware MIDIbox (MBHP) se basó en su propio sistema operativo de código abierto , MIOS (MIDIbox Operating System), escrito en lenguaje ensamblador PIC , para lograr velocidad y precisión. Una capa de envoltura C proporciona una codificación simplificada. MIOS está diseñado y documentado para permitir una reconfiguración, adaptación y extensión sencillas 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 solo lenguaje C.
Actualmente, hay disponibles alrededor de 15 módulos separados:
El sistema operativo MIDIbox (MIOS) facilita el diseño de aplicaciones flexibles de controladores MIDI. MIOS se adhiere a una plataforma abierta y no comercial, que es fundamental para el intercambio de ideas y adaptaciones personales que no son posibles con los controladores comerciales.
La mayoría de los controladores creados por la comunidad se basan en diseños documentados existentes y comienzan a funcionar con el conjunto de funciones que ofrece 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 anfitriona, sintetizador u otro dispositivo MIDI. Los usuarios también pueden personalizarlos para que se adapten 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 de los módulos y los diseños de PCB están disponibles de forma gratuita para uso no comercial como plantillas para modificaciones y mejoras. De este modo, MIOS y la plataforma de hardware permiten un acceso sencillo al desarrollo de microcontroladores por parte de aficionados, al tiempo que posibilitan aplicaciones fuera del ámbito del mercado MIDI comercial y generalizado.
MIOS estuvo bajo licencia GPL hasta la versión 1.8. Las versiones posteriores requieren ahora el permiso de Thorsten Klose para su uso comercial. [6]
El sistema operativo consta de un núcleo que proporciona al usuario conexiones a eventos de hardware y software, y funciones para la interacción con módulos de la plataforma de hardware. Un módulo central con un microcontrolador PIC18F452 puede manejar
Los controladores en segundo plano están disponibles para las siguientes tareas de control:
Todo el sistema operativo ha sido escrito en lenguaje ensamblador y optimizado para la velocidad. MIOS utiliza actualmente 8k de memoria de programa y 640 bytes de RAM.
Solo se necesitan 75 μs para leer 128 pines de entrada digital y escribir en 128 pines de salida. Se manejan 16 codificadores rotatorios 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 enlace de usuario.
Se pueden activar funciones dedicadas con hasta 256 eventos MIDI; el procesamiento de la lista de eventos requiere unos 300 μS. Los eventos MIDI también pueden procesarse mediante una rutina de usuario para el análisis de sysex o tareas similares. Hay disponible un temporizador de usuario para el código activado por tiempo.
Es posible admitir otros lenguajes de alto nivel además de C.
El hardware de MIOS está organizado en torno al concepto de MIDIBox Hardware Platform (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:
Cuando un proyecto necesita menos E/S que las disponibles en un MBHP determinado, 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 original del MBHP, pero con una PCB simplificada, dedicada 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, fabricado por ST y vendido como placa de desarrollo (llamado STM32F4 Discovery por ST). [8] El usuario final no tiene que lidiar con componentes SMD, ya que la placa hija está montada en conectores estándar de 0,1" [9].
En este momento hay 11 proyectos completamente documentados disponibles, así como una gran cantidad de proyectos de usuarios generados por la comunidad. Los proyectos oficiales son los siguientes:
Secuenciador de 16 pistas Live Step y Morph + arpegiador avanzado
Sintetizador controlable por MIDI de hardware basado en el chip de sonido MOS Technology SID (MOS6581) que viene con el Commodore 64/128
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
Fusiona dos entradas MIDI independientes en una única salida
Enruta varias MIDIboxes a un único puerto MIDI
Proporciona funcionalidad básica para recibir y transmitir eventos MIDI
Proporciona salidas CV y de compuerta para controlar dispositivos controlados por voltaje, como sintetizadores modulares analógicos.
Controlador MIDI de 64 canales completo
Versión extendida del MIDIbox 64
La interfaz MIDIO128 se utiliza para controlar hasta 128 pines de salida digital y reaccionar ante hasta 128 pines de entrada digital a través de MIDI.
Alternativa al MIDIbox 64/64E
Informa de eventos que se transmiten a través del cable MIDI en formato legible.