Arduino Midi Class - Hardware, koder og genveje udforsket: 11 trin

Arduino Midi Class - Hardware, koder og genveje udforsket: 11 trin

Indholdsfortegnelse:

Anonim

Over internettet er der et stort udvalg af beslutningstagere, der skaber fantastiske musikinstrumenter ved hjælp af MIDI-interfacet.

Du tænker måske "Jeg ville ønske jeg havde et elektronisk trommesæt." Enkel bro, bygg det selv.

Du tænker måske "Jeg vil have et blandebord til at styre garagebandet, men de er alt for dyrt."

For nemt! Sådan et simpelt projekt. Når du ved hvordan, kan du gøre det i en weekend.

Du tænker måske "Hvis jeg kun kunne bruge mine tap dancing sko til at spille andre lyde!"

Du skal bare sætte piezo sensorer på bunden af ​​dine tap dancing sko og sende rytmen i midi.

Du tænker måske "Jeg ville ønske jeg kunne spille rock band med en ægte guitar!"

Sæt kapacitive touch sensing på dine guitar strings og send midi til din rock band controller.

Du tænker måske nu, "Kan jeg få min kat til at spille trommer ved at slikke mælk ud af en kapacitive touch-sensing metalskål?" Ja du kan!

Du tænker måske, "Hvis jeg kun kunne spille musik ved hjælp af naturens kræfter !!"

Svaret på dette er ja, det kan du! Sæt en fugtføler i jorden, en regnsensor, en vindføler, en lyssensor, en temperatursensor, nogle bøjningssensorer på tynde trægrene, nogle vibrationer eller knock sensorer på grene, der rammer hinanden. Få Arduino til at gøre det hele til midi-signaler … Arduino er gode på den slags ting.

Hvis du skriver midi ind i instructables søgelinjen, finder du hundredvis af hundredvis af forskellige projekter. Midi åbner musik op til en helt ny vifte af muligheder. Og så begynder din afhængighed af at lave underlige og vidunderlige musikinstrumenter. (Undskylder din partner, børn eller flatmates for det anvendte rum at lagre alle disse nye kontraptioner, men de behøver ikke at være store.)

Dette instruerbare er designet til at hjælpe dig med at bestemme, hvor du skal se og hvad man skal overveje, når man starter et midi-projekt.

USB-stik og afspilningsenheder er ideelle til at styre alle slags musikprogrammer på computere, så du kan optage en lang række lyde fra et enkelt tastatur eller en midi-enhed. Midi-apparater spænder fra blandingsborde til belysningsrigger, til DJ-ridser og knapper til Lazer harps, iPads og standardtastaturet. Midi er den måde, hvorpå hver af disse controllere kan tale med computere eller til hinanden og forstå de musikalske meddelelser, der sendes.

Husk at Midi ikke er en lyd, det er vejledningen til lyden. At lave en midi-controller er en måde at skabe musik på via en MIDI-grænseflade, såsom et tastatur, et elektronisk trommesæt eller en computer med midi-software (GarageBand, mainstage, logik, ableton live, fruityloops osv.).

For mere information om MIDI anbefaler jeg stærkt denne instruerbar

Jeg anbefaler også stærkt at besøge Amandaghassaei's side og gennemse sine meget omfattende instruktører. Jeg anbefaler også stærkt sparkfun's midi tutorial.

Arduino midi er en DIY bevægelse af digitale instrumenter. Det starter med grundlæggende tastaturer, der bogstaveligt er lavet af bananer lige igennem til komplekse algoritmer, der sporer dansere i 3D-rum. Arduino tilføjer evnen til en bred vifte af sensorer til pludselig at blive musikalsk. Bøjning, drejning, afstand, lys, temperatur, tryk … arduino har et stort udvalg af sensorer, som det er kompatibelt med og tilføjer MIDI til arduino skaber endeløse musikalske muligheder. Fra brug af lyssensorer regner temperatursensorer og jordfugtighedssensorer til at kortlægge vejret i en sang, lige igennem til at have et trommesæt, læs dine midi noter og spille selv ved hjælp af motorer. Dette instruerbare er her for at give dig tip og få din fantasi tikkende.

Tekniske specifikationer på Midi

Der er også mange nyttige oplysninger i denne instruksible, som ikke bør overses.

I dette instruerbare er hvert trin uafhængigt af resten. Du kan blande og matche trin til din præference og projekt. Ingen af ​​trinnene er obligatoriske, der er mange forskellige måder at gøre dette på.

Jeg er også meget åben for samarbejde om dette instruerbare, så hvis du vil redigere, tilføje eller rette noget i denne instruerbare, skal du venligst besked mig og jeg vil tilføje dig som samarbejdspartner. Målet er at skabe en meget omfattende visning af arduino midi.

forsyninger:

Trin 1: Arduino Boards

Afhængigt af hvad du vil opnå, er der en række forskellige arduino boards at overveje. Digitale stifter læser til eller fra signaler og kan også sende på slukket beskeder for at tænde motorer, tænde lys, sende information til skærme mv.

Analog læser en spænding, og dette er nyttigt for ting som berøringsfølsomhed, piezo transducere til tromler, tryk, lys eller flex sensorer (blandt mange andre sensorer). For en push-knappen controller er disse ikke et problem, men hvis du vil have masser af knapper og skydere, skal du have et bord med nok analoge stifter.

Spænding er praktisk at tænke på. De fleste guitarpedaler kører på en 9V strømforsyning. Hvis du vil have din midi pedal til at passe pænt blandt andre guitar pedaler, kan noget, der løber ved 9v, være praktisk. Også 5v er spændingen på USB-strømforbindelsen, så når du bruger mindre kort og monterer en USB-forbindelse, er det praktisk at have en, der er 5v i stedet for 3.3v.

Der er en komplet liste over Arduino boards her, men jeg har opført nogle af de mest populære nedenfor.

UNO - Stock standard, ret billigt at få, kan være dobbelt boot med dual Moco til at skabe en temmelig let usb midi enhed. 6 analoge stifter. Hvis du ikke er fan af soldiering, og du vil være i stand til at have standard MIDI jacks i stedet for MIDI via USB, er der masser af skjold, der klipper på.

www.sparkfun.com/products/12898 Midi skjold.

101 - En uno med en indbygget Gyro og Bluetooth … midi via Bluetooth er muligt på iPads og Macs. Koden ville være vanskeligere, men hvis du er op til udfordringen, er der måder og midler.

Leonardo - Kompatibel med arcore midi bibliotek for nem programmering. 12 analoge indgange

Pro Micro - Billig, lille og alsidig. Kompatibel med Arcore Midi bibliotek for nem programmering. 6 Analoge indgange

Lilypad - Vil du oprette et slidbart instrument som tromle jeans eller noget? Lilypad er den bærbare arduino.

Yun eller MKR1000 - Ønsker din midi-enhed at oprette forbindelse til din iPad og computer via wifi? Måske gå til en af ​​disse.

Mega-stakke af indgange og udgange. 16 analoge indgange. Hopper af plads til at tilføje dynger af kode. Cool for ting som … at have en elektronisk trommesæt, der lyser op i en hel masse farver, gør et berøringsfølsomt tastatur med 48 taster. Større projekter på den måde.

Trin 2: Brugerdefinerede MIDI boards

Før du går arduino, er der en række andre bestyrelser, som du måske vil overveje, det afhænger af størrelsen af ​​dit projekt, hvad du vil gøre og det budget, du skal gøre det i.

Makey Makey - super simpelt nemt at mucke rundt med. Meget lille læringskurve. Ikke midi, men i stedet indtaster tastaturpresser, som der er mange online software konverterere til. Garageband og logik har et tastatur, som makey makey kan spille. Du skal bare trykke på låsene og spille væk. Let at spille om med, men begrænset og ret dyrt. Teknisk set er Makey Makey en Arduino Leonardo med enorme pull down modstande, så det er også helt omprogrammerbart og kan simpelthen laves til en midi controller ved hjælp af arkivet bibliotek.

Teensy - Teensy er langt det nemmeste arduino-kompatible kort til brug for MIDI. Når de er sat op, er MIDI-koder ret enkle, og vejledninger på deres hjemmeside giver en masse oplysninger. Fordi Teensy er USB Midi-kompatibel, er det nemt at kode, så prøv det. Der er måder at gøre en normal arduino gøre det samme for meget færre penge, men Teensy er foran spillet for nem kompatibilitet og brugervenlighed. Biblioteket Usb.midi er meget nemt at bruge. Teensy leveres med en stak analoge indgange, som er meget praktiske til bygning af trommesæt eller blandeborde. Fordi det er arduino-kompatibelt, kan alt hvad en arduino gør, en teensy kan også gøre. Teensy 3.6 har 24 analoge indgange, som er enorm. Det er også hurtigere end alle arduino boards. Af denne grund har jeg givet Teensy det eget skridt.

Sparkfun gør en god produktanmeldelse på Teensy boards

Doepfer har en række forskellige MIDI instrumenter til digitalisering af synthesere. Deres USB64 har en stor 64 analoge indgange til at skabe berøringsfølsomme tastaturer eller 64-bit elektroniske trommesæt. Det er acres over kapaciteten af ​​arduino. Doepfer specialiserer sig i at konvertere retroorganer til midi, så hvis det er det du overvejer, er de seriøst værd at tjekke ud. Enhver storskala hastighedsfølsom tastaturprojekt skal helt sikkert indeholde et blik på deres produkter.

Livid Instruments har et par nemme at bruge DIY Midi controller boards. De virker simple nok til at bruge, og selvom det er lidt dyrere end arduino, ville du spare en masse tid på at lære kode, hvis du havde et ret normalt musikinstrument, trommesæt, tastatur eller blandebord i tankerne.

Midibox designbrædder til midi-projekter, der er i stand til en lang række opgaver. Deres tavler er i stand til at optage og afspille midi for live midi looping og andre ideer.

Midifighter har høj kvalitet kits (temmelig dyrt, men er ret legit i funktionalitet). Disse er specifikt

Bhoreal slim er en open source midi controller baseret på knapper, der har 16 - 64 pads af craziness.

Arduino på andre chips

Arduino kan lægges på andre chips som frittstående chips. Dette kan være praktisk at reducere størrelse, omkostninger eller øge funktioner i dit bord.

Arduino Legepladsen har information om, hvilke chips der er kompatible og hvordan man gør det. El Pajaro Manitas har skrevet en instruktion om, hvordan man genveje de enorme mængder hardware ved at bruge bare chippen fra en arduino eller endda eksperimentere med andre mindre chips som Attiny85.

Her er et eksempel på en midi plug synth ved hjælp af attiny 2313 chip.

Andre udviklingskort

Der er altid andre måder at gøre ting på, se på, fordi det kan spare penge, tid eller skabe anderledes kvalitet eller funktionalitet.

djtechtools.com/2011/06/21/diy-midi-still-m…

www.instructables.com/id/DIY-USB-DJ-Contro…

Intel Edison - i grunden en lille computer … kunne have alle sine egne lyde og programmer forudindlæst til brug som et selvstændigt instrument. Her er et eksempel på et midi-projekt ved hjælp af Intel Edison.

Hindbær Pi - dybest set en lille computer … kunne have alle sine egne lyde og programmer forudindstillet til brug som et selvstændigt instrument

Trin 3: Brug af Teensy

Teknisk er en teenagere arduino-kompatibel, men har nogle MIDI-fordele ved at bruge en arduino.

1. Det ved allerede, hvordan man kan snakke med MIDI. Dette er en stor bonus. Du behøver ikke have noget smart arbejde rundt eller kodende for at få det til at tale MIDI via din USB-port. Du behøver ikke at tage stikket ud for at prøve din kode, du behøver ikke bruge eksterne programmerere, du behøver ikke to gange starte den eller gøre andre fancy ideer, det taler bare midi. Du skriver din kode og prøver den, rediger koden, upload og gå igen, indtil den er rigtig. Når du er konfigureret, kan du bare tilslutte den til en hvilken som helst computer, og den genkender den som en midi-enhed.

www.pjrc.com/teensy/td_midi.html

2. Det har et nemt MIDI bibliotek. Du behøver ikke at lære at skrive hexadecimale tal for at få det til den note, du ønsker, du kan skrive i decimaltal med normale tal, og det er nemt at pakke dit hoved omkring konceptet.

Væsentligt er det koder usbMIDI.sendNoteOn (note, hastighed, kanal);

Det betyder, at det er let at fortælle, hvad du laver i koden, og du bliver ikke meget tabt.

3. Fordi det er nemt at bruge til Midi, bruger masser af mennesker det til midi, og der er stakke af vejledninger om, hvordan man bruger det.

Her er et eksempel midi controller med en teensy.

Her er en mere kompleks, men meget hjælpsom og omfattende instruerbar på teensy midi. Det er værd at tjekke bare for ideer og tips generelt.

Her er en midi foot pedal, som jeg lavede ved hjælp af en teenagere. Det var let at lære og bygge med.

Trin 4: Serie til Midi-omformere

Så du har besluttet, at du vil gå med Arduino over de andre ideer, men du vil gøre midi via USB. Der er en bred vifte af måder at gøre dette på, hvilken metode du bruger afhænger af, hvordan du vil have det til at fungere.

Når du begynder, er en enkel og nem måde at spille med midi via serielle til midi-konvertere. Det kræver ikke ekstra manipulering med din chip, bare en simpel download og væk du går. Jeg har forsøgt et par af disse ideer, og de kan være nyttige måder at starte ud, men de begrænser dit projekt til at bruge med computere, der har installeret programmet.

Dette kan være i form af et midi usb kabel, eller en software konverter som max, virtuelt klaver, ardrumio eller hårløs midi.

Her er et eksempel ved brug af virtuelt klaver

Her er et eksempel ved brug af Hairless Midi

Trin 5: Omprogrammering af din chip

Arduino er en meget alsidig chip, fordi det er open source og hackere spiller meget med det. Så en arduino behøver ikke altid at være en arduino. Det kan omprogrammeres som en midi-controller. Der er et par forskellige måder at gøre dette på. Jeg har listet dem i orden af ​​lethed.

Arcore

Dette er et Midi bibliotek, der er kompatibelt med Leonardo og Pro Micro boards til USB midi. Når dette bibliotek er installeret, kan Arduino IDE programmere Leonardo eller Pro Micro som en USB-enhed på samme måde som at bruge Teensy. Dette omprogrammerer din chip øjeblikkeligt uden behov for DFU programmering (se nedenfor).

Musico Nerd har en fantastisk tutorial om hvordan man bruger den.

USBMidi Library

DetUsbMidi bibliotekgiver et Arduino bord med USB-kapabiliteter mulighed for at fungere som et MIDI instrument over USB. Dette virker som Arcore, men behøver ikke installeres som en ny hardwareindstilling. Mere info her.

Midi Library

Dette Midi Library indeholder nu en tilføjelse til USB Midi.

Dual MocoLufa

Hvis du vil lave MIDI på den billige, er det en lidt sværere proces at forstå, men det betyder at du kan have USB MIDI på en Arduino UNO eller Mega uden anden software. Det dual støtter arduino, så du kan kode det, uploade det, skifte nogle forbindelser og bruge det som en indfødt USB MIDI enhed, teste den ud, og hvis det ikke er helt rigtigt, skal du bare tage stikket ud, skifte forbindelserne tilbage, sætte det i og recode det. Denne metode kræver ikke nogen anden fancy programmør, du kan bare skifte mellem dem.

Lufa er originalen, den blev udviklet som et programmeringsformat til at lave en flok forskellige typer af usb-enheder ved hjælp af atmel chips. Moco Lufa blev udviklet som en dual boot version af Lufa's midi controller og standard arduino bootloader.

Dual Moco er et indfødt midi-program, der indeholder arduino bootloader og støvler som en arduino, når to pins af internetudbyderen er forbundet til hinanden. Når du er installeret på din arduino, kan din arduino enten være en normal arduino eller en klasse-kompatibel midi-enhed ved en afbryder. Dette instruerbare forklarer, hvordan du indlæser andre programmer på din arduino ved hjælp af DFU programmering. En mere omfattende måde at få på Dual Moco er tilgængelig på arduino hjemmeside og på Dual Moco hjemmeside.

Denne hjemmeside viser hvordan man bygger en theramin ved hjælp af denne Moco teknik.

Denne fyr bruger moco lufa teknikken med sit eget bord til at oprette en omprogrammerbar Midi enhed.

Hiduino

Personligt er jeg ikke fan af Hiduino. Medmindre du har en programmør, ser det ud til en masse arbejde, når du reprogrammerer, men tjek dette ud som en mulighed alligevel. Fordelen ved Hiduino er, at din chip kun fungerer som en Midi controller og ikke har arduino kompatibiliteten også indbygget i koden. Dette betyder, at du kan få et større program kørende på chippen, og chippen vil sandsynligvis køre hurtigere og have mindre forsinkelser, da det kun fokuserer på at være en MIDI-enhed.

Trin 6: Biblioteker

Der er en række midi-biblioteker, der gør MIDI-kodning lidt lettere. Men de er ikke obligatoriske … de er bare praktisk.

Arcore

Dette er et Midi bibliotek, der er kompatibelt med Leonardo og Pro Micro boards til USB midi.

MidiUSB

Dette er et Midi-bibliotek, der er kompatibelt med de fleste Arduino-modeller til USB-midi.

Midi Library

Dette midi-bibliotek indeholder nu en tilføjelse til USB Midi.

Trin 7: Fysisk hardware

Der er en række komponenter, du ville gøre godt for at lære om, når du laver en midi-controller.

Digitale indgange

Den første er digitale indgange. Disse er indgange, der sender meddelelser til de digitale indgangsstifter. Det mest oplagte af disse er en knap eller skifte, men mulighederne strækker sig ud med andre komponenter og biblioteker. Disse kan omfatte fjernsensorer, frekvensfølere eller PWM pulsfølere, IR-modtagere (til brug af fjernbetjening som MIDI-controllere).

Ulempen ved digitale indgange er, at de kun læser on / off meddelelser og intet imellem. Nogle sensorer omgiver dette ved at pulsere og slukke og bruge en kode til at tælle tiden mellem pulserne.

De fleste Midi-tastaturer bruger denne ide til at skabe hastighedsfølsom berøring. Når tasten trykkes let, skubber den den første knap og begynder at tælle, når tasten er helt trykket, stopper tællingen og indstiller hastigheden. Selv om det er der for at læse, hvor svært nøglen er blevet skubbet, læser den faktisk den hastighed, den skubbes. Dette er normalt ret fejlfri, da nøglen sædvanligvis skubbes hurtigere, når spilleren ønsker at spille hårdere på tastaturet.

Analog indgange

Det andet input er en analog sensor. Dette læser en spænding, der sendes til en stift. Dette bruges til at måle en lang række ting ved en bred vifte af sensorer. Gas sensorer, kapacitive touch sensorer, lyssensorer, regnsensorer, vibrationssensorer, potentiometre, tryksensorer, bøjningssensorer mv. Denne analoge indgang kan bruges til at styre lydstyrken af ​​en midi-note, hvilken note bliver spillet, hvilken kanal det afspilles eller en lang række interessante effekter ved hjælp af MIDI-kontrolværdier.

Få ekstra analoge indgange …

Hvad hvis du vil læse et helt tastatur?

Hvad hvis du har brug for mere end blot de 6 analoge indgange på en Arduino Uno?

Mux Shield: op til 48 analoge indgange.

Blueberry 24 analog expander skjold

Trin 8: Kodning med Arduino

De vedhæftede koder er skrevet til en Arduino Uno kører Moco Lufa.

De kunne også bruges på en arduino med midi-kablet fastgjort til tx-stiften som vist ovenfor. Dette billede blev taget fra arduino legepladsen, som har en nyttig vejledning og første projekt.

Arduino koder starter ved at introducere arduino pins og give dem et navn.

const int ButtonPin = 2;

Dette betyder, at en indgang er på digital pin 2 i arduino. Vi har kaldt det knap. "const" betyder ButtonPin vil konstant være 2. Det vil ikke ændre sig til noget andet.

Det næste trin giver en variabel til at gemme oplysninger om ButtonPin.

int ButtonState = 0;

Når vi introducerer det som 0, betyder variablen 0 som standard.

Næste trin er setup. Under opsætningen fortæller vi chipet at sende data med en bestemt hastighed, så den kan læses med en bestemt hastighed og forstås af modtageren. Dette kaldes Baud rate.

Baudraten for MIDI er 31250.

Vi lader også chipet vide, hvordan det skal bruge stifter. Da chipsene kan bruges som output, der sender strøm til lysdioder, tænder motorer osv. Eller indgange, hvor de læser om der er strøm, der kommer fra en knap eller en anden indgang.

Vi lader chipet vide, at ButtonPin skal være en input.

void setup () {

Serial.begin (31250);

pinMode (buttonPin, INPUT);

}

I koden ovenfor kan du bemærke et par ting. For det første er koden inden for installationsfasen afkortet med parentes {}. Dette fortæller chipet, når jobbet er overstået. Hvis en kode har problemer, skal du kontrollere, at alle parenteser bogmærker de rigtige trin.

Den anden ting du vil bemærke er, at efter hver linje af kode er der et semikolon;. Dette fortæller chippen, at kommandoen er udført. Hvis du savner det, fungerer koden ikke.

Den næste del af koden indeholder en flok ting, som chippen vil gøre igen og igen. Dette kaldes løkken. I den følgende sløjfe læses knappen, hvis den trykkes, sender den en midi-note. Hvis den er frigivet, sender den midi.

void loop () {

ButtonState = digitalRead (ButtonPin);

hvis (ButtonState == HIGH) {Serial.write (0x80); Serial.write (36); Serial.write (127); // kanal, note, hastighed}

hvis (ButtonState == LOW) {Serial.write (0x90); Serial.write (0x25); Serial.write (0x00); // kanal, note, hastighed}

forsinkelse (1000);

}

I koden ovenfor har jeg tilføjet en forsinkelse. Fordi koden løber med en utrolig hastighed, vil den sende et skønt ton Midi-oplysninger til din computer. Når knappen er trykket, vil koden straks dreje noten tusindvis af gange om gangen. Når knappen slippes, vil den slå koden fra tusind gange om et sekund. Jeg har lagt en 1000 millisekund (1 sekund) forsinkelse i koden for at bremse dette og stoppe chippen fra at fryse din computer.

Der er dog en anden måde at gøre dette på. Ved at tilføje en variabel til at gemme den sidste læsning, kan du få chippen til at kontrollere, hvordan knappen var sidst, og bede om at gøre noget kun, når det læser noget andet. Husk at introducere variablen ved starten af ​​din kode (int sidsteButtonState = 0;). Her er sløjfestadiet med den sidste knappekontrol og en 10millisecond forsinkelse (for god målestok).

void loop () {

ButtonState = digitalRead (ButtonPin);

hvis (ButtonState == HIGH && lastButtonState == LOW)

{Serial.write (0x80); Serial.write (36); Serial.write (127); // kanal, note, hastighed}

hvis (ButtonState == LOW && lastButtonState == HIGH)

{Serial.write (0x90); Serial.write (0x25); Serial.write (0x00); // kanal, note, hastighed}

lastButtonState = ButtonState;

forsinkelse (10); }

Andre koder at prøve

Hver af de vedhæftede koder har forskellige komponenter, der blev testet med dem. Nogle er skrevet til knapper, andre er skrevet til piezo sensorer, afstandssensorer eller IR fjernbetjeninger. Hver anden kode vil kræve, at komponenterne angives som i andre øvelser om brugen af ​​disse komponenter. Forskellen i disse koder er de indbyggede midi koder og nogle få grundlæggende funktioner, der er nyttige i midi controllere.

Midi_Basic er skrevet som en test for 4 knapper.

Knapperne er forbundet med den ene ende til 5v og den ene ende til arduino-tappene 2, 3, 4 og 5. Hver stifter er forbundet til jorden ved hjælp af en 10k modstand. Dette kaldes pulldown som pin normalt vil aflæse.

AnalogMidi læser en spænding på analog pin 0 og sender en midi-besked. Det kan læse potentiometre, flex- eller trykfølere, temperatursensorer eller piezo diske.

Distance_sense læser en 4-punkts afstandssensor og udsender en midi-besked.

IR Midi læser en udledt sensor. Den er kortlagt til en fjernbetjening fra en Arduino starterpakke. Heksekoderne kan afvige fra din egen fjernbetjening, og du skal downloade og installere IR-biblioteket for at få det til at fungere.

CC-switchen læser tilstanden af ​​en switch, som ændrer indgangene fra at være noter til at være kontrolændringer.

Drum Presets læser piezo diske og en knap. Når knappen trykkes, vælges en ny gruppe noter for hver disk ved at trykke på piezo diske.

Trin 9: Afsendelse af noter og andre meddelelser

Dette Arduino-eksempel er et godt eksempel på en testkode

Midi specifikationer for alle de forskellige typer meddelelser kan findes her. Jeg kopierede meget af disse oplysninger på denne side.

SerialWrite (0x80 + kanal); // notat

SerialWrite (note); // note mellem 0-127

SerialWrite (hastighed); // hastighed mellem 1-127

SerialWrite (0x90 + kanal); // notering

SerialWrite (note); // skal være ens som note på notat

SerialWrite (0x00); // hastighed på 0 bliver noteret

SerialWrite (0xC0 + kanal); // programændring

SerialWrite (program); // programnummer mellem 0-127

SerialWrite (0xD0 + kanal); // Kanal Tryk eftertouch

SerialWrite (hastighed); // hastighed mellem 1-127

SerialWrite (0xE0 + kanal); // PitchBend

SerialWrite (bøjning); // dette er et 14bit nummer med maks. 16384 og minimum 0 hvor 8192 repræsenterer den centrerede position eller ingen pitchbend.

Kontrol Skift Beskeder har et par forskellige typer meddelelser, der gør dem til kanalmodusbeskeder.

SerialWrite (0xB0 + kanal); // Kontrol Skift besked

SerialWrite (note); // note mellem 0-119

SerialWrite (hastighed); // hastighed mellem 1-127

Kanalfunktionsbeskeder.

Dette samme kode som kontrolændring, værdier for noter vælger specifikke meddelelser.

120 = Alle lyd fra. Når alle lyde er modtaget, slukker alle oscillatorer, og deres lydkuverter sættes så hurtigt som muligt til nul. c = 120, v = 0:

121 = Nulstil alle controllere. Når Reset All Controllers er modtaget, nulstilles alle regulatorværdier til deres standardværdier. (Se specifikke anbefalede fremgangsmåder til standardindstillinger). c = 121, v = x: Værdien må kun være nul, medmindre andet er tilladt i en bestemt anbefalet praksis.

.

c = 122, v = 0: Local Control Off: Når lokal kontrol er slukket, svarer alle enheder på en given kanal kun til data modtaget over MIDI. Spillede data osv. Vil blive ignoreret.

c = 122, v = 127: Lokal kontrol på: Lokal kontrol På genopretter de normale regulatorers funktioner

Alle Notes Off. Når en All Notes Off er modtaget, slukker alle oscillatorer.

c = 123, v = 0: Alle Notes Off (Se tekst til beskrivelse af aktuelle tilstandskommandoer.)

c = 124, v = 0: Omni Mode Off

c = 125, v = 0: Omni-tilstand På

c = 126, v = M: Monotilstand Til (Poly Off) hvor M er antallet af kanaler (Omni Off) eller 0 (Omni On)

c = 127, v = 0: Poly Mode On (Mono Off) (Bemærk: Disse fire meddelelser forårsager også All Notes Off)

Trin 10: MIDI IN og lydmotorer.

Hvis du vil læse midi fra en computer, et tastatur eller en anden midi controller og gøre nogle sjove ting med det, er her nogle sjove ting at gøre med det.

WAV-afspiller: Dette skjold hjælper dig med at afspille lydfiler udløst af … godt uanset hvad du vil have dem udløst af. Midi er en ting du kan bruge. Dette kan bruges til at lave et elektronisk trommesæt, tilføj lyde til et midi-tastatur til bærbar fastklemning eller send midi fra din telefon for at få en fartstøj under sofaen.

Synth eller effekter: Dette skærm har indbyggede lyde og synth. Så du kan bruge midi til at forme bølgeformer og output til en forstærker. Dette kunne være via midi eller lige fra din controller.

Belysning rigge: Midi er en fantastisk måde at styre mange ting på. Du kan skrive en midi kode for at følge med på din scenepræstation og oprette en arduino læse midi-indgangs- og kontrolrelæerne og tænde og slukke lyset gennem forskellige dele af din dans eller musikalske ydeevne.

Midi-kontrolleret bånd: Her er en instruktion om, hvordan man bygger et robot tromle. Arduino læser midi og skriver til de motorer, der spiller tromlerne. Du kan duplikere denne ide med en lang række instrumenter. Her er et papir om historien om robotinstrumenter til en sjov inspiration.

Trin 11: MIDI Thru

Midi thru er designet til daisy chaining midi instrumenter. Midi thru er det samme som outputlinjen, medmindre det også indeholder en direkte kopi af inputlinjen. Alt der kommer ind i indgangen går lige igennem.

Det betyder, at du kan sætte et instrument i indgangen, bruge instrumentet til at styre effekter på en midi-enhed, men send også midi-informationen ud af midi gennem lige ind i det næste instrument i en kæde.

Du kan også bruge midi gennem som flere effekter. Hvis du har en enkelt indgang, der er rutet til flere gennemgående porte, kan du spille et enkelt tastatur, der output for at styre flere lyde. En omskifterboks på boksen kunne slukke for forskellige porte for at styre dette.