Мазмуну:

Arduino MIDI Rhythm Section Sequencer: 8 Steps (Сүрөттөр менен)
Arduino MIDI Rhythm Section Sequencer: 8 Steps (Сүрөттөр менен)

Video: Arduino MIDI Rhythm Section Sequencer: 8 Steps (Сүрөттөр менен)

Video: Arduino MIDI Rhythm Section Sequencer: 8 Steps (Сүрөттөр менен)
Video: M8 Discord Meet-up #5 2024, Ноябрь
Anonim
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer

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

… мына биз барабыз!

1 -кадам: Бул кантип иштейт

Бул жабдуулар өз алдынча үндөрдү чыгара албайт, бирок MIDI аркылуу тышкы аппараттык жабдыктарды гана ырааттоого алат. Бул MIDI эскертме билдирүүлөрү менен иштей ала турган барабан үнүңүздүн үн генераторуна (үлгү алуучу же барабан синтезатору же сүйүктүү барабан программасы бар компьютер же каалаган нерсеңиз) керек болот дегенди билдирет.

Ал негизинен 4 х 4 баскычтуу матрицадан турат (LED менен), тилкенин ар бир кадамы үчүн бир. Бүтүндөй 64 кадам ырааттуулугу 4 кадамга көбөйтүлгөн 16 кадамдан турат. Ар бир кадам нотанын 1/16 бөлүгүн түзөт.

Иштин эки режими бар: жандуу режим жана түзөтүү режими.

Түзөтүү режиминде, сиз ар бир кадамда кайсы барабандын ойной турганын аныктап, ырааттуулугуңузду этап-этабы менен түзөтө аласыз.

Сиздин тышкы жабдык инструментиңиз ("барабан") "10" каналынын номерине ар кандай "MIDI нота номерлери" үчүн MIDI "эскертүүсүн" жөнөтүү менен ишке ашат. Демейки боюнча бул нота номерлери

барабан #1 (б.а. тепүү) -> MIDI нотасынын номери "60"

барабан #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 тактасынын тегерегинде ишке ашат. Мен жабдууларды мүмкүн болушунча жөнөкөй сактоого аракет кылдым, б.а. LED драйверлерин колдонбоо менен. Arduino DUE, кыязы, LED драйвери жок LED диапазонун иштетүү үчүн эң ылайыктуу такта эмес, анткени анын чыгуу чеги (5 мАдан 15 мАга чейин, пинге жараша), бирок бул эң тез Arduino жана убакыт баардыгы болуп саналат. секвенерлер менен. Демек, бул жабдыктын конфигурациясы сиздин Arduino DUEну чектөөгө түртүп жаткандыгын жана узак мөөнөттүү келечекте зыян келтириши мүмкүн экенин унутпаңыз.

Бул деп жатат, аппараттык негизинен 16 баскычтар, 16 LED (ар бир кадам үчүн бир) секвенатор, функциялар үчүн 5 кошумча баскычтар жана 3 потенциометр. Мен ошондой эле жандуу жазуу функциясын кошкондон кийин кызыл LED коштум.

Мына бул материалдардын эсеби:

- 1x Arduino DUE

- 16x бир заматта, жабык эмес LED баскычтары (эгер кааласаңыз, тышкы LEDди колдонсоңуз болот, бирок аз кубаттагы LED ди колдонууну унутпаңыз !!)

- 1x кызыл LED (аз кубат!)

- 5x заматта, бекитилбеген баскычтар

- 3x 10K бир бурулуш, сызыктуу, потенциометр

- 3x 6.5 мм панель моно джек аял

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

- 2x 5-пин DIN аял панелдин монтаж розеткасы туташтыргычы (MIDI)

- 1x эки тараптуу 70x90 мм тактай

- 2х 40 пин эркек бир саптуу пин тилкеси (2,54 мм), эгер алтын жалатылган болсо жакшы

- 1x H11L1 оптикалык кошкучу

- 1x 1N4148 диод

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

- 3x 220 ом каршылыгы

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

… ширетүүчү зым, кээ бир кабелдер, ширетүүчү станция, бургулоочу шайман … жана бош убакыт:)

Сураныч, сүрөттөрдөгү баскычтар башка түргө (ал тургай арзаныраак) басылган баскычтарга алмаштырылганын байкаңыз …

Долбоорду аяктоо үчүн керектүү убакыт: 8 - 10 саат

ЭСКЕРТҮҮ: бургулоодо дайыма коргоочу көз айнекти жана кол капты кийиңиз! Кызуу материалдык чачырандылар сиздин көзүңүзгө түшүшү мүмкүн же териңизге тийип, күйүккө, же сизге же айланаңыздагы адамдарга ого бетер олуттуу зыян келтириши мүмкүн

3 -кадам: Wirings

Wirings
Wirings
Wirings
Wirings
Wirings
Wirings

Кадам баскычтары Arduino казыктарына 22ден (1 -кадам) 37ге (16 -кадам) түз туташат. Баскычтардын жери ромашка менен чынжырланып, Arduino DUE жерине туташкан. Ардуинонун интегралдык тартуу резисторлору программалык камсыздоону иштеткендиктен, тартуу же түшүрүү резисторлорунун кереги жок (эскизди караңыз).

Бул кадамдардан башка функциялар үчүн колдонулган кошумча 5 баскычка (Arduino 2, 3, 4, 5 жана 6) тиешелүү. Мен ырааттуу түрдө ойнотуу жана токтотуу үчүн "баштоо" баскычына параллель 6,5 мм ургаачы коннекторду койдум.

Жарык диоддору жерге (ромашка чынжыры) жана Arduino DUE казыктарына 38ден (№1 кадамдан) 53кө чейин (кадам #16) туташып, ар биринде 1K ом резистору бар, ал агымды чектеп, микроконтроллерди сактап калат.

Потенциометрлер тиркелген сүрөттө көрсөтүлгөндөй туташкан. Шилтеме чыңалуусу 5В эмес, 3.3В экенин байкаңыз. Колдонулуучу кириштер A0, A1 жана A2.

Мен ошондой эле Korg Polysix жана Roland Juno 6/60 сыяктуу эски 80 -жылдардын синтезин иштетүү үчүн керектүү болгон сыяктуу, arpeggio сигналдары үчүн эки триггерди чыгардым. Алар A3 жана A4 төөнөгүчтөрүнө туташкан, бирок сиз санариптик сигналдарды колдонууну кааласаңыз, санарип казыктарды колдоно аласыз. Эгерде сиз V-Trig (чыңалуу триггери) сигналдары менен шайкеш келген синтезди иретке келтире турган болсоңуз, агымдын агымын азайтуу үчүн 1к Ом сериядагы резистор жетиштүү болот; S-Trig (switch trigger) синтези болгон учурда сизге жөнөкөй pnp switch схемасы керек болот (тиркелген схеманы караңыз).

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 -кадам: Quick Start Guide

ДАРЫЛАР: КАДАМ-КАДАМ СЕКЕНТИ

Секвенаторду күйгүзгөнүңүздө (же аны баштапкы абалга келтиргенде), бош ыраат жүктөлөт. Секвенатор түзөтүү режиминде өтөт, биринчи тилке кармалып/кулпуланып, биринчи барабан (б.а. тепүү) тандалган. Бул кандайдыр бир баскычты басуу менен ошол кадамдарга дароо "тепкиле" дегенди билдирет. Барабандын иштей турган көлөмү барабанды тепкичке дайындоодо "көлөм" потенциометринин позициясы менен белгиленет. Мурун дайындалган кадам баскычын кайра басуу менен сиз ошол баскычтагы учурдагы барабанды ажыратасыз.

Эгер сиз "баштоо" баскычын бассаңыз, анда сиздин светодиоддоруңуз солдон оңго, өйдөдөн ылдый карай иштеп жатканын көрүп, тепкич басканда каалаган убакта "тепкилеп" ойнойт.

"Смена" баскычын басуу менен сиз 1 -катардагы 1 -кадамдын LEDин (биринчи барабан тандалганын билдирет) жана төртүнчү катардагы биринчи кадамдын LEDин көрөсүз (сиз биринчи тилкеге бекитип койгонуңузду билдирет). Эми сиз "кезметти" басып туруу менен башка кадам баскычын басып, ырааттуулукту каалаган барабанды өзгөртө аласыз. Жаңы барабанды тандагандан кийин, "shift" коё бериңиз. Бардык светодиоддор өчөт (анткени сиз жаңы барабанды эч кандай кадамга койгон жоксуз) жана сиз жаңы барабанды кадамдарга дайындап баштасаңыз болот. Керек болгон барабандар үчүн кайталаңыз (12ге чейин).

Эми сиз сонун үлгү жаратканыңыздан кийин, "жылыш" баскычын басып туруңуз жана астынкы катардагы бөлөк басылган кадамды өчүрүңүз (эгер сиз мен колдонгон макетти кабыл алган болсоңуз, бул 4 -катардын 1 -кадамы болушу керек): сизде " кулпусу ачылды ", эми ал бардык 4 тилкенин үстүндө иштейт. Төмөндөгү чийки LEDлар "жыла баштайт", бул учурда кайсы тилке ойнолуп жатканын көрсөтөт (тилкенин прогресси). Сиз байкайсыз, качан гана биринчи тилкеде ырааттуулук ойнолот, калган 3 тилкеде үн чыкпайт. Бул барабандарды биринчи тилкеге гана дайындап койгонуңуз үчүн, калгандары бош калган. Сиз аларды кол менен толтура аласыз ("жылыш" басылган бойдон акыркы 4 баскычтын бирин басуу менен жаңы тилкени тандаңыз, барабандын бирин тандаңыз, кадамдарды толтуруңуз ж. Б.) Же өзүңүз түзгөн тилкенин ыраатын көчүрүп чаптаңыз. түзөтүү режимине кирүү менен бардык тилкелерге (биринчи тилкеге кайра кулпулоо) жана "жазууну" (азыр "паста" функциясын камтыган) басуу менен, "нөөмөт" басылган бойдон. Айткандан да жасоо оңой.

ДРАММАЛАР: ЖАНДУУ ОЮНУУ РЕЖИМИ

Ишке киргенде, секвенер түзөтүү режиминде. Түзөтүү режиминен чыгуу үчүн сиз "shift" баскычын басып турушуңуз керек жана учурда кармалып турган/кулпуланган бар баскычын басып турушуңуз керек (4 -катардагы баскыч баскычы күйгүзүлгөн). Бул мурун кулпуланган тилкенин LEDин өчүрүп, ырааттуулукту ачат. Сиз азыр жандуу ойноо режиминдесиз.

Жандуу ойноо режиминде, каалаган баскычты басуу менен, ошол баскычка байланышкан барабан иштей баштайт.

Эгерде сиз ырааттуулугуңузду жаздыргыңыз келсе, "ойнотуу" баскычын басып, андан кийин "жазуу" баскычын басыңыз (жандуу ойноо режиминде гана). Кызыл LED күйөт. Барабандын секвенеринин башкаруу панелинин матрицасында ойноп жатканыңыз же келген MIDI эскертме билдирүүсү (б.а. тышкы MIDI клавиатурасынан) жазылат.

Башка функциялар

"Roll" баскычын басуу менен, учурдагы активдүү барабан ар бир баскычта (түрмөктө) ойнотулат. Бул "этап-этабы менен" жана "жандуу ойноо" режимдеринде иштейт.

Кандайдыр бир баскычты басуу менен "үнсүз" баскычын басып туруп, ошол кадамга байланышкан барабандын үнү басылат (же үнү басылат). Бул "этап-этабы менен" жана "жандуу ойноо" режимдеринде иштейт.

Барабандын белгилүү бир ырааттуулугун "REC" баскычын басып туруп, салыштырмалуу кадам баскычын басуу менен тазалай аласыз.

"Старт" баскычын 3 секунддан ашык басып туруу менен сиз бүт ырааттуулукту тазалай аласыз (жумшак абалга келтирүү).

Сиз "селкинчек" потенциометрин буруп, ырааттуулугуңузду "чайкап" аласыз.

Сиз MIDI жаңырыгын "өчүрүү" баскычын басып туруп "үнсүз" баскычын басып өчүрүп/күйгүзө аласыз. MIDI жаңырыгы иштетилгенде (демейки), MIDI INPUT уячасында болгон бардык маалыматтар MIDI OUTPUT уячасына жөнөтүлөт (MIDI нотасы гана күйгүзүлгөн, өчүрүлгөн, чайыр бүктөлгөн, кармаганда жана башкаруунун өзгөрүүсү жаңырат).

MIDI саатын киргизүү жана чыгаруу экөө тең демейки боюнча ишке ашырылат жана иштетилет. Эгерде саат киргизилбесе, темп атайын потенциометр менен коюлат. Эгерде MIDI сааты киргизилсе, темп андан эсептелет жана темп потенциометр жооп бербейт. MIDI сааты ар дайым MIDIге жөнөтүлөт.

6 -кадам: Ритм бөлүмү

Баштапкы идея "таза" 64 баскычтуу MIDI барабандын секвенатору болгон, ал 12 көз карандысыз барабандын бөлүктөрүнө чейин ырааттуулукта болгон. Бир аз тестирлөөдөн кийин, бас линиясын көзөмөлдөө жакшы болорун байкадым жана кадамдын өзгөрмөлүү өзгөчөлүгүн акыркы барабанга гана тапшырдым. Андан кийин, мен ар бир барабандын үнүн өзгөртүп, 12ге чейин синтезаторду башкара алгыдай кылып, кодду дагы өзгөрттүм. Кийинчерээк оңдоо мен полифонияны кошту (полифония синтезде демейки боюнча 3 менен чектелген).

Жыйынтыктоо үчүн:

- LIVE режиминде, эгер LIVE жазуусу ишке кирсе жана ырааттуулук башталса, сиз MIDI жазуу боюнча келген билдирүүлөрдү полифониялык түрдө жаздыра аласыз. Чайыр жана көлөмү тууралуу маалымат сакталат. Pitch bend жана aftertoutch маалыматтары жоголот. MIDI Control Change билдирүүлөрү сакталат. Эсиңизде болсун, сизде бир каналга, бир кадамга бир гана CC уячасы бар.

- Эгерде ырааттуулук токтотулса, сиз каалаган баскычты басып, каалаган баскычтарды басып (жана ошол эле учурда же бирден) басып, белгилүү бир тилкенин белгилүү бир баскычына чейин 3 кадамдын маанисин (аккорд) жаздыра аласыз. MIDI IN портуна туташкан клавиатура.

Байкаңыз:

- бир кадамда козголгон жазуу кийинки кадамда "өлтүрүлөт". Эскертменин узундугун жогорулатуу үчүн, синтезаторуңуздун VCA "чыгаруу" параметрин аткарыңыз.

- барабандан айырмаланып, ноталарды "ролл" баскычын басуу менен түрмөктө ойнотууга болбойт.

- LIVE жазууда, келген MIDI каналынын маалыматтары салыштырмалуу "барабан" баскычында сакталат (MIDI каналы #1 -> "барабан" #1 ж.б.).

"REC" баскычын басып туруп, салыштырмалуу "барабан" баскычын басуу менен белгилүү бир синтез ыраатын тазалай аласыз. Аны кайра басуу барабандын ыраатын да тазалайт. Эгерде CC ырааттуулугу жазылган болсо, бул биринчи өчүрүлөт, андан кийин CC -> Synth -> Барабан буйругун аткарыңыз.

7 -кадам: Arpeggio Triggers

80-жылдардын башында MIDIге чейинки синтездер көбүнчө кээде "arpeggio trigger input" деп аталат. 2,5-5,0 В триггер сигналын (V-триггер же "чыңалуу триггери") жөнөтүү же arpeggio триггерин киргизүү (S-Trig же "switch trigger") аркылуу сиз синтезаторго arpeggio ырааттуулугу боюнча бир кадам алдыга жылуусун айта аласыз. Муну атайын триггери жок секвенер менен башкаруу кыйын болушу мүмкүн (кээде V-триг синтездери үчүн максаттуу катары колдонулган атайын риншоттун үндөрү угулат), бирок микроконтроллер тактасы менен сиз мындай сигналды жана башкарууну оңой башкара аласыз. Сиздин синтез арпеджиоңуз, завод тарабынан айтылгандай.

Бул ритм секвенатору эки башка синтезатордун арпеггиаторун өз алдынча иштетүү мүмкүнчүлүгүн камтыйт.

Колдонуу абдан оңой: барабанды 11 же 12ди тандаңыз ("жылышты" басуу менен 11 же 12 -кадамды басыңыз) жана арпеггиатордун бир кадамга жылышын каалаган кадамдарды жандырыңыз. Ошентип, бардык кадамдарды активдештирүү менен нотанын 1/16 бөлүгүн үзгүлтүксүз арпеджиолорду "программалоого" же ар бир кадамды жандандыруу менен 1/8 бөлүгүн "программалоого" болот. Мындан тышкары, сиз кадимки эмес жолдогу кадамдарды жандандыруу менен татаал арпеджиолорду программалай аласыз.

Сиз башкаргыңыз келген synth колдогон триггер сигналынын түрүнө жараша, сизге жөнөкөй аппараттык өзгөртүү керек болот: V-trig (б.а. Roland synths) учурда 1 Kohm резисторун arduino триггери чыгуучу серияга коюңуз. S-триггери болгон учурда (б.а. Корг синтездери) коопсуз өткөргүч триггери үчүн "зым" кадамына тиркелген сематиканы колдонуңуз.

8 -кадам: Эгерде нерселер иштебесе…

Бул сыяктуу салыштырмалуу жөнөкөй долбоор, биринчи жолу күйгүзгөнүңүздө 100% иштебейт. Бул жерде, Мисалы, баскычтар менен светодиоддордун ортосундагы корреспонденция өтө маанилүү, жана такталбаган зым секвенерди колдонууга жараксыз кылат.

Кадам секвенерин түзгөн ар кандай компоненттерди текшерүү үчүн мен жөнөкөй тесттин эскизин жаздым (тиркемени караңыз).

Сиз акыркы тестирлөө программасын БУЛ ЖЕРДЕН жүктөп алсаңыз болот (GitHub шилтемеси).

Сынак эскизи төмөнкүдөй иштейт:

- баскыч баскычын басыңыз: тиешелүү LED күйгүзүлүшү керек жана MIDI чыгарылышына 10-каналдагы MIDI жазуусу жөнөтүлөт.

- функция баскычын басыңыз: биринчи 5 LEDдин бири күйөт.

-потенциометрди буруңуз: LEDлар ошого жараша күйөт (биринчи казан -> биринчи светодиоддор, экинчи казан -> экинчи LED диапазону, үчүнчү идиш -> үчүнчү LED диапазону).

- эгерде MIDI нотасы алынса, биринчи кезекте LED жаркырайт.

MIDI echo демейки боюнча иштетилгенин унутпаңыз. Бул сизде синтез менен MRSSтин ортосунда MIDI цикл болсо, бул көйгөйлөрдү жаратышы мүмкүн дегенди билдирет (мен көбүнчө алдын ала кош эскертүүнү баштан өткөргөм, бирок абдан төмөн ноталар иштелип чыккан жана MIDI менен синтезделген жалпысынан жооп бербеген курулган клавиатура. MIDI Throu катары иштөө … бул синтезден көз каранды). Эгер ушундай болсо, MIDI жаңырыгын өчүрүү үчүн "связь" баскычын басып, "shift" баскычын басып туруңуз.

Сунушталууда: