» Музикални инструменти »Четиригласен синтезатор на Arduino Uno

Четиригласен синтезатор на Arduino Uno



Авторът на Instructables под псевдонима rgco излезе с четиригласен 1,5-октавен синтезатор на Arduino Uno. За сравнение, широко разпространените детски синтезатори, които се различават един от друг само по дизайн и направени от един и същ чип, са тригласни. Вярно е, че те могат автоматично да придружават музиката с ритъм, да запомнят едногласни мелодии и да имитират гласовете на животните. Но тогава домашно приготвени продукти звучи по-хубаво. Защо?



Всичко е за параметрите. Честота на дискретизация 31 kHz, 9-битов, 4 гласа, FM синтез с променяща се време време, ADSR обвивка, 12 виртуални инструменти, 18 клавиша, които обхващат 1,5 октави.

Мастърът съставя схемата на синтезатора във Fritzing:



В него той симулира местоположението на компонентите на дънната платка от типа на дъската и връзките между тях:



И събира схемата в реалния живот:



Просто „излейте и използвайте“ е най-простото нещо, което можете да направите с дизайна. 18 клавиша (от ПРЕДИ четвъртата октава до FA пета) - за да свири, деветнадесетият превключва виртуалните инструменти в ринг: пиано, ксилофон, китара, кимвала, камбани, фънки, вибрато, метал, цигулка, бас, тромпет, акордеон. Естеството на звука се влияе от продължителността на натисканията на клавишите, но не и от усилията, за разлика от професионалните синтезатори. Но разработчикът иска да опитате да програмирате и вашите виртуални инструменти. Всеки от тях е даден от десет параметъра. Помощникът ви казва от кой параметър зависи.

ldness - обем

Ако този параметър е по-малък от 64, претоварването и свързаните изкривявания са изключени. Но ако програмирате такъв виртуален инструмент, който не звучи с максимална сила за дълго, стойността на този параметър може да надвиши 64, тъй като и четирите гласа едновременно звучат рядко.

pitch0 - изместване на стъпката

Диапазонът съответства на горното, ако зададете този параметър на 12. Намаляването се движи надолу, увеличава се - нагоре. Нулата съответства на изместване точно една октава, 24 - нагоре точно на една октава.

ADSR_a - обемна скорост на въртене от нула до максимум

Колкото по-малък, толкова по-бавен.Например 8192 съответства на 4 ms, 256 на 128 ms.

ADSR_d - скорост за намаляване на силата на звука от максималната до определената от параметъра ADSR_s.

Принципът е същият.

ADSR_s - стойността, до която силата на звука намалява при натискане на клавиша за дълго време

Например 256 - силата на звука остава максимална през цялото време, докато се държи клавишът. 192 - силата на звука пада до 80 процента и остава такава, докато клавишът е натиснат. 0 - силата на звука намалява до нула, дори ако клавишът е натиснат.

ADSR_r - скорост за намаляване на силата на звука до нула след освобождаване на ключа

Принципът е същият като за параметрите ADSR_a и ADSR_d.

FM_inc - съотношение между честотата на модулация и тона

Със стойност 256 това съотношение е 1: 1, при 512 - 2: 1, при 128 - 1: 2, останалото е подобно. Ако този параметър е зададен на кратно на 64, звукът ще бъде ангармоничен.

FM_a1 - обхватът на честотната модулация в началото на бележка

256 съответства на широк спектър хармоници. С понижаване тонът е по-чист, с увеличаване на хармониците става повече.

FM_a2 - честотна модулация на почистване в края на бележка

Принципът е същият. За повечето реални инструменти хармониците се разпадат по-бързо от основния тон. Ако направите обратното, получавате необичайни звуци.

FM_dec - преходна скорост на честотния модулационен диапазон от тази, посочена от параметъра FM_a1, до тази, определена от параметъра FM_a2

Принципът е същият като за параметрите ADSR_a, ADSR_d и ADSR_r.

PWM честота от 31 250 Hz се получава чрез разделяне на тактовата честота (16 MHz) на 512. Програмата е проектирана по такъв начин, че събитията да са ограничени във времето без прекъсвания. Вместо това е включен бит за преливане на таймера. За да може програмата да направи всичко, което се изисква от нея, се използват само цели числа от 8 и 16 битова дължина. Синусоидата е представена под формата на таблица с 8-битови числа. Спомагателните операции - четене на ключови състояния, смяна на виртуални инструменти, избор на гласове, изчисляване на параметрите на нотите, които се променят във времето - се разпределят между 15 процедури, за които са необходими 0.48 ms. По това време някои операции се извършват с 32-битова точност, което е необходимо за умножаване на две 16-битови двоични числа.

Една обикновена синусоида звучи скучно, защото няма хармоници в нейния спектър. FM синтеза ви позволява да ги получавате и да променяте спектъра им във времето, симулирайки звука на истински инструменти. Множеството честоти издават анхармоничен звук, който се появява например при звънци. Устройството добре имитира промяната в спектъра, присъща на реалните инструменти във времето, когато някои хармоници се разпадат по-бързо от други.
10
9.3
8.4

Добавете коментар

    • усмихвамусмивкиxaxaдобреdontknowYahooНеа
      шефдраскотинаглупакдаДа-даагресивентайна
      съжалявамтанцувамdance2dance3извинениепомощнапитки
      спиркаприятелидобърgoodgoodсвиркаприпадамезик
      димплясканеCrayдеклариратподигравателендон-t_mentionизтегляне
      топлинасърдитlaugh1MDAсрещаmoskingотрицателен
      not_iпуканкинаказвамчетаплашаплашитърсене
      присмехthank_youтоваto_clueumnikостърСъгласен
      лошоbeeeblack_eyeblum3изчервяванесамохвалствоскука
      цензурираншегаsecret2заплашвампобедаюsun_bespectacled
      ShokРеспектхахаprevedдобре дошълkrutoyya_za
      ya_dobryiпомощникne_huliganne_othodifludзабранаблизо
1 коментар
kiril_vihrov7892
Интересен проект.
Наскоро видях проекта „Синтезатор на Arduino“ като клавиши, използва се почти цялата клавиатура на компютъра
От подробности за всички Arduino, говорител и компютър.
Приложението за компютър върши цялата работа и контролира Arduino чрез com порт
повтаря се, всичко работи добре. Погледът може да помогне

Съветваме ви да прочетете:

Предайте го за смартфона ...