Мазмұны:

Arduino MIDI ырғағы секциясы: 8 қадам (суреттермен)
Arduino MIDI ырғағы секциясы: 8 қадам (суреттермен)

Бейне: Arduino MIDI ырғағы секциясы: 8 қадам (суреттермен)

Бейне: Arduino MIDI ырғағы секциясы: 8 қадам (суреттермен)
Бейне: 10. Миди контроллер на Arduino Nano|Arduino| Midi 2024, Қараша
Anonim
Arduino MIDI ырғағы секциялаушы
Arduino MIDI ырғағы секциялаушы
Arduino MIDI ритм бөлімінің тізбегі
Arduino MIDI ритм бөлімінің тізбегі
Arduino MIDI ритм бөлімінің тізбегі
Arduino MIDI ритм бөлімінің тізбегі

Жақсы бағдарламалық қамтамасыз ету барабаны бар машина бүгінде оңай және арзан, бірақ тышқанды пайдалану мен үшін қуанышты өлтіреді. Міне, сондықтан мен бастапқыда барабанның 12 түрлі элементтерін (бөлшектерін) қосуға қабілетті таза 64 сатылы MIDI барабан секвенсері ретінде не қажет екенін түсіндім, бірақ содан кейін ырғақ секциясы секвенсерінде дамыдым …

… Мінекей!

1 -қадам: Бұл қалай жұмыс істейді

Бұл жабдық дыбыстарды өздігінен шығара алмайды, тек сыртқы жабдықты MIDI арқылы реттейді. Бұл сізге MIDI ескерту хабарламалары арқылы іске қосылатын барабан дыбыстарының дыбыс генераторы қажет болады (іріктегіш немесе барабан синтезаторы немесе сүйікті барабанды бағдарламалық жасақтамасы бар ДК).

Ол негізінен жолақтың әр қадамы үшін 4х4 түймелі матрицадан тұрады (жарық диодтары бар). Барлық 64 қадамдар тізбегі 16 қадамға көбейтілген 4 жолақтан тұрады. Әр қадам - жазбаның 1/16 бөлігі.

Екі жұмыс режимі бар: тірі режим және өңдеу режимі.

Өңдеу режимінде сіз әр қадамда қандай барабан ойнайтынын анықтай отырып, ретін біртіндеп өңдей аласыз.

Сіздің сыртқы аппараттық құрал («барабан») «10» арна нөміріне әр түрлі «MIDI нота нөмірлеріне» арналған MIDI «жазбасын» жіберу арқылы іске қосылады. Әдепкі бойынша бұл жазбалар нөмірлері

барабан №1 (яғни соққы) -> «60» MIDI жазбасының нөмірі

барабан #2 (яғни тұзақ) -> MIDI нота нөмірі «62»

барабан №3 (яғни шапалақ) -> MIDI нота нөмірі «64»

барабан №4 (яғни хихат) -> MIDI нота нөмірі «65»

барабан №5 -> MIDI жазбасының нөмірі «67»

барабан #6 -> MIDI жазбасының нөмірі «69»

барабан №7 -> MIDI жазбасының нөмірі «71»

барабан #8 -> MIDI жазбасының нөмірі «72»

барабан #9 -> MIDI жазбасының нөмірі «74»

барабан #10 -> MIDI жазбасының нөмірі «76»

барабан #11 -> MIDI жазбасының нөмірі «77»

барабан #12 -> MIDI жазбасының нөмірі «79»

Қаласаңыз, эскизде осы мәндерді (және MIDI арнасын) өзгертуге болады.

Қадамдық түймелерді басу арқылы тірі режимде сіз MIDI хабарламаларын сериялық жіберу арқылы әр қадаммен байланысты барабандарда ойнай аласыз. Сіз батырмаларды басуды және/немесе кіріс MIDI хабарларын тіркеуге болады.

Тікелей режимде де, өңдеу режимінде де барабанды өшіруге (немесе өшіруге), қазіргі уақытта белсенді барабанды «айналдыра ойнатуға» және реттілікті «бұруға» болады.

Ырғақ бөлімі?

Барабан секвенерлерінің көпшілігі барабанның әр дыбысы үшін бекітілген MIDI нота нөмірі бар барабан бөлшектерінің триггерлері болып табылады. Бұл жағдайда бізде таза «барабан секвенерінен» гөрі «ырғақ секциясы секвенсері» бар, себебі сіз синтезаторларды реттей аласыз.

Қосымша мәліметтер мен мүмкіндіктердің толық тізімін алу үшін QUICK START GUIDE оқыңыз.

2 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал

Бұл жоба Arduino DUE тақтасының айналасында жүзеге асады. Мен аппараттық құралдарды мүмкіндігінше қарапайым ұстауға тырыстым, яғни жарықдиодты драйверлерді пайдаланбау арқылы. Arduino DUE - бұл жарық диодты драйвері жоқ светодиодты басқаруға арналған ең қолайлы тақта емес, себебі оның шығыс токының шегі (түйреуішке байланысты 5 мА -дан 15 мА -ға дейін), бірақ бұл Arduino -дың ең жылдам және жұмыс уақыты. секвенерлермен. Бұл аппараттық конфигурация сіздің Arduino DUE -ді шектеулерге итермелейтінін және оны ұзақ мерзімді перспективада зақымдауы мүмкін екенін есте сақтаңыз.

Бұл айтылғандай, аппараттық құрал - бұл 16 түйме, 16 жарықдиодты (әр қадам үшін бір), қосымша 5 түймесі бар функциялар мен 3 потенциометр. Мен тірі жазу функциясын қосқаннан кейін қызыл жарық диодты қостым.

Міне, материалдық есеп:

- 1 рет Arduino DUE

- Біріктірілген светодиодтары бар 16 лездік, бекітілмейтін түймелер (егер сіз қаласаңыз, сыртқы жарықдиодты қолдана аласыз, бірақ қуаты төмен жарықдиодты қолдануды ұмытпаңыз !!)

- 1x қызыл жарық диоды (қуаты аз!)

- 5x лездік, бекітілмейтін түймелер

- 3x 10K бір айналым, сызықты, потенциометр

- 3x 6,5 мм панельдік моно ұялы аналық

- 1x пластикалық корпус (мен 190x140x70 мм корпусты қолдандым)

- 2x 5 істікшелі DIN аналық панельдік розетка қосқышы (MIDI)

- 1x екі жақты 70x90 мм тақтайша

- 2х 40 істікшелі ерлердің бір қатарлы түйреуіш жолағы (2,54 мм), егер алтын жалатылған болса жақсы

- 1x H11L1 оптикалық қосқышы

- 1x 1N4148 диод

- 23х 1000 Ом резисторлар

- 3x220 Ом резисторлары

- 2x BC547 pnp транзисторлары

… дәнекерлеу сымы, кейбір кабельдер, дәнекерлеу станциясы, бұрғылау құралы … және бос уақыт:)

Есіңізде болсын, суреттердегі түймелер басқа түрге ауыстырылды (тіпті арзанырақ) …

Жобаны аяқтауға қажетті уақыт: 8 - 10 сағат

ЕСКЕРТУ: бұрғылау кезінде әрқашан қорғаныс көзілдірігі мен қолғап киіңіз! Ыстық материалдық қабыршақтар сіздің көзіңізге түсуі мүмкін немесе теріңізге тиіп, күйікке немесе сізге немесе айналаңыздағы адамдарға одан да ауыр зақым келтіруі мүмкін

3 -қадам: Сымдар

Сымдар
Сымдар
Сымдар
Сымдар
Сымдар
Сымдар

Қадамдық түймелер Arduino түйреуіштеріне 22 -ден (1 -қадам) 37 -ге дейін (16 -қадам) тікелей қосылады. Түймешіктер жері тізбектелген және Arduino DUE жерге қосылған. Arduino интегралды тартқыш резисторлары бағдарламалық қамтамасыз етуді қосқанда тартылатын немесе түсетін резисторлардың қажеті жоқ (эскизді қараңыз).

Бұл қадамдардан басқа функциялар үшін қолданылатын қосымша 5 түйме үшін де (Arduino 2, 3, 4, 5 және 6 түйіндері) қатысты. Мен сондай -ақ 6,5 мм аналық ұяшықты қосқышты «іске қосу» түймесімен қатар орналастырдым, бұл менің тізбегімді қашықтан ойнау және тоқтату.

Светодиодтар ток ағызуды шектеу және микроконтроллерді сақтау үшін әрқайсысы 1К Ом резисторымен 38 (№1 қадам) - 53 (№16 қадам) аралығындағы жерге (түймедақ тізбегі) және Arduino DUE түйреуіштеріне қосылады.

Потенциометрлер қосылған суретте көрсетілгендей қосылады. Назар аударыңыз, эталондық кернеу 5В емес, 3,3В. Қолданылатын кірістер - A0, A1 және A2.

Мен сондай -ақ Korg Polysix және Roland Juno 6/60 сияқты 80 -ші жылдардағы ескі синтезді біріктіру үшін қажет арпеджио сигналдары үшін екі триггерлік шығуды енгіздім. Олар A3 және A4 түйреуіштеріне қосылған, бірақ егер сіз цифрлық сигнал болуды қаласаңыз, цифрлық түйреуіштерді қолдана аласыз. Егер сіз V-Trig (кернеу триггері) сигналдарымен үйлесімді синтезді реттейтін болсаңыз, ток ағызуды азайту үшін 1к Ом сериялы резистор жеткілікті болады; жағдайда S-Trig (коммутатор-триггер) синтезі үшін сізге pnp қосқышының қарапайым тізбегі қажет болады (берілген схеманы қараңыз).

MIDI IN және OUT схемалары қоса берілген суреттерде схемаланған. Назар аударыңыз, көптеген ардуинолардан айырмашылығы, Rx1 және Tx1 DUE тақталарында Rx0 және Tx0 орнына әдепкі бойынша қолданылады. Бұл өте жақсы, себебі сіз эскизіңізді Rx -ты әр уақытта ажыратпай -ақ жүктей аласыз. H11L1 оптикалық қосқышын қолданғанымды ескеріңіз, себебі мен жұмыс жасай алмадым, себебі Arduino DUE 3.3V шегінде жалпы 6N138 болуы керек.

4 -қадам: Бағдарламалық қамтамасыз ету

Эскиз Arduino IDE ішінде жазылған және Arduino DUE тақтасына жүктелуі керек. Мен сіздің эскизді arduino DUE -ге қалай жүктеу туралы егжей -тегжейлі айтпаймын. Егер бұл сіздің Arduino DUE -мен бірінші тәжірибеңіз болса, осыны оқыңыз. Егер бұл сіздің arduino IDE -мен бірінші тәжірибеңіз болса, оны да оқыңыз.

Сіз жаңартылған микробағдарламаны жүктей аласызHERE (github сілтемесі).

Эскиз керемет FortySevenEffects MIDI кітапханасына сүйенеді. Кітапхананы arduino IDE -ге орнату қажет болады.

Әр барабанға тағайындалған MIDI шығыс жазбалары эскиздегі drumNote [STEPS_NUM] айнымалысы арқылы анықталады. Сіз оларды өз қалауыңыз бойынша өзгерте аласыз.

Барабандар үшін MIDI шығыс арна нөмірі әдепкі бойынша «10» мәніне орнатылады.

Мен шынайы өмірде кодер емеспін және бұл жерде бізге қажет нәрсені кодтаудың жақсы жолдары бар. Егер сіз қандай да бір ұсыныспен кодер болсаңыз, қош келдіңіз! Маған кодтың тиімділігін/тиімділігін арттыратын кез келген нұсқаны жіберіңіз, мен оны негізгі эскизге қосамын (үлестірушіге сілтеме жасай отырып!).

5 -қадам: Жылдам бастау нұсқаулығы

ДӘРІЛІКТЕР: ҚАДАМДЫҚ-ҚАДАМДЫ ТІРКЕЛУ

Секвенерді қосқаннан кейін (немесе оны қалпына келтіргенде) бос тізбек жүктеледі. Секвенатор өңдеу режимінде қосылады, бірінші жолақ ұсталып/бекітіледі және бірінші барабан (яғни соққы) таңдалады. Бұл кез келген қадамдық батырманы басу арқылы сіз сол қадамдарға бірден «соққы» тағайындайтыныңызды білдіреді. Барабан іске қосылатын дыбыс деңгейі барабанды сатыға тағайындау кезінде «дыбыс» потенциометрінің позициясымен анықталады. Бұрын тағайындалған қадам түймесін қайта басу арқылы сіз ағымдағы барабанның тағайындалуын алып тастайсыз.

Егер сіз «старт» түймесін бассаңыз, жарықдиодты шамдар солдан оңға, жоғарыдан төмен қарай жұмыс істеп тұрғанын көресіз, кез келген соққы қадамы кесілгенде «соққы» ойнап тұрады.

«Жылжыту» түймесін басып тұру арқылы сіз 1 -ші қатардағы 1 -қадамның жарық диодын (бірінші барабан таңдалғанын білдіреді) және төртінші қатардағы бірінші қадамдық жарықдиодты (бірінші жолаққа бекітілгеніңізді білдіреді) көресіз. Енді сіз «жылжуды» басып тұрып, басқа қадам түймесін басу арқылы реттегіңіз келетін барабанды өзгерте аласыз. Жаңа барабанды таңдағаннан кейін «жылжуды» босатыңыз. Барлық светодиодтар сөнеді (өйткені сіз жаңа барабанды ешқандай қадамға тағайындаған жоқсыз) және сіз жаңа барабанды қадамдарға тағайындауды бастауға болады. Сізге қажет барабандар үшін қайталаңыз (12 -ге дейін).

Енді сіз жақсы үлгіні жасадыңыз, «жылжуды» басып тұрыңыз және төменгі жолдағы бөлектелген қадамды өшіріңіз (егер мен қолданған схеманы қабылдаған болсаңыз, бұл 4 -ші қатардың 1 -ші қадамы болуы керек): сізде тек « «барлық 4 жолақтан өтетін тізбек ашылды». Төменгі жарықдиодты шамдар «жылжи бастайды», бұл қазіргі уақытта қай жолақ ойнатылып жатқанын көрсетеді (жолақ прогрессиясы). Сіз тек бірінші жолақта дыбыс шықпайтын қалған 3 жолақпен тізбек ойнайтынын байқайсыз. Бұл сіз барабандарды тек бірінші жолаққа тағайындағандықтан, қалғандары бос қалады. Сіз оларды қолмен толтыра аласыз («жылжуды» басып тұрып, соңғы 4 қадамды басу арқылы жаңа жолақты таңдаңыз, барабандардың біреуін таңдаңыз, қадамдарды толтырыңыз және т. барлық жолақтарға өңдеу режиміне кіру (бірінші жолға қайта құлыптау) және «жазуды» басу арқылы (қазір «қою» функциясын қабылдайды) «жылжуды» басып тұру кезінде. Айтылғаннан оңайырақ.

ДРАМЫ: ТІРІ ОЙЫН РЕЖИМІ

Іске қосылғанда, реттегіш өңдеу режимінде болады. Өңдеу режимінен шығу үшін сіз «жылжуды» басып тұруыңыз керек және ағымдағы/құлыптаулы бар батырмасын басуыңыз керек (4 -ші қатардағы қадам түймесі қосылды). Бұл бұрын бекітілген жолақтың жарық диодын өшіреді және реттілікті ашады. Сіз қазір тікелей ойнату режиміндесіз.

Тікелей ойнату режимінде кез келген қадамдық батырманы басу арқылы осы батырмамен байланысты барабан іске қосылады.

Егер сіз өзіңіздің тізбегіңізді тірі жазғыңыз келсе, «ойнату» түймесін басу арқылы реттілікті бастаңыз, содан кейін «жазу» түймесін басыңыз (тек тікелей ойнату режимінде). Қызыл жарық диод қосылады. Барабан секвенерінің басқару тақтасының матрицасында ойнауыңыз немесе кез келген кіріс туралы MIDI хабарламасы (яғни сыртқы MIDI пернетақтасынан) жазылады.

Басқа функциялар

«Ролл» батырмасын басу арқылы қазіргі уақытта белсенді барабан әр қадамда (орамда) ойнатылады. Бұл «қадамдық» және «тірі ойнау» режимдерінде жұмыс істейді.

Кез келген қадамдық батырманы басу арқылы «дыбысты өшіру» түймесін басып тұрып, осы қадамға байланысты барабанның дыбысы өшіріледі (немесе дыбысы өшіріледі). Бұл «қадамдық» және «тірі ойнау» режимдерінде жұмыс істейді.

«REC» батырмасын басып тұрып, салыстырмалы қадам батырмасын басу арқылы белгілі бір барабан тізбегін тазартуға болады.

«Старт» батырмасын 3 секундтан артық басып тұру арқылы сіз бүкіл тізбекті тазалай аласыз (жұмсақ қалпына келтіру).

Сіз «бұрылыс» потенциометрін бұру арқылы реттілікті «бұруға» болады.

Сіз MIDI жаңғырығын «өшіру» түймесін басып тұру кезінде «дыбысты өшіру» түймесін басу арқылы өшіруге/қосуға болады. MIDI жаңғырығы қосылған кезде (әдепкі), MIDI INPUT ұясында бар кез келген ақпарат MIDI OUTPUT ұяшығына жіберіледі (тек MIDI нотасы қосулы, өшірулі, қадамды бүгу, кейін түрту және басқару өзгерісі жаңғыртылады).

MIDI сағаттық кіріс пен шығыс әдепкі бойынша іске қосылады және қосылады. Егер сағаттық кіріс алынбаса, темп арнайы потенциометрмен орнатылады. Егер MIDI сағаты енгізілсе, темп осыдан есептеледі және қарқын потенциометрі жауап бермейді. MIDI сағаты әрқашан MIDI шығысына жіберіледі.

6 -қадам: ырғақ бөлімі

Бастапқы идея барабанның 12 тәуелсіз бөлшегіне дейін реттелетін «таза» 64 қадамды MIDI барабандар секвенері болды. Бірнеше тестілеуден кейін мен басс желісін басқарудың жақсы болатынын байқадым және қадамның ауыспалы мүмкіндігін тек соңғы барабанға тағайындадым. Осыдан кейін мен кодты қайтадан өзгерттім, сонда әр барабанның қадамын өзгертіп, 12 синтезаторды басқара алдым. Кейінірек мен полифонияны қостым (әдепкі бойынша 3-ке шектелген полифония).

Жинақтау:

- LIVE режимінде, егер LIVE жазбасы қосылған болса және реттілік басталса, сіз MIDI кіріс жазбаларын полифониялық түрде жаза аласыз. Дауыс деңгейі мен көлемі туралы ақпарат сақталады. Pitch bend және aftertoutch туралы ақпарат жоғалады. MIDI Control Change хабарлары сақталады. Есіңізде болсын, сізде бір арнада бір қадам үшін тек бір CC ұяшығы бар.

- Егер реттілік тоқтатылса, мақсатты қадам түймесін басып тұру және қалаған пернелерді (бір уақытта немесе бірінен кейін) басу арқылы белгілі бір жолақтың белгілі бір қадамына 3 қадамға дейінгі мәнді (аккорд) жаза аласыз. MIDI IN портына қосылған пернетақта.

Назар аударыңыз:

- қадамда басталған жазба келесі қадамда «өлтіріледі». Жазбаның ұзақтығын арттыру үшін синтезаторыңыздың VCA «босату» параметрі бойынша әрекет етіңіз.

- барабаннан айырмашылығы, ноталарды «ролл» түймесін басу арқылы орамда ойнауға болмайды.

- Тікелей эфирде жазу кезінде кіріс MIDI арнасының деректері салыстырмалы «барабан» қадамында сақталады (MIDI арна №1 -> «барабан» #1 және т.б.).

Сіз «REC» батырмасын басып тұра отырып, «барабанға» қатысты батырманы басу арқылы синхрондаудың нақты бірізділігін тазалай аласыз. Оны қайтадан басу барабанның реттілігін де жояды. Егер CC тізбегі жазылса, бұл бірінші болып өшіріледі, содан кейін CC -> Synth -> Drum бұйрығын орындаңыз.

7 -қадам: Арпеджио триггерлері

80-ші жылдардың басында MIDI-ге дейінгі синтездер кейде «арпеджио-триггерлік кіріспен» жабдықталған. 2,5-тен 5,0 В-қа дейінгі триггерлік сигналды жіберу (V-триггер немесе «кернеу триггері») немесе арпеджио-триггердің кірісін жерге қосу арқылы (S-Trig немесе «қосқыш триггері») синтезаторға арпеджио тізбегіне бір қадам ілгерілеуін айтуға болады. Арнайы триггерсіз секвенермен басқару қиын болуы мүмкін (кейде V-триггерлік синтез үшін орынды ретінде пайдаланылатын арнайы дыбыстың дыбысы), бірақ микроконтроллер тақтасының көмегімен сіз мұндай сигнал мен басқаруды оңай басқара аласыз. сіздің синтетикалық арпеджио, зауыт ойлағандай.

Бұл ритмдік секвенор екі түрлі синтезатордың арпеггиаторын дербес іске қосу мүмкіндігін қамтиды.

Қолдану өте оңай: барабанды 11 немесе 12 таңдаңыз («жылжуды» басу кезінде 11 немесе 12 -қадамды басыңыз) және арпеггиатордың бір қадамға жылжуын қалайтын қадамдарды іске қосыңыз. Осылайша сіз барлық қадамдарды қосу арқылы жазбаның 1/16 бөлігін тұрақты арпеджиоға «бағдарламалауға» болады, немесе әр қадамды 1/8 қосу арқылы. Сонымен қатар, сіз тұрақты емес жолмен жүретін қадамдарды белсендіру арқылы күрделі арпеджионы бағдарламалай аласыз.

Сіз басқарғыңыз келетін синтез қолдайтын триггер сигналының түріне байланысты сізге қарапайым аппараттық модификация қажет болады: V-триггері жағдайында (яғни Roland синтезі) arduino триггері шығысы бар 1 Кох резисторды орналастырыңыз. S-триггері болған жағдайда (яғни Korg синтездері) қауіпсіз қосқыш триггері үшін «сым» қадамына бекітілген сематиканы қолданыңыз.

8 -қадам: Егер жұмыс істемесе …

Тіпті мұндай қарапайым жоба бірінші рет қосқанда 100% жұмыс істемейді. Мұнда, мысалы, түймелер мен светодиодтар арасындағы корреспонденция өте маңызды болып табылады, ал сымдардың сәйкес келмеуі секвенерді қолданусыз қалдырады.

Қадамдық реттегішті құрайтын әр түрлі компоненттерді тексеру үшін мен қарапайым тест нобайын жаздым (қосымшаны қараңыз).

Сіз соңғы тестілік микробағдарламаны мына жерден жүктей аласыз (GitHub сілтемесі).

Сынақ нобайы келесідей жұмыс істейді:

- қадамдық түймені басыңыз: сәйкес келетін жарық диоды қосылуы керек және MIDI шығысы MIDI 10 арнасына жазылады.

- функция түймесін басыңыз: алғашқы 5 жарық диодының бірі қосылады.

-потенциометрді бұрыңыз: светодиодтар сәйкесінше жанады (бірінші кастрюль -> бірінші светодиодтар қатары, екінші кастрюль -> екінші светодиодтар қатары, үшінші ыдыс -> үшінші жарық диодтары).

- егер MIDI жазбасы қосылған болса, алдымен жарық диоды жыпылықтайды.

MIDI жаңғырығы әдепкі бойынша қосылғанын есте сақтаңыз. Бұл дегеніміз, егер сізде синхрондау мен MRSS арасында MIDI циклі болса, бұл мәселелерді тудыруы мүмкін (мен көбінесе екі еселенген ескертуді бастан кешірдім, сонымен қатар өте төмен ноталар іске қосылды және MIDI синтезі бар жауап бермейтін кіріктірілген пернетақта. MIDI Throu рөлін атқарады … бұл синтезге байланысты). Егер бұлай болса, MIDI жаңғырығын «дыбыссыз» батырмасын басу арқылы өшіру, ал «жылжыту» түймесін басып тұру керек.

Ұсынылған: