Komputery Okna Internet

DIY klawiatura muzyczna USB do atmegi. Jak zrobić wygodny syntezator własnymi rękami. Obwód klawiatury Midi MKC64 v1.54

Oleg Jakubow

Po opublikowaniu mojej strony w serwisie otrzymałem kilka listów z prośbą o napisanie lub przesłanie schematu złożonej przeze mnie klawiatury midi. I postanowiłem przygotować artykuł o klawiaturze midi.

Wybrałem układ klawiatury MIDI z magazynu Radia nr 3, 4 z roku 1997. Jeśli ktoś naprawdę chce zbudować dobry instrument, to polecam udać się do biblioteki i zaopatrzyć się tam w czasopisma, ale dla tych, którym nie chce się biegać i szukać szkoda czasu, zeskanowałem cały ten artykuł (myślę, że nie ze szkodą dla autora). Jestem bardzo zadowolony z klawiatury MIDI. Generalnie z montażem nie było żadnych problemów, poza kilkoma literówkami na schemacie (zapewne zrobione przez redakcję przy układaniu artykułu). Przed skanowaniem naniosłem poprawki, można to zobaczyć uważnie studiując schemat. Uwaga: podczas flashowania pamięci ROM nie popełniaj błędów przy wprowadzaniu kodów, w przeciwnym razie instrument albo w ogóle nie będzie odtwarzał, albo nie będzie działał poprawnie. Chciałbym szczególnie podziękować samemu autorowi tego artykułu za wydrukowanie kodów kontrolnych tabeli ROM, ponieważ trudno jest wprowadzić wszystkie znaki bez błędów, a podczas wpisywania sam popełniłem błędy w dwóch miejscach i dzięki do sum kontrolnych szybko znalazłem błędy. Również w zeskanowanej przeze mnie tabeli zaznaczyłem te miejsca, które autor wskazuje w przypadku zamiany dwóch znaków. Dzieje się tak w przypadku, gdy klawiatura nie zaczyna się od nuty Fa, ale od nuty Do. Wszystkie części i podzespoły urządzenia zamontowałem na płytce drukowanej, a połączenia między pinami mikroukładów przylutowałem cienkim drutem w oplocie z fluoroplastycznego tworzywa sztucznego, jedynie pomiędzy klawiaturą a płytką przylutowałem płaskim kablem. Jedyne, co zrobiłem, to zwiększyłem pojemność kondensatora C1, ponieważ procesor nie uruchomił się. Klawiatura midi działa bardzo stabilnie i jak dotąd nie doświadczyłam żadnych problemów!!! Jeśli ten obwód wydaje się komuś bardzo skomplikowany, to spróbuj złożyć inny obwód, również opublikowany w Radiu nr 11, 1993. Jednak w tym obwodzie nie ma takich możliwości jak w obwodzie, o którym właśnie pisałem. Dlatego też polecam uzbroić się w cierpliwość i sporządzić schemat z magazynu Radia nr 3, 4 za rok 1997. Poniżej zeskanowany artykuł. Jeżeli ktoś nadal ma problemy z montażem proszę o kontakt, może będę mógł coś polecić. Jedyną wadą tego schematu jest, jak sądzę, niedogodność szybkiego wyboru instrumentu, a także mała możliwość wystąpienia efektu „PITCH”. Zazwyczaj klawiatury mają ten efekt w postaci kółka po lewej stronie klawiatury.

Życzę miłego zgromadzenia!!!

KLAWIATURA MIDI DO KOMPUTERÓW MULTIMEDIALNYCH I SYNTEZERÓW MIDI

S. Kononow, Tuła

Klawiatura MIDI opracowana przez autora tego artykułu należy do elektronicznych instrumentów muzycznych o podwyższonym stopniu skomplikowania i skierowana jest przede wszystkim do czytelników posiadających pewną wiedzę i doświadczenie w konstruowaniu tego typu sprzętu. Dlatego opis projektu podano w krótkim podsumowaniu. Redakcja wierzy, że treść tej publikacji przyciągnie uwagę tych, którzy ogólnie interesują się muzyką elektroniczną i być może zaczną projektować nowoczesny sprzęt. Przydatne będzie dla nich zapoznanie się z artykułami A. Studneva „Co to jest MIDI?” i „Klawiatura MIDI”, opublikowanej w styczniowym i listopadowym numerze „Radia” za rok 1993, a także artykuł K. Bystruszkina „Multimedia przyjdą do każdego domu” („Radio”, 1996, nr 3).

Polecana klawiatura MIDI to „tępy” instrument klawiszowy, którego głównym przeznaczeniem jest współpraca z komputerami osobistymi wyposażonymi w karty Creative, Sound Blaster, Gravis, YAMA-HA i inne, posiadające wejście midi. Dodatkowo umożliwia współpracę z zewnętrznymi syntezatorami, generatorami brzmień i dowolnym sprzętem, który posiada również wejście midi. Przy opracowywaniu funkcji serwisowych klawiatury MIDI wzorami do „imitacji” posłużyły się produkty włoskiej firmy „MASTER STAR”. . Najpierw zaprojektowałem uniwersalny pilot MIDI do akordeonu guzikowego i akordeonu, który został zaprezentowany na wystawie MUSIKMESE-95 (Frankfurt nad Menem). Wtedy właśnie zrodził się pomysł przekształcenia tego skomplikowanego konstrukcyjnie urządzenia w prostszą klawiaturę MIDI, dostępną do powtarzania przez czytelników magazynu Radio. Narzędzie ma solidną usługę. W szczególności pozwala każdemu klawiszowi sterować dwoma kanałami MIDi, przypisując każdemu z nich własne programy (barwy) i zapamiętując je wraz z poziomem głośności każdego kanału w pamięci urządzenia. W ten sposób możesz dowolnie łączyć i nakładać na siebie dowolne dwa próbki dźwięków spośród tych dostępnych w generatorze brzmień podłączonym do klawiatury. W „fajnych” urządzeniach tryb ten nazywa się „COMBY”. Klawiatura umożliwia także zmianę stroju instrumentu o jedną oktawę w górę lub w dół, przypisanie do 127 programów, sterowanie dużą liczbą kanałów MIDI (od 1 do 16). ), kontroluj efekty dźwiękowe PITCH BEND, VOLUME, MODULATION, SUSTAIN i wiele więcej. Tempo wykonywanego utworu wynosi od 20 do 240 uderzeń na minutę. Granica podziału klawiatury na dwie instrukcje jest dowolna. Narzędzie, obwód, składa się z trzech funkcjonalnie kompletnych części: bloku procesora (A1), panelu sterującego (A2) i bloku klawiatury (A3). Zestaw zastosowanych w nich mikroukładów jest podobny do podzespołów urządzeń takich jak Spectrum i Caller ID, więc miłośnicy projektowania EMR nie będą mieli trudności ze znalezieniem podstawy elementu. Blok procesora jest podobny pod względem konstrukcji do procesora Caller ID . Główny oscylator procesora Z80 (DD2) jest montowany przy użyciu elementów logicznych DD1.1 - DD1.3 i rezonatora kwarcowego ZQ1. Częstotliwość własna rezonatora kwarcowego musi wynosić 4 MHz, w przeciwnym razie zmieni się prędkość transmisji informacji MIDI z wyższego rzędu rejestru C układu DD6 przez element buforowy DD1.4. Jednostka jest montowana na tranzystorach VT1, VT2 zapewnia sygnał resetu na wejściu RES (RESET - pin 26) chipów DD2 podczas włączania/wyłączania źródła zasilania, gdy jego napięcie nie przekracza +4,5 V. Zwiększa to niezawodność przechowywania informacji w pamięci nieulotnej układu DD5 w momencie włączania i wyłączania zasilania. Bateria GB1 wraz z kondensatorem C3, rezystorem R8 i diodą VD2 zapewnia zasilanie mikroukładu DD4 w celu długotrwałego przechowywania w nim informacji, gdy ogólne zasilanie przyrządu jest wyłączone. Mikroukłady DD7 i DD8 panelu sterowania zapewniają odpytywanie przycisków SB1-SB19 panelu sterowania, dynamiczne wskazanie czterocyfrowego siedmioelementowego wyświetlacza, utworzonego przez wskaźniki HG1, HG2 i digitalizacja jedynej analogowej części urządzenia - regulatora głośności R40 „Głośność”. Do wyświetlacza wykorzystałem bardzo wygodne, moim zdaniem, jasne, podwójne wskaźniki VQE14 (stara nazwa KIPTS09I), instalowane w telewizorach Horizon 4. i 5. generacji. Włączenie wskaźnika HQ2 przebiega analogicznie do włączenia wskaźnika HG1 pokazanego na schemacie.

Blok klawiatury składa się z pięciooktawowej (61 klawiszy) klawiatury muzycznej zaczynającej się od nuty „F”, chipów D09, DD10 i złączy X1-X3 do podłączenia dwóch zewnętrznych odbiorników MIDI i pedału „SUSTAIN” do instrumentu. Każdy klawisz klawiatury wyposażony jest w parę styków normalnie otwartych, które połączone są w matrycę 8x8 z izolacją diodową (VD14-VD74). Na schemacie symbol SA1 oznacza klawisz położony najdalej na lewo, a symbol SA61 oznacza klawisz położony najdalej na prawo. Odpytywanie matrycy zapewniają chipy DD9 i DD10. Jeżeli klawiatura muzyczna konstruowanego instrumentu zaczyna się od nuty „C”, wówczas strojenie matrycy należy przesunąć o siedem klawiszy. Aby to zrobić, w pamięci ROM należy zwiększyć kod w komórkach o adresach 025FH i 0268H o siedem jednostek ( zobacz tabelę programowania ROM KR573RF5 ) , czyli zamiast kodu „05” wpisz „OSN”. Zasilacz klawiatury to mikroukładowy stabilizator napięcia KR142EN5V, którego wejście zasilane jest stałym napięciem 9 V z zewnętrznego źródła. Takim źródłem może być dowolny mały zasilacz sieciowy, w tym importowany, zapewniający obciążenie prąd co najmniej 500 mA. Kondensatory C6-C9 na wyjściu stabilizatora blokują obwody zasilania mikroukładów Części i podzespoły urządzenia są zamontowane na czterech płytkach drukowanych, które są połączone ze sobą płaskimi kablami i znajdują się pod przedniego panelu obudowy klawiatury. Przyciski przełączników SB1-SB19, wskaźniki HG1, HG2 i trzpień rezystora zmiennego R40, przełożone przez otwory w panelu, tworzą panel sterowania klawiatury MIDI. Pedał SUSTAIN może mieć dowolną konstrukcję z parą normalnie otwartych Łączność. Podłącza się go do instrumentu poprzez złącze X3 Jack (1/4 JACK), znajdujące się na tylnym panelu instrumentu. Wygląd klawiatury MIDI oraz układ wyświetlacza panelu sterującego (wskaźniki HG1, GH2), regulacji głośności (rezystor R40 „VOLUME”) i przycisków (SB1 - SB19) pokazano na ryc. Za ich pomocą muzyk może wykonywać wszystkie niezbędne operacje MIDI w zakresie wyboru barw, numerów kanałów, redystrybucji głosów itp., A także sterować zewnętrznym komputerem rytmicznym lub sekwencerem. Numerowane przyciski umieszczone po prawej stronie wyświetlacza wprowadzają odpowiednie numery programów, kanał MIDI i tempo, a przyciski funkcyjne po lewej stronie wyświetlacza kontrolują różne parametry klawiatury. Po kolejnym naciśnięciu przycisku „PROG” (program) na wyświetlaczu pojawiają się parametry klawiatury: - typ utworu i numer programu dźwiękowego tego utworu. Litery po lewej stronie wyświetlacza oznaczają: A - lewy (dolny) manual, B - prawy (górny) manual, C - dodatkowe urządzenie midi. Po literze następuje trzycyfrowy numer (000-127) programu audio przypisanego do tej ścieżki;

- kontrola tempa generatora rytmu; jednocześnie na wyświetlaczu wyświetlana jest litera T i trzycyfrowa liczba charakteryzująca częstotliwość uderzeń (uderzeń) na minutę, a przecinki na wyświetlaczu tworzą efekt „świateł do jazdy” do wizualnej kontroli prędkości generator tempa Zakres regulacji tempa wynosi od 20 do 240 - tryb kanału i numer programu własnego instrumentu: w tym przypadku litera P po lewej stronie wyświetlacza oznacza, że ​​cała klawiatura „siedzi”; ścieżka *A*. Litera U oznacza, że ​​informacja z klawiatury jest przesyłana jednocześnie do ścieżki „B” (tryb „COMBY”), litera L oznacza lewy manuał, czyli ścieżkę „A” (prawy manuał to „B ”). Za literą wyświetlany jest dwucyfrowy numer (00-99) własnego programu, przechowywanego w pamięci RAM DD5, numery programów dźwiękowych i kanałów MIDI dla ścieżek, a także następujące informacje: PITCH - prędkość strojenia tonalnego, MODULATION - poziom głębokości modulacji, VOLUME - poziom głośności, SPUT - granica separacji ręcznej, tryb kanału MODE (P.U, L), Ost A - +/- oktawa dla lewej manuały, Ost B - + /- oktawa dla prawej instrukcji. Przyciski „-1” i +1 zmniejszają (zwiększają) dane liczbowe na wyświetlaczu. Przycisk „MIDI” służy do przypisania kanału MIDI do każdej ścieżki, a jego kolejne naciśnięcie powoduje wybór ścieżki. Na wyświetlaczu pojawi się ścieżka Ac (Bc, CC) i numer (1-16) kanału MIDI. Za pomocą przycisku „START” uruchamiasz lub zatrzymujesz (drugim naciśnięciem) zewnętrzny komputer rytmiczny lub sekwencer – na wyświetlaczu na kilka sekund pojawia się odpowiednio „Strt” lub „Stop”. Przycisk „BIAŁY” ma dwa cele funkcjonalne. Jeżeli wszystkie wybrane parametry klawiatury są zadowalające i trzeba je zapamiętać pod bieżącym numerem własnego programu, należy dwukrotnie nacisnąć ten przycisk. Po pierwszym naciśnięciu na wyświetlaczu pojawią się cztery kreski zapraszające urządzenie do trybu programowania. Po drugim naciśnięciu wszystkie tryby i parametry zostają zapisane w pamięci programów własnych urządzenia, a na wyświetlaczu pojawia się aktualny numer własnego programu. Drugim przeznaczeniem przycisku „ZAPIS” jest praca z urządzeniem w trybie programowania funkcji. Tryb ten aktywuje się poprzez pierwsze naciśnięcie przycisku „ZAPIS”. Na wyświetlaczu pojawiają się cztery kreski, symbolizujące zaproszenie do trybu programowania. Zdigitalizowane przyciski zaczynają pełnić funkcje programistów trybów: - PITCH - prędkość strojenia tonalnego. Na wyświetlaczu pojawi się „PITCH BEND” i liczba (1-4). Wskazanie „Pb” odpowiada minimum, „Pb4” - maksymalnej szybkości zmiany tego parametru; - MODULACJA - głębokość modulacji 25, 50, 75 i 100%. Oznaczone literami LF (DŁUGA CZĘSTOTLIWOŚĆ) i cyframi odpowiednio 1. 2, 3 i 4; - VELOCFTY - prędkość naciśnięcia klawisza - stała dla całej klawiatury. Wskazany na wyświetlaczu jako trzycyfrowa liczba (000-127); - VOLUME - poziom głośności (O-15). Na wyświetlaczu pojawiają się dwie cyfry: po lewej stronie - dla lewej części klawiatury (ścieżka A) w trybie podziału manuałów, po prawej - dla części prawej (ścieżki B): - SPLIT - granica podziału klawiatury na dwa podręczniki. Na wyświetlaczu po lewej stronie klawiatury pojawi się „SP” (SPLIT) i dwucyfrowy numer ostatniego klawisza; - MODE - tryb programowania kanałów (P, U, L). Na wyświetlaczu zaświeci się „Pr” - litera odpowiadająca trybowi kanału (P, U, L); - TRANSPORT - transpozycja, czyli zmiana stroju klawiatury o 12 półtonów w dół lub o tę samą liczbę półtonów w górę. Tryb transpozycji w dół jest wskazywany na wyświetlaczu jako dwucyfrowa liczba 01-12 ze znakiem „-”. Tryb transpozycji w dół jest wskazywany bez znaku. Liczba 00 oznacza brak transpozycji; - Ost A - +/- oktawa dla lewej ręki. Oznacza to, że skalę klawiatury ścieżki A można przesunąć o oktawę w dół lub o oktawę w górę. Na wyświetlaczu pojawiają się „Ao”-1”, „Ao-0”, „Ao-1”, co oznacza odpowiednio przesunięcie o oktawę w dół, brak przesunięcia i przesunięcie o oktawę w górę: - Ost B - +/- oktawa dla właściwej instrukcji. Wyświetlacz wskazuje odpowiednio „In -1, „In 0” i „In 1” - PAUSE - długość przerwy pomiędzy wysyłkami MIDI. Na wyświetlaczu pojawia się „PA” i dwucyfrowa liczba 01-50, wskazująca wielkość pauzy w dowolnych jednostkach.

Niestety, niektóre karty muzyczne w komputerach multimedialnych „ślizgają się” przy zmianie programu audio, czyli w momencie ładowania nowego programu audio przestają odbierać komunikaty MIDI, co prowadzi do utraty odbieranych informacji. Przykładowo karta YAMAHA SW20 zmienia dźwięki w czasie 0,5...1 s, a GRAV1S ULTRASOUND ładuje programy dźwiękowe z dysku twardego, co zajmuje jeszcze więcej czasu. Dla przejrzystej pracy karty dźwiękowej YAMAHA SW20 wielkość pauzy odpowiada 16. Dla tanich kart typu SOUNDBLASTER i instrumentów muzycznych z wejściem MIDI PAUSE=1. „Parametry wymienionych funkcji można zmieniać za pomocą przycisków „-1” i „+1”. Po ponownym naciśnięciu przycisku „WRITE” program dźwiękowy ścieżki A (0-127) i program dźwiękowy ścieżki B (0-127) są wprowadzane do pamięci programów własnych urządzenia, ścieżka C programu dźwiękowego (0-127), kanał MIDI numer A (1-16), kanał MIDI numer B (1-16), kanał MIDI. numer C (1-16), głośność ścieżki A (0-15), głośność ścieżki B (0-15), oktawa A (-1, 0, 1), oktawa B (-1, 0. 1), obsługa tryb manuałów (P, U, L), poziomy, modulacja (1 -4), prędkość PITCH BEND (1-4). Niezależnie od numeracji seryjnej programów własnych opisywanego instrumentu, granica sekcji SPLIT (1-). 61), zmianę wysokości dźwięku TRANSPORT (-12, 0, +12), prędkość zapisywane są także w jego pamięci po naciśnięciu VELOCITY (0-127), tempo wykonywanej kompozycji (2&-240). Przyciski „PITCH-”, „P1TCH +”, „MOD” na pilocie klawiatury MlDI to pierwsze z nich regulujące głośność urządzenia zewnętrznego, jeśli klawiatura obsługuje dwa kanały MIDI (tryby U, L). regulator również obsługuje te kanały, ale po kolei. Której części klawiatury (manualnej) w ostatnim momencie dotknęła ręka, parametry regulacji głośności będą przesyłane tym kanałem MIDI. Można to zrobić wyraźniej wchodząc w tryb programowania funkcji - naciśnij przycisk „WRITE” i przyciskiem „4” włącz funkcję VOLUME. Gdy pokrętłem rezystora R40 będziemy płynnie obracać zgodnie z ruchem wskazówek zegara, na wyświetlaczu powinno pojawić się 16 stopni gradacji od 0 do 15. Jeśli pracujemy po lewej stronie klawiatury, regulator będzie wpływał tylko na głośność kanału „A” i poziom głośności zostanie wyświetlony po lewej stronie wyświetlacza. Podczas pracy po prawej stronie klawiatury sterowanie będzie miało wpływ. Przyciski „PITCH-” i „PITCH+” zapewniają wygodną symulację działania pokrętła PITCH BEND z płynnym przesuwaniem tonu w dół/w górę i do tyłu trybie programowania funkcji można przyspieszyć lub spowolnić działanie symulatora PITCH BEND. wybór jednej z czterech prędkości pitch-bend. Przycisk „MOD” jest elementem sterującym czterema poziomami modulacji (25, 50, 75 i 100%). Naciśnięcie i przytrzymanie go w tej pozycji umożliwia modulację tonu MIDI. Po zwolnieniu przycisku modulacja jest wyłączona. Posiadacze komputerów wyposażonych w karty dźwiękowe z interfejsem MIDI będą potrzebowali także przejściówki (adaptera MIDI), która jest niezbędna do izolacji galwanicznej pomiędzy wejściem MIDI instrumentu a wejściem midi TTL karty dźwiękowej komputera. Jego schemat pokazano na ryc. 2.

Izolację zapewnia transoptor AOT127A (U1). Adapter zasilany jest poprzez złącze karty dźwiękowej (piny 1,8 i 9 - +5 V, piny 4 i 5 - wspólny). Wejścia „MIDI THRU- i „MIDI OUT" przeznaczone są do podłączenia syntezatorów, generatorów brzmień i innych zewnętrznych odbiorników MIDI, które nie są wbudowane w komputer. Podczas konfigurowania klawiatury MIDI należy zwrócić szczególną uwagę na ustawienie R38- Węzeł R40 do konwersji poziomu regulacji głośności z sygnału analogowego na cyfrowy. Wykonaj tę czynność na dostrojonym i w pełni funkcjonalnym instrumencie w podanej kolejności. Włącz instrument, naciśnij przycisk „WRITE” na pilocie, a następnie użyj przycisku „4”. aby włączyć funkcję VOLUME. Obracając płynnie pokrętłem rezystora R40 w kierunku zgodnym z ruchem wskazówek zegara, na wyświetlaczu powinno wyświetlić się wszystkie szesnaście stopni gradacji - od 0 do 15. Jeżeli zakres regulacji jest odchylony lub wąski, uzyskaj normalną pracę układu analogowo-cyfrowego. konwersję poprzez wybór rezystora R38.

Sprawdź dostępność komunikatów midi w następujący sposób. Do pinu 5 złącza „MIDI OUT” podłącz sondę wejściową oscyloskopu, wciśnij pedał „SYS-TAIN” lub połącz (chwilowo) wejścia PCO i PC1 układu DD6 do wspólnego przewodu, następnie włącz zasilanie Przy takim połączeniu działa cykliczny program wyjściowy MIDI o kodzie 55H. Na ekranie oscyloskopu wygląda to jak sekwencja pakietów pięciu impulsów. Czas trwania każdego bitu komunikatu kodu wynosi 32 m, co odpowiada 31250 bitom na sekundę transmisji komunikatów MIDI.

  • Dźwięk
  • Jako dziecko miałem fortepian, prawdziwy, radziecki, ważył około 300 kilogramów, lubiłem na nim brzdąkać, a po skończeniu szkoły muzycznej nawet na czymś grałem. Fortepian jest fajny, autentyczny, ale wcale nie praktyczny. A żeby naprawdę zrobić to dobrze dla duszy, potrzebny jest także zestaw perkusyjny, zestaw akcesoriów do gitary elektrycznej, klarnet, sitar i pętle sampli…

    Oczywiście teraz nie musisz już zamieniać swojego mieszkania w garażowe studio z sześcioma pensjami; wystarczy, że zainstalujesz darmowy edytor muzyki na swoim komputerze. Ale to wszystko jest niewygodne.

    Klawiatura komputerowa wcale nie przypomina instrumentu klawiszowego, tutaj wszystko jest inne. Co więcej, wcale nie nadaje się to do nauczania dziecka. Wygląda na to, że nie ma innego wyjścia, jak tylko kupić syntezator. Ale nadal mam wątpliwości.

    Co to jest syntezator? Duże urządzenie, z klawiaturą muzyczną, które powinno gdzieś zajmować sporo miejsca. Który ma wbudowaną akustykę, ale amplituner z głośnikami już mam. Który ma wbudowany zły komputer, ale ja mam dobry komputer.

    Okazuje się, że za 40 tys. kupuję to, co już mam, w najlepszej jakości, z wyjątkiem klawiatury. To tylko maksimum irracjonalnych wydatków.

    Szukając osobnej klawiatury natknąłem się na taką klasę urządzeń jak USB MIDI Keyboard.
    Zawsze wydawało mi się, że MIDI należy do dziedziny profesjonalnej działalności muzycznej.
    Ale teraz cała muzyka jest tworzona na komputerze, w dowolnym dogodnym miejscu, co oznacza, że ​​muzycy potrzebują mobilnych klawiatur muzycznych, które z łatwością zmieszczą się w plecaku.

    W mojej głowie od razu powstał plan. Klawiaturę MIDI podłączamy do domowego centrum multimedialnego opartego na Raspberry Pi 3, na którym działa syntezator programowy, dzięki czemu każdy może w dowolnym momencie wykonać swoje kolejne arcydzieło. Te klawiatury MIDI mają zwykle zestaw elementów sterujących i dodatkowe przyciski zaprogramowane dla różnych efektów lub dodatkowych instrumentów muzycznych. Wygląda i brzmi bardzo fajnie!

    Są urządzenia większe i mniejsze, jedne droższe, inne tańsze. Wybrałem opcję za około 5 tysięcy. Ma dwie oktawy, klawisze normalnej wielkości, przyciski dla perkusistów, pokrętła strojenia, czyli wszystko, o czym mógłby marzyć początkujący muzyk elektroniczny.

    Nie jestem ekspertem w tworzeniu muzyki na PC, więc ciężko było szukać sposobów na realizację mojego pomysłu. Informacje trzeba było zbierać krok po kroku. Zagadka stopniowo zaczęła nabierać kształtu i udało mi się ułożyć działające rozwiązanie, którym się z Wami dzielę. Co dziwne, standardowa dystrybucja Raspbian/Debian zawierała wszystko, czego potrzebujesz, nie trzeba było nawet podłączać zewnętrznych repozytoriów.

    Fluidsynth służy jako sekwencer (aplikacja odtwarzająca pliki MIDI).
    Klawiatura MIDI jest natychmiast wykrywana przez ALSA i jest dostępna do podłączenia do sekwencera.
    Aby odtworzyć dźwięki różnych instrumentów, wykorzystywane są otwarte bazy danych próbek w formacie SoundFont2. Najpierw zainstalujmy to wszystko.

    Sudo -s apt-get update apt-get -y install alsa-utils płyn-soundfont-gm płynsynth
    Do Raspberry podłączamy klawiaturę MIDI i uruchamiamy sekwencer w trybie serwerowym:

    Fluidsynth -i -s -a alsa -g 3 /usr/share/sounds/sf2/FluidR3_GM.sf2
    Wykonujemy polecenie:

    Połącz -o
    W rezultacie zobaczymy listę dostępnych klientów MIDI:

    Klient 14: „Midi Through” 0 „Midi Through Port-0” klient 20: „VMini” 0 „VMini MIDI 1” 1 „VMini MIDI 2” klient 128: „FLUID Synth (1628)” 0 „Port wejściowy syntezatora (1628) ) :0)"
    Tutaj ważne jest, abyśmy zapamiętali numery klientów klawiatury i sekwencera, abyśmy mogli następnie połączyć je poleceniem:

    Apodłącz 20:0 128:0
    Teraz wszyscy jesteśmy gotowi do gry na pianinie Yamaha (jest to instrument domyślny). Przeczytaj instrukcję Fluidsynth, jest tam wiele ciekawych poleceń, np. zmiana instrumentu na perkusję lub instrument dęty, ustawienie ilości pogłosu lub chorusa.

    Sprawmy, aby nasz syntezator programowy był wygodny. Aby nie za każdym razem ręcznie podłączać klawiatury do sekwencera, napiszemy prostego demona, który zrobi to automatycznie przy uruchomieniu.

    Kot > /etc/init.d/fluidsynth<< EOF #!/bin/bash ### BEGIN INIT INFO # Provides: fluidsynth # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Fluidsynth deamon to play via MIDI-keyboard ### END INIT INFO startDaemon() { sleep 30s && fluidsynth -i -s -a alsa -g 3 --load-config=/home/osmc/midi-router >/var/log/fluidsynth & Sleep 60s && aconnect 20:0 128:0 & ) stopDaemon() ( pkill -9 płynsynth &> /dev/null ) restartDaemon() ( stopDaemon startDaemon ) case „$1” na początku) startDaemon ; ; zatrzymaj) zatrzymajDaemona ;; restart) restartDaemon ;; stan) ;; *) startDaemon esac wyjdź 0 EOF
    Zarejestruj demona dla autorun:

    Chmod 755 /etc/init.d/fluidsynth update-rc.d ustawienia domyślne płynu synth
    Należy pamiętać, że teraz przy uruchomieniu sekwencera wysyłany jest plik konfiguracyjny (/home/osmc/midi-router) zawierający polecenia, które zamieniają naszą klawiaturę w prawdziwy syntezator.

    To jest ta rzecz. Każdy klawisz i pokrętło na klawiaturze wysyła określone zdarzenia z własnym numerem. Jak rozumiem, nie ma tu specjalnych standardów, więc każdy producent robi, co chce. Na przykład chcę, aby kwadratowe klawisze brzmiały jak perkusja, pozostałe klawisze brzmiały jak fortepian, a pokrętła kontrolowały głośność, pogłos i chorus.

    Muszę więc zmapować kody zdarzeń z klawiatury na różne instrumenty i kody z pokręteł na kody zrozumiałe dla sekwencera. W Fluidsynth odbywa się to za pomocą routera. To właśnie te polecenia znajdują się w pliku konfiguracyjnym.

    Oto przykład mojego pliku konfiguracyjnego z komentarzami na temat jego działania.

    Kot > /home/osmc/midi-router<< EOF # загружаем стандартные инструменты и ударники, найденные где-то на просторах Сети load /usr/share/sounds/sf2/FluidR3_GM.sf2 load /home/osmc/241-Drums.SF2 # связываем инструмент каждый со своим каналом select 1 2 128 0 select 2 1 0 0 # по умолчанию звук идет на канал 0 # перенаправляем события с квадратных клавиш на канал с ударными router_begin note router_chan 0 0 0 1 router_par1 36 48 1 0 router_end # события с остальных клавиш перенаправляем на канал с пианино router_begin note router_chan 0 0 0 2 router_par1 0 35 1 0 router_end router_begin note router_chan 0 0 0 2 router_par1 49 255 1 0 router_end # события с ручек мэпим на события, которые понимает секвенсер, # полный их список есть в документации на сайте fluidsynth router_begin cc router_chan 0 0 0 2 router_par1 14 14 0 98 router_end router_begin cc router_chan 0 0 0 2 router_par1 15 15 0 11 router_end router_begin cc router_chan 0 0 0 2 router_par1 16 16 0 91 router_end router_begin cc router_chan 0 0 0 2 router_par1 17 17 0 93 router_end # выключаем громкость на канале 0, # иначе при нажатии на клавишу # разные инструменты будут звучать одновременнно cc 0 7 0 EOF
    Aby dowiedzieć się, jakie kody generuje Twoje urządzenie, musisz skorzystać z tego narzędzia:

    Aseqdump -p 20:0
    Nasłuchuje i wysyła zdarzenia z klawiatury MIDI do konsoli. Naciśnij przycisk lub obróć pokrętło, a zobaczysz typ zdarzenia, kanał i kod. Możesz zaprogramować klawiaturę tak, jak chcesz, a nie tak, jak wymyślili to inżynierowie, którzy zaprojektowali konkretny syntezator. Za co wielkie podziękowania dla twórców Flusynth, Alsa, SoundFont2, Raspberry i V-Mini.

    Nawiasem mówiąc, ten temat syntezatorów DIY znajduje odzwierciedlenie w kilku wynalazkach, polecam go przestudiować.

    Klawiatura przeznaczona jest do podłączenia do zewnętrznego modułu dźwiękowego lub komputera (o ile posiada odpowiedni interfejs) przy wykorzystaniu protokołu MIDI – w celu rejestracji muzyki do programu sekwencera lub występu na żywo. Liczba klawiszy w proponowanej wersji wynosi 48, ale można ją zwiększyć do 64 bez zmiany obwodu. Cechą charakterystyczną proponowanej klawiatury jest jej wrażliwość na siłę uderzenia w klawisz.

    Historia urządzenia

    Jakiś czas temu w związku z zakupem mieszkania zmuszony byłem stracić luksusowy instrument, który służył mi za klawiaturę MIDI – była to legendarna YAMAHA DX-7. Kiedy smutek opadł, pojawiło się pytanie w całej swojej dotkliwości i brzydocie: nad czym pracować? To właśnie w tym momencie, dzięki staraniom mojego przyjaciela, w moje ręce wpadł półzłożony obwód dla KR1816BE39 (u przeciwnika ten procesor nazywa się 8048). Układ jest łatwy w montażu i konfiguracji, a co najważniejsze, przyszedł pod ręką we właściwym czasie. Klawiaturę w postaci matrycy 8x6 zmontowałem wykorzystując KR1533ID7 i KR1533KP7. Była też mucha w maści – dwie wady tego schematu zabijają na śmierć wszystkie jego zalety: brak wrażliwości na prędkość naciskania klawiszy (głośniki) i koło PITCH WEEL. Cóż, kiedyś programowałem na Z-80 (a nawet stworzyłem działający sekwencer) i postanowiłem otrząsnąć się z dawnych czasów. Zdecydowanie odrzuciłem Z-80 jako procesor jako moralnie przestarzały. Poza tym nie chciałem dużo lutować, więc zdecydowałem się wziąć to samo urządzenie za podstawę na KR1816BE39, wyposażając je w kolejny multiplekser do zrywania (górnych) styków klawiszy. Znalazłem dokumentację (nie uwierzycie - w bibliotece książka „Designing Digital Devices on Single-Chip Microprocessors”) dla asemblera KR1816BE39 i nabazgrałem program... A potem okazało się, że programista ROM znajomego miał umarł i po prostu nie było czym sflashować programu... Z żalu zupełnie straciłem rozum i postanowiłem przepisać ten sam algorytm dla PIC. W pół dnia programator (LUDIPIPO) został zlutowany, następnie z podstawki KR1533ID7 i pary KR1533KP7 powstał prototyp, a cała instalacja została wykonana przez MGTF bez żadnej pieczątki. I zaczął się proces...

    Najpierw została uruchomiona niedynamiczna wersja programu (prezentuję ją również dla tych, którzy posiadają klawiaturę z jednym stykiem na klawisz). Następnie uruchomiono wersję dynamiczną. A potem pojawił się pomysł, aby dodać przyciski i wskaźnik. Faktem jest, że miałem WAVEBLASTER (córkę syntezatora wavetable do bardzo starych systemów dźwiękowych) przez długi czas leżący bezczynnie. Podłączając go do mojego dzieła, otrzymałem coś, na czym można grać (w miarę swoich możliwości i talentu) bez komputera, co czasami jest całkiem wygodne. To determinowało zestaw funkcji na przyciskach – może się to przydać przy podłączaniu do modułów dźwiękowych podczas grania „na żywo”. Funkcje przycisków można łatwo zmienić, pisząc własne procedury obsługi i korzystając z moich procedur odpytywania i wyświetlania. Jakimś cudem klawiatura zamontowana w żelaznej obudowie okazała się wygodniejsza od YAMAHA PSS (wciąż pełnowymiarowe klawisze, pedał i co najważniejsze dynamika!). W trakcie procesu twórczego zrodziła się trudna chęć stworzenia wersji klawiatury MIDI wyłącznie dla komputera - wskaźnik i przyciski są opcjonalne, ale potrzebne są kółka PITCH WEEL i MODULATION. Trochę się z tym męczyłem, ale w końcu się poddałem i włączyłem lutownicę z powrotem. Elektronika nie jest trudna w montażu, ale mechanika jest nieco trudniejsza i zacząłem marszczyć brwi nad konstrukcją kół. Po namyśle zdecydowałem się zrezygnować z drugiego koła – zresztą nigdy nie kręcę obydwoma na raz, zazwyczaj najpierw piszę notatki i ton, a potem dodaję modulację. Nie mniej istotnym czynnikiem było zmniejszenie o połowę wolumenu pracy mechanicznej, którą tak bardzo kochałem. Dla mniej leniwych wyjaśnię poniżej, jak zrobić dwa koła prawie bez komplikacji. Aby nadal móc pisać modulację, postanowiłem zorganizować trzy tryby pracy koła: wysokość na 2 półtony, wysokość na 1 półton (wygodne) i modulacja. Wszystko to możesz przełączyć jednym przyciskiem, a tryb sygnalizować parą diod LED. Aby uprościć obwód, wyeliminowałem pozostałe przyciski i wskaźniki; wszystko to nie jest potrzebne do pracy z nowoczesnymi programami sekwencerowymi.

    Koło oczywiście trzeba założyć na oś potencjometru, to zrozumiałe, tylko do czego to podłączyć? Moją pierwszą myślą było użycie pojedynczego impulsu na timerze 555, ale obliczenia wykazały, że trudno byłoby osiągnąć dokładność i stabilność pomiaru szerokości impulsu, próbując zapewnić akceptowalną częstotliwość próbkowania koła, ponieważ procesor jest zajęty głównie pomiarami. czas przełączania styków klawiatury. Jedynym sposobem, jaki pozostaje, jest użycie przetwornika analogowo-cyfrowego (ADC). Ponieważ użyłem Pic16F84 bez wbudowanego ADC, przypomniałem sobie moje wykształcenie inżynierskie (i moją rodzimą fabrykę) i zrobiłem ADC z kilku rezystorów za pomocą komparatora (i fragmentu programu). Okazało się proste, tanie i dość dokładne.

    Prezentuję oba schematy - zarówno z przyciskami, jak i z kółkiem, a także programy do nich. W razie potrzeby oba obwody można łatwo połączyć, nieznacznie zmieniając adresy urządzeń zewnętrznych; trzeba tylko pamiętać, że tryb CHORUS (STEREO) wykorzystuje wysokość dźwięku do uzyskania przestrojenia i trzeba ją albo usunąć, albo martwić się o przesyłanie wysokości przy przestrojeniu. pomiędzy kanałami.

    A więc - rzeczywista klawiatura

    Schemat urządzenia

    Jako pierwsza pojawiła się wersja niedynamiczna, niewrażliwa na siłę uderzenia w klawisz – w celu sprawdzenia funkcjonalności układu.

    Użyłem PIC16F84 jako procesora z kilku powodów: ten chip jest dostępny, tani i łatwy w programowaniu, i to był ten, który miałem pod ręką. Uwaga: PIC16C84 się nie nadaje - ma tylko 36 komórek RAM i program nie będzie działał. Jednakże obwód koła zużywa mniej komórek RAM i jego program można wcisnąć do PIC16C84, redukując kilka dodatkowych komórek, na przykład MIDCH (poprzez przypisanie stałego kanału MIDI do wszystkich przesyłanych danych).

    Schemat klawiatury dynamicznej ze wskazaniem pokazano poniżej:

    Układ jest pod wieloma względami tradycyjny – trudno wymyślić rower na nowo bez pedałów i kół. J Port B służy do transmisji – dolne 7 bitów wyprowadza adres klucza w matrycy lub dane do urządzeń zewnętrznych (wskaźnik i DAC koła). Najbardziej znaczący bit służy do wyprowadzania danych MIDI w kodzie szeregowym – konwersja i wyjście odbywa się w oprogramowaniu. Dlatego częstotliwość powinna być ustawiona na 4 MHz, chyba że chcesz przepisać procedurę wyjściową bajtów MIDI. Do odbioru służą dwa najmniej znaczące bity portu A - odbierają sygnały z multiplekserów „zwolnionych” i „wciśniętych” styków klawiszy, a trzy najbardziej znaczące bity określają adres urządzenia zewnętrznego (poprzez inny dekoder KR1533ID7). W obwodzie z kołem zrezygnowałem z dekodera adresu urządzenia zewnętrznego, aby uprościć obwód i zwolnić wysoki bit portu PA4 na wejście danych z komparatora, dzięki czemu adresy klawiatury i przycisków są różne. Podczas łączenia obwodów ten mikroukład będzie musiał zostać zwrócony, aby odszyfrować adres, użyć bitów portu PA2 i PA3 oraz zaadresować 4 urządzenia: klawiaturę, przyciski, rejestr danych sygnalizacji dynamicznej i rejestr znajomości sygnalizacji dynamicznej. Wskazanie trybu koła będzie musiało zostać przepisane.

    Układ z kołem PITCH WEEL/MODULATION wygląda następująco:

    Na każdym klawiszu zainstalowana jest jedna dioda służąca do odsprzęgania. Rezystory na wejściach multiplekserów nie powinny być większe niż 8 k, w przeciwnym razie możliwe są zakłócenia ze względu na pojemność montażową. Wskaźnik - dowolny ze wspólną anodą na 3 cyfry, jeżeli zaciski segmentów każdej cyfry są wyprowadzone osobno, należy połączyć zaciski segmentów o tej samej nazwie - sygnalizacja jest dynamiczna, a cyfry świecą sekwencyjnie. Dowolne przyciski, bez blokady, odbicie kontaktu jest kontrolowane przez oprogramowanie. Diody LED są zainstalowane w pobliżu przycisków o tej samej nazwie i wskazują aktywację odpowiednich trybów; przyciski „+” i „-” nie mają diod LED. Tranzystory we wskaźniku to dowolne przewodzenie zwrotne o małej mocy i wysokiej częstotliwości. Dwa rejestry KR1533IR23 służą do naprzemiennego zatrzaskiwania adresu i kodu aktualnej cyfry wskaźnika (diody LED są również zgrupowane w dwie quasi-cyfry). Użyłem standardowej klawiatury radzieckich organów elektrycznych z 48 klawiszami (była również produkowana osobno jako projektant radia „START” i jest dość rozpowszechniona). Aby zmniejszyć wysokość klawiatury i grubość instrumentu, pod każdym klawiszem pozostawiono dwie z sześciu grup styków, a całość wycięto i ponownie sklejono. Generalnie wystarczy jedna grupa przełączająca na klawisz, ale wygodniej było ją przykleić w ten sposób. Szyny styków „zwolnionych” i „wciśniętych” mają długość 8 klawiszy. W razie potrzeby można także zastosować klawiaturę, w której zamiast przełączającej grupy styków zastosowano dwie pary styków zwiernych – jedna para zamyka się na początku ruchu klawisza, druga na końcu (jak w instrumentach YAMAHA). W takim przypadku sygnał do PA0 musi być doprowadzony z wyjścia zwrotnego multipleksera (pin 6). Bez zmian w obwodzie można używać klawiatury z 64 klawiszami (standardowo – 61, czyli 5 oktaw). W razie potrzeby liczbę kluczy można zwiększyć do co najmniej 127; w tym celu należy wprowadzić do obwodu kolejny dekoder KR1533ID7.

    Bardzo ważne jest dobre ustawienie mechaniki - górne styki MUSZĄ zamknąć się po zwolnieniu klawiszy. Jeśli tego nie zrobimy, program uzna takie klawisze za naciśnięte i spróbuje je przetworzyć, więc ponowne naciśnięcie tych klawiszy nie spowoduje wygenerowania dźwięku. Dodatkowo maksymalna liczba nut, które można zagrać jednocześnie to 10 (jeśli komuś urosło więcej palców na dłoniach, liczbę tę można łatwo zmienić), a niepuszczanie klawiszy zmniejsza tę liczbę. Z tych samych powodów liczba klawiszy określona w procedurze odpytywania klawiatury MUSI odpowiadać liczbie klawiszy rzeczywistych. Odbicie styku jest tłumione przez oprogramowanie.

    W przypadku matrycy rezystancyjnej R-2R ADC zaleca się dobór rezystorów z dokładnością 1–2%, a wartości bezwzględne mogą być różne, ważny jest stosunek. Nie należy jednak znacznie zwiększać wartości nominalnej; wydłuży to czas konwersji ze względu na pojemność wejściową komparatora. Użyłem rezystorów SMD bez dopasowania, choć pomiary wykazały, że w jednej listwie montażowej rezystory są zazwyczaj dopasowywane z dokładnością powyżej 1%. Jestem pewien, że obwód będzie działał z nieprecyzyjnymi rezystorami, ale liniowość charakterystyki ulegnie pogorszeniu. Samo kółko zrobione jest z uchwytu ze starego telewizora i posiada sprężynę na osi potencjometru, która przywraca je do pozycji środkowej. Dla wygody ustawiania mechaniki, po włączeniu zasilania z wciśniętym przyciskiem trybu, aktywowany jest program debugujący, który zapala diodę LED, gdy koło znajduje się w pozycji środkowej, pozwala to na precyzyjne dostrojenie pozycji zerowej koła na osi potencjometru. Jeżeli istnieje potrzeba i chęć wykonania osobnego koła MODULACJA, należy je podłączyć do wolnego elementu porównawczego (jest ich cztery), a matryca R-2R jest wspólna dla obu kół. Aby przełączyć wyjścia komparatorów, lepiej zastosować dodatkowy mikroukład i użyć PA2 jako sygnału sterującego.

    W razie potrzeby można złożyć dynamiczną wersję klawiatury bez wskaźników, przycisków i pokrętła PITCH WEEL/MODULATION - po prostu bez konieczności montażu nieużywanej części obwodu. Wszystkie parametry, które można zmienić, zostaną ustawione na domyślne po włączeniu zasilania...

    Wszystko to można zasilać z czegokolwiek, pobór prądu zależy od konkretnego wskaźnika i nie przekracza 100 mA. Mam stabilizator 7805 bezpośrednio na płycie bez radiatora (wyraźnie widać to na zdjęciu). Jeśli dostarczane jest do niego napięcie większe niż 9 V, potrzebny jest mały grzejnik. Komparator zasilany jest napięciem 9 - 12 V, najlepiej stabilizowanym. Tak, użyłem radzieckich mikroukładów ze starych zapasów - istnieje duża liczba ich nowoczesnych analogów, wymiana jest możliwa, a nawet pożądana - nowoczesne analogi mają mniejsze zużycie.

    Program

    Algorytm przetwarzania wciśniętych klawiszy pochodzi z algorytmu zaproponowanego w czasopiśmie „Microprocessor Tools and Systems” nr 5, 1986. To właśnie ta publikacja (a raczej błąd w proponowanym programie) skłoniła mnie do nauki asemblera. Właściwie jedynym pomysłem stamtąd było zapisanie numeru każdego wciśniętego klawisza w specjalnie przydzielonym obszarze pamięci RAM (CHAN), aby przy ponownym odpytywaniu klawiatury nie przetwarzała ponownie już przetworzonego klawisza. Na każdy z wciśniętych klawiszy mam przydzielone dwie komórki RAM (w sumie nie więcej niż 10): w pierwszej rejestrowany jest numer wciśniętego klawisza, w drugiej - jego PRĘDKOŚĆ (szybkość naciśnięcia). Powtarzam – tych komórek jest tylko 20, a adres początkowy podawany jest przy nazwie CHAN. Znakiem wolnej pary jest ustawiony najbardziej znaczący bit pierwszej komórki. Najbardziej znaczący bit drugiej ustawianej komórki oznacza, że ​​dla tego klucza została już przesłana UWAGA WŁĄCZONA i nie wymaga ona dalszego przetwarzania.

    Nie będę szczegółowo opisywał całego programu; kod źródłowy jest pełen komentarzy i jest dość przystępny dla przeszkolonej osoby. Dla reszty od razu udostępniam gotowy firmware w plikach Dinamic.hex i Pitchmod.hex. Wyjaśnię tylko niektóre nieoczywiste punkty. Ano przede wszystkim o dynamice: w momencie rozwarcia górnych styków klucza, jego numer jest wpisywany do pierwszej komórki pierwszej wolnej pary z obszaru CHAN, jednocześnie zerując znak wolnej pary. Do drugiej komórki zapisana jest wartość początkowa VELOCITY = 127. Czułość klawiatury jest określana na podstawie częstotliwości przerwań, ponieważ przetwarzanie przerwań zmniejsza wartości VELOCITY dla wszystkich klawiszy, dla których nie przesłano jeszcze NOTE ON. Przerwania są powodowane przez wbudowany timer. W momencie zwarcia dolnych styków klawisza, w odpowiedniej komórce CHAN ustawiany jest znak „przesłany” i transmitowana jest UWAGA WŁĄCZONA z aktualną PRĘDKOŚCIĄ. Aby poprawić krzywą czułości, wartości VELOCITY zmniejszają się zgodnie z prawem logarytmicznym: 1/16 jej części, zmniejszona o 1, jest odejmowana od aktualnej wartości VELOCITY, podczas gdy klawisz przesuwa się od górnego kontaktu do dolnego jeden, wartość PRĘDKOŚCI w odpowiedniej komórce CHAN maleje zgodnie z prawem logarytmicznym, a im szybciej porusza się klawisz, tym większa jest PRĘDKOŚĆ w momencie zwarcia dolnych styków klucza i przesłania NOTATKI WŁĄCZONEJ. Przerwania kontrolują także dynamiczne wyświetlanie, ma to na celu wyeliminowanie migotania wskaźników.
    Funkcje przycisku: TRANSPOSE - wszystkie klawisze są zredukowane do ulubionego a-moll: zakres +/- 15 półtonów. PRG przypisuje barwę (instrument) do danego presetu (UP1-UP5), a VOL przypisuje jego głośność. Aktualny parametr jest wyświetlany na wskaźniku i można go zmienić za pomocą przycisków „+” i „-”. TWIN wyświetla „podwójną” barwę - jeden z presetów (UP1-UP5) i jednocześnie preset LOWER. dźwięk jednocześnie. STEREO wyprowadza dźwięk bieżącego ustawienia wstępnego do prawego i lewego kanału stereo z lekkim „rozstrojeniem” (efekt „chorus”). Przycisk SPLIT nie jest aktywny. Pedał SUSTAIN zaprojektowano obwodowo jako jeden z przycisków, pojemność jego przewodu nie powinna być zbyt duża. Adresy procedur obsługi przycisków są zebrane w tabeli na początku programu; przy zmianie funkcji przycisków można je zastąpić własnymi.

    Przetwornik ADC koła jest w połowie programowy, działa w oparciu o algorytm kolejnej aproksymacji, konwersję cyfrowo-analogową realizuje matryca R-2R. Najpierw do macierzy R-2R przykładana jest 1 najbardziej znacząca cyfra, a komparator określa, czy to dużo, czy mało. Jeśli jest mało, w najbardziej znaczącym bicie pozostaje 1, jeśli jest dużo - 0. Następnie to samo dzieje się z każdym kolejnym bitem młodszego rzędu (w sumie 6 kroków) i otrzymujemy sześciobitową liczbę odpowiadającą kąt obrotu koła. Dokładność ta wydaje mi się wystarczająca, ale można dołożyć jeszcze jeden bit zwiększając macierz i program przeliczający.

    Projekt

    Jako właściwą klawiaturę użyłem radzieckiego konstruktora „Start”, teraz być może łatwiej jest znaleźć starą, niedziałającą Yamahę lub Casio, to również rozwiąże problem wykonania obudowy - jeśli oczywiście będzie; stary instrument jest stosunkowo nienaruszony...

    Nie opracowano płytki drukowanej - uznałem za niewłaściwe poświęcanie czasu na okablowanie i wykonanie płytki w celu wyprodukowania pojedynczego egzemplarza urządzenia, a układ został wykonany na płytce drukowanej za pomocą zworek MGTF. Jako złącze i kabel do klawiatury wykorzystaliśmy kabel od stacji dyskietek z komputera posiadający z każdej strony odpowiednie złącze - ułatwia to montaż/demontaż gotowego urządzenia.

    W moim przypadku korpus został wygięty z cienkiej blachy stalowej (taka była pod ręką) - z drewnianymi bokami (jak stare radzieckie instrumenty).

    Cóż, w skrócie, to wszystko. Twórczy sukces!

    Lista radioelementów

    Przeznaczenie Typ Określenie Ilość NotatkaSklepMój notatnik
    Schemat nr 1.
    MikrokontrolerPIC16F841 Do notatnika
    ŻetonKR1533ID71 Do notatnika
    ŻetonKR1533KP71 Do notatnika
    regulator liniowy

    LM7805

    1 Do notatnika
    Dioda

    KD522A

    64 Do notatnika
    Kondensator22 pF2 Do notatnika
    Kondensator0,1 µF2 Do notatnika
    100 µF2 Do notatnika
    Rezystor

    220 omów

    2 Do notatnika
    Rezystor

    6,8 kOhm

    8 Do notatnika
    Rezonator kwarcowy4 MHz1 Do notatnika
    Przycisk klawiatury 64 Do notatnika
    Schemat nr 2.
    MikrokontrolerPIC16F841 Do notatnika
    ŻetonKR1533ID72 Do notatnika
    ŻetonKR1533KP72 Do notatnika
    ŻetonKR1533IR232 Do notatnika
    regulator liniowy

    LM7805

    1 Do notatnika
    Tranzystor bipolarny

    KT315A

    5 Do notatnika
    Dioda

    KD522A

    80 Do notatnika
    Kondensator22 pF2 Do notatnika
    Kondensator0,1 µF2 Do notatnika
    Kondensator elektrolityczny100 µF2 Do notatnika
    Rezystor

    180 omów

    7 Do notatnika
    Rezystor

    220 omów

    2 Do notatnika
    Rezystor

    6,8 kOhm

    16 Do notatnika
    Rezystor

    8 kiloomów

    1 Do notatnika
    Rezonator kwarcowy4 MHz1 Do notatnika
    3-cyfrowy wskaźnik cyfrowy LED ze wspólnymi anodami. 1 Do notatnika
    Dioda LEDCzerwony12 Do notatnika
    Przełącznik kluczykowy 64 Do notatnika
    Przycisk 16 Do notatnika
    Schemat nr 3.
    MikrokontrolerPIC16F841 Do notatnika
    ŻetonKR1533ID71 Do notatnika
    ŻetonKR1533KP72 Do notatnika
    Komparator

    Od dawna chciałem obudzić w sobie kompozytora i zacząć tworzyć własną muzykę elektroniczną. Jednak zniechęciły mnie (delikatnie mówiąc) wysokie ceny kontrolerów MIDI. Ale po przeszukaniu Internetu wpadłem na pomysł stworzenia własnego kontrolera przy użyciu Arduino Uno i farb przewodzących!

    Zaczynajmy)

    Krok 1: Wybór części

    Można nieznacznie odstąpić od prezentowanego materiału, a złożony kontroler MIDI nadal będzie działał (przez „odbiegać nieznacznie” mam na myśli to, że można zamontować rezystor o nieco innej wartości lub pozostawić jeden z pinów odłączony).

    Z elektroniki potrzebujemy:

    • 1 Arduino Uno z kablem USB;

    • 1 słoik farby przewodzącej;

    • 1 płyta montażowa o wymiarach 5x7 cm;

    • 3 przyciski;

    • rezystory o rezystancji 2,2 kOhm;

    • 1 dioda;

    • rezystory o rezystancji 10 kOhm;

    • 1 czujnik LDR;

    • rezystory o rezystancji 4,7 kOhm;

    • 1 zworka;

    • 12 szt. rezystorów 2,7 MΩ;

    • 30 prostych szpilek;

    • 12 wygiętych szpilek;

    • 12 adapterów;

    • 12 spinaczy do papieru.

    Oprócz elektroniki potrzebne będą również następujące narzędzia:

    • Lutownica i lut;
    • Nożyce do drutu;
    • Stojak do lutowania części (trzecia ręka);
    • Multimetr;
    • Kilka drutów i/lub cienki drut metalowy.

    Krok 2: Przylutuj piny

    Tworzenie płytki zaczynamy od przylutowania pinów. Opublikujmy wygięte szpilki na środku pierwszego rzędu na planszy. Posłużą one później jako „czułe” piny, do których zostanie podłączona klawiatura.

    Po zamontowaniu kołków zwróć uwagę, że krótkie kołki wystają z płytki. Naciskamy na nie, aby wszystko się wyrównało. Teraz je lutujemy i od razu sprawdzamy połączenia pod kątem zwarć.

    Uwaga: Nie lutuj pinów zbyt długo, w przeciwnym razie nagrzeją się i stopią plastik.

    W następnym kroku umieść proste grzebienie w szczelinach Arduino. Zainstalujmy płytkę na pinach włożonych do Arduino. Czynność ta wymagała użycia niewielkiej siły, ponieważ kołki nie są idealnie dopasowane do otworów na płycie.

    Po pomyślnym zamontowaniu płytki na kołkach upewnij się, że kołki znajdują się równo z górną krawędzią płytki. Po czym można je lutować.

    Krok 3: Przylutuj zworki

    Teraz wyjmijmy płytkę z Arduino i odwróćmy ją na drugą stronę. Przylutujmy zworki, do których później zostaną przymocowane komponenty. Można to zrobić na dwa sposoby:

    • Wypełnij wszystkie niezbędne otwory lutem, a następnie połącz je ze sobą.
    • Użyj cienkiego drutu.

    Radzę skorzystać z drugiej metody, ponieważ jest prostsza i szybsza. Jeśli wybierzesz tę metodę, umieść przewód na płytce tak, jak pokazano na obrazku.

    • Czerwona kropka oznacza przylutowanie drutu do otworu.
    • Żółta kropka - podłącz cienki przewód do pinu po drugiej stronie płytki (jak na trzecim obrazku).

    Jak widać, trochę zepsułem lewy dolny róg, gdy nałożyłem za dużo lutu, więc bądź ostrożny!

    Wskazówka: Jeśli nie masz cienkiego drutu, użyj skrawków przewodów rezystorów, których używasz.

    Krok 4: Przylutuj rezystory pojemnościowe dotykowe

    Instalujemy komponenty, a mianowicie 2.7 MOhmrezystory, który będzie pełnił funkcje sensoryczno-pojemnościowe.

    Uwaga: Jeśli chcesz dowiedzieć się więcej o podstawach teoretycznych i praktycznych zastosowaniach dotykowych czujników pojemnościowych, radzę zajrzeć pod poniższe linki:

    Umieśćmy jeden 2.7 MOhmrezystor od spodu najbardziej na prawo zagięty sworzeń i przełóż nóżki przez otwory (jak na pierwszym zdjęciu). Teraz odwróćmy płytkę i wepchnijmy jeden przewód rezystora z powrotem do następnego otworu (jak pokazano na drugim obrazku). Przylutuj dolną część rezystora do otworu, a górną część rezystora do końcówki pinowej. Następnie dołączymy 7 cm drutu na ten pin (jak widać na trzecim obrazku).

    Powtórzmy proces ze wszystkimi rezystorami i przewodami, lutując je na miejscu. Dolne nóżki rezystorów powinny tworzyć jedno długie połączenie.

    Rada: Wybierz naprzemienne kolory przewodów - ułatwi to podłączanie w późniejszych krokach.

    Krok 5: Przylutuj przyciski

    Zacznijmy od umieszczenia przycisków i rezystorów na płytce, jak na pierwszym i drugim obrazku. W moim przypadku zastosowałem 2.2 Rezystory kOhm, ale można użyć dowolnego rezystora o wartości od 2 kOhm do 10 KOhm.

    Odwróćmy płytkę i przylutuj wszystko na swoim miejscu. Obraz 3 wyjaśnia różne połączenia, które będziesz musiał wykonać:

    • niebieska kropka - wskazuje nogę przycisku, którą należy przylutować do płytki;
    • różowa kropka – oznacza odnogę rezystora, którą należy przylutować do płytki;
    • czerwona linia oznacza, że ​​należy przylutować dwa punkty w jedno połączenie;
    • czarna linia wskazuje przewód, który przejdzie od jednej nóżki przycisku przez otwór w płytce, a następnie połączy się z pinem po drugiej stronie.

    Jeśli wszystko zostanie poprawnie zlutowane, dwa skrajne lewe przyciski pozwolą na zmianę oktaw, podczas gdy prawy przycisk zostanie włączonyCzujnik LDR.

    Krok 6: Przylutuj LDR i diodę LED

    Po przylutowaniu przycisków kontynuujemy instalację LDR, diody LED i odpowiednich rezystorów. Zanim to zrobisz, mądrze byłoby poeksperymentować z wartościami rezystorów, które pójdą do diody LED. Być może moja ocena jest zbyt wysoka, aby włączyć diodę LED. Poeksperymentuj trochę, aby znaleźć prawidłową wartość rezystora.

    Wskazówka: dowolny rezystor pomiędzy 330Och i 5kOhmbyłoby dobrym rozwiązaniem na 5mmPROWADZONY.

    Teraz ułożymy diodę LED, LDR i rezystory ( 4.7 K zaLDR) we właściwych miejscach. Odwróćmy płytkę i wszystko przylutujmy. Trzeci obraz wyjaśni różne połączenia, które należy wykonać:

    • brązowe kropki to piny LDR, które należy przylutować do płytki;
    • różowa kropka to noga rezystora, którą należy przylutować do płytki;
    • pomarańczowe kropki to piny LED, które należy przylutować do płytki;
    • czerwony pasek - musisz przylutować dwa punkty w jedno połączenie;
    • czarny pasek to przewód, który przejdzie od wyjścia rezystora przez otwór w płycie, który następnie zostanie podłączony do styku.

    Uwaga: Przed lutowaniem diody LED należy upewnić się, że polaryzacja diody LED jest prawidłowa. Zacisk dodatni diody LED należy połączyć z rezystorem, a zacisk ujemny z masą.

    Krok 7: Przetestuj wszystkie połączenia

    Teraz jest dobry moment na sprawdzenie, czy połączenia przycisków, LDR i LED zostały pomyślnie zlutowane. To ostatnia szansa na naprawienie błędów, radzę pobrać załączony kod i uruchomić program. i pobierz Arduino_Test_Fixture_Code do płytki Arduino.

    Jeśli wszystko przebiegło pomyślnie i test został zakończony, możesz przejść do kolejnego kroku. Jeśli nie, sprawdź dokładnie połączenia lutowane na płycie. Multimetr lepiej mieć pod ręką, mówię to z własnego gorzkiego doświadczenia.

    Krok 8: Wykończenie planszy

    Zacznijmy od zainstalowania przewodów w otworach, jak widać na pierwszym obrazku. Na tym etapie wygodnie jest użyć dwóch przewodów o różnych kolorach.

    Odwróćmy deskę i przytnijmy przewody na wymaganą długość. Przylutuj je do pinów wchodzących w złącza Arduino. Zanim zaczniesz używać Kontroler MIDI, należy najpierw przetestować jego połączenia za pomocą szkicu testowego. Prześlij szkic, otwórz port szeregowy i dotknij „wrażliwych” pinów na płytce. Jeśli po dotknięciu każdego styku zobaczysz komunikat „Notatka x jest aktywna”, oznacza to, że wszystkie styki działają poprawnie.

    Krok 9: Konwertuj Arduino na urządzenie MIDI

    Gdy płytka jest już gotowa, czas przekształcić Arduino w kontroler MIDI, który będzie rozpoznawany przez programy muzyczne takie jak Ableton i Fl Studio, a nawet inne urządzenia MIDI. Proces składa się z dwóch etapów:

    1. Zmień aktualne oprogramowanie sprzętowe Arduino Uno na programy kompatybilne z MIDI;
    2. Prześlij szkic MIDI do Arduino.

    Zacznijmy od pierwszego punktu. Zgodnie z warunkiem jest on ładowany do Arduino oprogramowanie sprzętowePort szeregowy USB, który umożliwia Arduino wymianę komunikatów z komputerem PC i Arduino IDE. Z nowym programem DualMoco, dodany zostanie drugi tryb, który pozwoli Arduino działać jako Urządzenia MIDI.

    Skorzystamy z programu FLIP i postępujemy zgodnie z instrukcjami, aby zmienić oprogramowanie Arduino. Działający plik znajdziesz w archiwum w folderze Firmware - plik DualMoco.hex.

    Po pobraniu nowego oprogramowania podłącz ponownie Arduino do komputera. Jeśli wszystko pójdzie dobrze, Arduino nie powinno zostać wykryte przez Arduino IDE, ponieważ nowy program jest w ( MIDItryb). Otwórz program muzyczny, który może nagrywać MIDI i sprawdź, czy Arduino ma nazwę MIDI/ MOCODoLUFA został wyświetlony nad ustawieniami MIDI, jak widać na pierwszym obrazie.

    Krok 10: Ostatnie przygotowania

    Osobliwość DualMoco jest to, że ma drugi tryb - Port szeregowy USB, który umożliwia przesyłanie szkiców z Arduino IDE, podobnie jak w przypadku zwykłego oprogramowania sprzętowego. Aby przełączyć Arduino w drugi tryb, połącz ze sobą dwa piny ISCP, jak pokazano na obrazkach 1 i 2. Można użyć kawałka drutu lub małego przewodu połączeniowego, jak pokazano na ilustracjach. Teraz odłącz kabel USB od Arduino na kilka sekund i podłącz go ponownie, Arduino powinno pojawić się w Arduino IDE.

    Uwaga: gdy chcesz przełączyć się z trybuUSB-Port szeregowyVtrybie MIDI, usuń zworkęStyki ISCP, jak pokazano na trzecim obrazku, i podłącz ponownieArduino na PC.

    Czas wgrać aktualny szkic do Arduino, Arduino_Finał_Kod. Pobierz, przekonwertuj Arduino na usbPort szeregowy tryb i pobierz kod. Jeśli chcesz dostosować próg, poeksperymentuj z wartościami PRÓG I OZE. Gdy wszystko będzie działać zgodnie z oczekiwaniami, zmień bieżącą linię 17 z:

    boolean midiMode = false; // jeśli midiMode = false, Arduino będzie działać jako urządzenie USB na port szeregowy

    boolean midiMode = true;// jeśli midiMode = true, Arduino będzie działać jako natywne urządzenie MIDI.

    Po dokonaniu ostatnich zmian w kodzie czas przetestować program muzyczny obsługujący urządzenia MIDI. Najpierw przełączmy Arduino w tryb MIDI, w tym celu:

    1. Prześlijmy ostateczny kod do Arduino.
    2. Odłączmy kabel USB od Arduino.
    3. Przełącz Arduino w tryb MIDI, zdejmując zworkę z pinów ISCP.
    4. Zainstalujmy kabel USB w Arduino.

    Jeśli wszystko poszło dobrze, otwórz program muzyczny i zacznij dotykać szpilek. Magiczne dźwięki muszą brzmieć...

    Krok 11: Przylutuj spinacze do zworek

    Gdy płytka Arduino jest już kompletna, czas skupić się na klawiaturze i sposobie podłączenia jej do płytki. Można to zrobić na milion sposobów, ja jednak wybrałam spinacze, które można przymocować do pomalowanego papieru (są łatwe w zabezpieczeniu i można je ponownie wykorzystać).

    Proces lutowania spinaczy do przewodów jest dość prosty:

    1. Odetnij wtyczkę po jednej stronie przewodu;
    2. Zdejmujemy izolację z drutu o 5 mm;
    3. Przylutuj pozbawiony izolacji drut do spinacza biurowego;
    4. Powtórz tę czynność dla wszystkich 12 spinaczy biurowych.

    Uwaga: Zszywki nie mogą być pokrywane żadną powłoką (farbą lub tworzywem sztucznym).

    Krok 12: Malowanie szablonu

    Chociaż na klawiaturze Arduino MIDI można grać, dotykając spinaczy biurowych, o wiele przyjemniej jest stworzyć własny szablon i używać go. Pokoloruj wydrukowany szablon. Szablon znajduje się w archiwum projektu.

    Kolorowanie szablonu jest dość proste, wystarczy pamiętać o pozostawieniu odstępu między wierszami i zastosowaniu odpowiednich kolorów, w przeciwnym razie nie uda się. Po wyschnięciu farby przymocuj spinacze do „kluczy” i możesz zacząć tworzyć muzykę.

    Dziękuję za uwagę!)