Мазмуну:

Arpeggiating Synthesizer (Mosquito I): 6 кадам
Arpeggiating Synthesizer (Mosquito I): 6 кадам

Video: Arpeggiating Synthesizer (Mosquito I): 6 кадам

Video: Arpeggiating Synthesizer (Mosquito I): 6 кадам
Video: Top 10 Most Expensive Synthesizers In The World 2024, Июль
Anonim
Arpeggiating Synthesizer (Mosquito I)
Arpeggiating Synthesizer (Mosquito I)

Mosquito I - Arduino Nano жана Mozzi үн синтезинин китепканасын колдонгон кичинекей арпеггиант синтезатор. Ал жыйырмадан ашык 8 кадамдык ырааттуулукту ойной алат, бирок сиз каалагандай ыңгайлаштырылган тизмектерди кошо аласыз. Орнотуу салыштырмалуу жөнөкөй жана көп бөлүктөрдү талап кылбайт.

Берилиштер:

  • Arduino Nano (же кандайдыр бир Arduino чындап иштеши керек)
  • 5 еа потенциометр (10K сызыктуу)
  • 2 ea баскычтар
  • 1 LED
  • 1 еа резистор (330 ом)
  • 2 еа резистор (1K)
  • 1 еа резистор (2K)
  • 1 еа Электролиттик конденсатор (100 uF)
  • 1 еа керамикалык конденсатор (33 нФ)
  • 1 дана стерео джек
  • Кошуу зымы
  • Breadboard

1 -кадам: Arduino орнотуу

Arduino орнотуу
Arduino орнотуу
Arduino орнотуу
Arduino орнотуу

Биринчиден, нанону нанга алып, күчүбүздү орнотолу:

  1. Нанону нан тактасына коюңуз. Жогорудагы сүрөттө көрсөтүлгөндөй жайгаштырыңыз. Бул нан тактасынын борбордук каналын басып өтүшү керек. Сиз аны панелдин бир четине, USB порту ошол тарапка караганын каалайсыз. Биз туташтырганда кабель тоскоолдук кылбайт. Эгерде сиз Uno же Mega сыяктуу чоңураак Arduino колдонуп жатсаңыз, албетте, аны нан тактасына орнотпойсуз.
  2. Электр рельстерин Arduino менен туташтырыңыз. Нан тактаңыздын оң (кызыл) рельстеринин бирин зым же секирүүчү зымдарды колдонуу менен Arduino 5V пинине туташтырыңыз. Андан кийин терс (көк) рельстердин бирин Нанонун GND казыктарынын бирине туташтырыңыз.
  3. Электр рельстерин бири -бирине туташтырыңыз. Нандын эки жагындагы рельстердин боюна электр энергиясын алуу үчүн, бир жактагы оң темирден экинчи жактагы оң темирге зым тартып, бири -бири менен нандын эки тарабындагы рельстерди туташтырыңыз. Муну терс рельстер менен кайталаңыз.

2 -кадам: Controls кошуу

Controls кошуу
Controls кошуу

Mosquito I башкаруу үчүн беш потенциометрди жана эки баскычты колдонот.

Потенциометрлер:

  1. Көмөччөлөрдү нан тактасына коюңуз. Казандарды ар бир төөнөгүч өз катарында тургандай кылып коюңуз.
  2. Казандарды электр рельсине туташтырыңыз. Ар бир казандын сол жагындагы пинди (эгер сиз баскычты карап жатсаңыз) нан тактасындагы терс рельстердин бирине туташтырыңыз. Ар бир казандын оң капталындагы пинди нан тактасынын оң рельстеринин бирине туташтырыңыз.
  3. Казандарды Arduino менен туташтырыңыз. Ар бир казандын борбордук пинин Arduinoдогу аналогдук казыктардын бирине туташтырыңыз. Биринчи казандын борбордук пини A0, экинчи идишти A1ге туташтырат жана акыркы идиш A4 менен туташат.

Баскычтар:

  1. Баскычтарды нан тактасына коюңуз. Нан тактасына эки баскычты койгула, алар борбордук каналды басып өтүшөт.
  2. Позитивдүү жактарды байланыштырыңыз. Нан тактасынын бир жагында, баскычтын казыктарынын бирин оң темирге туташтырыңыз.
  3. Терс жактарын байланыштырыңыз. 1K каршылыгынын бирин нан тактасына койгула, анын бир учу баскычтын колдонулбаган пинине, ал эми каршылардын экинчи тарабы терс темир жолго туташат.
  4. Ардуиного туташуу баскычы. Баскычты терс темир жолго D2 төөнөгүчкө туташтырган катардагы зымды иштетиңиз. Башка баскыч менен да ушундай кылыңыз, бирок аны D3кө туташтырыңыз.

3 -кадам: Чыгууларды кошуу

Чыгууларды кошуу
Чыгууларды кошуу

Биз аудиону пин 9дан чыгарабыз, ошондой эле ар бир ырааттуулуктун биринчи баскычында LEDди күйгүзөбүз. Бул үчүн аппаратты кантип орнотуу керек.

LED

  1. Нан тактасындагы бош жерге LED диодун коюңуз.
  2. LED терс (кыска) бутун терс темир жолго туташтырыңыз.
  3. Учурдагы чектөөчү резисторду коюңуз. 330 Ом резистордун бир тарабын LEDдин оң (узун) бутуна туташтырыңыз. Резистордун экинчи тарабын Arduino D4 пинине туташтырыңыз.

Аудио чыгуу

  1. RC тармагын коюңуз. Ардуинодон чыккан сигнал 9 -пинден келип жатат, бирок сигнал кээ бир спикерлер иштете алгандан бир аз ысып кетиши мүмкүн. Аны линиянын деңгээлине жакындатуу үчүн, мен RC тармагын коштум (Notes & Voltsтун дизайнына негизделген). 33nF жана 100uF конденсаторлорун, 2K каршылыгы менен бирге, сүрөттө/схемада көрсөтүлгөндөй коюңуз. Электролиттик 100uF конденсатору туура полярдык менен туташкандыгын текшериңиз (оң/узун бут Arduino боюнча 9 -пинке жана терс/кыска шыйракка туташкан).
  2. Аудио уячасынын терс тарабын жерге туташтырыңыз. Аудио джек туташуулары сиз колдонгон түргө жараша бир аз айырмаланат, бирок жалпысынан баары бирдей иштейт. Биз уячанын жеңин жерге туташтырышыбыз керек. Бул кээде минус белгиси менен белгиленет же "жең", "шакек" же "гнд" деп белгиленет. Эгерде аудио уячаңызда эч кандай этикеткалар жок болсо, анда сиз маалымат барагына кайрылууңуз керек же жөн эле жакшылап текшерип көрүңүз жана кайсы пин пиндин же жеңдин сырткы шакегине туташкандыгын аныктай аласызбы.
  3. Аудио уячасынын оң жагын 100uF конденсаторунун терс жагына туташтырыңыз. Биздин аудио сигнал азыр Arduino пин 9дан RC тармагы аркылуу агат жана 100uF конденсаторунун терс тарабынан чыгат. Биз муну аудио уячабыздын оң жагына байланыштырабыз. Бул көбүнчө плюс белгиси менен белгиленет же "учу" деп жазылышы мүмкүн. Дагы, эгерде ал белгиленген эмес болсо, анда кайсы уячанын учуна туташа турганын билүү үчүн аны текшерүү керек болушу мүмкүн. Ошондой эле, эгер сиз стерео уячасын колдонуп жатсаңыз, L учунда жана R учунда туташуу болушу мүмкүн. Биз моно сигналды чыгарып жаткандыктан, сиз жөн гана учтуу туташуулардын бирине туташа аласыз.

Маанилүү: Эгер аудио өтө тынч экенин байкасаңыз, анда 1 -кадамда RC тармагын жок кылып, Arduino 9 -пинден аудиого түз туташа аласыз. Эгерде сиз аудиону тышкы компьютер динамиктери сыяктуу үн күчөткүчү бар нерсеге туташтырып жатсаңыз, анда эч нерсе болбошу керек, бирок мен аны гарнитура, наушник же динамикке түз туташтыруу сыяктуу нерселерге сунуштабайт элем. Эгерде сиз RC тармагын жок кылууну чечсеңиз, мен Arduino'ду күйгүзүүдөн мурун динамиктериңиздин үнүн аягына чейин төмөндөтүүнү, анан динамиктерди өчүрбөө үчүн үнүн акырындык менен жогорулатууну сунуштайм.

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

4 -кадам: Кодду жүктөө

Эми аппараттык жабдуулар орнотулган соң, биз программалык камсыздоо жагын чечүүгө даярбыз:

  1. Arduino IDEди ишке киргизиңиз. Компьютериңизде Arduino IDEди ишке киргизиңиз (эгер сизде жок болсо, аны https://www.arduino.cc/en/software сайтынан жүктөп алсаңыз болот).
  2. Mozzi китепканасын жүктөп алыңыз. Mozzi китепканасы - бул биздин Arduino -ны синтезатор катары колдонууга мүмкүнчүлүк берген нерсе. Бул китепкананы IDEге алуу үчүн, Mozzi github баракчасына өтүңүз https://sensorium.github.io/Mozzi/download/. Жашыл "Код" баскычын чыкылдатып, ZIPти жүктөөнү тандаңыз.
  3. Zip файлынан Mozzi китепканасын орнотуңуз. Arduino IDEде Sketch-> Китепкананы кошуу-> ZIP Китепканасын кошуу бөлүмүнө өтүңүз … Аны кошуу үчүн жүктөлгөн zip файлына өтүңүз. Эми Mozzi эскиз-> Китепкананы кошуу бөлүмүнүн астында көрүлүшү керек.
  4. Mosquito I Arduino кодун жүктөп алыңыз. Муну https://github.com/analogsketchbook/mosquito_one менин github сайтынан ала аласыз. (Эскертүү, схемалар ошол жерде да бар, эгер сизге зым шилтеме үчүн керек болсо.
  5. Ардуинону компьютерге туташтырып, кодду жүктөңүз.

5 -кадам: Around Messing

Дал ушул. Сиз динамиктериңизди аудио уячасына туташтырып, ошол ittybitty Nano'дон арпеггиацияланган синтездин таттуу үнүн уга алышыңыз керек! Эгерде сиз башында эч нерсе укпасаңыз, татыктуу баштапкы баалуулуктарга ээ экениңизди текшерүү үчүн бардык казандардагы топчолорду борборлоштуруп көрүңүз.

Бул жерде көзөмөлдөр эмне кылат:

Казандар:

Баа: Бул секвенердин канчалык тез ойногонун көзөмөлдөйт. Аны өчүрүү дискреттик ноталарды ирети менен ойнойт. Аны өйдө буруп, ноталарды жаап, таптакыр жаңы толкун формаларын түзөт.

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

Чайыр: Бул ырааттуулук үчүн базалык кадамды белгилейт. Чайырды көзөмөлдөө MIDI маанилерин орнотуп жатат, ошондуктан ал тынымсыз кадамдын алмашуусуна караганда жарым чейрек ичиндеги кадамды жогорулатат/азайтат.

Этап: Бул баскычты оңго буруу тымызын этап эффектин киргизет. Техникалык жактан алганда, бул Mosquito Iдеги эки осциллятордун бир аз ажырашына себеп болуп жатат, бул этаптын пайда болушуна себеп болот. Бул кадам менен байкоо жүргүзүү эмес, андыктан этап эффекти төмөнкү чайыр ноталарында көбүрөөк байкалат.

Чыпка: Бул баскыч Төмөн өтүү чыпкасынын чектүү жыштыгын көзөмөлдөйт. Аны солго буруу жогорку жыштыктарды өчүрүп, үнү начарыраак чыгат, ал эми оңго бурулганда жарык үн чыгат.

Баскычтар:

Mosquito демейки боюнча ойной турган жыйырмадан ашык ар кандай тизмектерге ээ. Баскычтар кайсы тизмек ойноп жатканын тандоого мүмкүндүк берет. Бир баскыч сизди тизмектердин тизмесине көтөрөт, экинчиси тизмеге түшөт.

6 -кадам: Ыңгайлаштыруу

Ыңгайлаштыруу
Ыңгайлаштыруу

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

Эскертүүлөрдү учурдагы ырааттуулукта өзгөртүү

Тизилиштер NOTES деп аталган массивдер массивинде сакталат. Ар бир нота MIDI нотасынын мааниси катары сакталат, андыктан эгер сиз белгилерди белгилүү бир ырааттуулукта өзгөрткүңүз келсе, ошол катар үчүн MIDI нота номерлерин өзгөртүңүз. Демейки орнотуу - бул ырааттуулукта 8 кадамды ойноо, андыктан ырааттуулукта 8 MIDI мааниси гана болушу мүмкүн (эгер сиз ар кандай ырааттуулук узундугуна ээ болууну кааласаңыз, төмөндү караңыз).

Белгилей кетчү нерсе, кадам баскычы NOTES массивинде көрсөтүлгөн MIDI маанилерине нота офсетин кошот. Баскычты борборго койгондо, ал массивде көрсөтүлгөн MIDI ноталарын ойнотот, бирок сиз баскычты бурганда ал ойнотулуп жаткан ноталарга жарым тон кошуп же алып салат.

Жаңы ырааттуулуктарды кошуу

NOTES массивине жаңы тизмектерди тизменин аягына жаңы 8 нотадан турган массивди кошуу менен кошо аласыз. Эгер сиз муну кыла турган болсоңуз, анда numSequences өзгөрмөсүнүн маанисин жаңы ырааттуулук санына дал келтирүү үчүн да өзгөртүшүңүз керек болот. Мисалы, NOTES массивинде демейки боюнча 21 ырааттуулук бар, андыктан numSequences өзгөрмөсү 21 деп коюлат. Эгер бир жаңы ырааттуулукту кошсоңуз, numSequences өзгөрмөсүн 22ге алмаштырышыңыз керек болот.

Сиз каалагандай көп жаңы тизмектерди кошо аласыз.

Кезектин узундугун өзгөртүү

Эгерде сиз ырааттуулугуңуздун узундугун өзгөрткүңүз келсе (эгер сиз 4 баскычтуу же 16 баскычтуу ырааттуулукту айткыңыз келсе), сиз муну кыла аласыз, бирок бир гана эскертүү-бардык тизмектердин узундугу бирдей болушу керек. Сиз ошондой эле numNotes өзгөрмөсүн тизмектериңиздин узундугуна дал келтиришиңиз керек.

Башка өзгөртүүлөр

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

Mozzi үчүн коддун бир нече негизги бөлүктөрү бар, алар белгилүү бир колдонулуштарга ээ жана мен аларды сизге эмне үчүн колдонулганын түшүнүү үчүн төмөндө тизмектедим:

  • setup () - Эгерде сиз бул функция менен таанышканга чейин Arduinosго программалаган болсоңуз жана ал Mozziде абдан көп колдонулат. Биз муну көбүнчө осцилляторлор, фильтрлер ж.
  • updateControl () - Бул жерде Mozzi кодунун арстан үлүшү өз ишин аткарып жатат. Бул жерде биз казандын жана баскычтын маанилерин окуйбуз, ошол баалуулуктарды синтезаторго берүү үчүн картага айландырабыз жана тизилүү кайда жасалат.
  • updateAudio () - Бул Mozzi китепканасынын акыркы чыгарылышы. Адатта бул жердеги код абдан кичинекей жана арык болгондуктан, бул функцияны Mozzi колдоно турган бардык саат циклдерин максималдаштыруу үчүн колдонот. Чиркейлердин кодунан көрүнүп тургандай, бул бир аз сырдуу болушу мүмкүн, бирок биз негизинен ар кандай толкун формаларыбызды айкалыштырып/көбөйтүп, анан аларды белгилүү бир сандар диапазонуна ылайыкташтырып өткөрүп жатабыз. Бул функцияны абдан жеңил кармоо (Сериялык чалуулар же окуу казыктары эмес) жана алардын көбүн controlUpdate () функциясына коюу эң жакшы. Mozzi документтери бул жөнүндө кененирээк маалымат берет.

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