MIDIbox

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
MB-6582 (MIDIbox SID V2) mit 8 SIDs
MIDIbox SEQ V4: 16 Track Live-Step-Sequenzer mit 72Mhz ARM Cortex-M3 CPU
MIDIbox SEQ V3 (oben), MIDIbox FM (unten)
MIDIbox 808 SEQ V3
MIDIbox Logic / Mackie Control Emulator
MIDIbox SID V2 mit C64-Gehäuse
MIDIbox SID (oben) und MIDIbox 64 (unten)

Das MIDIbox Projekt ist eine nicht-kommerzielle, do-it-yourself-Plattform für MIDI-Hard- und Software, die auf der PIC-Mikrocontroller-Familie, insbesondere dem PIC18F452, PIC16F88, PIC18F4620 und PIC18F4685, sowie den STM32F103RE und LPC1769 32-bit ARM Cortex-M3 Microcontrollern aufbaut. Mit dieser Plattform ist es möglich, eigenständige Midicontroller, Sequenzer und Synthesizer zu bauen.

Geschichte[Bearbeiten]

Die MIDIbox Hardware Plattform (MBHP) basiert auf Thorsten Kloses Arbeit mit MIDI-Controllern. Das Design basiert auf einer standardisierten Umgebung von wiederverwertbaren und austauschbaren Modulen. Kurz nachdem die ersten Module veröffentlicht wurden, hat sich aus einer kleinen Anzahl von Enthusiasten eine stetig wachsende Open-Source-Entwicklercommunity gebildet.

Die MIDIbox Hardware Platform (MBHP)[Bearbeiten]

Der Schwerpunkt der Plattform liegt auf gut designten und dokumentierten Modulen, die auf kleinen unkomplizierten Schaltungen basieren, um auch Anfängern den Einstieg zu erleichtern. Diese Module werden dann in einem kompletten Aufbau verbunden. Alle Karten können als Single-Layer-PCB hergestellt werden. Prototypen-Boards können mit einem Freeware-CAD-Programm entworfen werden. Fast alle Komponenten sind through-hole designt, um die Montage zu erleichtern.

Die MIDIbox Hardware Plattform betreibt ein eigenes Open-Source-Betriebssystem: MIOS (MIDIbox Operating System), das für Geschwindigkeit und Genauigkeit in PIC-Assemblersprache geschrieben ist. Es gibt einen C-Wrapper-Layer um leichter programmieren zu können. MIOS ist so konzipiert und dokumentiert, dass damit einfache Neukonfigurationen, Anpassungen und Erweiterungen durch Bastler und Entwickler vorgenommen werden können.

Das MIDIbox Operating System (MIOS)[Bearbeiten]

Das MIDIbox Operating System (MIOS) wurde entwickelt, um die Gestaltung von flexiblen MIDI-Controller-Applikationen zu ermöglichen. MIOS hält sich an die Idee einer nicht-kommerziellen, offenen Plattform, was als grundlegend erachtet wird für den Austausch von Ideen und persönlichen Anpassungen, die nicht mit handelsüblichen Controllern möglich wäre.

Die meisten Controller, die von der Community gebaut werden, bestehen auf bereits dokumentierten Entwürfen und beginnen ihr Leben mit dem Feature-Set, das von der bestehenden Firmware zur Verfügung gestellt wird. Endbenutzer können ihre Geräte mit austauschbaren Programm-Code erweitern und somit die Geräte der Host-Anwendung, Synthesizern oder anderen MIDI-Geräten anpassen. Auch ist eine individuelle Anpassung möglich, die den eigenen, bevorzugten Arbeitsablauf unterstützt.

Quellcode von Anwendungen, Modulschaltpläne und PCB-Layouts stehen kostenlos für die nicht-kommerzielle Verwendung als Vorlagen für Änderungen und Verbesserungen zur Verfügung. Somit stellt MIOS und die Hardware-Plattform einen leichten Einstieg in das Microcontroller-Entwicklungs-Hobby dar, um Anwendungen außerhalb der Bereiche des kommerziellen MIDI-Mainstream-Markts zu ermöglichen.

MIOS wurde bis Version 1.8 unter der GNU GPL lizenziert. Spätere Versionen erfordern jetzt Thorsten Kloses Erlaubnis für den gewerblichen Einsatz.

Das Betriebssystem besteht aus einem Kernel, der dem Benutzer Hooks an Hard- und Software-Ereignissen zur Verfügung stellt, sowie Funktionen für die Interaktion mit Modulen.

Ein Core-Modul kann folgendes mit einem PIC18F452 Mikrocontroller verarbeiten:

  • bis zu 128 digitale Eingänge
  • bis zu 128 digitale Ausgänge
  • bis zu 64 analoge Eingänge
  • Matrixanzeigen und grafische LCDs
  • bis zu 8 Banksticks (I2C EEPROMs)
  • einen MIDI-In und einen MIDI-Out oder einen seriellen RS232-COM-Port

Background-Treiber stehen für die folgenden Steuerungsaufgaben zur Verfügung:

  • MIDI I/O-Verarbeitung
  • Bootstrap loader
  • Analog-Wandlung für bis zu 64 Knöpfe, Fader oder andere analoge Quellen mit einer Auflösung von 10 Bit
  • Motor-Handling für bis zu 8 motorisierte Fader mit einer Auflösung von 10 Bit
  • Handling von bis zu 64 Drehreglern (Inkrementalgeber)
  • Handling von bis zu 128 Tasten, Touch-Sensoren oder ähnlichen digitalen Eingabegeräten
  • Handling von bis zu 128 LEDs, Relais, Digital-Analog-Wandler oder ähnlichen Ausgabegeräten.
  • Im Multiplexbetrieb kann eine fast unbegrenzte Anzahl von LEDs, LED-Ringen und LED-Ziffern genutzt werden
  • Lesen/Schreiben von/nach EEPROM, Flash, und Bankstick
  • PIC18F Core Module Verbindung über MIDIbox Link

Das komplette Betriebssystem ist in Assemblersprache geschrieben und auf Geschwindigkeit optimiert. MIOS nutzt derzeit 8kb Programmspeicher und 640 Byte RAM. Dadurch sind nur 75 μs (Mikrosekunden) erforderlich, um 128 digitale Input-Pins zu lesen und 128 Output-Pins zu schreiben. 16 Drehregler sind innerhalb von 100 μs aktualisiert. Analoge Eingänge werden im Hintergrund alle 200 μs aktualisiert; Veränderungen, die ein definierbares Minimum überschreiten, lösen einen Hook aus.

Bis zu 256 MIDI-Events können Funktionen auslösen; Die Verarbeitung der Event-Liste erfordert etwa 300 μS. MIDI-Events können auch von einer Benutzer-Routine für das SysEx-Parsen oder ähnlichen Jobs verarbeitet werden. Ein User-Timer ist für Zeit-basierenden Code vorhanden. Support für andere Hochsprachen neben C ist möglich.

MIOS Hardware[Bearbeiten]

MIOS ist ein dediziertes Betriebssystem für den Mikrocontroller PIC18F452. Dieser PIC ist Pin-kompatibel mit dem PIC16F877, der in früheren MIDIbox Projekten verwendet wurde. So ist es abwärtskompatibel mit älteren MIDIbox-Core-Modulen.

Der PIC18F452 besitzt mehr internen Flash, mehr internen RAM, einige neue Anweisungen und eine bessere System-Architektur. Er ist in den meisten Ländern für den gleichen Preis wie der PIC16F877 erhältlich.

Für das neuere MIOS32 steht ein Core-Modul auf Basis des STM32F103RE ARM Cortex-M3 zur Verfügung. Dieser 32Bit Controller ist deutlich schneller als seine PIC-Vorgänger und verfügt über eine große Zahl integrierter Schnittstellen. Das CORE32-Modul ist mit den bereits vorhandenen Modulen vollständig kompatibel. Der Nachfolger des CORE32-Modul ist das LPC17-Modul mit einem 120Mhz LPC1769 ARM Cortex-M3.

Komplette Lösungen[Bearbeiten]

Es stehen zahlreiche komplett dokumentierte Projekte zur Verfügung, sowie eine große Anzahl von Benutzer-Projekten der Community. Die offiziellen Projekte sind wie folgt:

  • MIDIbox FM V1: Hardware-Synthesizer auf Basis des Yamaha YMF262 Soundchips (auch als OPL3 bekannt), zur Erzeugung von FM Sounds aus Soundblaster-kompatiblen Soundkarten der früheren 90er Jahre.
  • MIDI Merger V1: Führt zwei separate MIDI-Eingänge auf einen Ausgang
  • MIDI Router V1: Routen von verschiedenen MIDIboxen auf einem einzigen MIDI-Port
  • MIDI-Prozessor: Bietet grundlegende Funktionen zum Senden und Empfangen von MIDI-Events
  • MIDIbox 64: Vollwertiger 64-Kanal MIDI-Controller
  • MIDIbox 64E V2: Erweiterte Version der MIDIbox 64
  • MIDIO128 V2: Die MIDIO128 Schnittstelle wird verwendet, um bis zu 128 digitale Output-Pins anzusteuern, und auf bis zu 128 digitale Eingangs-Pins per MIDI zu reagieren
  • MIDIbox LC V1: Alternative zu der MIDIbox 64/64E
  • sammichSID: Komplettbausatz der Communitymitglieder Wilba und nILS für eine Midibox mit 2 SIDs[1]
  • sammichFM: Komplettbausatz der Communitymitglieder Wilba und nILS für eine Midibox mit YMF262 (OPL3) Soundchip[2]

Quellen[Bearbeiten]

  1. [1] MIDIbox Wiki sammichSID
  2. [2] MIDIbox Wiki sammichFM

Weblinks[Bearbeiten]

 Commons: MIDIbox – Sammlung von Bildern, Videos und Audiodateien