
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51

Кіріспе:
Мен Arduino -мен жаңа жұмыс істеймін, бірақ мен өз білімімді басқаларға үйрету және кері байланыс алу арқылы кеңейтемін деп үміттенемін. Бұл 4 түйме мен потенциометрі бар өте қарапайым MIDI контроллері. Бұл жобаның схемасы келесідей:
1. Нан тақтасын құрастырыңыз
2. Эскизді Arduino -ға жүктеңіз
3. Шашсыз MIDI мен ішкі MIDI циклын түсіну (loopbe1)
4. MIDI -ді DAW -ге бағыттаңыз (Ableton)
Жабдықтар
1 x Arduino Mega 2560
1 х нан тақтасы
1 x USB кабелі
1 x потенциометр
4 x Әдептілік түймелері
4 x 120 Ом резисторлары
Нан тақтасына арналған 14 х өтпелі кабель
1 -қадам: Нан тақтасын құру


Нан тақтасын барлық компоненттер жоғарыдағы 1 -суретке сәйкес келуі үшін қосыңыз. Әр түйме 2 -суреттегідей болуы керек. Түймешіктердің кірістері Arduino -да 2, 3, 4 және 5, ал потенциометрдің ортаңғы түйрегіші ANALOG A0 кірісіне қосылған.
2 -қадам: Эскизді жүктеу

Төмендегі кодты көшіріп, Arduino IDE -ге қойыңыз. «Құралдар» астында дұрыс тақтаны таңдап, эскизді Arduino -ға жүктеңіз.
byte noteON = 144; // командалық байтқа ескерту; // қазіргі уақытта ойнатылатын қойма int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; boolean currentState = LOW; // ағымдағы түйме күйі үшін стратеги boolean lastState = LOW; // соңғы түйме күйінің бос күйін сақтау үшін сақтау () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // бұл жолы біз түйреуішті INPUT Serial.begin (9600) ретінде орнатамыз; // Serial connection инициализациялау} void loop () {int PotVal = analogRead (potPin); байт жылдамдығы = карта (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, жылдамдық); // 60 ескертуді 127 жылдамдық кідірісімен қосыңыз (200); // түймені жоюдың өрескел нысаны} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // кідірісті 60 өшіруді кешіктіру (2); // түймені шығарудың өрескел түрі} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// егер MIDImessage батырмасы жаңа басылған болса (noteON, 61, жылдамдық); // 127 жылдамдықты кешіктірумен (200) 60 жазбаны қосыңыз; // түйменің өрескел түрі дебунинг} else if (currentState == LOW && LastState == HIGH) {MIDImessage (noteON, 60, 0); // ескертуді кешіктіруді өшіру (2); // түймешіктерді жоюдың өрескел түрі} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// if MIDImessage батырмасы жаңа басылған болса (noteON, 62, жылдамдық); // 60 -ескертуді 127 жылдамдық кешігуімен қосыңыз (200); // түйменің өрескел түрі дебунинг} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // ескертуді кешіктіруді өшіру (2); // түймені жоюдың өрескел түрі} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// if MIDImessage батырмасы енді басылған болса (noteON, 63, жылдамдық); // 127 жылдамдықты кешіктірумен (200) 60 жазбаны қосыңыз; // түйменің өрескел түрі дебунинг} else if (currentState == LOW && LastState == HIGH) {MIDImessage (noteON, 60, 0); // ескертуді кешіктіруді өшіру (2); // түймешіктерді жоюдың өрескел түрі} lastState = currentState; } // MIDI хабарламасын жіберу void MIDImessage (байт пәрмені, байт деректері1, байт деректері2) {Serial.write (пәрмен); Serial.write (data1); Serial.write (data2); }
Мен әлі де кодты жазуда өте жаңамын … … тәжірибесі барлар, бәлкім, тазартады …
3 -қадам: Шашсыз MIDI және ішкі MIDI ілмектерін түсіну



Arduino Hairless MIDI сияқты сериялық көпір арқылы, содан кейін loopbe1 (немесе Mac үшін IAC шинасы) сияқты ішкі MIDI циклі арқылы өту керек.
Ескерту: сіз эскизді Arduino -ға түксіз MIDI сериялық көпіріне қосылған кезде жүктей алмайсыз.
Шашсыз MIDI сериялық портынан Arduino -ны таңдаңыз және MIDI -де loopbe1 немесе IAC шинасын таңдаңыз.
Ескерту: loopbe1 пайдалану кезінде дыбыс қосылмайтынын тексеріңіз.
4 -қадам: DAW -ке қосылу

Егер сіз тақтаның батырмасын басқанда (шамдар жыпылықтайды) Hairless MIDI қосымшасына сигнал алсаңыз, MIDI деректерін DAW -ке жіберуіңіз керек. Мен Ableton -ды қолдандым, бірақ кез келген DAW жұмыс істеуі керек. Сіздің ішкі MIDI циклі (loopbe1) DAW теңшелімдерінде қосылғанына көз жеткізіңіз (Ableton -да сіз «тректі» қосқыңыз келеді). Содан кейін, жоғарыдағы суретте көрсетілгендей MIDI циклына (loopbe1) MIDI тректерінің кірістерінің бірін таңдаңыз.
5 -қадам: Ойна


Енді түймелер басқа MIDI контроллері сияқты жұмыс істейді! Потенциометр DAW -ге жіберілетін жазбалардың жылдамдығын өзгертеді. Жоғарыдағы (өте қараңғы…) бейнеде рояльдің фортепианодағы дыбысы көрінеді!
Ұсынылған:
Lune - MIDI контроллері Arduino көмегімен (диджей немесе музыкант үшін): 5 қадам (суреттермен)

Lune - MIDI контроллері Arduino көмегімен (диджей немесе музыкант үшін): Бұл менің бірінші arduino (микроконтроллер) жобасының атауы Lune. Мен arduino -ны пайдалы және үлкен жобамен үйренгім келді, сондықтан мен араласуға қажетті барлық функциялары бар midi DJ контроллерін жасауды шештім
Aalto үшін Arduino MIDI контроллері: 7 қадам

Aalto үшін Arduino MIDI контроллері: әуесқой музыкант болғандықтан, мен жиі аналогтық синтезден VST -ке барамын. Мен " VST " көңіл -күй, мен шынымен де бір ғажайып құралға айналдым: Madronalab's Aalto VST Бұл керемет VST өте икемді, ол өте жақсы дыбыстар шығарады және өте жақсы
Arduino негізіндегі DIY ойын контроллері - Arduino PS2 ойын контроллері - DIY Arduino Gamepad көмегімен Tekken ойнау: 7 қадам

Arduino негізіндегі DIY ойын контроллері | Arduino PS2 ойын контроллері | DIY Arduino Gamepad көмегімен Tekken ойнау: Сәлеметсіздер ме, балалар, ойындарды ойнау әрқашан қызықты, бірақ өзіңіздің жеке DIY контроллеріңізбен ойнау қызықты, сондықтан біз осы нұсқаулықта arduino pro micro көмегімен ойын контроллерін жасаймыз
Arduino MIDI контроллері DIY: 8 қадам

Arduino MIDI контроллері DIY: Сәлем балалар! Сізге менің бұрынғы нұсқаулық «Arduino CNC Plotter (шағын сурет салу машинасы)» ұнады деп сенемін. және сіз жаңасына дайынсыз, әдеттегідей мен бұл оқулықты сізге біртіндеп бағыттау үшін жасадым, бұл өте керемет төмен
MIDI 5V спиелатронды немесе басқа MIDI синтезі үшін жарық диодты жарықтандырғыш контроллері: 7 қадам (суреттермен)

MIDI 5V спиделатронды немесе басқа MIDI синтезі үшін жарықдиодты жолақ контроллері: Бұл контроллер үш түсті жарықдиодты жарықдиодты шамдарды 50mS үшін жыпылықтайды. G5-D#6 үшін көк, E6-B6 үшін қызыл және C7-G7 үшін жасыл. Контроллер - бұл ALSA MIDI құрылғысы, сондықтан MIDI бағдарламалық жасақтамасы MIDI синхрондау құрылғысымен бір мезгілде жарықдиодты жарыққа шығара алады