» Instrumenty muzyczne »Syntezator czterogłosowy na Arduino Uno

Syntezator czterogłosowy na Arduino Uno



Autor Instructables pod pseudonimem rgco wymyślił czterogłosowy syntezator 1,5 oktawy na Arduino Nie Dla porównania, rozpowszechnione syntezatory dla dzieci, które różnią się od siebie jedynie designem i są wykonane z tego samego układu, są trójgłosowe. To prawda, że ​​mogą one automatycznie rytmicznie towarzyszyć muzyce, zapamiętywać melodie jednogłosowe i naśladować głosy zwierząt. Ale wtedy domowej roboty brzmi ładniej. Dlaczego



Chodzi o parametry. Częstotliwość próbkowania 31 kHz, 9-bitów, 4 głosy, synteza FM ze zmiennym w czasie przemiataniem, obwiednia ADSR, 12 instrumentów wirtualnych, 18 klawiszy obejmujących 1,5 oktawy.

Mistrz komponuje obwód syntezatora we Fritzing:



W nim symuluje lokalizację komponentów na płycie typu breadboard i połączenia między nimi:



I zbiera schemat w prawdziwym życiu:



Po prostu „wlej i używaj” to najprostsza rzecz, jaką możesz zrobić z projektem. 18 klawiszy (od PRZED czwartą oktawą do piątej FA) - aby zagrać, dziewiętnasta przełącza wirtualne instrumenty w ringu: fortepian, ksylofon, gitara, talerze, dzwonki, funky, vibrato, metal, skrzypce, bas, trąbka, akordeon. Na naturę dźwięku wpływa czas naciskania klawiszy, ale nie wysiłek, w przeciwieństwie do profesjonalnych syntezatorów. Ale programista chce, abyś również spróbował zaprogramować swoje wirtualne narzędzia. Każdy z nich ma dziesięć parametrów. Kreator powie ci, od jakiego parametru zależy.

ldness - tom

Jeśli ten parametr jest mniejszy niż 64, przeciążenie i powiązane zniekształcenia są wykluczone. Ale jeśli zaprogramujesz taki wirtualny instrument, który nie brzmi długo przy maksymalnej głośności, wartość tego parametru może przekroczyć 64, ponieważ wszystkie cztery głosy jednocześnie brzmią rzadko.

pitch0 - zmiana wysokości tonu

Zakres odpowiada powyższemu, jeśli ustawisz ten parametr na 12. Zmniejsz ruchy w dół, zwiększ - w górę. Zero odpowiada przesunięciu w dół dokładnie o jedną oktawę, 24 - w górę dokładnie o jedną oktawę.

ADSR_a - szybkość zmiany głośności od zera do maksimum

Im mniejszy, tym wolniejszy.Na przykład 8192 odpowiada 4 ms, 256 do 128 ms.

ADSR_d - prędkość zmniejszania głośności z maksimum do tego określonego przez parametr ADSR_s.

Zasada jest taka sama.

ADSR_s - wartość, do której zmniejsza się głośność po długim naciśnięciu klawisza

Na przykład 256 - głośność pozostaje maksymalna przez cały czas, gdy klawisz jest wciśnięty. 192 - głośność spada do 80 procent i pozostaje taka, dopóki klawisz jest wciśnięty. 0 - głośność spada do zera, nawet jeśli klawisz jest wciśnięty.

ADSR_r - prędkość zmniejszania głośności do zera po zwolnieniu klawisza

Zasada jest taka sama jak dla parametrów ADSR_a i ADSR_d.

FM_inc - stosunek częstotliwości modulacji do tonu

Przy wartości 256 współczynnik ten wynosi 1: 1, przy 512 - 2: 1, przy 128 - 1: 2, reszta jest podobna. Jeśli ten parametr zostanie ustawiony na wielokrotność 64, dźwięk będzie anharmoniczny.

FM_a1 - zakres modulacji częstotliwości na początku nuty

256 odpowiada szerokiemu zakresowi harmonicznych. Wraz ze spadkiem ton jest czystszy, a wraz ze wzrostem harmonicznych staje się bardziej.

FM_a2 - modulacja częstotliwości wobulacji na końcu nuty

Zasada jest taka sama. W przypadku większości prawdziwych instrumentów harmoniczne zanikają szybciej niż ton podstawowy. Jeśli zrobisz coś przeciwnego, otrzymasz niezwykłe dźwięki.

FM_dec - prędkość przejścia zakresu modulacji częstotliwości od ustawionej przez FM_a1 do ustawionej przez FM_a2

Zasada jest taka sama jak dla parametrów ADSR_a, ADSR_d i ADSR_r.

Częstotliwość PWM wynoszącą 31 250 Hz jest uzyskiwana przez podzielenie częstotliwości taktowania (16 MHz) przez 512. Program jest zaprojektowany w taki sposób, że zdarzenia są powiązane z czasem bez przerw. Zamiast tego zaangażowany jest bit przepełnienia timera. Aby program mógł zrobić wszystko, co jest od niego wymagane, używane są tylko liczby całkowite o długości 8 i 16 bitów. Fala sinusoidalna jest prezentowana w postaci tabeli liczb 8-bitowych. Operacje pomocnicze - odczytywanie stanów kluczy, zmiana instrumentów wirtualnych, wybieranie głosów, obliczanie parametrów nut zmieniających się w czasie - są rozłożone na 15 procedur, których wykonanie zajmuje 0,48 ms. W tej chwili niektóre operacje są wykonywane z 32-bitową precyzją, co jest konieczne do pomnożenia dwóch 16-bitowych liczb binarnych.

Prosta fala sinusoidalna brzmi nudno, ponieważ w jej spektrum nie ma harmonicznych. Synteza FM pozwala je odbierać i zmieniać ich spektrum w czasie, symulując dźwięk prawdziwych instrumentów. Wiele częstotliwości daje dźwięk anharmoniczny, który występuje na przykład w dzwonach. Urządzenie dobrze imituje zmiany widma właściwe dla prawdziwych instrumentów w czasie, gdy niektóre harmoniczne zanikają szybciej niż inne.
10
9.3
8.4

Dodaj komentarz

    • uśmiechnij sięuśmiecha sięxaxaoknie wiemyahoonea
      szefiezadrapaniegłupiectaktak-takagresywnysekret
      przepraszamtańczyćdance2dance3przebaczeniepomocnapoje
      przestańprzyjacieledobrzegoodgoodgwizdaćomdlećjęzyk
      palićklaskanierakdeklarowaćdrwiącydon-t_mentionpobierz
      ciepłożałujęśmiech 1mdaspotkaniemoskingnegatywne
      niepopcornukaraćczytaćprzestraszyćstraszyszukaj
      drwinadziękujętoto_clueumnikostryzgadzam się
      źlepszczołablack_eyeblum3rumienić sięchwalić sięnuda
      ocenzurowaneuprzejmośćsekret2grozićzwycięstwoyusun_bespectacled
      shokrespektlolprevedwitamykrutoyya_za
      ya_dobryipomocnikne_huliganne_othodifludzakazzamknij
1 komentarz
kiril_vihrov7892
Ciekawy projekt.
Ostatnio widziałem projekt „Syntezator na Arduino” jako klawisze, używana jest prawie cała klawiatura komputera
Szczegółów wszystkich Arduino, głośnika i komputera.
Aplikacja na PC wykonuje całą pracę, kontroluje Arduino przez port COM
powtarzane, wszystko działa dobrze. Wygląd może pomóc

Radzimy przeczytać:

Podaj go do smartfona ...