Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino MIDI-Arpeggiator

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
Drehpotentiometer (allgemein)
× 7
SparkFun Drucktastenschalter 12 mm
× 7
MIDI-Port
× 1
Widerstand 221 Ohm
× 4
LED (generisch)
× 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/arpeggiator

Schaltpläne

für Fritzing arpeggiator_LICtzK2a2Q.fzz

Herstellungsprozess

  1. Arduino Digital Dice
  2. Unopad - Arduino MIDI-Controller mit Ableton
  3. Iron Man
  4. Finde mich
  5. USB-BLE-Wireless-MIDI-Adapter
  6. Arduino 3D-gedruckter Roboterarm
  7. Arduino-Befeuchtersteuerung
  8. Kontaktloses Temperaturüberwachungstor
  9. NeoMatrix Arduino Pong
  10. Arduino-Joystick