MIDIbox
MIDIbox to niekomercyjny projekt open source z serią przewodników na temat tworzenia interfejsów urządzeń instrumentów muzycznych ( MIDI ). Dzięki serii „zrób to sam ” użytkownicy są prowadzeni przez proces budowania podstawowego mikrokontrolera , który może być również wykorzystany do budowy sprzętowych jednostek sterujących MIDI dla różnych syntezatorów , oprogramowania do nagrywania wielościeżkowego i innych urządzeń MIDI; a także samodzielne syntezatory, sekwencery i inne projekty.
Historia
Platforma sprzętowa MIDIbox jest kontynuacją wcześniejszych prac Thorstena Klose nad kontrolerami MIDI. Projekty oparte są na ustandaryzowanym środowisku modułów wielokrotnego użytku i wymiennych. Wkrótce po wydaniu pierwszych modułów mała grupa entuzjastów utworzyła się i wyrosła na dobrze prosperującą społeczność programistów open source.
Platforma sprzętowa MIDIbox (MBHP)
Platforma koncentruje się na dobrze zdefiniowanych i udokumentowanych modułach opartych na małych, nieskomplikowanych obwodach, aby umożliwić montaż amatorski. Moduły te są następnie łączone w kompletny projekt. PCB jednowarstwowe oraz płytki prototypowe zaprojektowane w darmowym programie CAD . Prawie wszystkie elementy są przewiercone , co ułatwia montaż.
Pierwsza platforma sprzętowa MIDIbox (MBHP) była oparta na własnym systemie operacyjnym typu open source – MIOS (MIDIbox Operating System) – napisanym w asemblerze PIC , dla szybkości i dokładności. Warstwa C zapewnia uproszczone kodowanie. MIOS został zaprojektowany i udokumentowany, aby umożliwić łatwą rekonfigurację, adaptację i rozbudowę przez hobbystów i entuzjastów.
Nowa platforma sprzętowa MIDIBox, MIOS32, działa na procesorach ARM LPC1769 firmy NXP i STM32F407 firmy STMicroelectronics i jest oparta na systemie operacyjnym czasu rzeczywistego (RTOS) pochodzącym z FreeRTOS . Łańcuch narzędzi dla MIOS32 jest oparty na GCC i używa tylko języka C.
Moduły
Obecnie dostępnych jest około 15 oddzielnych modułów:
Moduły mikrokontrolerów
- Moduł podstawowy
- Moduły programatora PIC, takie jak rzeczywisty palnik PIC lub moduł JDM
Moduły wejściowe
- Wejście analogowe modułu AIN (0-5V)
- Wejście cyfrowe modułu DIN (ON/OFF)
Moduły wyjściowe
- Wyjście cyfrowe modułu DOUT (np. LED ON/OFF)
- Moduł LCD Wyświetlacz ciekłokrystaliczny
- Moduł AOUT Napięcia wyjścia analogowego do wyjścia (dla sterowania)
Moduły sekwencera
- Sekwenser SEQV4 V4
- Sekwencer SEQV4L V4 Lite
- Sekwenser SEQV3 V3
Moduły dźwiękowe
- Moduł SID dla SID technologii MOS (jak w Commodore 64 )
- Moduł OPL3 dla chipów FM YMF262 i YAC512
- Moduł IIC SpeakJet dla SpeakJet SoundChip
Moduły rozszerzające pamięć
- Moduł pamięci BankStick 32k / 64k
Moduły wejść/wyjść MIDI
- Moduł LTC Wskaźniki LED MIDI + 1 MIDI-Out + 1 Thru (+ 1 opcjonalnie do portu COM)
- Moduły USB Interfejs PC/USB
Różne moduły
- Moduł MF do sterowania Motorfaderami
- Moduły IIC do komunikacji z innymi urządzeniami (mikrokontrolerami) za pośrednictwem I2C
Moduł RTP-MIDI
- Oprogramowanie układowe MIOS32 zawiera bezpośrednie łącze do modułu KissBox OEM RTP-MIDI przez szybki interfejs SPI
System operacyjny MIDIbox (MIOS)
System operacyjny MIDIbox (MIOS) ułatwia projektowanie elastycznych aplikacji kontrolera MIDI. MIOS opiera się na niekomercyjnej, otwartej platformie jako fundamentalnej dla wymiany pomysłów i osobistych dostosowań, które nie są możliwe z komercyjnymi kontrolerami.
Większość kontrolerów tworzonych przez społeczność opiera się na istniejących udokumentowanych projektach i rozpoczyna życie z zestawem funkcji zapewnianym przez istniejące oprogramowanie układowe. Użytkownicy końcowi mogą ulepszać swoje urządzenia za pomocą wymiennego kodu programu i dostosowywać je do aplikacji hosta, syntezatora lub innego urządzenia MIDI. Użytkownicy mogą również dostosowywać, aby dopasować je do preferowanego przepływu pracy lub zaprojektować nowy projekt od podstaw.
Kod źródłowy aplikacji, schematy modułów i układy PCB są dostępne bezpłatnie do użytku niekomercyjnego jako szablony do modyfikacji i ulepszeń. W ten sposób MIOS i platforma sprzętowa umożliwiają łatwe wejście w rozwój mikrokontrolerów dla hobbystów, jednocześnie umożliwiając zastosowania poza domenami komercyjnego, głównego nurtu rynku MIDI.
MIOS był objęty licencją GPL do wersji 1.8. Późniejsze wersje wymagają teraz zgody Thorstena Klose do użytku komercyjnego.
Specyfikacje
System operacyjny składa się z jądra, które zapewnia użytkownikom dostęp do zdarzeń związanych ze sprzętem i oprogramowaniem oraz funkcje umożliwiające interakcję z modułami platformy sprzętowej. Może obsłużyć jeden moduł rdzeniowy z mikrokontrolerem PIC18F452
- do 128 wejść cyfrowych
- do 128 wyjść cyfrowych
- do 64 wejść analogowych
- LCD znakowe i graficzne
- do 8 BankSticks ( pamięć EEPROM I2C )
- jedno wejście MIDI i jedno wyjście MIDI lub szeregowy port COM RS-232
Sterowniki działające w tle są dostępne dla następujących zadań kontrolnych:
- Przetwarzanie wejść/wyjść MIDI
- Program ładujący Bootstrap
- Konwersja analogowa do 64 potencjometrów , suwaków lub innych źródeł analogowych z rozdzielczością 10-bitową
- Obsługa silnika dla maksymalnie 8 zmotoryzowanych ruchomych suwaków z 10-bitową rozdzielczością
- Obsługa do 64 enkoderów obrotowych
- Obsługa do 128 przycisków, czujników dotykowych lub podobnych cyfrowych urządzeń wejściowych
- Obsługa do 128 diod LED, przekaźników, przetworników cyfrowo-analogowych lub podobnych urządzeń wyjściowych. W multipleksowym można sterować niemal nieograniczoną liczbą diod LED, pierścieni LED i cyfr LED
- Odczyt/zapis z/do EEPROM, Flash i BankStick
- Łączenie modułów PIC18F Core za pośrednictwem łącza MIDIbox
Cały system operacyjny został napisany w asemblerze i zoptymalizowany pod kątem szybkości. MIOS wykorzystuje obecnie 8k pamięci programu i 640 bajtów pamięci RAM.
Tylko 75 µs jest potrzebne do odczytania 128 cyfrowych pinów wejściowych i zapisu do 128 pinów wyjściowych. 16 enkoderów obrotowych jest obsługiwanych w ciągu 100 µs. Wejścia analogowe są skanowane w tle co 200 µs; zmiany większe niż określony minimalny zakres powodują przechwycenie użytkownika.
Do 256 zdarzeń MIDI może wyzwalać dedykowane funkcje; przetwarzanie listy zdarzeń wymaga około 300 µS. Zdarzenia MIDI mogą być również przetwarzane przez procedurę użytkownika do sysex lub podobnych zadań. Timer użytkownika jest dostępny dla kodu wyzwalanego czasem.
Możliwa jest obsługa innych języków wysokiego poziomu niż C.
sprzęt MIOSa
Sprzęt MIOS jest zorganizowany wokół koncepcji platformy sprzętowej MIDIBox (MBHP). MBHP to bardzo wszechstronne płyty główne, oferujące największą możliwą liczbę połączeń dla danego procesora. Obecnie dostępne są cztery wersje MBHP:
- MBHP dla PIC16F877 i PIC18F452 (procesory 8-bitowe). Oba chipy są kompatybilne pinowo, ale płytka drukowana wymaga prostej zmiany między dwoma chipami
- MBHP dla LPC1769 (32-bitowy procesor ARM7)
- MBHP dla STM32F407 (32-bitowy procesor Cortex M4)
Gdy projekt wymaga mniejszej liczby wejść/wyjść niż dostępne na danym MBHP, koncepcja MIDIBox pozwala na stworzenie uproszczonej płytki PCB dedykowanej temu projektowi. Takie podejście zastosowano w Sammich MIDIBox SID i Sammich MIDIBox FM. Te dwa zestawy zawierają oryginalną konstrukcję MBHP, ale z uproszczoną płytką PCB, dedykowaną do połączenia z układem SID lub układem YMF262.
W przypadku STM32F407 MBHP procesor jest montowany na module używanym jako płyta rozszerzenia, wyprodukowanym przez ST i sprzedawanym jako płytka rozwojowa (o nazwie STM32F4 Discovery firmy ST). Końcowy użytkownik nie musi zajmować się komponentami SMD, ponieważ płyta główna jest montowana na standardowych złączach 0,1".
Kompletne rozwiązania
W tym momencie dostępnych jest 11 w pełni udokumentowanych projektów, a także duża liczba projektów użytkowników wygenerowanych przez społeczność. Oficjalne projekty to:
- MIDIbox SEQ V3:
16 Track Live Step and Morph Sequencer + zaawansowany Arpeggiator
- MIDIbox SID V1:
Sprzętowy syntezator sterowany przez MIDI oparty na układzie dźwiękowym MOS Technology SID (MOS6581), dostarczany z Commodore 64/128
- MIDIbox FM V1:
Syntezator sprzętowy oparty na układzie dźwiękowym Yamaha YMF262 (znanym również jako OPL3) do generowania słynnych dźwięków FM znanych z kart dźwiękowych Soundblaster (kompatybilnych) z początku lat 90.
- Połączenie MIDI V1:
Łączy dwa oddzielne wejścia MIDI w jedno wyjście
- Router MIDI V1:
Kieruje różne MIDIboxy do jednego portu MIDI
- Procesor MIDI:
Zapewnia podstawową funkcjonalność do odbierania i przesyłania zdarzeń MIDI
- CV MIDIboxa
Zapewnia wyjścia CV i bramki do sterowania urządzeniami sterowanymi napięciem, takimi jak analogowe syntezatory modułowe
- MIDIbox 64:
Pełnoprawny 64-kanałowy kontroler MIDI
- MIDIbox 64E V2:
Rozszerzona wersja MIDIbox 64
- MIDIO128 V2:
Interfejs MIDIO128 służy do napędzania do 128 cyfrowych pinów wyjściowych i reagowania na maksymalnie 128 cyfrowych pinów wejściowych przez MIDI
- MIDIbox LC V1:
Alternatywa dla MIDIbox 64/64E
- MIDImon V2:
Raportuje zdarzenia, które są transmitowane kablem MIDI, w czytelnej formie
Zobacz też
Linki zewnętrzne
- Witryna projektu MIDIbox
- wiki MIDIboxa
- forum MIDIboxa
- ucapps.de (niekomercyjne projekty DIY dla witryny MIDI Hardware Geeks)
- Protodeck: kontroler midibox przeznaczony do interakcji z Ableton Live używanym przez protofuse