Innholdsfortegnelse:

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

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

Video: Arduino Multi-track MIDI Loop Station: 6 trinn
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, November
Anonim
Arduino Multi-track MIDI Loop Station
Arduino Multi-track MIDI Loop Station
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 sløyfestasjon, eller en looper, er egentlig et verktøy for å spille av instrumentalriffene dine (looper) i sanntid. Det er ikke ment som et opptaksmedium, men et instrument for å forme inspirasjonen uten distraksjon (og til slutt utføre live …).

Det er mange lydopptaksløyfestasjoner der ute, både i form av dedikert maskinvare (nesten hver eneste gitarpedalprodusent har sitt eget produkt) eller dataprogramvare (den utmerkede Linux Sooper Looper eller windows Mobius, for å nevne den mest kjente). Jeg kunne bare finne noen få prosjekter om DIY ikke-lyd, men MIDI loopers, noe som betyr et verktøy for å spille inn MIDI-hendelser og spille dem umiddelbart tilbake i en loop; de fleste av disse prosjektene (alle skal jeg si) er forlatt eller tapt … vel, her har vi et komplett prosjekt for alle!

Denne Arduino MIDI loop -stasjonen holder ganske enkelt oversikt over innkommende MIDI -hendelser og spiller dem av. Du trenger bare å trykke på rekordpedalen, lage ditt beste riff noensinne og stoppe opptaket ved å trykke på pedalen igjen. Superenkelt:)

Dette prosjektet er basert på lett å finne åpen maskinvare (Arduino DUE), programvare (min egen fastvare og Arduino IDE) og kan tilpasses for å gjenspeile dine preferanser.

La oss gjøre det!

PS: ja, det er super billig!

Trinn 1: Grenser

Før du begynner å skaffe maskinvaredeler til prosjektet, la meg fortelle deg hvilke grenser det er slik at du kan bestemme deg for å gå videre eller stoppe her.

- på grunn av maskinvaregrenser (hovedsakelig Aduino DUE -minne), er standard maksimal lengde på setningen du kan spille inn begrenset til 46 sekunder.

- sløyfer kan ikke lagres og spilles av etter nedleggelse. Du kan imidlertid sende dem til en PC og lagre dem.

- det er ingen notater kvantisering.

- MIDI -klokke støttes, men på et foreløpig stadium på dette tidspunktet.

- MIDI -meldinger registrert er notat på, notat av, kontrollendringer og pitch bend; andre MIDI -meldinger som etter berøring, programendring, SysEx, etc. blir ignorert.

- maks polyfoni er satt til 10 som standard (igjen, Aduino DUE minnegrenser).

På plussiden støttes MIDI -strømmer fra flere forskjellige instrumenter, som hver sender på sin egen kanal; dette betyr at du kan spille inn flere MIDI -instrumenter samtidig, lagdelt eller med sitt eget spor (flere proffer på neste trinn;)).

Hvis det å leve med disse begrensningene virker rimelig (og det er for meg), vil du ha det veldig bra med dette;)

Trinn 2: Slik fungerer det

MIDI loop -stasjonen her er veldig enkel å betjene. Det fungerer på en måte som ligner på maskinvaren lydsløyfestasjoner som hver gitarpedalprodusent har i sin egen katalog.

1) Velg sporet du vil spille inn MIDI -sekvensen til. Som standard er "ett" valgt, men du kan endre det ved å trykke på en av knappene (én for hvert spor).

2) Når du trykker på "REC" -bryteren/fotpedalen første gang, er looper aktivert. Den grønne LED -lampen lyser. Det vil vente til det første notatet er mottatt før du begynner å registrere den faktiske sekvensen/riffet.

3) Når du er ferdig med sekvensen, trykker du på "REC" -bryteren/fotpedalen igjen for å definere den faktiske lengden på riffet. Den grønne LED -lampen lyser. Looper begynner å reprodusere MIDI -sekvensen din umiddelbart. Hvis du når maks. Tid, stopper opptaket automatisk, og sekvensen begynner å gjengis i en sløyfe.

4) Nå kan du bestemme deg for å overdubbe sekvensen din på det gjeldende sporet eller velge et nytt spor og ta opp på det ved å trykke på "REC" -bryteren/fotpedalen. I begge tilfeller lyser den gule LED -en, selv om det nye sporet er tomt, fordi det er et "slave" -spor (slavet til det aller første sporet som er spilt inn). Trykk igjen for å stoppe overdubbing (gul LED slukker).

For deg som er komfortabel med lydsløyfestasjoner, kalles denne MIDI -progresjonen "REC/PLAY/OVERDUB" og er den eneste som støttes.

Hvis du noen gang føler at din siste overdub ikke er ok, kan du slette den ved å trykke på "angre" bryteren/fotpedalen. Du kan slette hele gjeldende spor ved å holde "REC" -pedalen inne i mer enn 3 sekunder; du kan tilbakestille looper (programvare reset) ved å trykke på de tre første sporknappene samtidig eller ved å fjerne alle brukte spor.

Du kan dempe/deaktivere et spor ved å trykke på sporknappen for det gjeldende sporet.

Du kan sende en PANIKK! meldingen ved å trykke på panikk -knappen. Du kan til og med sende en PANIKK! meldingen ved å trykke på de to første knappene samtidig.

Looper har en innebygd enkel metronom: et notat på MIDI -melding for notatnummer "64" sendes med 100 BPM på kanal 10 (kanalen du antagelig har trommemaskinen din til å lytte til). Du kan øke eller redusere tempoet ved å ture den optiske koderen; ved å trykke på den optiske koderbryteren kan du aktivere/deaktivere metronom. Legg merke til at trommemaskinen din må være satt til å spille av en lyd (snare, bass eller hvilken lyd du foretrekker) når du mottar MIDI -note "64", eller at metronom vil være dempet.

En barebone -versjon av denne MIDI loopstation kan bestå av en enkelt fotbryter for å starte og stoppe innspillingen. Hvis du holder bryteren inne i mer enn 3 sekunder, initialiseres sløyfestasjonen på nytt.

Hvis du vil bruke litt ekstra tid på å utvikle maskinvaren, vil det å legge til brytere og knapper gjøre sløyfestasjonen mer fleksibel. På bildet er hvordan jeg har konfigurert mine fire spor (opptil fem støttes) fullt utstyrt sløyfestasjon.

VIKTIG MERK: maskinvaren i bildene mine er en prototype. Jeg brukte flere stikkontakter enn nødvendig, men bare fire knapper for spor. Dette er fordi da jeg startet prosjektet var jeg ikke helt sikker på hva de endelige kravene ville være.

Knapper og fotbrytere er elektronisk ekvivalenter, og du kan bruke den ene i stedet for den andre; for mine behov, er at det alltid er for lite gulvplass (jævla flotte effektpedaler;)), jeg har begrenset fotpedaler til den eneste REC -funksjonen.

Trinn 3: Maskinvare

Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare

Stykklister:

Fullt utstyrt 5-spor MIDI loop-stasjon

1x Arduino DUE

7x øyeblikkelige trykknapper

1x plastkasse (jeg brukte et 150 x 110 x 70 mm etui)

2x 5-pinners DIN-panelmontert MIDI-sokkelkontakt

1x 6,3 mm panelmontert jackkontakt

1x dobbeltsidig 50x70 mm perf bord

5x 3 mm LED (grønn)

1x 3 mm LED (gul)

1x optisk encoder

1x H11L1 optokobler

1x 1N4148 diode

3x 1000 ohm motstander

3x 220 ohm motstander

10x 470 ohm motstander

Litt loddetråd, noen kabler, loddestasjon … og fritid:)

Tid som kreves for å fullføre prosjektet: 6-9 timer

Hvorfor ikke en UNO?

De første testene (og en startende arbeidskode) ble skrevet på et "vanlig" arduino UNO -kort. Dette brettet har RAM -grenser som tvang meg til å redusere polyfonien til "4", maks lengde til mindre enn 4 sekunder og en oppløsning på 40 ms ved maks. Dette uten flerkanalshåndtering. Ved å fjerne hastighetssporing også, klarte jeg å øke opptakstiden til 7 sekunder.

Med en UNO kan du realisere en "fungerende" MIDI loop -stasjon da, men svært begrenset.

Trinn 4: Programvare

Programvaren er sterkt avhengig av FortySevenEffects MIDI -bibliotek. Dette biblioteket er flott og gjør denne typen prosjekter gjennomførbare, selv for ikke -kodere som nøkler som meg.

Arduino IDE og fellesskapet er en annen viktig del av denne "suksessen".

Jeg vil ikke gå inn på detaljer om hvordan du laster opp skissen til din arduino DUE. Hvis dette er din første erfaring med arduino IDE, vennligst les dette først.

Jeg skrev to forskjellige versjoner av koden, basert på to helt forskjellige tilnærminger.

Arbeidsprinsippet for versjon 1 er at under innspilling eller overdubbing Arduino DUE sjekker og lagrer i det (flyktige) minnet de støttede MIDI -hendelsene (merk på, noter av, kontrollendring og pitch bend); tidsaksen kvantiseres i 20 ms trinn og mottatte meldinger lagres i disse sporene tilsvarende. Mens du spiller, sendes lagrede MIDI -meldinger tilbake til synthen med respekt for tidskvantisering.

Arbeidsprinsippet for versjon 2 er i stedet å "ganske enkelt" registrere midi -hendelse og tidspunkt da hendelsen må utløses. Versjon 2 har andre grenser enn versjon 1 (oppført på et tidligere trinn). Prøv dem begge og bruk den som fungerer bedre for deg.

Det er også en foreløpig klokkehåndtering, men den trenger noen justeringer for å fungere som den skal. Koden forutsetter at du spiller inn en 4/4 - 4 bar loop (16 slag).

Du kan deaktivere den eksterne klokken ved å holde inne "panikk" -knappen når du slår på looper.

Koder lastes opp HER. Kommentarer er plassert over dem, slik at du kan bøye fastvaren etter ønske;)

Trinn 5: Kablinger

Kablinger
Kablinger
Kablinger
Kablinger
Kablinger
Kablinger

MIDI IN og MIDI OUT kretser er rapportert i de vedlagte bildene. Legg merke til at TX1 og RX1 brukes, ikke TX0 og RX0.

Arduino DUE input pins klarer ikke 5V, men 3.3V; det er derfor en H11L1 optokobler brukes i stedet for en mer vanlig 6N138. Jeg har bevis på at bruk av en 6N138 kombinert med en spenningsdeler for å redusere signalspenningen til TX1, som i min første prototipe, kunne fungere uberegnelig i noen oppsett.

Lysdioder er koblet til Arduino DUE utgangspinner via 470 Ohm motstander. Du kan bruke motstander opp til 1K ohm for å redusere strømmen til lysdioder og redusere lysstyrken.

Knapper/brytere/kontakter er direkte koblet til Arduino -inngangspinner takket være inngangspullup -motstander, aktivert i skissen. Det er ikke behov for eksterne (nedtrekks) motstander.

Den optiske koderen er koblet til GND og +5V. Den går til Arduino -inngangspinner som går gjennom 2 480 ohm motstander, en for hver optisk datautgang.

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

Alle grunner er knyttet sammen.

Vedlagt er et bord med tilkoblinger fra arduino -pinner til IN/OUT periferiutstyr. Arduino pin -tall gjenspeiler tallene i min proptotype -maskinvare og kan se ut (de er på en måte …) tilfeldige. Du kan enkelt endre pin -plasseringen i skissen etter ønske;)

Trinn 6: Hva om jeg har mer enn en MIDI -kilde?

Hva om jeg har mer enn én MIDI -kilde?
Hva om jeg har mer enn én MIDI -kilde?

Etter et kort søk etter en MIDI -fusjon fant jeg ut at den mest praktiske (og billige) løsningen var en MIDI -switcher.

En MIDI -switcher er en passiv enhet som aktiverer en MIDI -kilde og deaktiverer alle de andre kildene. Så enkelt som det.

Hjertet til en MIDI -switcher er en multi -posisjonell (min er i 6 posisjoner), 2 -polet bryter. Det er veldig viktig at antall poler er "2" fordi hver MIDI -kontakt må kuttes helt hvis den ikke er valgt og ikke i kommunikasjon med de andre. Legger ved et bilde av den jeg skjønte til eget bruk.

På DENNE LINKEN et opplegg.

Anbefalt: