- MIDIbox
-
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 dem STM32 32-bit ARM Cortex-M3 Microcontroller aufbaut. Mit der Plattform ist es möglich eigenständige Midicontroller, Sequenzer und Synthesizer zu bauen.
Inhaltsverzeichnis
Geschichte
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)
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)
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, oder dem eigenen Entwurf neuer Projekte von Grund auf anzupassen.
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
- Matrix und grafische LCDs
- bis zu 8 Banksticks (I2C EEPROMs)
- einen MIDI-In und einen MIDI-Out oder ein serieller RS232-COM-Port
Background-Treiber stehen für die folgenden Steuerungsaufgaben zur Verfügung:
- MIDI I/O-Verarbeitung
- Bootstrap loader
- Analog-Wandlung 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. Nur 75 μs sind 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
MIOS ist ein dediziertes Betriebssystem für den Mikrocontroller PIC18F452. Dieser PIC ist pinkompatibel 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 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.
Komplette Lösungen
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 SEQ V4: 16 Track Live-Step-Sequenzer und Morph-Arpeggiator
- MIDIbox SID V2: Hardware-MIDI-Synthesizer, basierend auf dem MOS Technology SID Soundchip, der mit dem Commodore 64/128 ausgeliefert wurde.
- 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 CV: Stellt CV-und Gate-Ausgänge, um spannunggesteuerte Geräte wie z.B. analoge modulare Synthesizer anzusteuern.
- 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
Weblinks
- ucapps.de – Startseite des MIDIbox-Projekts
- midibox.org – Entwicklerblog
- MIDIbox Wiki
Wikimedia Foundation.