Orodha ya maudhui:

Arduino MIDI Rhythm Sehemu Sequencer: Hatua 8 (na Picha)
Arduino MIDI Rhythm Sehemu Sequencer: Hatua 8 (na Picha)

Video: Arduino MIDI Rhythm Sehemu Sequencer: Hatua 8 (na Picha)

Video: Arduino MIDI Rhythm Sehemu Sequencer: Hatua 8 (na Picha)
Video: Arduino Drum Sequencer: 8 tracks, 16 steps per measure, 8 measures per pattern 2024, Julai
Anonim
Arduino MIDI Rhythm Sehemu Sequencer
Arduino MIDI Rhythm Sehemu Sequencer
Arduino MIDI Sehemu ya Rhythm Sequencer
Arduino MIDI Sehemu ya Rhythm Sequencer
Arduino MIDI Rhythm Sehemu Sequencer
Arduino MIDI Rhythm Sehemu Sequencer

Kuwa na mashine nzuri ya ngoma ni rahisi na bei rahisi leo lakini kutumia panya huua raha kwangu. Hii ndio sababu niligundua kile hapo awali kilikusudiwa kama safu safi ya hatua ya vifaa vya MIDI yenye uwezo wa kuchochea hadi vipengee 12 (sehemu) tofauti za ngoma, lakini ikabadilika katika mpangilio wa sehemu ya densi…

… Huko tunaenda!

Hatua ya 1: Jinsi inavyofanya kazi

Vifaa hivi haviwezi kutoa sauti peke yake, lakini ni mlolongo tu wa vifaa vya nje kupitia MIDI. Hii inamaanisha utahitaji jenereta ya sauti ya sauti yako ya ngoma (sampuli au kisanisi cha ngoma au PC na programu yako ya ngoma inayopenda au chochote unachopendelea) kinachoweza kusababishwa na ujumbe wa maandishi wa MIDI.

Imeundwa sana na kitufe cha 4 x 4 (na LEDs), moja kwa kila hatua ya bar. Mlolongo mzima wa hatua 64 umeundwa na hatua 16 zilizozidisha baa 4. Kila hatua ni 1/16 ya noti.

Kuna njia mbili za operesheni: hali ya moja kwa moja na hali ya kuhariri.

Katika hali ya kuhariri unaweza kuhariri hatua kwa hatua mfuatano wako kwa kufafanua ngoma ipi itacheza katika kila hatua.

Chombo chako cha nje cha vifaa ("ngoma") husababishwa kwa kutuma ujumbe wa MIDI kwenye "ujumbe wa nambari tofauti za" MIDI "kwenye nambari ya kituo" 10 ". Kwa default nambari hizi za kumbuka ni

ngoma # 1 (i.e. kick) -> Nambari ya nambari ya MIDI "60"

ngoma # 2 (i.e. mtego) -> Nambari ya nambari ya MIDI "62"

ngoma # 3 (yaani kupiga makofi) -> nambari ya noti ya MIDI "64"

ngoma # 4 (i.e. Hihat) -> nambari ya nambari ya MIDI "65"

ngoma # 5 -> nambari ya nambari ya MIDI "67"

ngoma # 6 -> nambari ya noti ya MIDI "69"

ngoma # 7 -> nambari ya nambari ya MIDI "71"

ngoma # 8 -> nambari ya nambari ya MIDI "72"

ngoma # 9 -> nambari ya nambari ya MIDI "74"

ngoma # 10 -> nambari ya nambari ya MIDI "76"

ngoma # 11 -> nambari ya nambari ya MIDI "77"

ngoma # 12 -> nambari ya noti ya MIDI "79"

Unaweza kubadilisha maadili haya (na kituo cha MIDI) kwenye mchoro ukipenda.

Katika hali ya moja kwa moja kwa kubonyeza vifungo vya hatua unaweza kuishi kucheza ngoma zinazohusiana na kila hatua kwa kutuma ujumbe wa MIDI kupitia serial. Unaweza kuishi rekodi rekodi zako za kitufe na / au ujumbe unaoingia wa MIDI.

Wote katika hali ya moja kwa moja na modi ya kuhariri unaweza kunyamazisha (au kunyamazisha) ngoma, "tembeza" ngoma inayotumika sasa na "pindua" mlolongo wako.

Sehemu ya mdundo?

Wengi wa watunzi wa ngoma ni sehemu za ngoma za MIDI, na nambari ya kumbuka ya MIDI kwa kila sauti ya ngoma. Katika kesi hii, tuna "mpangilio wa sehemu ya densi" zaidi ya safu "safi ya ngoma" kwa sababu unaweza hata mlolongo wa synthesizers.

Soma MWONGOZO WA KUANZA KWA HARAKA kwa maelezo zaidi na orodha kamili ya huduma.

Hatua ya 2: Vifaa

Vifaa
Vifaa
Vifaa
Vifaa
Vifaa
Vifaa

Mradi huu unafanywa karibu na bodi ya Arduino DUE. Nilijaribu kuweka vifaa iwe rahisi iwezekanavyo, i.e.kuepuka matumizi ya madereva ya LED. Arduino DUE labda sio bodi inayofaa zaidi kushughulikia kikundi cha LED bila dereva wa LED kwa sababu ya mipaka ya sasa ya pato (kutoka 5 mA hadi 15 mA, kulingana na pini), lakini ni Arduino ya haraka zaidi na wakati ni kila kitu wakati wa kushughulika na sequencers. Kwa hivyo, kumbuka kuwa usanidi huu wa vifaa labda unasukuma Arduino yako kwa sababu ya mipaka na inaweza kuiharibu kwa muda mrefu.

Hii inasemwa, vifaa ni vifungo 16, LED 16 (moja kwa kila hatua) sequencer na vifungo 5 vya ziada vya kazi na nguvu tatu. Niliongeza pia nyekundu ya LED baada ya kuongeza kazi ya kurekodi moja kwa moja.

Hapa kuna muswada wa vifaa:

- 1x Arduino KUTOKANA

- vifungo vya kushinikiza vya 16x vya muda mfupi, visivyo na latching na LED zilizounganishwa (unaweza kutumia LED za nje ukipenda, lakini kumbuka kutumia taa za nguvu za chini !!)

- 1x nyekundu ya LED (nguvu ndogo!)

- vifungo vya kushinikiza vya 5x vya kitambo

- 3x 10K zamu moja, laini, potentiometers

- 3x 6.5 mm jopo mlima mono jack kike

- kesi ya plastiki ya 1x (nilitumia kesi ya 190x140x70 mm)

- 2x 5-pin DIN kike jopo mlima kiunganishi tundu (MIDI)

- 1x pande mbili 70x90 mm bodi ya manukato

- 2x 40 pini kiume safu moja ya kichwa cha kichwa (2.54 mm), bora ikiwa dhahabu imefunikwa

- Optocoupler ya 1x H11L1

- 1x 1N4148 diode

- 23x 1000 ohm wapinzani

- 3x 220 ohm wapinzani

- 2x BC547 pnp transistors

… Waya ya solder, nyaya zingine, kituo cha kutengeneza, zana ya kuchimba visima… na muda wa ziada:)

Tafadhali kumbuka kuwa vifungo kwenye picha vimebadilishwa na aina nyingine ya (hata bei rahisi…) ya vitufe vya kushinikiza kwa sababu ya kukasirika kwa hasira …

Wakati unaohitajika kukamilisha mradi: masaa 8 - 10

ONYO: DAIMA vaa glasi za kinga na kinga wakati wa kuchimba visima! Vifaa vya moto vinaweza kutabiriwa kwa macho yako au kuwasiliana na ngozi yako na kusababisha kuchoma au uharibifu mbaya zaidi kwako au kwa watu wanaokuzunguka

Hatua ya 3: Wirings

Wirings
Wirings
Wirings
Wirings
Wirings
Wirings

Vifungo vya hatua vimeunganishwa moja kwa moja na pini za Arduino kutoka 22 (hatua 1) hadi 37 (hatua16). Vifungo vya ardhi vimefungwa minyororo na kushikamana na ardhi ya Arduino DUE. Hakuna haja ya vizuizi vya pullup au pulldown kwa kuwa vipingaji vilivyojumuishwa vya Arduino vimewezeshwa na programu (angalia mchoro).

Vivyo hivyo kwa vifungo 5 vya ziada (pini za Arduino 2, 3, 4, 5 na 6), zinazotumika kwa kazi zingine isipokuwa hatua. Pia niliweka kiunganishi cha jack cha kike cha 6.5 mm sambamba na kitufe cha "kuanza" ili kuweza kucheza na kusimamisha mfuatano wangu kwa mbali.

LED zinaunganishwa na ardhi (mlolongo wa daisy) na pini za Arduino DUE kutoka 38 (hatua # 1) hadi 53 (hatua # 16) kwa safu na kipinzani cha 1K ohm kila moja ili kupunguza bomba la sasa na kuhifadhi mdhibiti mdogo.

Potentiometers zimeunganishwa kama inavyoonekana kwenye picha iliyoambatishwa. Kumbuka kuwa voltage ya kumbukumbu ni 3.3V, sio 5V. Pembejeo zinazotumika ni A0, A1 na A2.

Nilitekeleza pia matokeo mawili ya ishara za arpeggio, kama zile zinazohitajika kupatanisha synth ya zamani ya 80 kama Korg Polysix na Roland Juno 6/60. Zinaunganishwa na pini A3 na A4, lakini unaweza kutumia pini za dijiti ikiwa unapendelea kuwa ishara za dijiti. Ikiwa utafuata synth inayoambatana na ishara za V-Trig (voltage trigger), kipingaji cha safu ya 1k ohm kupunguza mtaro wa sasa kitatosha; ikiwa S-Trig (switch trigger) synth, utahitaji mzunguko rahisi wa kubadili pnp (angalia mpango ulioambatanishwa).

Mizunguko ya MIDI IN na OUT imepangwa kwenye picha zilizoambatanishwa. Kumbuka kuwa, kinyume na arduino nyingi, Rx1 na Tx1 hutumiwa kwa chaguo-msingi kwenye bodi za DUE badala ya Rx0 na Tx0. Hii ni nzuri kwa sababu unaweza kupakia mchoro wako bila hitaji la kukata Rx kila wakati. Angalia pia kwamba nimetumia kifaa cha kuona macho cha H11L1 kwa sababu sikuweza kukimbia kama inavyopaswa kuwa 6N138 ya kawaida ndani ya kikomo cha Arduino DUE 3.3V.

Hatua ya 4: Programu

Mchoro umeandikwa ndani ya Arduino IDE na lazima ipakuliwe kwenye bodi yako ya Arduino DUE. Sitatoa maelezo juu ya jinsi ya kupakia mchoro kwenye DUU yako ya arduino. Ikiwa hii ndio uzoefu wako wa kwanza na Arduino DUE soma hii. Ikiwa hii ndio uzoefu wako wa kwanza na IDU ya arduino, tafadhali soma hii pia.

Unaweza kupakua firmware iliyosasishwa HAPA (kiungo cha github).

Mchoro hutegemea maktaba bora ya FortySevenEffs MIDI. Utahitaji kusanikisha maktaba katika IDE yako ya arduino.

Vidokezo vya MIDI vilivyopewa kila ngoma hufafanuliwa na kutofautisha kwa drumNote [STEPS_NUM] kwenye mchoro. Unaweza kuzibadilisha kwa mapenzi yako.

Nambari ya kituo cha MIDI nje ya ngoma imewekwa "10" kwa chaguo-msingi.

Mimi sio kificho katika maisha halisi na kwa hakika kuna njia bora za kuweka nambari za kile tunachohitaji hapa. Ikiwa wewe ni kificho na maoni yoyote, unakaribishwa! Tafadhali nitumie tofauti yoyote ambayo inaweza kuongeza ufanisi / ufanisi wa nambari na nitaijumuisha kwenye mchoro kuu (nikimtaja Mchangiaji wazi!).

Hatua ya 5: Mwongozo wa Kuanza Haraka

NGOMA: Ufuatiliaji wa hatua kwa hatua

Mara tu unapowezesha mpangilio wako (au kuiweka upya), mlolongo tupu utapakiwa. Mfuatano unaingia kwenye modi ya kuhariri, na bar ya kwanza imeshikwa / imefungwa na ngoma ya kwanza (i.e. kick) imechaguliwa. Hii inamaanisha kuwa kwa kubonyeza kitufe chochote cha hatua, utapeana "kick" mara moja kwa hatua hizo. Kiasi ambacho ngoma itasababishwa imewekwa na msimamo wa "ujazo" potentiometer wakati wa kupeana ngoma kwa hatua. Kwa kubonyeza tena kitufe cha hatua uliyopewa hapo awali utapeana ngoma ya sasa kwenye hatua hiyo.

Ukibonyeza kitufe cha "anza", unaona taa zako za LED zikikimbia kutoka kushoto kwenda kulia, juu hadi chini, ikicheza "kick" wakati wowote hatua ya mateke imevuka.

Kwa kuweka kitufe cha "kuhama" kwa kushinikiza utaona hatua ya 1 ya LED kwenye safu ya 1 imewashwa (inamaanisha ngoma ya kwanza imechaguliwa) na hatua ya kwanza ya LED kwenye safu ya nne (ikimaanisha kuwa umefungwa kwa bar ya kwanza). Sasa unaweza kubadilisha ngoma unayotaka kuifuata kwa kubonyeza kitufe kingine cha hatua wakati ukiweka "zamu" imeshinikizwa. Baada ya kuchagua ngoma mpya, toa "kuhama". LED zote zitazimwa (kwa sababu haujapeana ngoma mpya kwa hatua yoyote) na unaweza kuanza kupeana ngoma mpya kwa hatua. Rudia kwa ngoma zote unayohitaji (hadi 12).

Sasa kwa kuwa umeunda muundo mzuri, endelea kubonyeza "shifti" na uzime hatua iliyoinuliwa kwenye safu ya chini (inapaswa kuwa hatua ya 1 ya safu ya 4 ikiwa umepitisha mpangilio ule ule niliotumia): una " imefunguliwa "mlolongo ambao sasa utaendesha baa zote nne. LED mbichi za chini zitaanza "kusonga", ikionyesha ni bar ipi inayochezwa hivi sasa (mwendelezo wa baa). Utagundua kuwa ni wakati tu katika baa ya kwanza mlolongo utacheza, na baa zingine zote 3 hazitoi sauti. Hii ni kwa sababu umetoa ngoma kwenye bar ya kwanza tu, zingine zimeachwa wazi. Unaweza kuzijaza kwa mkono (chagua upau mpya kwa kubonyeza kitufe cha hatua 4 za mwisho wakati unashikilia "kitufe" kilichobanwa, chagua moja ya ngoma, jaza hatua n.k.) au unakili na ubandike mlolongo wa baa uliyounda kwa baa zote kwa kuingia modi ya kuhariri (funga tena kwa mwambaa wa kwanza) na ubonyeze "rekodi" (ambayo sasa inachukua kazi ya "kubandika") huku ikibanwa "shifti". Rahisi kufanywa kuliko ilivyosemwa.

NGOMA: LIVE MODE MODE

Wakati wa kuanza mtiririko huo uko katika hali ya kuhariri. Ili kutoka kwenye modi ya kuhariri lazima uendelee kushinikiza "shifti" na ubonyeze kitufe cha baa kilichoshikiliwa / kilichofungwa kwa sasa (kitufe cha hatua kwenye safu ya 4 kimewashwa). Hii itazima LED ya bar iliyofungwa hapo awali na kufungua mlolongo. Sasa uko katika hali ya kucheza moja kwa moja.

Katika hali ya kucheza moja kwa moja, kwa kubonyeza kitufe chochote cha hatua ngoma inayohusishwa na kifungo hicho itasababishwa.

Ikiwa unataka kuishi rekodi rekodi yako, anza mlolongo kwa kubonyeza "cheza", kisha bonyeza kitufe cha "rekodi" (tu katika hali ya kucheza moja kwa moja). LED nyekundu itawasha. Uchezaji wako kwenye jedwali la kudhibiti safu ya safu ya ngoma au ujumbe wowote unaoingia wa MIDI (kwa mfano kutoka kwa kibodi ya nje ya MIDI) utarekodiwa.

Kazi zingine

Kwa kubonyeza kitufe cha "roll", ngoma inayotumika sasa itachezwa kwa kila hatua (kwa roll). Hii inafanya kazi kwa njia zote mbili "hatua kwa hatua" na "kucheza-moja kwa moja".

Kwa kubonyeza kitufe chochote cha hatua wakati unabonyeza kitufe cha "bubu" ngoma inayohusiana na hatua hiyo itanyamazishwa (au itasimamishwa). Hii inafanya kazi kwa njia zote mbili "hatua kwa hatua" na "kucheza-moja kwa moja".

Unaweza kufuta mlolongo maalum wa ngoma kwa kubonyeza kitufe cha hatua wakati unashikilia kitufe cha "REC".

Unaweza kufuta mlolongo mzima (kuweka upya laini) kwa kuweka kitufe cha "kuanza" kwa zaidi ya sekunde 3.

Unaweza "kuzungusha" mlolongo wako kwa kugeuza "swing" potentiometer.

Unaweza kuzima / kuwezesha mwangwi wa MIDI kwa kubonyeza kitufe cha "bubu" wakati unabonyeza kitufe cha "kuhama". Wakati mwangwi wa MIDI umewezeshwa (chaguomsingi), habari yoyote iliyopo kwenye jack ya MIDI INPUT itatumwa kwa MIDI OUTPUT jack (tu alama ya MIDI imewashwa, kumbuka, bend bend, baada ya kugusa na mabadiliko ya kudhibiti imeonyeshwa).

Uingizaji na pato la saa za MIDI zinatekelezwa na kuwezeshwa kwa chaguo-msingi. Ikiwa hakuna kipengee cha saa kinachopokelewa, tempo imewekwa na potentiometer iliyojitolea. Ikiwa pembejeo ya saa ya MIDI inapokelewa, tempo imehesabiwa kutoka hapo na tempo potentiometer haitasikika. Saa ya MIDI hutumwa kwa MIDI nje.

Hatua ya 6: Sehemu ya Rhythm

Wazo la asili lilikuwa "safi" hatua 64 za mpangilio wa ngoma ya MIDI kwa mlolongo hadi sehemu 12 za ngoma huru. Baada ya upimaji kadhaa, niligundua kuwa ingekuwa nzuri kudhibiti laini ya bass pia, na nikatoa kipengele cha lami-kwa-hatua inayobadilika kwa ngoma ya hivi karibuni tu. Baada ya hapo, nilibadilisha nambari tena ili niweze kubadilisha sauti kwenye kila ngoma na kudhibiti hadi 12 synthesizers. Marekebisho baadaye niliongeza polyphony (polyphony per-synth limited to 3 by default).

Kujumlisha:

- ukiwa katika hali ya LIVE, ikiwa kurekodi LIVE kunahusika na mlolongo umeanza, unaweza kurekodi ujumbe unaoingia wa MIDI, kwa njia ya simu. Maelezo ya lami na sauti yatahifadhiwa. Pinda bend na infos ya baadaye hupotea. Udhibiti wa MIDI Ujumbe wa mabadiliko utahifadhiwa. Kumbuka kuwa una nafasi moja tu ya CC kwa kila kituo, kwa kila hatua.

- Ikiwa mlolongo umesimamishwa, unaweza kurekodi hadi nambari 3 za sauti (chord) kwa hatua maalum ya bar maalum kwa kushinikiza kitufe cha hatua ya marudio na kubonyeza (kwa wakati mmoja au moja kwa moja) vitufe unavyotaka kwenye kibodi imeunganishwa na bandari ya MIDI IN.

Kumbuka kuwa:

- dokezo lililosababishwa kwa hatua "linauawa" kwenye hatua inayofuata. Ili kuongeza urefu wa dokezo, fanya "parameta ya VCA" ya "kutolewa" ya synthesizer yako.

- kinyume na ngoma, noti haziwezi kuchezwa kwenye roll kwa kubonyeza kitufe cha "roll".

- Wakati wa kurekodi LIVE, data inayoingia ya kituo cha MIDI imehifadhiwa katika hatua ya jamaa "ngoma" (kituo cha MIDI # 1 -> "ngoma" # 1 na kadhalika).

Unaweza kufuta mlolongo maalum wa synth kwa kubonyeza kitufe cha "ngoma" ya jamaa wakati unabonyeza kitufe cha "REC". Kubonyeza tena kutaondoa mlolongo wa ngoma pia. Ikiwa mlolongo wa CC ulirekodiwa, hiyo itakuwa ya kwanza kufutwa, kisha kufuata agizo CC -> Synth -> Drum

Hatua ya 7: Vichochezi vya Arpeggio

S synths za mapema za miaka ya 80 mara nyingi zina vifaa na wakati mwingine huitwa "arpeggio trigger input". Kwa kutuma ishara ya trig ya 2.5 hadi 5.0 V (V-trig au "voltage trigger") au kwa kuweka pembejeo ya arpeggio trigger (S-Trig au "switch trigger") unaweza kumwambia synthesizer kuendeleza hatua moja kwenye mlolongo wa arpeggio. Hii inaweza kuwa ngumu kudhibiti na mfuatano bila kichocheo cha kujitolea nje (wakati mwingine sauti za "rimshot" kutoka kwa kujitolea ambapo / hutumiwa kama faida kwa V-trig synths) lakini kwa bodi ya microcontroller unaweza kusimamia kwa urahisi ishara kama hiyo na udhibiti synth arpeggio yako kama ilivyokusudiwa na kiwanda.

Mfuatano huu wa sehemu ya densi unajumuisha uwezekano wa kuchochea arpeggiator ya synthesizers mbili tofauti, kwa kujitegemea.

Matumizi ni rahisi sana: chagua ngoma 11 au 12 (bonyeza hatua ya 11 au 12 wakati unabonyeza "zamu") na uamilishe hatua unazotaka arpeggiator ahame kwa hatua moja. Kwa njia hii unaweza "kupangilia" 1 / 16th ya maandishi kwa urefu wa arpeggios kwa kuamsha hatua zote, au 1/8 kwa kuamsha kila hatua nyingine. Kwa kuongeza, unaweza kupanga arpeggios ngumu zaidi kwa kuamsha hatua kufuata njia isiyo ya kawaida.

Kulingana na aina ya ishara inayoweza kuungwa mkono na synth unayotaka kudhibiti, utahitaji muundo rahisi wa vifaa: ikiwa V-trig (i.e. Roland synths) weka kontena 1 Kohm katika safu na pato la kuchochea la arduino. Katika kesi ya S-trig (i.e. Korg synths) tumia shematic iliyowekwa kwenye hatua ya "wiring" kwa kichocheo salama cha kubadili.

Hatua ya 8: Ikiwa mambo hayafanyi kazi…

Hata mradi rahisi kama huu hauwezi kufanya kazi kwa 100% mara ya kwanza ukiiwasha. Hapa, kwa mfano, uangalifu kati ya vifungo na LED ni muhimu, na wiring isiyo na kumbukumbu itafanya sequencer isitumie.

Ili kujaribu vipengee vyote tofauti ambavyo hufanya safu ya hatua, niliandika mchoro rahisi wa jaribio (angalia kiambatisho).

Unaweza kupakua firmware ya hivi karibuni ya mtihani hapa (kiungo cha GitHub).

Mchoro wa jaribio hufanya kazi kama ifuatavyo:

- bonyeza kitufe cha hatua: LED inayoendana inapaswa kuwasha na kitambulisho cha MIDI kwenye kituo cha 10 kitatumwa kwa pato la MIDI.

- bonyeza kitufe cha kufanya kazi: moja ya taa 5 za kwanza zitawashwa.

- geuza potentiometer: LEDS itawaka ipasavyo (sufuria ya kwanza -> safu ya kwanza ya LED, sufuria ya pili -> safu ya pili ya LED, sufuria ya tatu -> safu ya tatu ya LED).

- ikiwa noti ya MIDI inapokelewa, mwangaza wa kwanza wa LED utapepesa.

Kumbuka kuwa echo ya MIDI imewezeshwa na chaguo-msingi. Hii inamaanisha kuwa ikiwa una kitanzi cha MIDI kati ya synth na MRSS, hii inaweza kusababisha maswala (nilikumbana na noti mbili inayoweza kutabirika inayochochea mara nyingi, lakini pia noti za chini sana zilisababishwa na kibodi ya kujengwa kwa ujumla isiyojibika na synths na MIDI kufanya kama MIDI Throu… inategemea synth). Ikiwa ndivyo ilivyo, lemaza mwangwi wa MIDI kwa kubonyeza kitufe cha "bubu" wakati unashikilia kitufe cha "kuhama".

Ilipendekeza: