Arduino MIDI-Arpeggiator
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 7 | ||||
| × | 7 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 2 |
Über dieses Projekt
Update 11.03.2019
Hallo, ich habe eine neue Firmware für den Arpeggiator erstellt, der Quellcode ist komplett neu geschrieben. Dank der modularen Struktur können Sie die Arpeggios jetzt auf verschiedenen Plattformen ausführen, nicht nur auf Arduino. Auch neue interessante Features wie euklidische Reime werden hinzugefügt. Ich komme später mit der detaillierten Beschreibung zurück!
https://github.com/raszhivin/arpeggio2
Der Hardwareteil bleibt ähnlich, die neuen Quellen sind kompatibel mit der Fritzting-Skizze von unten.
Update 25.06.2019
Neue Hardware wird von mir gebaut, schaut euch das neue Video an:
Einführung
Elektronische Musik ist mein Hobby und es macht mir viel Spaß mit meinen Korg Volca Keys zu spielen. Vor einiger Zeit habe ich die Webanwendung „Chord Progression Arpeggiator“ kennengelernt und war beeindruckt von der Leistungsfähigkeit und Einfachheit der musikalischen Algorithmen. Verbringen Sie ein paar Minuten mit der App und Sie werden verstehen, warum mich die Idee, Arpeggios auf meinem Korg zu erzeugen, so inspiriert hat. Das Video „Korg Volca Keys schöne Arps! (und 128-Noten-Sequenz)“ zeigt manuell eingegebene Arpeggio-Noten, aber es ist zu kompliziert und unflexibel, alle Noten von Hand einzugeben.
Da ich Softwareentwickler bin, habe ich mich entschieden, das Arduino-basierte Gerät zu entwickeln, das Arpeggios in Form von MIDI-Nachrichten generiert und die Nachrichten über den DIN (MIDI)-Port sendet. Der Arpeggiator kann natürlich zusammen mit anderen Hardware- oder Software-Synthesizern verwendet werden, aber ich nicht hab noch einen eine.
Grundlegende Musiktheorie
(Der Text unten stammt aus reddit, vielen Dank an den Benutzer kmmeerts)
Es gibt also ein ganzes Spektrum an Geräuschen. Es stellt sich heraus, dass jedes dieser Geräusche eine Grundfrequenz hat, wie schnell die Luft wackelt. Eine niedrigere Frequenz erklingt, nun ja, niedriger, und eine höhere Frequenz nehmen wir als einen höheren Ton wahr. Zwei verschiedene Instrumente, die gleichzeitig spielen, mögen sehr unterschiedlich klingen, aber sie werden uns immer noch als dieselbe Note erscheinen. Dieser Unterschied wird als Timbre bezeichnet, und so können Sie zwischen Flöte und Celli unterscheiden, die dieselbe Note spielen. So können ganz unterschiedliche Instrumente harmonisch zusammenspielen.
Auf der höchsten Ebene ist dieses Spektrum in Oktaven unterteilt. Eine Oktave ist ein Intervall zwischen einer Note und einer anderen mit der doppelten Frequenz. Dies ist die grundlegendste Unterteilung in der Musik. Noten, die sich um mehrere Oktaven unterscheiden (d. h. bei denen die Frequenzen durch eine Potenz von zwei miteinander verbunden sind) erhalten den gleichen Namen:Ein Klavier und eine Geige können beide ein C spielen, aber eines viel tiefer als das andere. Warum tun wir das? Nun, weil sie harmonisch zusammen klingen, wie es selbst der taubeste Mensch hören kann.
Die Oktave selbst ist in 12 Töne unterteilt, die wir benannt haben:
[A, A#, B, C, C#, D, D#, E, F, F#, G, G#]
Dies sind die grundlegendsten Töne in der westlichen Musik und sie entsprechen den weißen und schwarzen Tasten des Klaviers. Sie können sehen, dass sich das Muster nach jeweils 12 Tasten wiederholt. Warum 12? Es ist kompliziert und hat eine lange Geschichte, aber das Wesentliche ist, dass es am besten klingt. Die angenehmsten Intervalle werden durch das 12-Tasten-System gut dargestellt, so wie es mit mehr oder weniger Tasten nicht möglich wäre (obwohl die Leute es versuchen).
Aus diesen 12 Tönen werden Skalen gebildet. Eine Tonleiter ist eine Sammlung von Noten, die zusammen gut klingen. Mein Arpeggiator hat nur heptatonische diatonische Tonleitern, die Modi genannt werden. Heptatonic bedeutet, dass jede Tonleiter 7 Töne hat, und praktisch alle westliche Musik baut darauf auf. Diatonisch bezieht sich auf die Reihenfolge der Intervalle zwischen den Noten. Die C-Dur-Tonleiter ist beispielsweise nur die Noten ohne scharfe Zeichen beginnend bei C:[ C D E F G A B ]. Jede Tonleiter wird aus einem Grundton erzeugt. Es gibt auch eine Dur-Tonleiter, die in D verwurzelt ist:[ D E F# G A B C# ]. Die Tonleitern werden durch Muster definiert, deren Noten übersprungen werden sollen. Die Dur-Tonleiter ist [ W W H W W W H ], wobei W „notizen und überspringen“ bedeutet und H „notizen“ bedeutet. Die anderen Modi haben andere Muster zum Aufnehmen und Überspringen von Notizen.
Für jede dieser sieben Noten gibt es eine Reihe von Akkorden. Die hier verwendeten Akkorde sind einfach:Beginnen Sie mit einer Note, nehmen Sie drei Noten und überspringen Sie jedes Mal eine in der von uns verwendeten Tonleiter. In unserer einfachen C-Dur-Tonleiter (CDEFGAB) wäre der V-Akkord (V =fünf, also auf der fünften Note) G (überspringen A) B (umschleifen, überspringen C) D, also GBD. Dieses Muster kann eine Oktave nach oben wiederholt werden (6 Noten:GBDGBD). Ein Arpeggio (italienisch für 'gebrochen') spielt diese Noten einfach einzeln und nicht alle zusammen.
Was einen Song ausmacht, ist meistens die Akkordfolge. Der Komponist wählt einen Modus, wählt einen Grundton und wählt dann 8 (oder mehr oder weniger) Akkorde aus der durch diesen Grundton definierten Tonart. Es gibt natürlich einige Regeln für die Auswahl der Akkorde, aber es ist immer noch eine Kunst. In einem echten Lied ist auf diesem Akkord der Rest aufgebaut, es kann natürlich alle möglichen Abweichungen von dieser Struktur geben, alle möglichen Verzierungen, aber oft kann man die Akkorde noch in dieser Reihenfolge erkennen.
Schaltpläne
Der Schaltplan meines Arpeggiators ist recht einfach, er besteht aus 7 Potentiometern, 7 Tasten, MIDI-Port, 2 LEDs und 4 Widerständen. Es kann leicht auf einem Steckbrett zusammengebaut werden, wie unten gezeigt, aber wenn Sie ein Neuling in der Arduino-Welt sind, wäre es viel besser, wenn Sie zuerst mit den folgenden Tutorials beginnen:
https://www.arduino.cc/en/main/howto
https://www.arduino.cc/en/Tutorial/Blink
https://www.arduino.cc/en/Tutorial/InputPullupSerial
https://www.arduino.cc/en/tutorial/potentiometer
https://www.arduino.cc/en/Tutorial/Midi
Steuerung
Potentiometer:
- Oktave der Tonika (0..7)
- Oktave des Akkords (0..7)
- Verzögerung zwischen den Noten in der Progression (Beats pro Minute)
- Tonikum / Grundton (C...B)
- Arpeggio-Schritte (1...5)
- Musikmodus (ionisch, dorisch...)
- Arpeggio-Stil (aufsteigend, absteigend, aufsteigend+absteigend, zufällig)
Tasten:Per Tastendruck wird die entsprechende Akkordfolge gespielt.
Vorführung
Im ersten Video beschreibe ich die Funktionsweise des Geräts und seine Bedienelemente:
Das zweite Video zeigt den kleinen Jam mit dem Arpeggiator:
Synchronisation
Sie können das Tempo der Arpeggios mit Korg Volca synchronisieren:Verbinden Sie die Audiobuchse des Arpeggiators mit dem "SYNC OUT" des Synthesizers. Stellen Sie sicher, dass Sie den Quellcode in arpeggiator.ino richtig konfigurieren :
// Synchronisation:Wählen Sie eine von zwei möglichen Optionen:
#define EXT_SYNC
//#define INT_SYNC
Entkommentieren Sie EXT_SYNC
zur Synchronisation über SYNC IN oder INT_SYNC
zur Tempokontrolle durch Poti.
Ich freue mich über jedes Feedback und jeden Kommentar, wenn Sie eine Idee haben, das Gerät zu verbessern - hinterlassen Sie bitte den Kommentar.
Viel Spaß und viel Glück!
Code
Quellcode
https://github.com/raszhivin/arpeggiatorSchaltpläne
für Fritzing arpeggiator_LICtzK2a2Q.fzzHerstellungsprozess