Съдържание:

Арпегиращ синтезатор (Комар I): 6 стъпки
Арпегиращ синтезатор (Комар I): 6 стъпки

Видео: Арпегиращ синтезатор (Комар I): 6 стъпки

Видео: Арпегиращ синтезатор (Комар I): 6 стъпки
Видео: Еркектің тез бітіріп қоюы.Емі қандай? 2024, Юли
Anonim
Арпеджиращ синтезатор (Mosquito I)
Арпеджиращ синтезатор (Mosquito I)

Mosquito I е малък синтезатор за арпегиране, който използва Arduino Nano и библиотеката за синтез на звук Mozzi. Той може да възпроизвежда над двадесет последователности от 8 стъпки, но можете да добавите толкова персонализирани последователности, колкото искате. Той е сравнително лесен за настройка и не изисква много части.

Консумативи:

  • Arduino Nano (или всеки Arduino наистина трябва да работи)
  • 5 ea потенциометри (10K линейни)
  • 2 ea Бутони
  • 1 ea LED
  • 1 ea резистор (330 ома)
  • 2 ea резистор (1K)
  • 1 ea резистор (2K)
  • 1 ea електролитен кондензатор (100 uF)
  • 1 ea керамичен кондензатор (33 nF)
  • 1 ea стерео жак
  • Тел за свързване
  • Платка

Стъпка 1: Настройка на Arduino

Настройване на Arduino
Настройване на Arduino
Настройване на Arduino
Настройване на Arduino

Първо, нека да поставим Nano в чертежа и да настроим нашата мощност:

  1. Поставете Nano върху дъската. Поставете, както е показано на изображението по -горе. Тя трябва да се намира в централния канал на дъската. Ще искате той да бъде разположен към единия край на макета, с USB порта, обърнат от тази страна. По този начин кабелът няма да попречи, когато го включим. Ако използвате по -голям Arduino като Uno или Mega, разбира се, няма да го монтирате на макета.
  2. Свържете захранващите релси към Arduino. Свържете една от положителните (червени) релси на вашата дъска към 5V щифта на Arduino, като използвате проводници или проводници. След това свържете една от отрицателните (сини) релси към един от GND щифтовете на Nano.
  3. Свържете захранващите шини един към друг. За да получите захранване по релсите от двете страни на макета, свържете релсите от двете страни на макета един към друг, като прокарате проводник от положителната релса от едната страна към положителната релса от другата страна. Повторете това с отрицателните релси.

Стъпка 2: Добавяне на контролите

Добавяне на контролите
Добавяне на контролите

Mosquito I използва пет потенциометра и два бутона за управление.

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

  1. Поставете саксиите върху дъската. Поставете саксиите така, че всеки щифт да е на свой ред.
  2. Свържете тенджерите към захранващите шини. Свържете левия страничен щифт на всяко гърне (ако гледате от страна на копчето) към една от отрицателните релси на дъската. Свържете десния страничен щифт на всяко гърне към една от положителните релси на дъската.
  3. Свържете саксии към Arduino. Свържете централния щифт на всеки пот към един от аналоговите щифтове на Arduino. Централният щифт на първия пот се свързва с A0, вторият пот с A1 и така нататък, като последният пот е свързан с A4.

Бутони:

  1. Поставете бутоните върху дъската. Поставете двата бутона за натискане върху чертежа, така че да се движат по централния канал.
  2. Свържете положителните страни. От едната страна на платката свържете един от щифтовете на бутона с положителната шина.
  3. Свържете отрицателните страни. Поставете един от резисторите 1K върху чертежа, така че единият край да е свързан с неизползвания щифт на бутона, а другата страна на резистора да се свърже с отрицателната шина.
  4. Бутон за свързване към Arduino. Прокарайте проводник на реда, който свързва бутона с отрицателната шина към щифта D2. Направете същото с другия бутон, но го свържете към D3.

Стъпка 3: Добавяне на изходи

Добавяне на изходи
Добавяне на изходи

Извеждаме аудио от щифт 9, както и мигаме светодиод на първата стъпка от всяка последователност. Ето как да настроите хардуера за това.

LED

  1. Поставете светодиод на празно място на дъската.
  2. Свържете отрицателния (къс) крак на светодиода към отрицателната шина.
  3. Поставете резистор, ограничаващ тока. Свържете едната страна на резистор от 330 ома към положителния (дълъг) крак на светодиода. Свържете другата страна на резистора към щифт D4 на Arduino.

Аудио изход

  1. Поставете RC мрежата. Изходният сигнал от Arduino идва от пин 9, но сигналът може да бъде малко по -горещ, отколкото някои високоговорители могат да се справят. За да го сведем до нещо по -близко до линейното ниво, добавих RC мрежа (въз основа на дизайн на Notes & Volts). Поставете кондензаторите 33nF и 100uF, заедно с 2K резистора, както е показано на изображението/схемата. Уверете се, че електролитният 100uF кондензатор е свързан с дясната полярност (положителният/дългият крак ще бъде към щифт 9 на Arduino, а отрицателният/късият крак е свързан към жака).
  2. Свържете отрицателната страна на аудио жака към земята. Връзките с аудио жак ще варират леко в зависимост от типа, който използвате, но като цяло всички работят еднакво. Трябва да свържем втулката на крика към земята. Това понякога се отбелязва със символ минус или се обозначава като „ръкав“, „пръстен“или „gnd“. Ако на вашия аудио жак няма етикети, може да се наложи да се консултирате с листа с данни или просто да проверите внимателно жака и да видите дали можете да определите кой щифт е свързан към втулката или външния пръстен на жака.
  3. Свържете положителната страна на аудио жака към отрицателната страна на 100uF кондензатора. Нашият аудио сигнал сега тече от щифт 9 на Arduino през RC мрежата и излиза от отрицателната страна на 100uF кондензатора. Ще го свържем с положителната страна на нашия аудио жак. Обикновено това е маркирано със знак плюс или може да бъде обозначено като „бакшиш“. Отново, ако не е обозначен, може да се наложи да го инспектирате, за да разберете кой щифт ще се свърже с върха на жака. Също така, ако използвате стерео жак, може да има връзка L връх и R връх. Тъй като извеждаме моно сигнал, можете просто да се свържете към някоя от връзките за връх.

Важно: Ако установите, че звукът е твърде тих, може да успеете да премахнете RC мрежата в стъпка 1 и да се свържете директно към аудиото от щифт 9 на Arduino. Това би трябвало да е наред, ако свързвате аудиото към нещо с предусилвател като външни компютърни високоговорители, където имате копче за сила на звука, но не бих го препоръчал за неща като слушалки, слушалки или директно свързване към високоговорител. Ако решите да премахнете RC мрежата, предлагам да намалите силата на звука на високоговорителите докрай, преди да задействате Arduino, и след това постепенно да увеличите силата на звука, за да избегнете издухване на високоговорителите.

След като настроите всичко, проверете отново дали всички връзки изглеждат правилно и съответстват на изображението и схемата по-горе

Стъпка 4: Качване на кода

Сега, когато хардуерът е настроен, ние сме готови да се заемем със софтуерната страна:

  1. Стартирайте Arduino IDE. На вашия компютър стартирайте Arduino IDE (ако нямате, можете да го изтеглите от
  2. Изтеглете библиотеката на Mozzi. Библиотеката на Mozzi ни позволява да използваме нашия Arduino като синтезатор. За да получите тази библиотека във вашата IDE, отидете на страницата на Mozzi github https://sensorium.github.io/Mozzi/download/. Кликнете върху зеления бутон „Код“и изберете Изтегляне на ZIP.
  3. Инсталирайте библиотеката Mozzi от zip файла. В IDE на Arduino отидете на Sketch-> Include Library-> Add. ZIP Library … Отидете до zip файла, който сте изтеглили, за да го добавите. Сега трябва да видите Mozzi, изброени в раздела Sketch-> Include Library.
  4. Изтеглете кода Mosquito I Arduino. Можете да получите това от моя сайт на github https://github.com/analogsketchbook/mosquito_one. (Обърнете внимание, че схемите също са налични там, ако имате нужда от тях за справка за окабеляване.
  5. Свържете Arduino към компютъра и качете кода.

Стъпка 5: Забъркайте се

Това е. Трябва да можете да свържете високоговорителите си към аудио жака и да чуете сладкия звук на арпеджийски синтез от този тънък Nano! Ако в началото не чувате нищо, опитайте да центрирате копчетата на всички тенджери, за да сте сигурни, че получавате прилични начални стойности.

Ето какво правят контролите:

Саксии:

Rate: Това контролира скоростта на възпроизвеждане на секвенсора. Като го изключите свири последователно отделни ноти. Обръщането нагоре размазва нотите заедно, за да създаде напълно нови форми на вълната.

Legato: Вторият пот контролира дължината на легато или бележка. Завъртането му повече наляво създава къси бележки със стиато, докато завъртането му надясно произвежда по -дълги бележки.

Pitch: Това задава основната височина за последователността. Контролът на височината задава MIDI стойности, така че увеличава/намалява височината при полутон, а не при непрекъснато изместване на височината.

Фаза: Завъртането на това копче надясно въвежда фин ефект на фазиране. Технически погледнато, това води до леко разстройване на двата осцилатора в Mosquito I, което причинява фазирането. Това обаче не е проследяване с височината, така че фазовият ефект вероятно е по -забележим при нотите с по -ниска височина.

Филтър: Това копче контролира граничната честота на нискочестотен филтър. Завъртането му наляво прекъсва високите честоти, произвеждайки по -заглушен звук, докато завъртането му надясно произвежда по -ярък звук.

Бутони:

Mosquito има над двадесет различни последователности, които може да възпроизвежда по подразбиране. Бутоните ви позволяват да изберете коя последователност да се възпроизвежда. Един бутон ви премества нагоре в списъка с последователности, а другият слиза надолу по списъка.

Стъпка 6: Персонализиране

Персонализиране
Персонализиране

Добавих куп последователности по подразбиране, предимно различни мащаби, но можете да персонализирате кода сравнително лесно, за да промените последователността на нотите, които се свирят, да добавите нови или да промените броя на нотите в последователност. По -долу са дадени подробности за това как се прави в случай, че искате да го персонализирате.

Промяна на бележки в съществуващата последователност

Последователностите се съхраняват в масив от масиви, наречени NOTES. Всяка бележка се съхранява като стойност на MIDI бележка, така че ако искате да промените бележките в определена последователност, просто променете номерата на MIDI бележките за тази последователност. Настройката по подразбиране е да играете 8 стъпки на последователност, така че можете да имате само 8 MIDI стойности в последователност (вижте по -долу, ако искате да имате различни дължини на последователността).

Едно нещо, което трябва да се отбележи, копчето за височина добавя отместване на нотата към стойностите на MIDI, посочени в масива NOTES. Когато копчето е центрирано, той възпроизвежда 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 подробно описва това.

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