Съдържание:
- Етап 1: !! Бележка за внимание - Отказ от отговорност
- Стъпка 2: Инженеринг на хардуера
- Стъпка 3: Списък на компонентите
- Стъпка 4: Връзки/Схеми
- Стъпка 5: Софтуерът
- Стъпка 6: Отстраняване на неизправности
- Стъпка 7: Полезни връзки
Видео: Друг MIDI към CV Box: 7 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Друга 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
Препоръчано:
Друг ротационен превключвател с предимно 3D печат: 7 стъпки (със снимки)
Друг ротационен превключвател с предимно 3D печат: Преди малко създадох Ротационен превключвател с предимно 3D печат специално за моя проект Minivac 601 Replica. За новия си проект Think-a-Tron 2020 се нуждая от още един ротационен превключвател. Търся превключвател за монтаж на панел SP5T. Добавка
Изпращайте числови данни от един Arduino към друг: 16 стъпки
Изпратете числови данни от един Arduino към друг: Въведение от Дейвид Палмър, CDIO Tech. в Aston University. Имали ли сте някога да изпращате някои номера от един Arduino на друг? Тази инструкция показва как. Можете лесно да проверите дали работи, като просто напишете низ от числа, които да изпратите в S
PIWOOLET (Pi.WOOd.tabLET): Просто друг PI таблет: 10 стъпки (със снимки)
PIWOOLET (Pi.WOOd.tabLET): Просто друг PI таблет: Въведение - защо разбрах това? Отговорът е толкова прост: просто за забавление :-) Някои от основните ми цели поддържат достъпа до HDMI порта; поддържат достъп до аудио изхода; поддържат достъп до GPIO; поддържа достъп до поне един USB порт. BOM Rasp
MIDI 5V LED лентов контролер за Spielatron или друг MIDI синтезатор: 7 стъпки (със снимки)
MIDI 5V LED Strip Light Controller за Spielatron или друг MIDI синтезатор: Този контролер мига трицветни LED ленти за 50mS на бележка.Синьо за G5 до D#6, червено за E6 до B6 и зелено за C7 до G7. Контролерът е ALSA MIDI устройство, така че MIDI софтуерът може да извежда към светодиодите едновременно с MIDI синтезатор
Свържете Ipod или друг Mp3 плейър към нормални домакински високоговорители без скъп и обемист усилвател!: 4 стъпки
Свържете Ipod или друг Mp3 плейър към нормални домакински високоговорители без скъп и обемист усилвател !: Имате ли много допълнителни стерео високоговорители, които или са дошли с евтини стерео уредби, или просто ги имате без видима причина? В тази инструкция ще ви покажа как можете да ги свържете към всеки Mp3 плейър или всяко устройство със звуков порт