» Musikinstrumente »Vierstimmiger Synthesizer auf Arduino Uno

Vierstimmiger Synthesizer auf Arduino Uno



Der Autor von Instructables unter dem Spitznamen rgco hat einen 1,5-Oktaven-Synthesizer mit vier Stimmen entwickelt Arduino Uno. Zum Vergleich: Die weit verbreiteten Kindersynthesizer, die sich nur im Design voneinander unterscheiden und von demselben Chip hergestellt werden, sind dreistimmig. Natürlich können sie die Musik automatisch mit Rhythmus begleiten, Melodien mit einer Stimme auswendig lernen und die Stimmen von Tieren imitieren. Aber dann hausgemacht klingt schöner. Warum?



Es geht nur um die Parameter. Abtastfrequenz 31 kHz, 9 Bit, 4 Stimmen, FM-Synthese mit zeitlich variierendem Sweep, ADSR-Hüllkurve, 12 virtuelle Instrumente, 18 Tasten, die 1,5 Oktaven umfassen.

Der Master komponiert die Synthesizer-Schaltung in Fritzing:



Darin simuliert es die Position von Komponenten auf einem Steckbrett vom Typ Steckbrett und die Verbindungen zwischen ihnen:



Und sammelt das Schema im wirklichen Leben:



Nur „gießen und verwenden“ ist das Einfachste, was Sie mit dem Design tun können. 18 Tasten (von VOR der vierten Oktave bis zur fünften FA) - zum Spielen schaltet die neunzehnte die virtuellen Instrumente in einem Ring: Klavier, Xylophon, Gitarre, Becken, Glocken, Funky, Vibrato, Metal, Violine, Bass, Trompete, Akkordeon. Die Art des Klangs wird im Gegensatz zu professionellen Synthesizern von der Dauer der Tastenanschläge beeinflusst, nicht jedoch von der Anstrengung. Der Entwickler möchte jedoch, dass Sie auch versuchen, Ihre virtuellen Tools zu programmieren. Jeder von ihnen ist durch zehn Parameter gegeben. Der Assistent teilt Ihnen mit, von welchem ​​Parameter er abhängt.

ldness - Volumen

Wenn dieser Parameter kleiner als 64 ist, werden Überlastung und damit verbundene Verzerrungen ausgeschlossen. Wenn Sie jedoch ein solches virtuelles Instrument programmieren, das nicht lange mit maximaler Lautstärke erklingt, kann der Wert dieses Parameters 64 überschreiten, da alle vier Stimmen gleichzeitig selten erklingen.

Pitch0 - Pitch Shift

Der Bereich entspricht dem oben genannten, wenn Sie diesen Parameter auf 12 setzen. Verringern bewegt sich nach unten, erhöht nach oben. Null entspricht einer Verschiebung um genau eine Oktave nach unten, 24 um genau eine Oktave nach oben.

ADSR_a - Volumenanstiegsrate von Null bis Maximum

Je kleiner, desto langsamer.Zum Beispiel entspricht 8192 4 ms, 256 bis 128 ms.

ADSR_d - Geschwindigkeit zum Verringern der Lautstärke von maximal auf die im Parameter ADSR_s angegebene.

Das Prinzip ist das gleiche.

ADSR_s - Der Wert, auf den die Lautstärke abnimmt, wenn die Taste längere Zeit gedrückt wird

Beispiel: 256 - Die Lautstärke bleibt die ganze Zeit maximal, während die Taste gedrückt gehalten wird. 192 - Die Lautstärke sinkt auf 80 Prozent und bleibt es, während die Taste gedrückt gehalten wird. 0 - Lautstärke nimmt auf Null ab, auch wenn die Taste gedrückt gehalten wird.

ADSR_r - Geschwindigkeit, mit der die Lautstärke nach dem Loslassen der Taste auf Null verringert wird

Das Prinzip ist das gleiche wie für die Parameter ADSR_a und ADSR_d.

FM_inc - Verhältnis von Modulationsfrequenz zu Ton

Bei einem Wert von 256 beträgt dieses Verhältnis 1: 1, bei 512 - 2: 1 und bei 128 - 1: 2 ist der Rest ähnlich. Wenn dieser Parameter auf ein Vielfaches von 64 eingestellt ist, ist der Klang anharmonisch.

FM_a1 - der Bereich der Frequenzmodulation am Anfang einer Note

256 entspricht einem weiten Bereich von Harmonischen. Mit einer Abnahme wird der Ton sauberer, mit einer Zunahme der Harmonischen wird er mehr.

FM_a2 - Sweep-Frequenzmodulation am Ende einer Note

Das Prinzip ist das gleiche. Bei den meisten realen Instrumenten fallen die Harmonischen schneller ab als der Grundton. Wenn Sie das Gegenteil tun, erhalten Sie ungewöhnliche Geräusche.

FM_dec - Übergangsgeschwindigkeit des Frequenzmodulationsbereichs von der durch den Parameter FM_a1 angegebenen zu der durch den Parameter FM_a2 angegebenen

Das Prinzip ist das gleiche wie für die Parameter ADSR_a, ADSR_d und ADSR_r.

Eine PWM-Frequenz von 31.250 Hz wird erhalten, indem die Taktfrequenz (16 MHz) durch 512 geteilt wird. Das Programm ist so ausgelegt, dass Ereignisse ohne Unterbrechungen zeitgebunden sind. Stattdessen handelt es sich um ein Timer-Überlaufbit. Damit das Programm alles erledigen kann, was von ihm verlangt wird, werden nur Ganzzahlen mit einer Länge von 8 und 16 Bit verwendet. Die Sinuswelle wird in Form einer Tabelle mit 8-Bit-Zahlen dargestellt. Nebenoperationen - Lesen von Tastenzuständen, Ändern virtueller Instrumente, Auswählen von Stimmen, Berechnen von sich zeitlich ändernden Notenparametern - werden auf 15 Prozeduren verteilt, die insgesamt 0,48 ms dauern. Zu diesem Zeitpunkt werden einige Operationen mit einer Genauigkeit von 32 Bit ausgeführt, die zum Multiplizieren von zwei 16-Bit-Binärzahlen erforderlich ist.

Eine einfache Sinuswelle klingt langweilig, weil ihr Spektrum keine Harmonischen enthält. Mit der FM-Synthese können Sie sie empfangen und ihr Spektrum im Laufe der Zeit ändern, um den Klang realer Instrumente zu simulieren. Mehrere Frequenzen ergeben einen anharmonischen Klang, der beispielsweise in Glocken auftritt. Das Gerät ahmt die zeitliche Änderung des Spektrums realer Instrumente gut nach, wenn einige Harmonische schneller abfallen als andere.
10
9.3
8.4

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      EntschuldigungtanzenTanz2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen
1 Kommentar
kiril_vihrov7892
Ein interessantes Projekt.
Kürzlich habe ich das Projekt "Synthesizer on Arduino" als Tasten gesehen, fast die gesamte PC-Tastatur wird verwendet
Von den Details aller Arduino, eines Lautsprechers und eines Computers.
Die PC-Anwendung erledigt die ganze Arbeit, sie steuert Arduino über den COM-Port
wiederholt funktioniert alles gut. Schauen kann helfen

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...