Prezentowany system zawiera obracające się dyski z magnesami w formie sfer, które wyzwalają kolejne komunikaty MIDI. Zaprezentowane urządzenie pozwoli w kreatywny sposób syntezować nawet złożone sekwencje dźwiękowe, a dzięki prostej i intuicyjnej obsłudze, nadaje się nawet dla amatorów. Dodatkowo, zawarte poniżej opisy samego interfejsu MIDI i sposobu oprogramowania go na platformie Arduino, pozwolą na łatwiejsze konstruowanie samodzielnie wymyślonych interfejsów w przyszłości.
Zasada działania
MIDI to interfejs cyfrowych instrumentów muzycznych, w ramach ekosystemu MIDI mieszczą się elektroniczne instrumenty muzyczne, oprogramowanie, komputery, a także inne cyfrowe kontrolery współdzielące pomiędzy sobą informacje muzyczne. Najlepszym sposobem na zrozumienie, czym jest MIDI, jest zrozumienie, czym nie jest:
- Sygnał MIDI to nie muzyka,
- MIDI nie zawiera w sobie żadnych rzeczywistych dźwięków,
- MIDI nie jest cyfrowym formatem plików muzycznych, takim jak są pliki MP3 czy WAV.
MIDI to nic innego jak strumień danych – zestaw instrukcji. Dane przesyłane poprzez interfejs MIDI zawierają w sobie listę zdarzeń oraz komunikatów, informujących urządzenia elektroniczne (instrument muzyczny, kartę dźwiękową w komputerze, telefon komórkowy, syntezator itp.), w jaki sposób wygenerowany ma być kolejny dźwięk.
Oto kilka przykładów typowych komunikatów MIDI:
- Naciśnięcie klawisza – sygnalizuje umowne naciśnięcie klawisza, tj. zadanie pewnego dźwięku, niekoniecznie z fizycznej klawiatury. Komunikat ten może pochodzić z dowolnego instrumentu, sekwencera etc. Zawiera kompletne instrukcje dotyczące dźwięku – który klawisz został naciśnięty oraz jak mocno (parametr ten umownie nazywa się prędkością).
- Puszczenie klawisza – sygnalizuje zwolnienie klawisza, czyli zaprzestanie odtwarzania danego dźwięku.
- Polifoniczne ciśnienie klawisza – to miara siły nacisku na klawisz, który znajduje się już na samym dole i został naciśnięty. W przypadku niektórych urządzeń powoduje to dodanie dodatkowych efektów do odtwarzanej nuty, pozwala np. na stworzenie efektu vibrato.
- Zmiana sterowania – sygnał, który wskazuje, że kontroler – na przykład pedał nożny lub suwak na instrumencie – został naciśnięty lub zmienił położenie. Komunikat zmiany sterowania zawiera w sobie numer przypisany do danego kontrolera i wartość zmiany (w zakresie od 0 do 127).
- Zmiana pozycji koła wysokości nuty – sygnalizuje zmianę pozycji tzw. pitch wheel, które to pozwala na płynne przechodzenie pomiędzy wysokością dźwięku. Pozwala to na dodanie efektu tzw. portamento do granej sekwencji.
Elektrycznie rzecz biorąc interfejs MIDI jest szeregowym interfejsem half-duplex, który pracuje w pętli prądowej (typowo 5 mA dla stanu „0” i ok. 0 mA dla stanu „1” – układ pracuje w logice odwrotnej). Nominalna prędkość działania interfejsu wynosi 31 250 bitów na sekundę. W przypadku tego urządzenia wykorzystana zostanie emulacja interfejsu MIDI poprzez interfejs USB na jednym z zastosowanych modułów Arduino.
Zaprezentowany sterownik, do generowania komunikatów MIDI wykorzystuje sensory magnetyczne i suwaki. Nad sensorami Halla, znajdującymi się w dolnej części urządzenia, obracają się koła z tworzywa, które posiadają po 16 zagłębień. Zagłębienia te rozmieszczone są na obwodzie koła i służą do przymocowania malutkich, sferycznych magnesów neodymowych. Takich kół w systemie jest 8. Każdy z ośmiu kanałów jest niezależnie sterowany za pomocą suwaka, który odpowiada za wysokość nuty, przesyłanej przy każdym wyzwoleniu kanału do interfejsu MIDI. Za wyzwalanie kanału odpowiadają sensory Halla – za każdym razem, gdy nad sensorem przesunie się magnes na kole, dany kanał zostanie wyzwolony. Umieszczając na kole magnesy, sterujemy konfiguracją dźwięków, a regulując prędkość obrotową kół, zmieniamy tempo naszej melodii.