Innehållsförteckning:
- Steg 1: Gränser
- Steg 2: Hur det fungerar
- Steg 3: Hårdvara
- Steg 4: Programvara
- Steg 5: Trådar
- Steg 6: Vad händer om jag har mer än en MIDI -källa?
Video: Arduino Multi-track MIDI Loop Station: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
En loopstation, eller en loopare, är i huvudsak ett verktyg för att i realtid spela upp dina instrumentalriffs (loopar). Det är inte tänkt som ett inspelningsmedium, utan ett instrument för att forma inspirationen utan distraktion (och så småningom utföra live …).
Det finns gott om ljudinspelningsslingestationer där ute, både i form av dedikerad hårdvara (nästan varenda gitarrpedaltillverkare har sin egen produkt) eller datorprogramvara (den utmärkta Linux Sooper Looper eller Windows Mobius, för att citera den mest kända). Jag kunde bara hitta några projekt om DIY icke-ljud men MIDI loopers, vilket betyder ett verktyg för att spela in MIDI-händelser och spela dem direkt i en loop; de flesta av dessa projekt (alla måste jag säga) är övergivna eller förlorade … ja, här har vi ett komplett projekt för alla!
Denna Arduino MIDI loop -station håller helt enkelt reda på inkommande MIDI -händelser och spelar upp dem. Du behöver bara trycka på rekordpedalen, skapa ditt bästa riff någonsin och stoppa inspelningen genom att trycka på pedalen igen. Superenkelt:)
Detta projekt är baserat på lätt att hitta öppen hårdvara (Arduino DUE), programvara (min egen firmware och Arduino IDE) och kan anpassas för att återspegla dina preferenser.
Vi gör det!
PS: ja, det är super billigt!
Steg 1: Gränser
Innan du börjar skaffa hårdvarudelar för projektet, låt mig berätta vilka som är gränserna så att du kan bestämma dig för att fortsätta eller stanna här.
- på grund av maskinvarugränser (Aduino DUE -minne i huvudsak), är den maximala maxlängden för frasen du kan spela in begränsad till 46 sekunder.
- loopar kan inte lagras och spelas upp efter avstängning. Du kan dock skicka dem till en dator och spara dem.
- det finns inga anteckningar.
- MIDI -klocka stöds, men på ett preliminärt stadium just nu.
- MIDI -meddelanden som spelas in är anteckningar på, anteckningar av, kontrolländringar och tonhöjd; andra MIDI -meddelanden som efter beröring, programändring, SysEx, etc. ignoreras.
- max polyfoni är som standard inställd på 10 (igen, Aduino DUE -minnesgränser).
På plussidan stöds MIDI -strömmar från flera olika instrument, var och en sänder på sin egen kanal. detta innebär att du kan spela in flera MIDI -instrument samtidigt, skiktade eller med sitt eget spår (fler proffs i nästa steg;)).
Om det är rimligt att leva med dessa begränsningar (och det är för mig) kommer du att ha det bra med det här;)
Steg 2: Hur det fungerar
MIDI -loopstationen här är mycket enkel att använda. Det fungerar på ett sätt som liknar de hårdvaruljudslingstationer som varje gitarrpedaltillverkare har i sin egen katalog.
1) Välj spåret som du vill spela in din MIDI -sekvens till. Som standard är spåret "ett" valt, men du kan ändra det genom att trycka på en av spårknapparna (en för varje spår).
2) När du trycker på "REC" -omkopplaren/fotpedalen första gången, kopplas slingan in. Den gröna lysdioden tänds. Det väntar tills din första anteckning tas emot innan du börjar spela in den faktiska sekvensen/riffen.
3) När du har avslutat din sekvens trycker du på knappen "REC"/fotpedal igen för att definiera den faktiska längden på riffet. Den gröna lysdioden tänds. Looper börjar omedelbart reproducera din MIDI -sekvens. Om du når maxtiden stoppas inspelningen automatiskt och sekvensen börjar reproduceras i en loop.
4) Nu kan du bestämma dig för att överdubbla din sekvens på det aktuella spåret eller välja ett nytt spår och spela in på det genom att trycka på "REC" omkopplaren/fotpedalen. I båda fallen tänds den gula lysdioden, även om det nya spåret är tomt, eftersom det är ett "slavspår" (slavat till det allra första spåret som spelats in). Tryck igen för att stoppa överdubbning (gul lysdiod släcks).
För er som är bekväma med ljud -looping -stationer kallas denna MIDI -progression "REC/PLAY/OVERDUB" och är den enda som stöds.
Om du någon gång känner att din senaste överdubbning inte är ok kan du radera den genom att trycka på "ångra" -knappen/fotpedalen. Du kan rensa hela det aktuella spåret genom att hålla "REC" -pedalen nedtryckt i mer än 3 sekunder; Du kan återställa looper (mjukvaruåterställning) genom att trycka på de tre första spårknapparna samtidigt eller genom att rensa alla använda spår.
Du kan stänga av/stänga av ett spår genom att trycka på spårknappen för det aktuella spåret.
Du kan skicka en PANIK! meddelande genom att trycka på panikknappen. Du kan till och med skicka en PANIK! meddelande genom att trycka på de två första spårknapparna samtidigt.
Looper har en inbyggd enkel metronom: en anteckning om MIDI -meddelande för notnummer "64" skickas vid 100 BPM på kanal 10 (kanalen du förmodligen har trummaskinen att lyssna på). Du kan öka eller minska tempot genom att vrida den optiska kodaren; genom att trycka på den optiska omkodningsomkopplaren kan du aktivera/inaktivera metronom. Lägg märke till att din trummaskin måste vara inställd för att spela ett ljud (virvel, bas eller vilket ljud du föredrar) när du tar emot MIDI -not "64" eller att metronom är tyst.
En barebone -version av denna MIDI -loopstation kan göras upp med en enda fotomkopplare för att starta och stoppa inspelningen. Om knappen hålls intryckt i mer än 3 sekunder initieras loopstationen igen.
Om du vill lägga lite mer tid på att utveckla hårdvaran, kommer det att göra loopstationen mer flexibel genom att lägga till switchar och knappar. På bilden är hur jag har konfigurerat mina fyra spår (upp till fem stöds) fullt utrustad loopstation.
VIKTIGT OBS: hårdvaran i mina bilder är en prototyp. Jag använde fler jackuttag än nödvändigt men bara fyra knappar för spår. Detta beror på att när jag startade projektet var jag inte helt säker på vad de slutliga kraven skulle vara.
Knappar och fotbrytare är elektroniskt ekvivalenter och du kan använda den ena istället för den andra; för mina behov, eftersom det alltid är för lite golvyta (jävligt härliga effektpedaler;)), har jag begränsat fotpedalerna till den enda REC -funktionen.
Steg 3: Hårdvara
Materialförteckning:
Fullständig 5-spårig MIDI-loopstation
1x Arduino DUE
7x tillfälliga tryckknappar
1x plastfodral (jag använde ett 150 x 110 x 70 mm fodral)
2x 5-polig DIN hona panelmonterad MIDI-uttagskontakt
1x 6,3 mm panelmonterat jackuttag
1x dubbelsidig 50x70 mm perf kartong
5x 3 mm LED (grön)
1x 3 mm LED (gul)
1x optisk kodare
1x H11L1 optokopplare
1x 1N4148 diod
3x 1000 ohm motstånd
3x 220 ohm motstånd
10x 470 ohm motstånd
Lite lödtråd, några kablar, lödstation … och fritid:)
Tid som krävs för att slutföra projektet: 6-9 timmar
Varför inte en UNO?
De första testerna (och en startkod) skrevs på en "vanlig" arduino UNO -bräda. Detta kort har RAM -gränser som tvingade mig att minska polyfonin till "4", maxlängd till mindre än 4 sekunder och en upplösning på 40 ms vid max. Detta utan flerkanalshantering. Genom att också ta bort hastighetsspårningen kunde jag öka inspelningstiden upp till 7 sekunder.
Med en UNO kan du förverkliga en "fungerande" MIDI -loopstation då, men mycket begränsad.
Steg 4: Programvara
Programvaran är starkt beroende av FortySevenEffects MIDI -bibliotek. Detta bibliotek är fantastiskt och gör denna typ av projekt genomförbara även för icke -kodare nördar som jag.
Arduino IDE och dess gemenskap är en annan viktig del av denna "framgång".
Jag kommer inte att gå in på detaljer om hur du laddar upp skissen till din arduino DUE. Om detta är din första erfarenhet av arduino IDE, vänligen läs detta först.
Jag skrev två olika versioner av koden, baserat på två helt olika tillvägagångssätt.
Arbetsprincipen för version 1 är att under inspelning eller överdubbning Arduino DUE kontrollerar och lagrar i sitt (flyktiga) minne de stödda MIDI -händelserna (notering på, notering, kontrolländring och pitchböjning); tidsaxeln kvantiseras i 20 ms steg och mottagna meddelanden lagras i dessa luckor i enlighet därmed. Under spelningen skickas lagrade MIDI -meddelanden tillbaka till synthen med respekt för tidskvantiseringen.
Arbetsprincipen för version 2 är istället att "helt enkelt" spela in midi -händelse och tidpunkt då händelsen måste utlösas. Version 2 har andra gränser än version 1 (listad i ett föregående steg). prova dem båda och använd den som fungerar bättre för dig.
Det finns också en preliminär klockhantering, men det kommer att behöva några tweaks för att fungera som det ska. Koden förutsätter att du spelar in en 4/4 - 4 stapelslinga (16 slag).
Du kan inaktivera den externa klockan genom att hålla knappen "panik" intryckt när du sätter på slingan.
Koder laddas upp HÄR. Kommentarer läggs över dem, så att du kan böja den fasta programvaran efter din vilja;)
Steg 5: Trådar
MIDI IN- och MIDI OUT -kretsar rapporteras i bifogade bilder. Lägg märke till att TX1 och RX1 används, inte TX0 och RX0.
Arduino DUE ingångsstiften klarar inte 5V, men 3,3V; det är därför en H11L1 optokopplare används istället för en vanligare 6N138. Jag har bevis på att användning av en 6N138 i kombination med en spänningsdelare för att minska signalspänningen som går till TX1, som i min första prototyp, skulle kunna fungera oregelbundet i vissa inställningar.
Lysdioder är anslutna till Arduino DUE utgångsstiften via 470 Ohm motstånd. Du kan använda motstånd upp till 1K ohm för att minska strömmen till lysdioder och minska deras ljusstyrka.
Knappar/omkopplare/uttag är direkt anslutna till Arduino -ingångsstiften tack vare ingångspulpmotstånd, aktiverade i skissen. Det finns inget behov av externa (nedrullnings) motstånd.
Den optiska kodaren är ansluten till GND och +5V. Den går till Arduino -ingångsstiften som passerar genom 2 480 ohm motstånd, en för varje optisk datautgång.
Arduino DUE drivs direkt från 5V -stift och jordas via ett +5V DC -nav.
Alla grunder är knutna till varandra.
Bifogat är ett bord med anslutningar från arduino -stift till IN/OUT -kringutrustning. Arduino stiftnummer återspeglar de i min proptotyp hårdvara och kan se ut (de är på något sätt …) slumpmässiga. Du kan enkelt ändra stiftplatsen i skissen efter din vilja;)
Steg 6: Vad händer om jag har mer än en MIDI -källa?
Efter en kort sökning efter en MIDI -sammanslagning fann jag att den mest praktiska (och billiga) lösningen var en MIDI -switcher.
En MIDI -switcher är en passiv enhet som möjliggör en MIDI -källa och inaktiverar alla andra källor. Enkelt som det.
Hjärtat i en MIDI -switcher är en multi -positional (min är 6 -position), 2 -polig switch. Det är mycket viktigt att antalet poler är "2" eftersom varje MIDI -uttag måste klippas helt om det inte är valt och inte i kommunikation med de andra. Bifogar en bild på den jag insåg för eget bruk.
På DENNA LÄNK ett schema.
Rekommenderad:
NaTaLia Weather Station: Arduino Solar Powered Weather Station Gjord på rätt sätt: 8 steg (med bilder)
NaTaLia väderstation: Arduino soldriven väderstation gjord på rätt sätt: Efter 1 års framgångsrik drift på 2 olika platser delar jag mina solcellsdrivna väderstationsprojektplaner och förklarar hur det utvecklades till ett system som verkligen kan överleva över lång tid perioder från solenergi. Om du följer
DIY Weather Station & WiFi Sensor Station: 7 steg (med bilder)
DIY Weather Station & WiFi Sensor Station: I det här projektet kommer jag att visa dig hur du skapar en väderstation tillsammans med en WiFi -sensorstation. Sensorstationen mäter lokala temperatur- och luftfuktighetsdata och skickar den via WiFi till väderstationen. Väderstationen visar sedan t
Automatiserad tåg omvänd loop med Arduino: 10 steg (med bilder)
Automatiserad tåg omvänd loop med Arduino: Att göra omvända slingor kan hjälpa i modell tåglayouter att ändra tågets riktning, vilket inte kan göras med skivspelare. På detta sätt kan du skapa enkelspåriga layouter med en omvänd slinga i varje ände för att köra tåg utan paus eller interru
Multi Task Raspberry 1 B (Personal Cloud + Weather Station): 4 steg
Multi Task Raspberry 1 B (Personal Cloud + Weather Station): För en tid sedan kom jag ihåg att det fanns en RPiB -reserv efter att ha köpt en nyare version. Tänkte på integritet när jag behöll mina backupfiler och bestämde mig för att ha en egen molnserver. Nöjd med bra resultat men inte nöjd med slöseriet med potential från R
MIDI 5V LED Strip Light Controller för Spielatron eller annan MIDI Synth: 7 steg (med bilder)
MIDI 5V LED Strip Light Controller för Spielatron eller annan MIDI Synth: Denna kontroller blinkar trefärgade LED-remsor för 50 ms per ton. Blå för G5 till D#6, röd för E6 till B6 och grön för C7 till G7. Styrenheten är en ALSA MIDI -enhet så att MIDI -programvara kan mata ut till lysdioderna samtidigt som en MIDI -syntenhet