To właśnie przez MIDIBox kupiłem swój pierwszy programator mikrokontrolerów, PICKit3, a potem nauczyłem się programować w C. MIDIBoxa w ostateczności nie uruchomiłem, ale nie z braku chęci. Prędzej czy później wrócę do tego projektu, a tymczasem przybliżę go na łamach "Elektroniki Praktycznej". Zainteresowanych budową odsyłam na stronę projektu: www.uCapps.de.
Czym jest MIDIBox?
MIDIBox jest uniwersalnym urządzeniem MIDI. MIDI (skrót od Musical Instrument Digital Interface, "cyfrowy interfejs instrumentów muzycznych") to interfejs i protokół komunikacyjny pozwalający na współpracę różnych elektronicznych instrumentów muzycznych i współpracujących z nimi urządzeń: syntezatorów, klawiatur i kontrolerów sterujących, sekwencerów czy kontrolerów standardu CV (Control Voltage - napięcie kontrolne - standard używany w analogowych syntezatorach modularnych, jak na przykład sytezatory Moog). MIDI pozwala też na współpracę tych wszystkich urządzeń z komputerami, a konkretnie ze specjalizowanym oprogramowaniem DAW (Digital Audio Workstation - cyfrowa stacja robocza audio) używanym do tworzenia i grania muzyki. Oprogramowanie może sterować syntezatorami sprzętowymi, ale częściej jednak działa to w drugą stronę - instrumenty, klawiatury sterujące i kontrolery MIDI sterują oprogramowaniem.
Oczywiście nie są one potrzebne, ale możliwość fizycznego kontrolowania parametrów wirtualnego instrumentu lub efektu za pomocą przycisków i enkoderów oraz grania na nich za pomocą klawiatury sterującej lub instrumentu MIDI bardzo ułatwiają pracę.
Instrumenty i kontrolery MIDI z reguły nie są tanie, gdyż jest to rynek dość niszowy. MIDIBox powstał w 2005 roku jako tańsza alternatywa i jest wciąż rozwijany. Projekt składa się z trzech elementów:
- platforma sprzętowa,
- system MIOS,
- aplikacja.
Platforma sprzętowa ma budowę modułową, główną częścią jest płytka z mikrokontrolerem - do niej dołączane są inne moduły. Pierwotnie MIDIBox używał mikrokontrolera PIC18F452, wraz z rozwojem samego projektu dodane zostały inne mikrokontrolery PIC, a potem dużo potężniejsze układy LPC1769 od NXP oraz STM32F407VGT6 od STMicro. W obu przypadkach używane są płytki rozwojowe do tych mikrokontrolerów. W skład platformy wchodzi też szereg modułów interfejsowych obejmujących wejścia i wyjścia analogowe, wejścia i wyjścia cyfrowe, moduły pod układy syntezy SID i OPL-3. Osobną kategorię stanowią moduły już nieużywane, wśród nich znajdziemy "moduł", który zbudowałem - interfejs MIDI-USB z mikrokontrolerem PIC18F4550. Powodem jego realizacji był fakt, iż tanie kable USB-MIDI nie działają zbyt dobrze - posiadany przeze mnie egzemplarz gubił dane i dodawał niemal półsekundowe opóźnienie, gdy był podłączony do keyboardu Yamahy. Moduł USB PIC rozwiązał ten problem. Wróćmy jednak do głównego projektu i przyjrzyjmy się platformie sprzętowej.