Мазмуну:

Дагы бир MIDI резюме кутусуна: 7 кадам (сүрөттөр менен)
Дагы бир MIDI резюме кутусуна: 7 кадам (сүрөттөр менен)

Video: Дагы бир MIDI резюме кутусуна: 7 кадам (сүрөттөр менен)

Video: Дагы бир MIDI резюме кутусуна: 7 кадам (сүрөттөр менен)
Video: 2024-жылдын январындагы эң коркунучтуу коркунучтуу окуя... 2024, Июль
Anonim
Дагы бир MIDI CV кутусуна
Дагы бир MIDI CV кутусуна

Дагы бир MIDIден резюме кутусу - бул Korg MS10 менин эшигимди каккылап, студиямда өткөндө мен иштеп чыккан долбоор. Менин орнотууларым MIDIге бардык шаймандарды автоматташтыруу жана синхрондоштуруу менен байланыштуу болгондуктан, мен MS10ду сатып алганда биринчи кезекте мындай көзөмөлдү кантип ишке ашыруу керектигине туш болдум.

Korg MS20/10 MIDIди ишке ашыруу үчүн эң оңой синтез эмес: биринчиден, алар oct/V ордуна 1 Hz/V контролдугуна (контролдук чыңалуу менен нотанын жыштыгынын ортосундагы сызыктуу корреляция) таянат (октавага 1В); Экинчиден, нотаны иштетүү үчүн терс дарбаза сигналын жөнөтүү керек жана жерге киргизүүнү кыска кылуу керек (S-Trig), +5 V сигналы эмес (V-триг).

Бүгүнкү күндө мындай инструменттерди башкаруунун ар кандай коммерциялык чечимдери бар (б.а. Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), бирок мен арзан бадыраңмын, ал тургай 100 евро "үнү чыкпаган" аппарат үчүн өтө эле көп:).

Мына, биз азыр: MIDIге чейинки синтездин кадамын, дарбазасын, ылдамдыгын жана кесилишинин жыштыгын тышкы MIDI контроллери (Keyboard, DAW, sequencer же башка) менен көзөмөлдөө/автоматташтыруу үчүн резюме кутусуна аз бюджетти MIDI кантип курууну көрсөтөм..

"Жаңы MS20 мини жөнүндө эмне айтууга болот?"

Дээрлик баарына белгилүү болгондой, жаңы MS20 чындыгында MIDIге даяр: IN 5 полюстуу MIDI туташтыргычы менен жана USB туташтыргычы бар IN/OUT.

"Демек, эгер менде MS20 мини болсо, анда бул нерсе пайдасыз!"

Ооба, жок. MS20 mini билдирүүлөрдү күйгүзүү/өчүрүү боюнча гана эскертмелерди тааныйт жана клавиатура ылдамдыкты сезбейт. Муну MS10/20 винтаждык же мини клавиатура менен жеңүүнүн эч кандай жолу жок, бирок midi кутусу жана ылдамдыкка сезгич клавиатурасы менен сиз алтынсыз. Мындан тышкары, MIDI кутусунун жардамы менен сиз чыпканын үзүлүшүн автоматташтырсаңыз болот (же башка чыңалуу башкарылуучу параметрин) же ылдамдык боюнча келген MIDI жазуусу менен модуляциялоого болот. Дагы, бир гана MIDI каналы MS20 mini 1 каналына жооп берет. Бул куту менен сиз бул чекти да жеңе аласыз.

"Менде Oct/V синтези болсочу?"

Маселе эмес! Мен жазган код Oct/V синтезаторлору менен шайкеш келет (текшерилбеген, бирок кутудан тышкары иштээрине ишенем;)).

1 кадам: !! Эскертүү Эскертүү - Жоопкерчиликтен баш тартуу

Сиздин жабдууларыңыз абдан баалуу жана тесттерди аткаруу үчүн колдонулбашы керек.

Электр менен ойноо жабдууларыңызды катуу бузуп же өзүңүзгө зыян келтириши мүмкүн.

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

Сизге эскертүү берилди!

2 -кадам: Аппаратты инженериялоо

Мындай долбоорлор менен иштөөдө Arduino ыңгайлуу болот. Дээрлик ар бир жалпы тапшырманы камтыган чоң Жамааттын жана абдан жакшы китепканалардын болушу аны туура тандоо кылат. Бул жерде такта келген MIDI маалыматын окуй тургандай программаланган болот, андан кийин айдоо үчүн тиешелүү чыңалууларды жөнөтөт:

Pitch өндүрүшүн аналогдук чыңалууга айландыруу менен VCO санариптен аналогдук которгучка (DAC) айдаш үчүн

- Ыкчамдык, VCAны жөнөкөй RC чыпкасы менен башкаруу үчүн pwm чыгымын чыпкалоо аркылуу

- Filter Cutoff Frequency, жөнөкөй RC чыпкасы менен VCF айдоо үчүн pwm чыгарууну чыпкалоо менен

- Дарбаза, V-триггер болгон учурда түздөн-түз санариптик чыгуудан (учурдагы дренажды азайтуу үчүн чыгышы менен 1Кохмду серияга коюңуз) же санариптик чыгуудан жөнөкөй pnp транзистордук өчүргүч аркылуу (схеманын кадамына тиркелген схеманы караңыз).

Arduino түздөн -түз туруктуу чыңалууларды чыгара албайт, бирок ар кандай мезгилдеги 0/+5 V импульстары (PWM). Биз санарипке аналогдук өзгөрткүчтөргө (DAC) муктажбыз. RC чыпкалары - бул мен ойлогон эң оңой DAC. RC чыпкасы чыңалуу көзөмөлүндөгү күчөткүч жана чыпка үчүн жакшы (VCA жана VCF). RC чыпкалары <20Гц (эң төмөнкү угулуучу жыштык) жыштыгына алып келүүгө ылайыкташтырылган.

Мен сыйымдуулугу төмөн поляризацияланбаган конденсаторлор менен бир аз сыноодон өткөрдүм жана эң ылайыктуу болуу үчүн сыйымдуулугу 0.1uF менен аяктадым. MS20 MKIIде жакшы сыналган.

Тилекке каршы, биз чыңалуу көзөмөлүндөгү осцилляторду (VCO) кууп жетүү үчүн RC чыпкасына таяна албайбыз, анткени ал так эмес (Гц/В масштабында, төмөнкү учунда эки адиасенд семитону 0,02Вдан аз айырмаланат; V менен) /окт эки адиакент семитону 0,083 В үчүн айырмаланат); Бул үчүн биз IC DAC (MPC4725) колдонобуз.

Белгилүү чектер

Диск чыңалуусун 5В менен чектөө (Arduino чыгаруу чыңалуусу), толук 0дөн 5В диапазону ылдамдык үчүн камтылган; чек жарым жабылган (-5V +5V); VCO диапазону жарым -жартылай камтылган, анткени Гц/Вде 440 Гц А4кө жетүү үчүн 8 В чыңалуу талап кылынат. 5V чыгаруу чеги менен биз осцилляторду D4 жыштыгына чейин Hz/V менен орното алабыз.

3 -кадам: Компоненттердин тизмеси

Компоненттердин тизмеси
Компоненттердин тизмеси
Компоненттердин тизмеси
Компоненттердин тизмеси
Компоненттердин тизмеси
Компоненттердин тизмеси

Сиз төмөнкүлөргө муктажсыз:

1X Arduino UNO (же нано)

1X MPC4725 DAC тактасы

4X 1/8 "же 1/4" моно туташтыргычтар

1X MIDI туташтыргычы

1X 6N138 оптикалык кошкучу

1X 1N4148 диод

1X 220 ohm 1/4 W каршылыгы

1X 470 Ом 1/4 W каршылыгы

1X 10K ом 1/4 W каршылыгы

4X 1K ом 1/4 W каршылыгы

2X 0.1 uF конденсатор

1X BC547 pnp транзистору (S-триггер болгон учурда)

1X ABS кутуча (жок дегенде 55 x 70 x 100 мм)

… Жана, албетте, нан же перфорд, ширетүүчү темир, ширетүүчү зым жана кабелдер (2 метр 28 AWG жетиштүү болушу керек).

Менин прототипимдин үстүндөгү сүрөттөрдө 100 uF электролиттик капкактары орнотулганын байкаңыз, бирок алар кубаттуулуктун заряддалыш убактысынан улам өтө жай. 0.1uF сыйымдуулугу туура тандоо болуп саналат.

Мен ардуиного энергия берүү үчүн кошумча туташтыргычты колдондум; Микроконтроллерди түз борттогу мини USB туташтыргычы аркылуу ширетүүнүн кажети жок.

4 -кадам: Байланыштар/Схемалар

Байланыштар/Схемалар
Байланыштар/Схемалар
Байланыштар/Схемалар
Байланыштар/Схемалар
Байланыштар/Схемалар
Байланыштар/Схемалар

MIDI IN

MIDI IN схемасы жөнөкөй жана тармакта жакшы сүрөттөлгөн. Мисалы, Аманда Гассэйдин MIDI жана Arduino боюнча көрсөтмөлөрүн алыңыз. Мен баары бир бул боюнча n -схеманы жасадым.

Мен MIDI IN схемасына которгучту кошконума көңүл буруңуз (1 -которуштуруучу): бул Arduinoго жаңы эскизди жүктөөдө керек, анткени opto RX линиясына кирүүчү midi билдирүүлөрү жок эле кийлигишет. Эскизди жүктөөдөн мурун которгучту ачышыңыз керек, болбосо IDE жаңы эскизди жүктөй албайт.

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

DAC, RC чыпкасы, синтезатор

DAC, RC чыпкалары жана Synth үчүн туташуу (кадам, дарбаза жана ылдамдык) үстүңкү диаграммада көрсөтүлгөн. Мен маалымат үчүн Korg MS20 патч панелин алгам, бирок мен баарын MS10до сынап көрдүм. Тез резюме менен VCAнын "баштапкы пайда" оңдоо пунктуна түз байланышы эч кандай таасир этпейт (мен муну дагы казышым керек), бирок эгер сиз аны "Тотал" жамоо чекитине туташтырсаңыз жана жалпы тышкы казандарыңызды көтөрсөңүз (MG/T. EXT)), сиз нотанын ылдамдыгынын функциясы катары жагымдуу обондордун өзгөрүүлөрүн угасыз.

Менин схемаларым (жана менин прототипим дагы) DAC өндүрүшүндө учурдагы чектөөчү резисторду колдонушпайт, бирок чынжырларыңыздын узак өмүр сүрүшүн камсыздоо үчүн бирин жайгаштыруу дайыма жакшы идея. 220 Омдук резистор жетиштүү болот.

Байкаңыз, схемаларда 100 UF электролиттик капкактары көрсөтүлгөн, бирок алар кубаттуулуктун заряддоо убактысынан улам өтө жай. Поляризацияланган эмес, 0.1uF капкактары туура тандоо.

Gate Out

Эгерде сиз V-Trig (чыңалуу триггери) сигналдары менен шайкеш келген синтезди иретке келтире турган болсоңуз, агымдын агымын азайтуу үчүн 1к Ом сериядагы резистор жетиштүү болот; S-Trig (switch trigger) синтези болгон учурда, сиз жөнөкөй PNP которуу схемасын колдоно аласыз (тиркелген схеманы караңыз).

5 -кадам: Программалык камсыздоо

Программалык камсыздоо
Программалык камсыздоо

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

Мен жөнөкөй кальций баракчасында иштедим, бул жерден Voltage Vs Note# ийри сызыгын чыгарууну жана микроконтроллердеги теңдемени түз колдонууну таптым. Теңдеме үстүдөгү графикте көрсөтүлгөн. Мен C2ди Arp/Korg ылайыкташкан Voltage Vs нотасына байланышты алуу үчүн шилтеме катары колдоном (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V ж.б.).

Жакшы тюнинг алуу үчүн оюнчуктун өзгөрмөсүн аныктоого туура келди … туура баалуулуктарды табууга шашылыңыз. Тюнер керек.

Чыгуу чыңалуусун азайтуу үчүн таймердин/эсептегичтин pwm жыштыгын көбөйткөнү жатабыз (код сызыгы сыяктуу оңой).

Кирүүчү байттарга коддун жооп берүүсүн камсыз кылуу үчүн, код функцияларга чалууга көп таянат.

Сиз Sparkfunдун "Adafruit_MCP4725.h" жана кырк жети эффект/Франсуа Бесттин "MIDI.h" китепканаларын түзүүгө муктажсыз! (Бул инсандарга чоң рахмат: алардын аракети болбосо бул долбоор эч качан ишке ашпайт!).

Сиздин компьютериңизде Arduino IDE даяр деп ойлойм жана сиз эскизди Arduino тактасына кантип жүктөөнү билесиз.

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

Кошумча эскертүүлөр төмөнкү коддо жазылган. Эки китепкананы орнотуңуз, IDEдеги тиркелген кодду ачыңыз, тактаңызды туташтырыңыз, тактанын түрүн тандап жүктөңүз.

6 -кадам: Мүчүлүштүктөрдү оңдоо

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

1. Arduino MIDI билдирүүлөрдү туура кабыл алып жатканына ишениңиз

Сиздин клавиатура же DAW же Sequencer MIDI билдирүүлөрүн чыгарып жаткан каналды текшериңиз. Arduino демейки боюнча 1 -каналды угуп жатат. Кирүүчү noteON билдирүүсүн окуу үчүн "TEST_MIDI_IN.ino" жүктөңүз.

2. Вирингдериңизди эки жолу текшериңиз

… же андан да жакшыраак: үч жолу текшериңиз! Бул үчүн убактыңызды бөлүңүз.

3. DAC дарегин жана чыгарылышын текшериңиз

DAC эскизде меникине караганда башка дарек боюнча маалыматтарды алуу үчүн коюлушу мүмкүн. "I2C_scanner.ino" иштетүү менен даректи текшериңиз. Эгерде "түзмөк табылган жок" катасы кетсе, DAC зымдарыңызды текшериңиз (SDA менен SCLдин кирүүлөрү ар түрдүү Arduino такталарында ар кандай!). Эгерде сизде осциллокоп бар болсо (ал тургай 15 евролук санариптик осциллографтар эң жакшы … жана оюнчуктар менен көңүл ачуу!) DAC китепканасынын орнотулушу менен коштолгон үч бурчтуу толкундуу генератордун мисалын жүктөө менен DACтын өндүрүмүн текшере аласыз.

Эсиңизде болсун, optocoupler arduino тактаңыздын RX кирүүсүнө туташканда, сиз жаңы эскизди жүктөй албайсыз !! RX пиндин алдына которгучту коюңуз (бул жөнөкөй секирүүчү болушу мүмкүн).

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

Бул нерсе мага туура келбейт окшойт !?

Бул чыныгы маселе эмес: Hz/V контролу үчүн алынган теңдеме "идеалдуу". Идеалдуу жүрүм -турумдан бир аз алыстоо сиз берген 5.000В эмес +5Вдан, DACтен жана прибордун өзүнөн көтөрүлүшү мүмкүн. Маселени чечүү үчүн, synth тюнинг/так күүлөө потенциометринде жана "voilà" эң сонун күүлөнгөн MIDI көзөмөлүндө иштөө керек;)

7 -кадам: Пайдалуу шилтемелер

en.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/en/PWMtool.php

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