Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'MIDI'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona

Znaleziono 4 wyniki

  1. Wstęp i założenia W tym artykule chciałbym przybliżyć temat urządzeń MIDI i jak wykonać własny kontroler samodzielnie w domu. Projekt może być wykorzystywany jako cyfrowe pianino do grania i tworzenia muzyki. Jest łatwo rozbudowywalny, można dostosować go do indywidualnych potrzeb. Do zbudowania zachęcił mnie zakup jednej komercyjnych klawiatur MIDI, która cechowała się niezwykle prostą budową i niską ceną. Potrzebne elementy Ze względu na wsparcie przez największą liczbę bibliotek polecam do projektu wykorzystać płytkę Arduino Micro. Posiada ona mikroprocesor podłączony bezpośrednio do portu szeregowego, co ułatwi pierwsze etapy budowy. Dodatkowo potrzebne będą przyciski (ilość w zależności od liczby klawiszy). Oraz klawisze, które wykonałem na drukarce 3d. Jeżeli jeszcze nie masz żadnej, gorąco polecam Bambu Lab A1 mini ze względu na rozsądną cenę. Dodatkowo zamówić można płytkę PCB. Wykonanie projektu Pierwszym wyzwaniem, które przede mną stanęło to wysyłanie sygnału do komputera. Kupiony przeze mnie kontroler, na którym się wzorowałem komunikował się przez usb. Wybrałem ten sposób zamiast klasycznego 5-pinowego wejścia. Pracą z pakietami zajmuje się biblioteka MIDIUSB.h. Przyciski podłączyłem przez dwa multipleksery 16-bitowe. Oto program obsługujący jedną z wersji: #include "MIDIUSB.h" bool keyState[32]; void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(8, INPUT_PULLUP); pinMode(9, INPUT_PULLUP); for (int i = 0; i < 25; i++) keyState[25] = true; Serial.begin(115200); } void loop() { updateAllKeys(); } void updateAllKeys() { for (int i = 0; i <= 15; i++) { bool addressBit[4] = {false, false, false, false}; int iDEC = i; int b_index = 3; while (iDEC > 0) { if (iDEC % 2 == 1) addressBit[b_index] = true; b_index--; iDEC = (iDEC - iDEC % 2) / 2; } digitalWrite(2, addressBit[3]); digitalWrite(3, addressBit[2]); digitalWrite(4, addressBit[1]); digitalWrite(5, addressBit[0]); bool stateLeft = digitalRead(8); bool stateRight = digitalRead(9); int key_index_l = i; int key_index_r = 16 + i; if (keyState[key_index_r] != stateRight) { if (stateRight == 0) // pressed keyPress(key_index_r); if (stateRight == 1) keyUnpress(key_index_r); } if (keyState[key_index_l] != stateLeft) { if (stateLeft == 0) keyPress(key_index_l); if (stateLeft == 1) keyUnpress(key_index_l); } keyState[key_index_r] = stateRight; keyState[key_index_l] = stateLeft; } } void keyPress(int i) { if (i >= 4 && i <= 28) { midiEventPacket_t noteOn = {0x09, 0x90 | 1, 70 - (i - 4), 127}; MidiUSB.sendMIDI(noteOn); MidiUSB.flush(); } } void keyUnpress(int i) { if (i >= 4 && i <= 28) { midiEventPacket_t noteOff = {0x08, 0x80 | 1, 70 - (i - 4), 127}; MidiUSB.sendMIDI(noteOff); MidiUSB.flush(); } } Dla osób które, jak ja, miały duży problem z wysłaniem pierwszego sygnału warto wspomnieć, że MIDI przez USB nie działa na każdej płytce. Dlatego we wstępie wspomniałem o wyborze Arduino Micro. Na tym etapie projekt wyglądał następująco: Po udanym teście wykonałem projekty płytki PCB i klawiszy, tak aby budową i rozmiarem przypominały fragment pianina. Klawisze zamontowane są do ramki, która zostawia im możliwość ruchu tylko w jednej osi. Zamówiłem płytkę, umieściłem na niej elementy, a oto rezultat: Dziękuję za uwagę i życzę powodzenia w budowie!
  2. Dzień dobry, Potrzebuję wyciągnąć informacje z pliku Midi ( numer, początek i długość dźwięku) formatu 0 których będę potem używał do sterowania arduino. Dane będą następnie przesyłane do tablicy z której arduino będzie pobierać informacje o pozycji. Jestem początkujący , a to mój pierwszy wpis proszę o wyrozumiałość
  3. Cześć! Ostatnio starałem się zbudować układ, za pomocą którego, mógłbym otrzymywać sygnały MIDI z mojego pianina. Zbudowałem układ według tego poradnika: Dodam, że układ działa. Jednak nie mam pojęcia, jak napisać program, który umożliwiłby mi odczytywanie każdego klawisza na pianinie i np. przypisania temu klawiszowi jakiejś funkcji. Z góry dziękuję za pomoc
  4. Urządzenie MIDI na Arduino Pro Micro Czas na zrobienie fajnego urządzenia. W tym artykule postaram się zadowolić ludzi związanych z tworzeniem muzyki. Stwórzmy mikser Midi i podłączymy go do programu dla DJ-ów (Traktor Pro 2). Urządzenie będzie miało 8 obrotowych potencjometrów, które pozwalają kontrolować głośność, niskie, średnie i wysokie częstotliwości korektora oraz 2 przyciski odtwarzania / pauzy. Komponenty Podstawą naszego projektu będzie płyta arduino pro micro (lub arduino leonardo). Będziemy kontrolować potencjometry obrotowe. Na nich nakładamy kolorowe czapki. Będziesz potrzebował dwóch przycisków i dużego kondensatora przy 4700 UF (od 6V). Wpichnijmy to wszystko do pudełka. Elektroniczny obwód i montaż. Najpierw przygotujmy pudełko. Konieczne jest przecięcie 8 otworów o średnicy 6 milimetrów, po dwa otwory po 12 milimetrów i otwór na tylną ściankę. Kolejny etap to montowanie potencjometrów i przycisków. Włóż część i dokręć nakrętkę. Nadszedł czas na lutowanie komponentów razem. Zrobiłem wszystko na zielonej płycie prototypowej. Możesz to zrobić na bredboardzie lub wytrawić / zamówić płytkę. Nie ignoruj kondensatora, bez niego urządzenie nie zadziała! Szkic Algorytm programu jest prosty. Przeszukujemy potencjometry i przyciski, wysyłamy dane do komputera. #include <frequencyToNote.h> #include <MIDIUSB.h> #include <pitchToFrequency.h> #include <pitchToNote.h> #define n_pots 8 int val; int last_val[n_pots]={0,0,0,0,0,0,0,0}; int pot_pins[n_pots]={0,1,2,3,6,7,8,9}; #define btn0pin 2 #define btn1pin 3 void setup() { Serial.begin(9600); pinMode(btn0pin, INPUT); pinMode(btn1pin, INPUT); } void loop() { for (int i =0; i<n_pots;i++){ val = (int)analogRead(pot_pins[i])/8; if (val != last_val[i]) { last_val[i] = val; controlChange(0, i, val); } } if (digitalRead(btn0pin)){ controlChange(0,9,1); while(digitalRead(btn0pin)){} } if (digitalRead(btn1pin)){ controlChange(0,10,1); while(digitalRead(btn1pin)){} } delay(30); } void controlChange(byte channel, byte control, byte value) { midiEventPacket_t event = {0x0B, 0xB0 | channel, control, value}; MidiUSB.sendMIDI(event); MidiUSB.flush(); } Można zrobic 3d obudowę do miksera. Tak wygląda moja , ale jej plik źródłowy tu nie zostawię, bo jest dużo błędów. Kształt jest fajny, ale techniczna strona nie. Użycie: dla przykładu użycia wziąłem traktor pro 2. Otwórz go, a następnie znajdź w nim "controller manager". Tutaj wiążemy potencjometry z dźwigniami interfejsu. Naciśnij “Add device” - “Generic MIDI”. Wybierz wejscie - “Arduino Leonardo”. Teraz musisz określić wszystkie elementy sterujące. Istnieją dwa kanały, z których każdy ma: głośność, wysokie, średnie i niskie częstotliwości oraz przycisk "Play/Pause". Kliknij "Add in" i znajdź Volume / High / Mid / Low. Wybierz kanał (A lub B). Kliknij “learn”. Przekręć potencjometr. Kliknij “learn”. Zrób to z wszystkimi elementami. Dodajemy przycisk “Play/Pause”. Dodajcie go, analogicznie potencjometru. Zmienimy tryb pracy przyciska do “Toggle”. I filmik demonstracja (niestety słowa rosyjskie, ale pracę można zobaczyć): Będę czekał na komentarze!
×
×
  • Utwórz nowe...