Բովանդակություն:

Մեկ այլ MIDI- ից CV տուփ: 7 քայլ (նկարներով)
Մեկ այլ MIDI- ից CV տուփ: 7 քայլ (նկարներով)

Video: Մեկ այլ MIDI- ից CV տուփ: 7 քայլ (նկարներով)

Video: Մեկ այլ MIDI- ից CV տուփ: 7 քայլ (նկարներով)
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Նոյեմբեր
Anonim
Եվս MIDI- ից CV Box
Եվս MIDI- ից CV Box

MIDI- ից CV- ի մեկ այլ տուփ է այն նախագիծը, որը ես մշակեցի, երբ Korg MS10- ը թակեց իմ դուռը և տեղի ունեցավ իմ արվեստանոցում: Քանի որ իմ կարգավորումը մեծապես վերաբերում է MIDI- ին `բոլոր գործիքներն ավտոմատացնելու և համաժամացնելու համար, երբ գնել եմ MS10- ը, առաջին խնդիրը, որին պետք է բախվեի, այն էր, թե ինչպես իրականացնել նման վերահսկողությունը:

Korg MS20/10- ը MIDI- ի կիրառման ամենահեշտ սինթեզները չեն. Առաջին հերթին նրանք ապավինում են Hz/V հսկողությանը (կառավարման լարման և նշման հաճախականության գծային հարաբերակցություն), oct/V- ի փոխարեն (1V մեկ օկտավայում); երկրորդ, նշումը գործարկելու համար պետք է բացասական դարպասի ազդանշան ուղարկել և մուտքը կարճացնել գետնին (S-Trig), այլ ոչ թե +5 V ազդանշան (V-trig):

Մեր օրերում կան տարբեր կոմերցիոն լուծումներ նման գործիքների վերահսկման համար (այսինքն ՝ Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), բայց ես էժան սրիկա եմ, և նույնիսկ 100 եվրոն չափազանց շատ է «չհնչող» սարքի համար:):

Ահա, ուրեմն մենք այստեղ ենք. Թույլ տվեք ցույց տալ ձեզ, թե ինչպես կարելի է կառուցել ցածր բյուջետային MIDI- ից CV տուփ ՝ նախնական MIDI սինթեզի սկիպիդարը, դարպասը, արագությունը և անջատման հաճախականությունը արտաքին MIDI կարգավորիչով (ստեղնաշար, DAW, հաջորդականիչ կամ որևէ այլ բան) վերահսկելու/ավտոմատացնելու համար:.

«Ի՞նչ կասեք նոր MS20 mini- ի մասին»:

Ինչպես գրեթե բոլորը գիտեն, նոր MS20- ն իրականում պատրաստ է MIDI- ի ՝ IN 5 բևեռ MIDI միակցիչով և IN/OUT ՝ USB միակցիչով:

«Այսպիսով, եթե ես ունեմ MS20 mini, այս բանը անօգուտ է»:

Դե, ոչ: MS20 mini- ն ճանաչում է միայն միացման/անջատման հաղորդագրությունները, և ստեղնաշարը արագության նկատմամբ զգայուն չէ: MS10/20 խաղողի բերքահավաքի կամ մինի ստեղնաշարի միջոցով դա հաղթահարելու միջոց չկա, բայց midi տուփով և արագության նկատմամբ զգայուն ստեղնաշարով դուք ոսկեգույն եք: Բացի այդ, MIDI տուփով դուք կարող եք ավտոմատացնել ֆիլտրի անջատումը (կամ լարման վերահսկելի ցանկացած այլ պարամետր) կամ այն մոդուլացնել արագության վերաբերյալ մուտքային MIDI նշումով: Կրկին, միակ MIDI ալիքը MS20 mini- ն արձագանքում է 1 -ին ալիքին: Այս տուփով դուք կարող եք նաև հաղթահարել այս սահմանը:

«Ի՞նչ կլինի, եթե ես ունեմ Oct/V սինթեզ»:

Ոչ մի խնդիր! Իմ գրած կոդը համատեղելի է Oct/V սինթեզատորների հետ (չփորձարկված, բայց ես վստահ եմ, որ այն կգործի տուփից դուրս;)):

Քայլ 1: !! Noteգուշության նշում - Հրաժարում

Ձեր սարքավորումները շատ արժեքավոր են և չպետք է օգտագործվեն թեստեր կատարելու համար:

Էլեկտրականությամբ խաղալը կարող է լուրջ վնաս հասցնել ձեր սարքավորումներին կամ վնասել ինքներդ ձեզ:

Ես պատասխանատվություն չեմ կրում ձեր սարքավորումների/սարքավորումների կամ նույնիսկ ինքներդ ձեզ պատճառված վնասների համար, որոնք գալիս են որևէ ծրագրային ապահովումից կամ սխեմաներից կամ տեղեկատվությունից կամ հղումներից, որոնց մասին ես հաղորդել եմ այս հրահանգում:

Ձեզ զգուշացրել են:

Քայլ 2: Սարքավորման նախագծում

Arduino- ն հարմար է նման նախագծերի հետ աշխատելիս: Մեծ Համայնքի և շատ լավ գրադարանների առկայությունը, որոնք ընդգրկում են գրեթե յուրաքանչյուր ընդհանուր խնդիր, այն դարձնում են ճիշտ ընտրություն: Այստեղ տախտակը կծրագրավորվի այնպես, որ կարդա մուտքային MIDI տվյալները և այնուհետև համապատասխան լարումներ կուղարկի քշելու համար.

- սկիպիդար ՝ pwm ելքը փոխակերպելով անալոգային լարման ՝ VCO- ն թվային անալոգային փոխարկիչի (DAC) միջոցով վարելու համար:

- Արագություն ՝ զտելով pwm ելքը ՝ VCA- ն պարզ RC զտիչով քշելու համար

- terտեք կտրման հաճախականությունը ՝ զտելով pwm ելքը ՝ VCF- ն պարզ RC զտիչով քշելու համար

- Դարպաս, անմիջապես թվային ելքից V-trig- ի դեպքում (շարանը դրեք 1Koh- ով ՝ հոսքը նվազեցնելու համար) կամ պարզ pnp տրանզիստորով միացրեք թվայինը (տես սխեմատիկին կցված սխեմատիկ պատկերը).

Arduino- ն ունակ չէ ուղիղ կայուն լարման ելք թողնել, բայց 0/+5 V զարկերակներ ՝ տարբեր ժամանակաշրջաններով (PWM): Մենք կարիք ունենք թվայինից անալոգային փոխարկիչների (DAC) թափվող տան համար: RC զտիչները ամենահեշտ DAC- ն են, որոնք ես կարող եմ մտածել: RC զտիչը լավ է լարման վերահսկվող ուժեղացուցիչի և զտիչի (VCA և VCF) համար: RC զտիչները հարմարեցված են այնպես, որ հանգեցնեն անջատման հաճախականությանը <20Hz (ամենացածր լսելի հաճախականությունը):

Someածր հզորությամբ ոչ բևեռացված կոնդենսատորներով որոշ փորձարկումներ կատարեցի, և ես ավարտեցի 0.1uF հզորության արժեքով `լավագույնը համապատասխանելու համար: Լավ փորձարկված է MS20 MKII- ի վրա:

Unfortunatelyավոք, մենք չենք կարող ապավինել RC ֆիլտրին `լարման վերահսկվող տատանումն (VCO) վարելու համար, քանի որ այն բավականաչափ ճշգրիտ չէր լինի (Hz/V սանդղակով, ստորին ծայրում երկու ադիաչենդային կիսատոնները տարբերվում են 0,02 Վ -ից պակաս; V- ում /oct երկու հարակից կիսատոններ տարբերվում են 0.083 V- ի համար); մենք պատրաստվում ենք դրա համար օգտագործել IC DAC (MPC4725):

Հայտնի սահմանափակումներ

Շարժիչի լարումը սահմանափակելով մինչև 5 Վ (Arduino ելքային լարումը), 0 -ից մինչև 5 Վ ամբողջ տիրույթը ծածկված է արագության համար. անջատումը կիսով չափ ծածկված է (-5 Վ-ից +5 Վ); VCO- ի միջակայքը մասամբ ծածկված է այն պատճառով, որ Հց/Վ -ում 8 Վ լարում կպահանջվեր 440 Հց A4- ի հասնելու համար: 5 Վ ելքային սահմանափակումով մենք կարող ենք տատանումները տատանել մինչև D4 հաճախականությամբ Հց/Վ -ում:

Քայլ 3: Բաղադրիչների ցուցակ

Բաղադրիչների ցուցակ
Բաղադրիչների ցուցակ
Բաղադրիչների ցուցակ
Բաղադրիչների ցուցակ
Բաղադրիչների ցուցակ
Բաղադրիչների ցուցակ

Դուք կարիք ունեք ՝

1X Arduino UNO (կամ նանո)

1X MPC4725 DAC տախտակ

4X 1/8 "կամ 1/4" մոնո միակցիչ

1X MIDI միակցիչ

1X 6N138 օպտիկական զույգ

1X 1N4148 դիոդ

1X 220 օմ 1/4 Վտ դիմադրություն

1X 470 օհմ 1/4 Վտ դիմադրություն

1X 10K օմ 1/4 Վտ դիմադրություն

4X 1K Օմ 1/4 Վտ դիմադրություն

2X 0.1 uF կոնդենսատոր

1X BC547 pnp տրանզիստոր (S-trig- ի դեպքում)

1X ABS տուփ (առնվազն 55 x 70 x 100 մմ)

… Եվ, ակնհայտ է, տախտակամած կամ տախտակ, զոդող երկաթ, զոդման մետաղալարեր և մալուխներ (2 մետր 28 AWG- ի չափ պետք է լինի):

Ուշադրություն դարձրեք, որ իմ նախատիպի վերևում պատկերված են 100 uF էլեկտրոլիտիկ կափարիչներ, բայց դրանք չափազանց դանդաղ են `հզորության լիցքավորման ժամանակի պատճառով: 0.1uF հզորությունը ճիշտ ընտրություն է:

Ես լրացուցիչ միակցիչ օգտագործեցի ՝ իմ arduino- ին էներգիա մատակարարելու համար; պարտադիր չէ, որ հնարավոր լինի միկրոկոնտրոլերից ուղղակիորեն հյութ խմել ինքնաթիռի մինի USB միակցիչի միջոցով:

Քայլ 4: Միացումներ/սխեմաներ

Միացումներ/սխեմաներ
Միացումներ/սխեմաներ
Միացումներ/սխեմաներ
Միացումներ/սխեմաներ
Միացումներ/սխեմաներ
Միացումներ/սխեմաներ

MIDI IN

MIDI IN միացումը պարզ է և լավ նկարագրված ցանցում: Վերցրեք, օրինակ, Ամանդա Գասսայիի MIDI և Arduino- ի այս հիանալի հրահանգը: Ես ամեն դեպքում այդ հարցի վերաբերյալ թվով թվով թվով սխեմատիկ ներկայացրի:

Ուշադրություն դարձրեք, որ ես անջատիչ եմ ավելացրել MIDI IN սխեմայում (անջատիչ 1). Սա անհրաժեշտ է Arduino- ում նոր էսքիզ բեռնելիս, քանի որ օպտոն խանգարում է RX գծին նույնիսկ առանց մուտքային midi հաղորդագրությունների: Նախքան ձեր ուրվագիծը վերբեռնելը, դուք պետք է բացեք անջատիչը, հակառակ դեպքում IDE- ն չի կարող վերբեռնել նոր ուրվագիծը:

Դուք ի վերջո կարող եք փոփոխել ուրվագիծը `սերիական ծրագրային հաղորդակցություն օգտագործելու համար:

DAC, RC զտիչ, սինթեզատոր

DAC, RC ֆիլտրերի և Synth- ի (սկիպիդար, դարպաս և արագություն) միացումը ցուցադրված է վերևի գծապատկերում: Ես որպես տեղեկանք վերցրեցի Korg MS20 կարկատիչ վահանակը, բայց ամեն ինչ փորձարկեցի նաև MS10- ի վրա: Արագության CV- ի անմիջական կապը VCA- ի «սկզբնական շահույթի» կարկատանի հետ ոչ մի ազդեցություն չունի (ես պետք է դա ավելի փորեմ), բայց եթե այն միացնեք «Ընդհանուր» կարկատանի կետին և բարձրացնեք ձեր ընդհանուր արտաքին կաթսաները (MG/T. EXT), դուք կլսեք հնչերանգների գեղեցիկ տատանումներ `որպես նոտայի արագության ֆունկցիա:

Իմ սխեմաները (և իմ նախատիպը) չեն օգտագործում ընթացիկ սահմանափակող դիմադրություն DAC- ի ելքի վրա, բայց միշտ լավ գաղափար է տեղադրել այն `ձեր սխեմաներին երկար կյանք ապահովելու համար: 220 օհմ դիմադրություն բավական կլինի:

Ուշադրություն դարձրեք, որ 100 uF- ից բարձր էլեկտրոլիտիկ գլխարկների սխեմաներում հաղորդվում են, բայց դրանք չափազանց դանդաղ են `հզորության լիցքավորման ժամանակի պատճառով: Ոչ բևեռացված, 0.1uF գլխարկները ճիշտ ընտրություն են:

Դարպաս

Այն դեպքում, երբ դուք պատրաստվում եք հաջորդականացնել V-Trig (լարման ձգան) ազդանշանների հետ համատեղելի սինթեզ, ընթացիկ արտահոսքը նվազեցնելու համար 1k ohm շարքի դիմադրիչը բավարար կլինի. S-Trig (անջատիչ ձգան) սինթեզի դեպքում կարող եք օգտագործել պարզ PNP անջատիչ միացում (տես կցված սխեման):

Քայլ 5: Theրագրակազմ

Րագրակազմը
Րագրակազմը

Փորձեցի էսքիզը պահել հնարավորինս պարզ ու «ընթեռնելի»:

Ես աշխատեցի մի պարզ հաշվետվության վրա, որը ես գտա ԱՅՍՏԵ to, որպեսզի բխի Լարման Vs Նշում# կորից և ուղղակիորեն օգտագործի հավասարումը միկրոկառավարիչի մեջ: Հավասարումը ցույց է տրված գրաֆիկի վերևում: Ես օգտագործել եմ C2- ը որպես տեղեկանք `Arp/Korg- ի համապատասխանող Լարման Vs նշումների հարաբերություն ստանալու համար (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V և այլն):

Ես ստիպված էի որոշակի փոփոխական սահմանել խաղալիքի համար, որպեսզի լավ կարգավորումներ ստանամ … շտապեք ճիշտ արժեքներ գտնելու համար: Անհրաժեշտ է լարող սարք:

Մենք պատրաստվում ենք բարձրացնել erամաչափի/հաշվիչի pwm հաճախականությունը `նվազեցնելու ելքային լարումների ծածանքը (նույնքան հեշտ, որքան կոդի տողը):

Մուտքային բայթերին ծածկագիրն արձագանքելու համար ծածկագիրը մեծապես ապավինում է գործառույթների հետադարձ կապերին:

Ձեզ անհրաժեշտ է Sparkfun- ի «Adafruit_MCP4725.h» և Քառասուն Յոթ Էֆեկտներ/Ֆրանսուա Բեսթի «MIDI.h» գրադարանները կազմելու համար: (Շատ շնորհակալություն այս մարդկանց. Առանց նրանց ջանքերի այս նախագիծը երբեք չէր իրականացվի):

Ենթադրեմ, որ ձեր համակարգչում պատրաստ եք Arduino IDE- ն, և դուք գիտեք, թե ինչպես էսքիզը բեռնել ձեր Arduino տախտակին:

Ես իրական կյանքում կոդավորող չեմ, այնպես որ, ամենայն հավանականությամբ, ուրվագիծը կարող էր ավելի լավ գրվել: Ես բաց եմ առաջարկությունների համար (ես միշտ ինչ -որ բան եմ սովորում ՝ նայելով կոդավորողի կոդին;))

Լրացուցիչ նշումները գրված են ստորև բերված ծածկագրում: Տեղադրեք երկու գրադարանները, բացեք կցված կոդը ձեր IDE- ում, միացրեք ձեր տախտակը, ընտրեք տախտակի տեսակը և վերբեռնեք:

Քայլ 6: Խնդիրների վերացում

Նույնիսկ եթե նախագիծը ցածր մակարդակի վրա է, կան բազմաթիվ բաներ, որոնք կարող են սխալ լինել: Եթե խնդիրներ ունեք, երբ փորձում եք ստեղծել ձեր սեփական MIDI- ից CV տուփ, հետևեք հետևյալ քայլերին.

1. Համոզվեք, որ Arduino- ն ճիշտ է ստանում MIDI հաղորդագրություններ

Ստուգեք ձեր ստեղնաշարի կամ DAW- ի կամ Sequencer- ի ելքային ալիքը, որտեղից MIDI հաղորդագրությունները դուրս են գալիս: Arduino- ն լռելյայն լսում է 1 -ին ալիքը: Վերբեռնեք «TEST_MIDI_IN.ino» ՝ մուտքային գրառումը կարդալու համար:

2. Կրկնակի ստուգեք ձեր լարերը

… Կամ նույնիսկ ավելի լավ. Եռակի ստուգեք դրանք: Ձեր ժամանակը պահեք սրա համար:

3. Ստուգեք DAC հասցեն և ելքը

DAC- ն կարող է այնպես ստացվել, որ տվյալներ ստանա այլ հասցեով, քան այն, ինչ ես սահմանել եմ ուրվագծում: Ստուգեք հասցեն ՝ գործարկելով «I2C_scanner.ino»: Եթե «ոչ մի սարք չի գտնվել» սխալ տեղի է ունենում, ստուգեք ձեր DAC էլեկտրագծերը (SDA և SCL մուտքերը տարբեր են Arduino- ի տարբեր տախտակներում): Եթե ունեք օսլիլոկոպ (նույնիսկ այդ 15 եվրո արժողությամբ թվային օսլիոսկոպները բավականաչափ բավարար են …

Հիշեք, որ երբ օպտիկական զույգը միացված է ձեր arduino տախտակի RX մուտքին, դուք չեք կարողանա վերբեռնել նոր ուրվագիծ !! Տեղադրեք անջատիչ (դա կարող է լինել պարզ թռիչք) RX քորոցից առաջ:

Այս թեստային ուրվագծերի մեծ մասը իմը չեն կամ գոնե հիմնված են առկա առցանց նյութի վրա:

Այս բանը ինձ անհամաձայն է թվում:

Սա իրական խնդիր չէ. Hz/V հսկողության համար ստացված հավասարումը «իդեալական» է: Իդեալական վարքից որոշ շեղումներ կարող են առաջանալ +5V- ից, որը դուք մատակարարում եք ոչ 5.000V- ից, DAC- ից և բուն գործիքից: Լուծելու համար դուք պետք է գործեք ձեր սինթետիկ մեղեդու/նուրբ մեղեդու պոտենցիոմետրի և «voilà» կատարյալ կարգավորված MIDI հսկողության վրա;)

Քայլ 7: Օգտակար հղումներ

hy.wikipedia.org/wiki/CV/gate

www.instructables.com/id/Send-and-Receive-…

www.songstuff.com/recording/article/midi_me…

pages.mtu.edu/~suits/NoteFreqCalcs.html

espace-lab.org/activites/projets/en-arduin…

learn.sparkfun.com/tutorials/midi-shield-h…

provideyourown.com/2011/analogwrite-conver…

www.midi.org/specifications/item/table-3-c…

arduino-info.wikispaces.com/Arduino-PWM-Fr…

sim.okawa-denshi.jp/hy/PWMtool.php

Խորհուրդ ենք տալիս: