Мазмұны:

Арпеггирлейтін синтезатор (маса I): 6 қадам
Арпеггирлейтін синтезатор (маса I): 6 қадам

Бейне: Арпеггирлейтін синтезатор (маса I): 6 қадам

Бейне: Арпеггирлейтін синтезатор (маса I): 6 қадам
Бейне: Голубая стрела (1958) фильм 2024, Желтоқсан
Anonim
Арпеггициялық синтезатор (маса I)
Арпеггициялық синтезатор (маса I)

Mosquito I - бұл Arduino Nano мен Mozzi дыбыс синтезі кітапханасын қолданатын кішігірім синтезатор. Ол 8 қадамнан тұратын жиырмадан астам тізбекті ойнай алады, бірақ сіз қалағанша реттелетін реттіліктерді қоса аласыз. Орнату өте қарапайым және көп бөлшектерді қажет етпейді.

Жабдықтар:

  • Arduino Nano (немесе кез келген Arduino жұмыс істеуі керек)
  • 5 еа потенциометр (10K сызықтық)
  • 2 ea түймелерін басыңыз
  • 1 светодиод
  • 1 еа резистор (330 Ом)
  • 2 еа резистор (1K)
  • 1 еа резистор (2K)
  • 1 еа электролиттік конденсатор (100 uF)
  • 1 еа керамикалық конденсатор (33 нФ)
  • 1 стерео ұяшығы
  • Қосылатын сым
  • Нан тақтасы

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

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

Алдымен наноды тақтаға қойып, өз күшімізді орнатайық:

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

2 -қадам: басқару элементтерін қосу

Басқару элементтерін қосу
Басқару элементтерін қосу

Mosquito I басқару үшін бес потенциометр мен екі түймені қолданады.

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

  1. Кәстрөлдерді нан тақтасына қойыңыз. Кәстрөлдерді әр түйреуіш өз қатарында болатындай етіп орналастырыңыз.
  2. Кәстрөлдерді қуат рельстеріне қосыңыз. Әр кастрөлдің сол жақ түйреуішін (егер сіз тұтқа жағына қарасаңыз) нан тақтасындағы теріс рельстердің біріне қосыңыз. Әр кастрөлдің оң жақ түйреуішін нан тақтасының оң рельстерінің біріне жалғаңыз.
  3. Кәстрөлдерді Arduino -ға қосыңыз. Әр кастрөлдің орталық түйреуішін Arduino аналогтық түйреуіштердің біріне қосыңыз. Бірінші кастрөлдің орталық түйрегіші A0 -ге, екінші кастрюль A1 -ге қосылады және соңғы ыдыс A4 -ке қосылады.

Басу түймелері:

  1. Батырмаларды тақтаға қойыңыз. Екі түймені тақтаға орналастырыңыз, олар орталық каналда орналасады.
  2. Оң жақтарын қосыңыз. Нан тақтасының бір жағында түйме түйреуіштерінің бірін оң рельске жалғаңыз.
  3. Теріс жақтарды қосыңыз. 1K резисторларының бірін нан тақтасына орналастырыңыз, сонда бір ұшы түйменің пайдаланылмаған түйреуішіне, ал резистордың екінші жағы теріс рельске қосылады.
  4. Ардуиноға қосылу түймесі. Түймені теріс рельске D2 істігіне қосатын қатардағы сымды жүргізіңіз. Басқа батырмамен де солай жасаңыз, бірақ оны D3 -ке қосыңыз.

3 -қадам: нәтижелерді қосу

Шығаруларды қосу
Шығаруларды қосу

Біз аудионы 9 -шы пинден шығарамыз, сонымен қатар әр тізбектің бірінші қадамында жарық диодты жыпылықтаймыз. Бұл үшін жабдықты қалай орнату керектігін біліңіз.

ЖАРЫҚ ДИОДТЫ ИНДИКАТОР

  1. Светодиодты тақтадағы бос орынға қойыңыз.
  2. Жарық диодының теріс (қысқа) аяғын теріс рельске қосыңыз.
  3. Тоқты шектейтін резисторды орналастырыңыз. 330 Ом резистордың бір жағын жарықдиодты оң (ұзын) аяғына жалғаңыз. Резистордың екінші жағын Arduino D4 түйреуішіне қосыңыз.

Аудио шығысы

  1. RC желісін орналастырыңыз. Arduino шығыс сигналы 9 түйреуіштен келеді, бірақ сигнал кейбір динамиктер өңдей алатыннан сәл қызып кетуі мүмкін. Оны сызық деңгейіне жақындату үшін мен RC желісін қостым (Notes & Volts дизайнына негізделген). 33nF және 100uF конденсаторларын суретте/схемада көрсетілгендей 2K резисторымен бірге орналастырыңыз. Электролиттік 100uF конденсатордың оң полярлыққа қосылғанына көз жеткізіңіз (оң/ұзын аяғы 9 түйреуіші Arduino -ға және теріс/қысқа аяғы ұяға қосылған).
  2. Аудио ұясының теріс жағын жерге қосыңыз. Дыбыс ұясының қосылымдары сіз қолданатын түрге байланысты аздап өзгереді, бірақ олардың барлығы бірдей жұмыс істейді. Біз домкраттың жеңін жерге қосуымыз керек. Бұл кейде минус белгісімен белгіленеді немесе «жең», «сақина» немесе «gnd» деп белгіленеді. Егер дыбыс ұяшығында жапсырмалар жоқ болса, сізге деректер кестесімен кеңесу немесе ұяны мұқият тексеру қажет болады, және сіз білтектің жеңіне немесе сыртқы сақинасына қандай түйреуіш қосылғанын анықтай аласыз ба?
  3. Дыбыс ұясының оң жағын 100uF конденсатордың теріс жағына қосыңыз. Біздің дыбыстық сигнал енді Arduino -ның 9 -штырынан RC желісі арқылы ағып, 100uF конденсатордың теріс жағынан шығады. Біз мұны аудио ұясының оң жағына қосамыз. Бұл әдетте плюс белгісімен белгіленеді немесе «ұш» деп белгіленуі мүмкін. Тағы да, егер ол таңбаланбаған болса, онда ұяның ұшына қандай түйреуіш қосылатынын анықтау үшін оны тексеру қажет болуы мүмкін. Сонымен қатар, егер сіз стерео ұясын қолдансаңыз, L ұшы мен R ұшы байланысы болуы мүмкін. Біз моно сигнал шығаратындықтан, сіз тек қосылымдардың біреуіне қосыла аласыз.

Маңызды: Егер сіз дыбыстың тым тыныш екенін білсеңіз, RC желісін 1 -қадамда жоюға және Arduino -ның 9 -штырынан аудиоға тікелей қосылуыңызға болады. Егер сіз дыбысты дыбыс қаттылығы бар сыртқы компьютер динамиктері сияқты күшейткішпен қосатын болсаңыз, бұл жақсы болуы мүмкін, бірақ мен оны құлаққап, құлақаспап немесе динамикке тікелей қосу сияқты нәрселерге ұсынбаймын. Егер сіз RC желісін өшіруді шешсеңіз, мен Arduino -ны өшірмес бұрын динамиктердің дыбыс деңгейін толығымен төмендетуді, содан кейін динамиктерді өшірмеу үшін дыбыс деңгейін біртіндеп арттыруды ұсынамын.

Барлығын орнатқаннан кейін, барлық қосылымдардың дұрыс көрінетінін және жоғарыдағы суретке және схемаға сәйкес келетінін екі рет тексеріңіз

4 -қадам: кодты жүктеу

Аппараттық құралдардың барлығы дайын болғандықтан, біз бағдарламалық қамтамасыз етуді шешуге дайынбыз:

  1. Arduino IDE іске қосыңыз. Компьютерде Arduino IDE іске қосыңыз (егер ол болмаса, оны https://www.arduino.cc/en/software сайтынан жүктеуге болады).
  2. Mozzi кітапханасын жүктеп алыңыз. Моцци кітапханасы - бұл біздің Arduino -ны синтезатор ретінде пайдалануға мүмкіндік береді. Бұл кітапхананы IDE -ге алу үшін Mozzi github бетіне өтіңіз https://sensorium.github.io/Mozzi/download/. Жасыл «Код» түймесін басып, ZIP жүктеуді таңдаңыз.
  3. Zip файлынан Mozzi кітапханасын орнатыңыз. Arduino IDE бағдарламасында Sketch-> Include Library-> ZIP Library қосу бөліміне өтіңіз … Оны қосу үшін жүктелген zip файлына өтіңіз. Енді сіз Mozzi-ны эскиз-кітапхананы қосу бөлімінің астында көруге тиіссіз.
  4. Mosquito I Arduino кодын жүктеп алыңыз. Сіз мұны https://github.com/analogsketchbook/mosquito_one github сайтынан ала аласыз. (Назар аударыңыз, егер схемалар қажет болса, онда схемалар да бар.
  5. Arduino -ны компьютерге қосыңыз және кодты жүктеңіз.

5 -қадам: Айналада хабарлау

Міне бітті. Сіз динамиктерді аудио ұяшыққа қосып, сол италитті нанодан синтездің тәтті дыбысын естуіңіз керек! Егер сіз бастапқыда ештеңе естімесеңіз, лайықты бастапқы мәндерді алғаныңызға көз жеткізу үшін барлық кастрөлдердің тұтқаларын ортаға салып көріңіз.

Міне басқару элементтері не істейді:

Кәстрөлдер:

Rate: Бұл секвентердің қаншалықты жылдам ойнайтынын бақылайды. Оны өшіру дискретті ноталарды ретімен ойнайды. Жоғары қарай бұру ноталарды бір -біріне жағып, мүлдем жаңа толқын пішіндерін жасайды.

Легато: Екінші ыдыс легато немесе нота ұзындығын басқарады. Оны солға бұру қысқа, стикато жазбаларды шығарады, ал оңға бұру ұзын ноталарды шығарады.

Қадам: Бұл реттілік үшін негізгі қадамды орнатады. Қадамды басқару MIDI мәндерін орнатады, сондықтан ол қадамның үздіксіз ауысуына емес, жарты семестрдегі қадамды жоғарылатады/төмендетеді.

Кезең: Бұл тұтқаны оңға бұру нәзік фазалық әсер береді. Техникалық тұрғыдан алғанда, бұл Mosquito I -дегі екі осциллятордың аздап ажыратылуына әкеледі, бұл фазаны тудырады. Бұл қадаммен қадағалау емес, сондықтан фазалық эффект төменгі сатыдағы жазбаларда байқалуы мүмкін.

Сүзгі: Бұл түйме төмен өту сүзгісінің үзілу жиілігін басқарады. Оны солға бұру жоғары жиілікті өшіреді, ал дыбыс қаттырақ шығады, ал оңға бұру - жарқын дыбыс шығарады.

Түймелер:

Mosquito әдепкі бойынша ойнай алатын жиырмадан астам әр түрлі реттілікке ие. Түймешіктер ойнатылатын тізбекті таңдауға мүмкіндік береді. Бір түйме сізді тізбектер тізіміне көтереді, ал екіншісі тізімнен төмен түседі.

6 -қадам: теңшеу

Теңшеу
Теңшеу

Мен әдепкі тізбектердің жиынтығын қостым, көбіне әр түрлі масштабтар, бірақ сіз ойнатылып жатқан ноталардың ретін өзгертуге, жаңаларын қосуға немесе тізбектегі жазбалар санын өзгерту үшін кодты оңай реттей аласыз. Төменде сіз оны баптағыңыз келсе, бұл қалай жасалатыны туралы егжей -тегжейлі.

Бар тізбектегі ескертулерді өзгерту

Кезектіліктер NOTES деп аталатын массивтер массивінде сақталады. Әр жазба MIDI жазбасының мәні ретінде сақталады, сондықтан егер сіз белгілі бір тізбектегі жазбаларды өзгерткіңіз келсе, MIDI ноталарының нөмірлерін сол реттілікке өзгертіңіз. Әдепкі орнату - бір ретте 8 қадамды ойнау, осылайша сізде тек 8 MIDI мәні болуы мүмкін (әр түрлі реттік ұзындықтарға ие болғыңыз келсе төменде қараңыз).

Бір ескеретін жайт, қадам тұтқасы NOTES массивінде көрсетілген MIDI мәндеріне нотаның ауысуын қосады. Тұтқа ортаға қойылғанда, ол массивте көрсетілген MIDI жазбаларын ойнатады, бірақ сіз дыбыс тұтқасын бұрған кезде ол ойналатын ноталарға жартылай тон қосады немесе азайтады.

Жаңа тізбектерді қосу

Тізім соңына 8 нотадан тұратын жаңа массив қосу арқылы NOTES массивіне жаңа тізбектерді қосуға болады. Егер сіз мұны жасасаңыз, numSequences айнымалы мәнін жаңа тізбектер санына сәйкес өзгерту қажет болады. Мысалы, NOTES массивінде әдепкі бойынша 21 реттілік бар, сондықтан numSequences айнымалы мәні 21 -ге орнатылады. Егер бір жаңа тізбекті қоссаңыз, numSequences айнымалысын 22 -ге өзгерту қажет болады.

Сіз қалағаныңызша жаңа тізбектерді қоса аласыз.

Реттік ұзақтығын өзгерту

Егер сіз тізбектің ұзындығын өзгерткіңіз келсе (егер сіз 4 сатылы немесе 16 қадамдық тізбекті айтқыңыз келсе), сіз мұны жасай аласыз, бірақ жалғыз ескерту-барлық тізбектердің ұзындығы бірдей болуы керек. Сондай -ақ, numNotes айнымалысын реттілік ұзындығымен сәйкестендіру қажет.

Басқа өзгерістер

Бұл оқулықтың ауқымынан тыс толқын пішінінің түрлері, сүзгі параметрлері/мәндері сияқты басқа да көптеген теңшелімдер бар. Mozzi кодын анықтау қиын болуы мүмкін, бірақ мен кодтың әр түрлі бөліктері не істеп жатқанын көрсету үшін кодты мүмкіндігінше құжаттауға тырыстым.

Mozzi үшін кодтың бірнеше негізгі бөліктері бар, олар өте нақты пайдаланылады және мен оларды сізге не үшін қолданылатынын түсіну үшін төменде келтірдім:

  • setup () - Егер сіз Arduinos үшін осы функциямен таныспастан бұрын бағдарламаланған болсаңыз және ол Mozzi -де дәл солай қолданылады. Біз мұны негізінен осцилляторлар, сүзгілер және т.б. үшін әдепкі параметрлерді орнату үшін қолданамыз.
  • updateControl () - бұл жерде Mozzi кодының арыстандық үлесі өз жұмысын жасайды. Бұл жерде біз кастрюль мен түйме мәндерін оқимыз, сол мәндерді синтезаторға беру үшін картаға түсіреміз және түрлендіреміз және онда реттілік жасалады.
  • updateAudio () - Бұл Mozzi кітапханасының соңғы нәтижесі. Әдетте бұл жерде код өте аз сақталады және бұл функцияны Mozzi қолданатын барлық циклдық циклдарды барынша арттыру үшін қолданады. Шыбын -шіркей кодынан көріп тұрғаныңыздай, бұл біршама жұмбақ болуы мүмкін, бірақ біз әр түрлі толқын пішіндерін біріктіру/көбейту, содан кейін оларды белгілі бір сандар диапазонына сәйкестендіру үшін биттерді ауыстыру арқылы жасаймыз. Бұл функцияны өте жеңіл күйде ұстау жақсы (сериялық қоңыраулар немесе оқу түйреуіштері емес) және оның орнына controlUpdate () функциясына көптеген заттарды қою керек. Mozzi құжаттамасы бұл туралы толығырақ айтады.

Ұсынылған: