Talaan ng mga Nilalaman:

Arduino Multi-track MIDI Loop Station: 6 na Hakbang
Arduino Multi-track MIDI Loop Station: 6 na Hakbang

Video: Arduino Multi-track MIDI Loop Station: 6 na Hakbang

Video: Arduino Multi-track MIDI Loop Station: 6 na Hakbang
Video: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Nobyembre
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

Ang isang istasyon ng loop, o isang looper, ay mahalagang isang tool upang i-playback sa real-time ang iyong instrumental riff (mga loop). Hindi ito inilaan bilang isang recording media, ngunit isang instrumento upang hugis ang inspirasyon nang walang paggambala (at sa huli ay gumanap ng live…).

Mayroong maraming mga audio recording loop station doon, kapwa sa anyo ng nakalaang hardware (halos bawat solong tagagawa ng pedal ng gitara ay may sariling produkto) o computer software (ang mahusay na Linux Sooper Looper o windows Mobius, upang banggitin ang pinaka kilala). Mahahanap ko lang ang ilang mga proyekto tungkol sa DIY na hindi audio ngunit MIDI loopers, nangangahulugang isang tool upang maitala ang mga kaganapan ng MIDI at i-play agad ito sa isang loop; karamihan sa mga proyektong ito (lahat, ang sasabihin ko) ay inabandona o nawala … mabuti, narito kami kasama ang isang kumpletong proyekto para sa lahat!

Sinusubaybayan lamang ng Arduino MIDI loop station na ito ang mga papasok na kaganapan ng MIDI at i-play ito muli. Kailangan mo lamang pindutin ang record pedal, lumikha ng iyong pinakamahusay na riff kailanman at ihinto ang pag-record sa pamamagitan ng pagpindot muli sa pedal. Napakadali:)

Ang proyektong ito ay batay sa madaling makahanap ng bukas na hardware (Arduino DUE), software (aking sariling firmware at Arduino IDE) at maaaring ipasadya upang maipakita ang iyong mga kagustuhan.

Gawin natin!

PS: oo, sobrang mura!

Hakbang 1: Mga limitasyon

Bago ka magsimulang kumuha ng mga bahagi ng hardware para sa proyekto, hayaan mo akong sabihin sa iyo kung alin ang mga limitasyon nito upang magpasya kang magpatuloy o tumigil dito.

- Dahil sa mga limitasyon sa hardware (mahalagang adu DUE memory), ang default na maximum na haba ng parirala na maaari mong i-record ay limitado sa 46 segundo.

- Ang mga loop ay hindi maiimbak at mai-play muli pagkatapos ng pag-shut down. Maaari mong ipadala ang mga ito sa isang PC at i-save ang mga ito, bagaman.

- walang mga pagsukat sa dami ng mga tala.

- Sinusuportahan ang MIDI na orasan, ngunit sa isang paunang yugto sa oras na ito.

- Ang mga mensaheng Midi na naitala ay naitala, tala, kontrol ng mga pagbabago at pitch bend; ang ibang mga mensahe sa MIDI tulad ng pag-touch, pagbabago ng programa, SysEx, atbp.

- Ang max polyphony ay nakatakda sa 10 bilang default (muli, Aduino DUE limitasyon ng memorya).

Sa karagdagang panig, ang MIDI stream mula sa maraming magkakaibang mga instrumento, ang bawat paglilipat sa sarili nitong channel, ay suportado; nangangahulugan ito na maaari kang mag-record ng maraming mga instrumento ng MIDI nang sabay-sabay, layered o gamit ang kanilang sariling track (higit pang mga kalamangan sa susunod na hakbang;)).

Kung ang pamumuhay sa mga limitasyong ito ay tila makatwiran (at para sa akin ito), magkakaroon ka ng napakahusay na oras sa bagay na ito;)

Hakbang 2: Paano Ito Gumagana

Ang istasyon ng loop ng MIDI dito ay napaka-simple upang mapatakbo. Gumagana ito sa isang paraan na katulad sa mga istasyon ng audio audio loop na bawat tagagawa ng pedal ng gitara ay mayroong sariling katalogo.

1) Piliin ang track na nais mong i-record ang iyong pagkakasunud-sunod ng MIDI. Sa pamamagitan ng default na track na "isa" ay napili, ngunit maaari mo itong baguhin sa pamamagitan ng pagpindot sa isa sa mga pindutan ng track (isa para sa bawat track).

2) Kapag pinindot mo ang switch na "REC" / pedal ng paa sa unang pagkakataon, nakatuon ang looper. Ang berde na LED ay ilaw. Maghihintay ito hanggang matanggap ang iyong unang tala bago simulang i-record ang aktwal na pagkakasunud-sunod / riff.

3) Kapag natapos mo na ang iyong pagkakasunud-sunod, pindutin muli ang switch na "REC" / pedal ng paa upang tukuyin ang aktwal na haba ng riff. Napatay ang berdeng LED lights. Ang looper ay magsisimulang kopyahin agad ang iyong pagkakasunud-sunod ng MIDI. Kung naabot mo ang pinakamataas na oras, awtomatikong hihinto ang pag-record at ang pagkakasunud-sunod ay magsisimulang kopyahin sa isang loop.

4) Ngayon, maaari kang magpasya na labis na labis ang iyong pagkakasunud-sunod sa kasalukuyang track o pumili ng isang bagong track at itala ito, sa pamamagitan ng pagdidalamhati ng switch na "Rec" / pedal ng paa. Sa parehong mga kaso ang dilaw na LED ay mag-iilaw, kahit na ang bagong track ay walang laman, dahil ito ay isang "alipin" na track (naalipin sa pinakaunang track na naitala). Pindutin muli upang ihinto ang labis na pag-overub (papatay ang dilaw na LED).

Para sa iyo na confortable sa mga istasyon ng audio looping, ang pag-unlad na MIDI na ito ay tinatawag na "REC / PLAY / OVERDUB" at ito lamang ang sinusuportahan.

Kung sa anumang oras pakiramdam mo na ang iyong pinakabagong labis na labis na labis ay hindi ok, maaari mo itong tanggalin sa pamamagitan ng pagpindot sa "undo" switch / foot pedal. Maaari mong i-clear ang buong kasalukuyang track sa pamamagitan ng pagpapanatiling pinindot ang pedal na "REC" nang higit sa 3 segundo; maaari mong i-reset ang looper (pag-reset ng software) sa pamamagitan ng pagpindot sa unang tatlong mga pindutan ng track nang sabay-sabay o sa pamamagitan ng pag-clear sa lahat ng mga ginamit na track.

Maaari mong i-mute / i-unmute ang isang track sa pamamagitan ng pagpindot sa track button ng kasalukuyang track.

Maaari kang magpadala ng isang PANIC! mensahe sa pamamagitan ng pagpindot sa pindutan ng gulat. Maaari ka ring magpadala ng isang PANIC! mensahe sa pamamagitan ng pagpindot sa unang dalawang mga pindutan ng track nang sabay-sabay.

Ang looper ay may built in na simpleng metronome: isang tala sa mensahe ng MIDI para sa note number na "64" ay ipinadala sa isang 100 BPM sa channel 10 (ang channel na marahil ay nakikinig sa iyong drum machine). Maaari mong taasan o bawasan ang tempo sa pamamagitan ng pag-turing ng optikong encoder; sa pamamagitan ng pagpapalumbay sa switch ng optical encoder maaari mong paganahin / huwag paganahin ang metronome. Pansinin na dapat itakda ang iyong drum machine upang magpatugtog ng isang tunog (bitag, bass o anumang tunog na gusto mo) kapag tumatanggap ng MIDI note na "64" o ang metronome ay magiging pipi.

Ang isang walang bayad na bersyon ng MIDI loopstation na ito ay maaaring mabuo sa isang solong paa switch upang simulan at ihinto ang pag-record. Ang pagpapanatili ng switch na pinindot nang higit sa 3 segundo ay muling sisimulan ang istasyon ng loop.

Kung nais mong mamuhunan ng ilang karagdagang oras sa pagbuo ng hardware, ang pagdaragdag ng mga switch at pindutan ay gagawing mas may kakayahang umangkop ang istasyon ng loop. Sa larawan ay kung paano ko na-configure ang aking apat na mga track (hanggang sa limang sinusuportahan) buong tampok na istasyon ng loop.

MAHALAGA TANDAAN: ang hardware sa aking mga larawan ay isang prototype. Gumamit ako ng mas maraming mga socket ng jack kaysa sa kinakailangan ngunit apat na mga pindutan lamang para sa mga track. Ito ay dahil noong sinimulan ko ang proyekto ay hindi ako kumpleto na sigurado kung ano ang panghuli na kinakailangan.

Ang mga pindutan at switch ng paa ay electronically katumbas at maaari mong gamitin ang isa sa halip na ang isa pa; para sa aking mga pangangailangan, palaging may napakaliit na puwang sa sahig (sumpain ang magagandang epekto ng mga pedal;)), napigilan ko ang mga pedal ng paa sa iisang pagpapaandar ng REC.

Hakbang 3: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Bill ng mga materyales:

Buong itinampok na 5-track na istasyon ng loop na MIDI

1x Arduino DUE

7x pansamantalang mga pindutan ng itulak

1x plastic case (Gumamit ako ng 150 x 110 x 70 mm na kaso)

2x 5-pin DIN babae panel i-mount ang MIDI socket konektor

1x 6.3 mm panel mount jack socket

1x double sided 50x70 mm perf board

5x 3 mm LED (berde)

1x 3 mm LED (dilaw)

1x optikong encoder

1x H11L1 optocoupler

1x 1N4148 diode

3x 1000 ohm resistors

3x 220 ohm resistors

10x 470 ohm resistors

Ang ilang mga wire ng panghinang, ilang mga cable, istasyon ng paghihinang … at ekstrang oras:)

Kailangan ng oras upang makumpleto ang proyekto: 6-9 na oras

Bakit hindi isang UNO?

Ang mga unang pagsubok (at isang panimulang gumaganang code) ay nakasulat sa isang "regular" na arduino UNO board. Ang board na ito ay may mga limitasyon ng RAM na pinilit akong bawasan ang polyphony sa "4", max haba hanggang sa mas mababa sa 4 na segundo at isang resolusyon na 40 ms sa max. Ito ay walang paghawak ng multichannel. Sa pamamagitan ng pag-alis din ng pagsubaybay sa tulin, nagawa kong itaas ang oras ng pagrekord hanggang sa 7 segundo.

Sa isang UNO maaari mong mapagtanto ang isang "nagtatrabaho" na istasyon ng loop ng MIDI noon, ngunit lubos na limitado.

Hakbang 4: Software

Ang software ay mabigat na umaasa sa FortySevenEffects MIDI library. Magaling ang library na ito at ginagawang magagawa ang ganitong uri ng mga proyekto kahit para sa mga hindi coder na geeks na tulad ko.

Ang Arduino IDE at ang pamayanan ay isa pang mahalagang bahagi ng "tagumpay" na ito.

Hindi ako magkakaroon ng mga detalye tungkol sa kung paano i-upload ang sketch sa iyong arduino DUE. Kung ito ang iyong unang karanasan sa arduino IDE, mangyaring basahin muna ito.

Sumulat ako ng dalawang magkakaibang bersyon ng code, batay sa dalawang ganap na magkakaibang diskarte.

Ang nagtatrabaho prinsipyo ng bersyon 1 ay na sa panahon ng pag-record o labis na pagdidoble ng Arduino DUE mga tseke at tindahan sa ito (pabagu-bago) memorya ng sinusuportahang mga kaganapan ng MIDI (tala sa, tala off, pagbabago ng kontrol at pitch bend); Ang axis ng oras ay nabibilang sa 20 mga hakbang at ang mga natanggap na mensahe ay nakaimbak sa mga puwang nang naaayon. Habang nagpe-play, ang nakaimbak na mga mensahe ng MIDI ay ipinapadala pabalik sa synth tungkol sa dami ng oras.

Ang nagtatrabaho prinsipyo ng bersyon 2, sa halip, ay "simpleng" magtala ng midi kaganapan at oras kung saan ang kaganapan ay dapat na ma-trigger. Ang bersyon 2 ay may iba't ibang mga limitasyon kaysa sa bersyon 1 (nakalista sa isang nakaraang hakbang). subukan ang pareho at gamitin ang isa na mas gumagana para sa iyo.

Mayroong paunang paghawak ng Orasan din, ngunit kakailanganin nito ang ilang mga pag-aayos upang gumana tulad ng nararapat. Ipinapalagay ng code na nagtatala ka ng isang 4/4 - 4 na mga loop loop (16 beats).

Maaari mong i-deactivate ang panlabas na orasan sa pamamagitan ng pagpindot sa pindutang "gulat" kapag binubuksan ang looper.

Ang mga code ay na-upload DITO. Ang mga komento ay inilalagay sa lahat ng mga ito, upang maaari mong yumuko ang mga firmware sa iyong kalooban;)

Hakbang 5: Wirings

Wirings
Wirings
Wirings
Wirings
Wirings
Wirings

Ang mga circuit ng MIDI IN at MIDI OUT ay naiulat sa mga nakakabit na litrato. Pansinin na ang TX1 at RX1 ay ginagamit, hindi TX0 at RX0.

Ang Arduino DUE input pins ay hindi maaaring hawakan ang 5V, ngunit 3.3V; ito ang dahilan kung bakit ang isang H11L1 optocoupler ay ginagamit sa halip na isang mas karaniwang 6N138. Mayroon akong mga katibayan na ang paggamit ng isang 6N138 na sinamahan ng isang divider ng boltahe upang mabawasan ang boltahe ng signal na papunta sa TX1, tulad ng sa aking unang prototipe, ay maaaring gumana nang hindi wasto sa ilang mga pag-setup.

Ang mga LED ay konektado sa Arduino DUE output pin sa pamamagitan ng 470 Ohm resistors. Maaari mong gamitin ang resistors hanggang sa 1K ohm upang mabawasan ang kasalukuyang pagpunta sa LEDs at mabawasan ang kanilang ningning.

Ang mga pindutan / switch / jacks ay direktang konektado sa mga pin ng input ng Arduino salamat sa mga input ng pullup resistors, naaktibo sa sketch. Hindi na kailangan ang mga panlabas (pulldown) na resistors.

Ang optical encoder ay konektado sa GND at + 5V. Pumunta ito sa mga pin ng input ng Arduino na dumadaan sa 2 480 ohm resistors, isa para sa bawat output ng optical data.

Ang Arduino DUE ay direktang pinalakas mula sa 5V pin at ground sa pamamagitan ng isang + 5V DC hub.

Ang lahat ng mga bakuran ay nakatali sa.

Ang kalakip ay isang mesa na may mga koneksyon mula sa mga pin ng arduino patungo sa IN / OUT peripheral. Ang mga numero ng pin ng Arduino ay sumasalamin sa mga nasa aking proptotype hardware at maaaring tumingin (sila ay someway ay…) sapalaran. Madali mong mababago ang lokasyon ng pin sa sketch ayon sa gusto mo;)

Hakbang 6: Paano Kung Mayroon Akong Higit sa Isang Pinagmulan ng MIDI?

Paano Kung Mayroon Akong Higit sa Isang Pinagmulan ng MIDI?
Paano Kung Mayroon Akong Higit sa Isang Pinagmulan ng MIDI?

Matapos ang isang maikling paghahanap para sa isang pagsasama-sama ng MIDI, nalaman ko na ang pinaka praktikal (at murang) solusyon ay isang MIDI switch.

Ang isang MIDI Switcher ay isang passive device na nagbibigay-daan sa isang mapagkukunan ng MIDI at hindi pinagana ang lahat ng iba pang mga mapagkukunan. Simpleng ganyan.

Ang puso ng isang switch ng MIDI ay isang multi posisyonal (ang akin ay 6 na posisyon), 2 poles switch. Napakahalaga na ang bilang ng mga poste ay "2" dahil ang bawat MIDI socket ay dapat na ganap na gupitin kung hindi napili at hindi sa comunication sa iba. Nakalakip ay isang larawan ng isa na napagtanto ko para sa sarili kong gamit.

Sa LINK NA ITO isang pamamaraan.

Inirerekumendang: