Indholdsfortegnelse:

Arduino Multi-track MIDI Loop Station: 6 trin
Arduino Multi-track MIDI Loop Station: 6 trin

Video: Arduino Multi-track MIDI Loop Station: 6 trin

Video: Arduino Multi-track MIDI Loop Station: 6 trin
Video: DIY Midi Foot Switch + Loop Station with Arduino 2024, November
Anonim
Arduino MIDI Loop Station med flere spor
Arduino MIDI Loop Station med flere spor
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station

En loop-station eller en looper er i det væsentlige et værktøj til afspilning i realtid af dine instrumentale riffs (loops). Det er ikke tænkt som et optagemedie, men et instrument til at forme inspirationen uden distraktion (og til sidst optræde live …).

Der er masser af lydoptagelses loopstationer derude, både i form af dedikeret hardware (næsten hver eneste guitarpedalproducent har sit eget produkt) eller computersoftware (den fremragende Linux Sooper Looper eller Windows Mobius, for at nævne den mest kendte). Jeg kunne kun finde få projekter om DIY ikke-lyd, men MIDI loopers, hvilket betyder et værktøj til at optage MIDI begivenheder og afspille dem med det samme i en loop; de fleste af disse projekter (dem alle, skulle jeg sige) er opgivet eller tabt … godt, her har vi et komplet projekt for alle!

Denne Arduino MIDI loop -station holder simpelthen styr på indgående MIDI -begivenheder og afspiller dem. Du behøver kun at trykke på rekordpedalen, oprette dit bedste riff nogensinde og stoppe optagelsen ved at trykke på pedalen igen. Super let:)

Dette projekt er baseret på let at finde åben hardware (Arduino DUE), software (min egen firmware og Arduino IDE) og kan tilpasses til at afspejle dine præferencer.

Lad os gøre det!

PS: ja, det er super billigt!

Trin 1: Grænser

Inden du begynder at anskaffe hardwaredele til projektet, lad mig fortælle dig, hvad der er dets grænser, så du kan beslutte at gå videre eller stoppe her.

- på grund af hardwaregrænser (Aduino DUE -hukommelse i det væsentlige) er standardmaksimumlængden af den sætning, du kan optage, begrænset til 46 sekunder.

- loops kan ikke gemmes og afspilles efter lukning. Du kan dog sende dem til en pc og gemme dem.

- der er ingen notekvantisering.

- MIDI -ur understøttes, men på en foreløbig fase på nuværende tidspunkt.

- MIDI -meddelelser optaget er note on, note off, kontrolændringer og pitch bend; andre MIDI -meddelelser som f.eks. efter berøring, programændring, SysEx osv. ignoreres.

- max polyfoni er som standard indstillet til 10 (igen, Aduino DUE -hukommelsesgrænser).

På plussiden understøttes MIDI -streams fra flere forskellige instrumenter, der hver sender på sin egen kanal; det betyder, at du kan optage flere MIDI -instrumenter på én gang, lagdelt eller med deres eget spor (flere fordele på det næste trin;)).

Hvis det lever rimeligt at leve med disse begrænsninger (og det er for mig), vil du have det rigtig godt med det her;)

Trin 2: Sådan fungerer det

MIDI loop stationen her er meget enkel at betjene. Det fungerer på en måde, der ligner de hardware -lydsløjfe -stationer, hver producent af guitarpedaler har i sit eget katalog.

1) Vælg det spor, du vil optage din MIDI -sekvens til. Som standard vælges "et", men du kan ændre det ved at trykke på en af sporets knapper (en for hvert nummer).

2) Når du trykker på "REC" -kontakten/fodpedalen første gang, aktiveres griberen. Den grønne LED lyser. Det venter, indtil din første note er modtaget, før du begynder at optage den faktiske sekvens/riff.

3) Når du er færdig med din sekvens, skal du trykke på "REC" -kontakten/fodpedalen igen for at definere den faktiske længde af riffet. Den grønne LED lyser. Looper begynder straks at gengive din MIDI -sekvens. Hvis du når maks. Tid, stopper optagelsen automatisk, og sekvensen begynder at blive gengivet i en loop.

4) Nu kan du beslutte at overdubbe din sekvens på det aktuelle spor eller vælge et nyt spor og optage på det ved at trykke på "REC" -kontakten/fodpedalen. I begge tilfælde lyser den gule LED, selvom det nye spor er tomt, fordi det er et "slave" spor (slavet til det allerførste spor, der er optaget). Tryk igen for at stoppe overdubben (gul LED slukker).

For jer der er komfortable med audio looping -stationer, kaldes denne MIDI -progression "REC/PLAY/OVERDUB" og er den eneste understøttede.

Hvis du på noget tidspunkt føler, at din seneste overdub ikke er ok, kan du slette den ved at trykke på knappen "fortryd"/fodpedal. Du kan slette hele det aktuelle spor ved at holde "REC" -pedalen nede i mere end 3 sekunder; du kan nulstille looper (software reset) ved at trykke på de første tre sporknapper på samme tid eller ved at slette alle de brugte spor.

Du kan deaktivere/deaktivere et spor ved at trykke på knappen til det aktuelle spor.

Du kan sende en PANIK! besked ved at trykke på panikknappen. Du kan endda sende en PANIK! besked ved at trykke på de to første spor -knapper på samme tid.

Looper har en indbygget enkel metronom: en note om MIDI -meddelelse til note nummer "64" sendes med en 100 BPM på kanal 10 (den kanal, du formodentlig har din trommemaskine til at lytte til). Du kan øge eller reducere tempoet ved at ture den optiske encoder; ved at trykke på den optiske encoder -switch kan du aktivere/deaktivere metronom. Bemærk, at din trommemaskine skal være indstillet til at afspille en lyd (snare, bas eller hvilken lyd du foretrækker), når du modtager MIDI -note "64", eller metronomen vil være lydløs.

En barebone -version af denne MIDI loopstation kunne udgøres med en enkelt fodkontakt til at starte og stoppe optagelsen. Hvis kontakten holdes nede i mere end 3 sekunder, initialiseres sløjfestationen igen.

Hvis du vil investere lidt ekstra tid i at udvikle hardwaren, vil tilføjelse af kontakter og knapper gøre loopstationen mere fleksibel. På billedet er, hvordan jeg har konfigureret mine fire spor (op til fem understøttes) fuldt udstyret loopstation.

VIGTIG BEMÆRK: hardware på mine billeder er en prototype. Jeg brugte flere jackstik end nødvendigt, men kun fire knapper til spor. Dette skyldes, at da jeg startede projektet, var jeg ikke helt sikker på, hvad de endelige krav ville være.

Knapper og fodkontakter er elektronisk ækvivalente, og du kan bruge den ene i stedet for den anden; til mine behov, da der altid er for lidt gulvplads (forbandet dejlige effektpedaler;)), har jeg begrænset fodpedaler til den enkelte REC -funktion.

Trin 3: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Stykliste:

Fuldt udstyret 5-spor MIDI loop station

1x Arduino DUE

7x kortvarige trykknapper

1x plastikhus (jeg brugte et 150 x 110 x 70 mm etui)

2x 5-polet DIN hunpanelmonteret MIDI-stikforbindelse

1x 6,3 mm panelmonteret jackstik

1x dobbeltsidet 50x70 mm perf bord

5x 3 mm LED (grøn)

1x 3 mm LED (gul)

1x optisk encoder

1x H11L1 optokobler

1x 1N4148 diode

3x 1000 ohm modstande

3x 220 ohm modstande

10x 470 ohm modstande

Noget loddetråd, nogle kabler, loddestation … og fritid:)

Tid, der kræves for at fuldføre projektet: 6-9 timer

Hvorfor ikke en UNO?

De første tests (og en startende arbejdskode) blev skrevet på et "almindeligt" arduino UNO -bord. Dette kort har RAM -grænser, der tvang mig til at reducere polyfonien til "4", maks. Længde til mindre end 4 sekunder og en opløsning på 40 ms ved maks. Dette uden flerkanalshåndtering. Ved også at fjerne hastighedssporingen kunne jeg øge optagelsestiden op til 7 sekunder.

Med en UNO kan du derefter realisere en "fungerende" MIDI loop -station, men meget begrænset.

Trin 4: Software

Softwaren er stærkt afhængig af FortySevenEffects MIDI -bibliotek. Dette bibliotek er fantastisk og gør denne slags projekter gennemførlige, selv for ikke -kodere nørder som mig.

Arduino IDE og dets fællesskab er en anden vigtig del af denne "succes".

Jeg vil ikke gå i detaljer om, hvordan du uploader skitsen til din arduino DUE. Hvis dette er din første oplevelse med arduino IDE, bedes du læse dette først.

Jeg skrev to forskellige versioner af koden, baseret på to helt forskellige tilgange.

Arbejdsprincippet for version 1 er, at under understøttelse eller overdubbing af Arduino DUE kontrollerer og gemmer de understøttede MIDI -hændelser i noten (note on, note off, control change og pitch bend); tidsaksen kvantificeres i 20 ms trin, og modtagne meddelelser lagres i disse slots i overensstemmelse hermed. Under afspilning sendes gemte MIDI -meddelelser tilbage til synthen med respekt for tidskvantiseringen.

Arbejdsprincippet for version 2 er i stedet at "simpelthen" registrere midi -begivenhed og tidspunkt, hvor begivenheden skal udløses. Version 2 har andre grænser end version 1 (angivet i et tidligere trin). prøv dem begge, og brug den, der fungerer bedre for dig.

Der er også en foreløbig urhåndtering, men den skal bruge nogle justeringer for at fungere som den skal. Koden forudsætter, at du optager en 4/4 - 4 bar loop (16 slag).

Du kan deaktivere eksternt ur ved at holde knappen "panik" nede, når du tænder looper.

Koder uploades HER. Kommentarer er placeret over dem, så du kan bøje denne firmware efter din vilje;)

Trin 5: Ledninger

Wirings
Wirings
Wirings
Wirings
Wirings
Wirings

MIDI IN og MIDI OUT kredsløb er rapporteret i de vedhæftede billeder. Bemærk, at TX1 og RX1 bruges, ikke TX0 og RX0.

Arduino DUE input pins kan ikke håndtere 5V, men 3.3V; derfor bruges en H11L1 optokobler i stedet for en mere almindelig 6N138. Jeg har beviser for, at brug af en 6N138 kombineret med en spændingsdeler til at reducere signalspændingen til TX1, som i mit første prototipe, kunne fungere uregelmæssigt i nogle opsætninger.

Lysdioder er forbundet til Arduino DUE output pins via 470 Ohm modstande. Du kan bruge modstande op til 1K ohm til at reducere strømmen til LED'er og reducere deres lysstyrke.

Knapper/switche/stik er direkte forbundet til Arduino input pins takket være input pullup modstande, aktiveret i skitsen. Der er ikke behov for eksterne (pulldown) modstande.

Den optiske encoder er tilsluttet GND og +5V. Det går til Arduino input pins, der passerer gennem 2 480 ohm modstande, en for hver optisk data output.

Arduino DUE drives direkte fra 5V pin og jordet via et +5V DC hub.

Alle grunde er bundet sammen.

Vedhæftet er et bord med forbindelser fra arduino -ben til IN/OUT -periferiudstyr. Arduino pin numre afspejler dem i min proptotype hardware og kunne se (de er på en måde …) tilfældige. Du kan nemt ændre nålens placering i skitsen efter eget ønske;)

Trin 6: Hvad hvis jeg har mere end en MIDI -kilde?

Hvad hvis jeg har mere end én MIDI -kilde?
Hvad hvis jeg har mere end én MIDI -kilde?

Efter en kort søgning efter en MIDI -fusion fandt jeg ud af, at den mest praktiske (og billige) løsning var en MIDI -switcher.

En MIDI -switcher er en passiv enhed, der aktiverer en MIDI -kilde og deaktiverer alle de andre kilder. Så simpelt er det.

Hjertet i en MIDI switcher er en multi positional (min er i 6 positioner), 2 polet switch. Det er meget vigtigt, at antallet af poler er "2", fordi hvert MIDI -stik skal være fuldstændigt afskåret, hvis det ikke er valgt og ikke i kommunikation med de andre. Vedhæftet er et billede af det, jeg realiserede til eget brug.

På DETTE LINK et skema.

Anbefalede: