Съдържание:
- Стъпка 1: Какво точно е това нещо (и кое не …)
- Стъпка 2: "Скритият" секвенсор от 16 стъпки
- Стъпка 3: Необходим хардуер и изграждане
- Стъпка 4: Окабеляване
- Стъпка 5: Софтуер - Някои връзки към теорията
- Стъпка 6: Софтуер - скицата
- Стъпка 7: Свързани проекти
Видео: (почти) Универсален MIDI SysEx CC програмист (и секвенсор ): 7 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
В средата на осемдесетте години производителите на синтезатори започнаха процес „по -малко е по -добре“, който доведе до синтезатори barebones. Това позволи намаляване на разходите от страна на производителя, но направи процеса на закърпване достъпен, ако не и невъзможен за крайния потребител.
Самите производители и компании от трети страни реализираха опционални кутии, пълни с копчета и/или плъзгачи, за да ви позволят да „играете“с вашите синтезаторски тонове, но в днешно време те са глупаво надценени и, както винаги, ние сме принудени сами да намираме евтини решения;)
Този проект дойде от моята нужда лесно да програмирам кръпки за някои от най -новите си синтезатори: Roland Alpha Juno 2 и JX8P. Започна като обикновен SysEx контролер, след това израсна върху мен и се превърна в нещо по-сложно, с други синтезатори, поддържани по пътя (Korg DW8000, Oberheim Matrix 6/6R, SCI MAX) и вграден секвенсор.
В тази инструкция ще ви покажа как да реализирате свой собствен контролер: евтин инструмент, който подражава на тези скъпи кутии за контрол на параметри … и още (продължете да четете за подробности …).
Стъпка 1: Какво точно е това нещо (и кое не …)
Контролерът MIDI SysEx и Control Change тук е по същество 16 копчета (потенциометри) и 4 бутона MIDI контролер. Скицата по подразбиране обработва три "страници" за общо 48 параметри на тон на синтезатор.
Направих контролера съвместим с MIDI съобщения за промяна на контрола (прост и "глобален" тип MIDI съобщение, широко използвано от производителите на синтезатори, особено от 90-те години) и SysEx съобщения (друг тип MIDI съобщение, много по-малко общо и силно специфично за синтезатора използван през 80 -те години).
По -специално, контролерът по подразбиране е съвместим с:
- Roland Alpha Juno (1/2)
- Roland JX8P
- Korg DW8000
- Oberheim Matrix 6/6R (> 2.14 фърмуер)
- Последователни схеми MAX/SixTrak.
В крайна сметка можете да активирате контролера да действа на всеки синтезатор, който може да получава съобщения за промяна на контрола на MIDI (CC), но той е деактивиран по подразбиране.
Тъй като проектът е с отворен код, е много лесно да се поддържа всеки друг синтезатор по ваш избор (вижте стъпката на кода за подробности).
Оформлението на параметрите на тона с всички тези номера може да е объркващо в началото, но не е „случайно“, както може да изглежда: следва реда на таблицата за внедряване на MIDI на производителя. Това беше избор на дизайн, за да запази кода прост и „универсален“.
Можете да изтеглите графични листове с 4x4 "оформление", което осъзнах за Alpha-Junos, JX8P, DW8000, Matrix 6 и MAX/SixTrak на тази страница: сините параметри са тези, които можете да промените, докато на страница 1, черните тези на страница 2 и оранжеви тези на страница 3.
Дори ако контролерът няма екран, играта със синтезатори, които ви показват кой параметър се настройва в реално време, прави процеса на създаване на кръпка радост. JX8P и Matrix 6 например са способни на това; вместо това Alpha Juno не ви показва променящия се параметър и прави нещата малко по-трудни (но създаването на страхотни кръпки определено е възможно и по-лесно, отколкото чрез използването на вградения интерфейс без възли); DW8000 има само цифрови дисплеи, но можете да видите вашите ощипвания в реално време, така че да се поставя между тях.
А тези бутони там?
Е, първият (горе вляво в моето оформление) е за сърфиране на страници: при всяко натискане на бутона преминете към страницата на следващия параметър. Светодиодите ще покажат на коя страница сте.
Вторият, когато бъде натиснат, изпратете кръпката, където работите, обратно към синтезатора (разберете го: направихте кръпката на живота си, след това докоснете програмен бутон на повърхността на синтезатора и специфичният за бутона пластир беше зареден … цялата ви работа свърши !). С този бутон можете да изпратите всички стойности, които програмистът е запомнил по време на последния процес на закърпване. Този процес на извикване на кръпка не работи, ако натиснете отново рандомизатора (процесът на рандомизация презаписва всички параметри в паметта) и е ефективен само при параметри, които сте редактирали поне веднъж. Последният пластир не се съхранява в паметта след изключване.
Третият е за вторична функция: рандомизатора/кръпка! Завъртете копчетата на часовниковата стрелка докрай, на които желаете параметърът, върху който действат, да се заключи до минимална стойност (т.е. осцилатор LFO, плик на осцилатора и т.н.) или завъртете напълно по часовниковата стрелка, за да увеличите максимално стойността (т.е. обем на сместа на осцилатора, обем на VCA и т.н.) и натиснете бутона за стартиране на процеса на рандомизация за всички други параметри.
Четвъртият бутон е там за активиране на великденско яйце (нещо като …), което поставих в кода, след като забелязах, че оформлението е идеално за … 16 стъпков MIDI секвенсор! Точно: натиснете четвъртия бутон (бутон MODE), контролерът ще влезе в "режим на секвенсор" и ще ви бъде позволено да задействате бележки по подобен начин, както тези на стария аналогов секвенсор. Хубаво ъъъ!
Натиснете отново бутона MODE, за да се върнете в режим на контролер/кръпка.
Какво ще кажете за тези светодиоди?
Има 4 светодиода в съответствие с всеки бутон (вдясно от всеки бутон в моето оформление); тези светодиоди имат множество изливни кабини:
1) те ви казват на коя страница с параметри сте (горният светодиод свети, когато сте на страница 1, светодиодът отдолу свети, когато страница 2 е активна, светодиод 3 свети … сами сте го измислили). Ние сме ограничени до 3 страници ATM, но кодът може лесно да бъде настроен, за да обработва повече страници;
2) вторият светодиод показва параметрите страница 2 И свети, когато микроконтролерът изпраща предишния пластир (извикване на кръпка);
3) третият светодиод показва параметрите страница 3 И свети по време на процеса на рандомизация.
Четвъртият светодиод не прави нищо в режим на MIDI контролер и се използва за глобална промяна на РЕЖИМ.
Всички тези функции се предават като MIDI съобщения, така че за да бъде ефективен, вашият синтезатор трябва да е способен/разрешен да получава и интерпретира този вид съобщения
Стъпка 2: "Скритият" секвенсор от 16 стъпки
Както казах, докато тествах контролера, осъзнах, че би било чудесно да пусна поредица от бележки, за да мога да променя параметрите на синтезатора и да имам по -добра представа за крайния ефект върху тона. Имам софтуерен секвенсор (толкова ми харесва seq24!), Но този хардуер е почти ПЕРФЕКТЕН 16-стъпков секвенсор! Тогава беше само въпрос на код за прилагането му.
Можете да превключвате между режим на контролер и режим на секвенсор, като натиснете бутон #4 (бутон MODE).
Докато в режим на секвенсор бутоните работят по различен начин и светодиодите ви дават нова информация:
- първият бутон (бутон SHIFT) при натискане позволява темпо, дължина на нотата, канали и октавна модификация; стойността на темпото се определя от позицията на първия потенциометър, дължината на нотата се изчислява от втората позиция на потенциометъра, MIDI каналите от третата и четвъртата позиция на потенциометъра и октавата (-1 o до +2) от петия пот. Можете да контролирате темпото от 40 BPM (завъртете потенциометър #1 пълен обратно на часовниковата стрелка, като държите натиснат бутон #1) до почти 240 BPM (завъртете потенциометър #1 докрай по посока на часовниковата стрелка, като държите натиснат бутон #1). Можете да зададете дължина на бележките на половин бележка, четвърт бележка, осмица бележка, бележка на шестте наематели, като завъртите пот #2, като държите натиснат бутона SHIFT. Можете да зададете MIDI канали (първичен канал и вторичен канал) от 1 до 16. Основният диапазон на нотите (от C2 до F#4) може да бъде понижен с една октава или увеличен с една или две октави.
По подразбиране темпото е настроено на 120 BPM, а дължината на нотата - до четвъртинките.
- вторият бутон за стартиране и спиране на поредицата от бележки. Както беше казано, ако промените режима, като натиснете бутона #4 (MODE), докато изпълнявате последователността, ще влезете в режим на контролер, но последователността ще продължи да се изпълнява.
- третият бутон е ПАНИКА! Като го натиснете, всички бележки ще бъдат изключени.
- четвъртият се използва за превключване между глобални режими (патер или секвенсор), когато бутон #1 не е натиснат, или между режими на последователност (вижте по -долу), когато #1 е натиснат.
В режим на секвенсор, ако натиснете бутона за избор на режим, докато държите натиснат бутон #1 (SHIFT), можете да превключвате между 3 различни режима на последователност:
1 - 16 стъпки моно последователност
2 - 16 стъпки поли последователност: също се задействат ноти с една октава по -ниска от тези, определени от саксии (това източва 2 гласа на такт)
3 - 8 стъпки поли последователност, двоен канал: две паралелни 8 стъпки последователности се изпращат към два различни канала (CH1 и CH2 по подразбиране); като зададете една и съща стойност на канала както на първичния, така и на вторичния канал, можете да имате две паралелни 8-стъпкови последователности, възпроизвеждани от един и същ (полифоничен) синтезатор.
За светодиодите: веднага щом влезете в режим на секвенсор, и четирите индикатора ще светнат. Когато стартирате последователността, светодиодите ще следват последователността (или последователностите). Поставих един светодиод на всеки четири потенциометра и е достатъчно за мен. Би било лесно да промените скицата, за да се справите с 16 светодиода, по един за всяка стъпка.
Функциите за пропускане на секвенсора на стъпки, които някой може да намери за необходими: MIDI синхронизация IN, стъпки задържане (можете да изключите само стъпка), автобиография.
Приложих часовник OUT, но някак си бъги. Опитах два подхода за това (един с и един без прекъсвания на таймера), но и двата са несъвършени (или тотално се провалят). MIDI часовникът трябва да бъде строг-перфектен, за да работи в дългосрочен план. Така или иначе се изпраща часовник и можете да го деактивирате директно на скицата (вижте по -късно за подробности).
Забележете, че този стъпков секвенсор е MIDI или цифров, ако предпочитате, така че за да работи, трябва да бъде свързан към синтезатор, който да позволява приемане и интерпретиране на този вид съобщения
Стъпка 3: Необходим хардуер и изграждане
След всички тези думи нека се забавляваме!
Ние вървим по общия път на Arduino. Използвах Arduino MEGA поради голямото количество аналогови входове (искаме кутия, пълна с копчета, нали ?!:)).
По -специално, Arduino MEGA може да обработва 16 аналогови входа (с някои хардуерни настройки, т.е. чрез муксиране, можете да увеличите това, но ние не вървим по този маршрут тук), така че ще изпратим 48 MIDI съобщения чрез 16 потенциометра. След това всеки потенциометър ще контролира три параметъра, по един за всяка "страница"; страниците се избират с бутон за превключване.
Списък на хардуера:
- 1x Arduino MEGA
- 16x линейни, еднооборотни 10 K омови потенциометри
- 16x копчета за гърне
- 4x моментни бутони
- 4x LED
- 6x 220 ома резистор
- 1x MIDI конектор
- 1x кутия за проекти за ABS
Някакъв кабел, спойка и шест - осем часа свободно време.
Използвах перфорирана дъска и няколко щифта, за да реализирам един вид щит, върху който запоявах резисторите и насочих кабелите. Това има предимството, че ви позволява да извадите вашия Arduino и да го използвате за други проекти (всички ние в един момент изчерпваме дъските на Arduino!). Така или иначе не е задължително и друг добър подход би могъл да бъде да се разлепи директно на място ардуиновите MEGA щифтове и кабели за запояване.
Използвах 200 ома резистори вместо резистори 220 ома и те така или иначе работят перфектно; Обзалагам се, че дори 150 ома резистори ще работят чудесно (както за MIDI комуникация, така и за светодиоди).
За да оформя кутията, първо нанесох малко адхезивна хартия върху повърхността на кутията, измерена накъде трябва да се пробият отворите (имах 3 см от отвора до дупката, за да позволя всички тенджери да се поберат) направих направляващите отвори и след това увеличих надясно размер, за да позволят на нишките на саксиите или копчетата да преминават с мини бормашина. Прекарах повече или по -малко 2 часа, за да завърша кутията. Разбрах и малки дупки и залепих светодиоди на място.
Също така пробих дупка за конектора MIDI OUT и още един за конектора за захранване arduino (използвах директно вградения USB конектор за захранване и здраво заключих arduino MEGA на място).
ПРЕДУПРЕЖДЕНИЕ: Винаги носете предпазни средства за очи и ръце по време на пробиване, независимо от материала, върху който работите (пластмаса, дърво, метали, композити … няма значение: вие сте изложени на риск както по отношение на електроинструменти, така и стружки от материал, ерозиран/изгорен от движещия се инструмент).
След това поставих всички тенджери и бутони и запоявах компонентите според приложената снимка. Ефективен начин да се намали теглото на крайния обект (и дължината на кабелите) е чрез свързване на всички манджи, както на 5V линия, така и на линия GND.
И преди някой да попита: Знам, тази кутия, която използвах, е грозна! Но беше безплатно и нищо не бива безплатно:)
Стъпка 4: Окабеляване
Окабеляването е лесно като окабеляване на потенциометър (x16), бутон (x4) и светодиод (x4) към платката на микроконтролера Arduino. Всички основи на Arduino са обхванати тук:)
Приложено е окабеляването. Забележи това:
- Използват се всички аналогови щифтове (от А0 до А15), по един за всеки потенциометър;
- Използват се 4 цифрови пина (входове) (от D51, D49, D47, D45), по един за всеки бутон;
- други 4 цифрови пина (изходи) се използват за светодиоди (D43, D41, D39, D37);
- MIDI изходната връзка е много проста и изисква два 220 ома резистора (но до 150 ома ще работи)
- Бутоните не изискват падащи резистори, тъй като скицата активира вътрешните резистори на Arduino.
- Всеки светодиод иска ограничителен резистор (200-220 ома са добре за зелените светодиоди).
Използвах изброените цифрови щифтове за стоки, но те не са "специални" щифтове (не използваме pwm възможностите на някои щифтове тук или някаква друга специфична функция за щифтове): можете да зададете любимите си цифрови щифтове, но не забравяйте да промените кодът съответно или вашите бутони/светодиоди няма да работят!
Моля, обърнете внимание, че връзката MIDI OUT на снимката е отпред (не отзад).
Стъпка 5: Софтуер - Някои връзки към теорията
Няма да обяснявам пълната теория зад съобщенията за System Exclusive или Control Change, защото има много добри статии и е глупаво да се пренаписва вече написаното.
Само една бърза връзка за внедряване на Roland SysEx:
- https://erha.se/~ronny/juno2/Roland%20Juno%20MIDI%2… (АНГЛИЙСКИ)
- https://www.2writers.com/eddie/tutsysex.htm (АНГЛИЙСКИ)
- https://www.chromakinetics.com/handsonic/rolSysEx.h… (АНГЛИЙСКИ)
- https://www.audiocentralmagazine.com/system-exclusi… (ITALIANO)
и някаква връзка за MIDI като цяло:
-
-https://www.music-software-development.com/midi-tut…
Стъпка 6: Софтуер - скицата
Тук е приложена скицата, която трябва да качите във вашия Arduino Mega.
Опитах се да запазя програмиста възможно най-"универсален", което означава, че се опитах да намаля специфичните за синтезатора парчета код. Опитах се да запазя кода възможно най-опростен. Добавянето на стъпков секвенсор направи нещата по -сложни и кодът по -объркан, така или иначе си струваше за мен. Поддържането на кода „универсален“е причината оформлението на контролера да е толкова „случайно“: то следва реда на параметрите на MIDI внедряването на производителя на синтезатора, определен в ръководството. В началото може да е объркващо, но ще свикнете много бързо.
Кодът по подразбиране/скица/фърмуер поддържа "само" 48 параметъра (три страници с по 16 копчета всяка), така че не може да бъде възможно да се контролират всички MIDI съобщения, поддържани от вашия синтезатор (помислете за Access Virus или Novation Supernova: те приемат повече или по -малко 110 MIDI съвместими параметри). Можете лесно да промените скицата, за да поддържате повече съобщения, ако е необходимо.
Всъщност се поддържат съобщения на SysEx, съвместими с Roland Alpha-Juno, JX8P, Korg DW8000 и Oberheim Matrix 6. Оставих кода за съвместими с Juno 106 съобщения в случай, че имате нужда от това.
За Матрица 6 трябваше да избера параметрите за контрол. Изпуснах третия плик, втората рампа и още нещо. Матрицата така или иначе не може да се управлява чрез MIDI, така че тя също е излязла. Нуждаете се от актуализирания фърмуер (версия 2.14 или по -нова) и трябва да зададете параметъра "Master -> Sysex Enable" на "3".
Часовникът е някак си бъги (часовникът трябва да е строг-перфектен, за да работи както трябва и вероятно двата подхода, които приех, когато не са ефективни). По подразбиране е забранено.
Кодът включва коментари, така че няма нужда от допълнително коментиране тук.
Както винаги: помнете, че аз не съм програмист в реалния живот и със сигурност има по -добри начини да кодираме това, от което се нуждаем тук. Ако сте програмист и имате предложение, добре дошли! Моля, изпратете ми всеки вариант, който може да повиши ефективността/ефективността на кода и аз ще го включа в основната скица (цитирайки очевидно Приносителя!).
Винаги научавам нещо ново, като прочета някой добър кодиращ код;)
Стъпка 7: Свързани проекти
Доколкото знам, няма контролер и секвенсор на MIDI параметри (може би старият Behringer BCR2000 с модифициран фърмуер?)
така или иначе, ако не сте склонни да реализирате подобна кутия, но много се интересувате от евтини решения за дистанционно управление на вашите синтезаторски параметри, помислете за тези други алтернативи:
- CTRL MIDI редактор: това е блестяща, безплатна програма с отворен код, работеща на win/Linux/mac, която може да превърне вашия компютър в пълен контролер за синтезатори на SysEx
- "junosex" CC конвертор на David Konsumer: този проект изисква незначителна хардуерна работа от ваша страна и идеята е страхотна - базиран на arduino CC към SysEx конвертор, който ви позволява да използвате общ не -SysEx MIDI контролер (т.е. AKAI MPK главна клавиатура), за да говорите с вашия синтезатор, готов за SysEx
Препоръчано:
Синтез на паралелен секвенсор: 17 стъпки (със снимки)
Parallel Sequencer Synth: Това е ръководство за създаване на прост секвенсор. Секвенсорът е устройство, което циклично произвежда поредица от стъпки, които след това управляват осцилатор. Всяка стъпка може да бъде присвоена на различен тон и по този начин да създаде интересни последователности или аудио ефекти
Прост секвенсор: 16 стъпки (със снимки)
Прост секвенсор: Един от ключовете за правене на добра музика е безмисленото повторение. Именно в това се справя простият секвенсор. Той прави едно и също нещо отново и отново в последователност от осем бележки. Можете да регулирате честотата на бележката, продължителността на бележката и
Atari Punk Console с бебе 8 секвенсор за стъпки: 7 стъпки (със снимки)
Atari Punk Console с Baby 8 Step Sequencer: Тази междинна конструкция е всичко в едно Atari Punk Console и Baby 8 Step Sequencer, които можете да фрезерате на настолна PCB фреза на Bantam Tools. Състои се от две платки: едната е платка с потребителски интерфейс (UI), а другата е помощна програма bo
Програмируем RGB LED секвенсор (използвайки Arduino и Adafruit Trellis): 7 стъпки (със снимки)
Програмируем RGB LED секвенсор (използвайки Arduino и Adafruit Trellis): Синовете ми искаха цветни LED ленти да осветяват бюрата си и не исках да използвам консервиран RGB лентов контролер, защото знаех, че ще им омръзне фиксираните модели тези контролери имат. Мислех също, че това ще бъде чудесна възможност да създам
4 -кратен цифров секвенсор: 19 стъпки (със снимки)
Цифров секвенсор с четири стъпки: CPE 133, Cal Poly San Luis Obispo Създатели на проекти: Джейсън Джонстън и Бьорн Нелсън В днешната музикална индустрия, един от най -често използваните „ldquo; инструменти“rdquo; е цифровият синтезатор. Всеки жанр музика, от хип-хоп до поп и вечер