Съдържание:

Друг MIDI към CV Box: 7 стъпки (със снимки)
Друг MIDI към CV Box: 7 стъпки (със снимки)

Видео: Друг MIDI към CV Box: 7 стъпки (със снимки)

Видео: Друг MIDI към CV Box: 7 стъпки (със снимки)
Видео: Топ 10 приложения, които не трябва да сваляте 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-триг).

В днешно време има различни търговски решения за управление на такива инструменти (напр. 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 box и чувствителна към скоростта клавиатура сте златни. В допълнение, с MIDI кутията можете да автоматизирате прекъсването на филтъра (или всеки друг параметър, управляем от напрежение) или да го модулирате от входящата MIDI бележка за скоростта. Отново единственият MIDI канал, на който MS20 mini отговаря, е канал 1. С това поле можете да преодолеете и това ограничение.

„Ами ако имам синтезатор за октомври/V?“

Няма проблем! Кодът, който написах, е съвместим с синтезаторите на Oct/V (не тестван, но съм убеден, че ще работи извън кутията;)).

Етап 1: !! Бележка за внимание - Отказ от отговорност

Вашето оборудване е много ценно и не трябва да се използва за извършване на тестове.

Играта с електричество може сериозно да повреди оборудването ви или да навреди на себе си.

Не мога да нося отговорност за щети на вашето оборудване/хардуер или дори на вас самите, идващи от някой от софтуера или схемите, или информация или връзки, които докладвах в тази инструкция.

Предупреден си!

Стъпка 2: Инженеринг на хардуера

Arduino е полезен, когато се занимавате с проекти като този. Наличието на голяма общност и много добри библиотеки, които обхващат почти всяка обща задача, го правят правилния избор. Тук платката ще бъде програмирана така, че да чете входящи MIDI данни и след това да изпраща подходящо напрежение за задвижване:

- Pitch, чрез преобразуване на pwm изход в аналогово напрежение за задвижване на VCO чрез цифрово -аналогов преобразувател (DAC)

- Скорост, чрез филтриране на pwm изход за задвижване на VCA с обикновен RC филтър

- Честота на прекъсване на филтъра, чрез филтриране на pwm изход за задвижване на VCF с прост RC филтър

- Порта, директно от цифров изход в случай на V-триг (поставете 1Kohm последователно с изхода, за да намалите изтичането на ток) или чрез обикновен pnp транзисторен превключвател от цифровия изход (вижте схемата, приложена към стъпката на схемите).

Arduino не може да извежда директно постоянни напрежения, но 0/+5 V импулси с различни периоди (PWM). Ние се нуждаем от цифрово -аналогови преобразуватели (DAC) за изливането. RC филтрите са най -лесният DAC, за който се сещам. Един RC филтър е достатъчен за усилвателя и филтъра, управляван от напрежение (VCA и VCF). RC филтрите са пригодени така, че да доведат до гранична честота <20Hz (най -ниската звукова честота).

Направих някакъв тест с неполяризирани кондензатори с нисък капацитет и завърших със стойност на капацитета 0.1uF, за да пасна най -добре. Тестван е добре на MS20 MKII.

За съжаление, не можем да разчитаме на RC филтър за задвижване на осцилатора, управляван от напрежение (VCO), тъй като той не би бил достатъчно точен (в скалата на Hz/V, в долния край два полузвука adiacend се различават за по -малко от 0,02 V; във V /окт два адиацентни полутона се различават за 0,083 V); ще използваме IC DAC (MPC4725) за това.

Известни граници

Ограничавайки задвижващото напрежение до 5V (изходното напрежение на Arduino), пълният диапазон от 0 до 5V се покрива за скорост; границата е наполовина покрита (-5V до +5V); диапазонът на VCO е частично покрит, тъй като при Hz/V ще е необходимо напрежение от 8 V, за да достигне 440 Hz A4. С ограничение на изхода 5V можем да настроим осцилатора до честотата D4 в Hz/V.

Стъпка 3: Списък на компонентите

Списък на компонентите
Списък на компонентите
Списък на компонентите
Списък на компонентите
Списък на компонентите
Списък на компонентите

Вие се нуждаете от:

1X Arduino UNO (или нано)

1X MPC4725 DAC платка

4X 1/8 "или 1/4" моно конектори

1X MIDI конектор

1X 6N138 оптрон

1X 1N4148 диод

1X 220 ома 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 mm)

… и очевидно дъска или перфорирана дъска, поялник, спойка и кабели (2 метра от 28 AWG трябва да са достатъчни).

Забележете, че на снимките по -горе моят прототип монтира 100 uF електролитни капачки, но те са твърде бавни поради времето за зареждане на капацитета. Капацитетът от 0.1uF е правилният избор.

Използвах допълнителен конектор за захранване на моя arduino; не е необходимо да можете да изцедите микроконтролера директно чрез вградения мини USB конектор.

Стъпка 4: Връзки/Схеми

Връзки/Схеми
Връзки/Схеми
Връзки/Схеми
Връзки/Схеми
Връзки/Схеми
Връзки/Схеми

MIDI IN

Схемата MIDI IN е проста и добре описана в мрежата. Вземете ТОЗИ отличен инструктаж за MIDI и Arduino от Amanda Gassaei, например. Все пак направих n -та схема по въпроса.

Забележете, че добавих превключвател в схемата 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 капачки са правилният избор.

Gate Out

В случай, че ще подредите синтезатор, съвместим с V-Trig (тригер за напрежение) сигнали, ще бъде достатъчен резистор от 1k ома за намаляване на изтичането на ток; в случай на S-Trig (превключващ задействащ) синтезатор, можете да използвате проста верига на PNP превключвател (вижте приложената схема).

Стъпка 5: Софтуерът

Софтуерът
Софтуерът

Опитах се да поддържам скицата възможно най -ясна и „четлива“.

Работих върху обикновен лист за изчисляване, който намерих ТУК, за да извлека крива Voltage Vs Note# и да използвам директно уравнението в микроконтролера. Уравнението е показано на графиката отгоре. Използвах C2 като справочна бележка за получаване на Arp/Korg съвместимо напрежение Vs бележка (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V и т.н.).

Трябваше да дефинирам някаква променлива, с която да играя, за да получа добра настройка … отделете време да намерите правилните стойности. Необходим е тунер.

Ще увеличим pwm честотата на таймер/брояч, за да намалим пулсациите на изходното напрежение (толкова лесно, колкото ред от код).

За да поддържа кода отзивчив към входящите байтове, кодът силно разчита на функцията за обратно извикване.

Имате нужда от "Adafruit_MCP4725.h" на Sparkfun и Forty Seven Effects/библиотеките "MIDI.h" на Франсоа Бест за компилиране! (Много благодаря на тези хора: без техните усилия този проект никога нямаше да бъде реализиран!).

Предполагам, че имате готов Arduino IDE на вашия компютър и знаете как да заредите скица на дъската си Arduino.

Аз не съм програмист в реалния живот, така че е много вероятно скицата да бъде написана по по -добър начин. Отворен съм за предложения (винаги научавам нещо, гледайки кода на кодера;))

Допълнителни бележки са написани в кода по -долу. Инсталирайте двете библиотеки, отворете прикачения код на вашата IDE, свържете дъската, изберете типа на платката и качете.

Стъпка 6: Отстраняване на неизправности

Дори ако проектът е на ниско ниво, има много неща, които могат да се объркат. Ако имате проблеми, докато се опитвате да създадете свой собствен MIDI към CV поле, изпълнете следните стъпки:

1. Уверете се, че Arduino получава правилно MIDI съобщения

Проверете изходния канал, към който вашата клавиатура или DAW или секвенсор извежда MIDI съобщения. Arduino слуша канал 1 по подразбиране. Качете „TEST_MIDI_IN.ino“, за да прочетете входящо съобщение noteON.

2. Проверете отново кабелите си

… или още по -добре: проверете ги тройно! Запазете време за това.

3. Проверете DAC адреса и изхода

DAC може да бъде настроен да получава данни на адрес, различен от този, който зададох в скицата. Проверете адреса, като стартирате „I2C_scanner.ino“. Ако се случи грешка „не е намерено устройство“, проверете кабелите си за DAC (входовете SDA и SCL са различни на различните платки Arduino!). Ако имате осцилоскоп (дори онези цифрови осцилоскопи от 15 евро са достатъчни … и забавни за игра!), Можете да проверите изхода на вашия DAC, като качите примера с триъгълния генератор, включен в инсталацията на DAC библиотеката.

Не забравяйте, че когато оптичен съединител е свързан към RX входа на вашата платка arduino, няма да можете да качите нова скица !! Поставете превключвател (може да е обикновен джъмпер) преди RX щифта.

Повечето от тези тестови скици не са мои или поне се основават на съществуващи онлайн материали.

Това нещо ми звучи неудобно !?

Това не е реален проблем: уравнението, получено за Hz/V управление, е "идеално". Някои отклонения от идеалното поведение могат да се издигнат от +5V, което доставяте, а не от 5.000V, от DAC и от самия инструмент. За да разрешите, трябва да действате на вашия синтезатор/фина настройка на потенциометъра и "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

Препоръчано: