Inhaltsverzeichnis:

Arduino Mehrspur-MIDI-Loop-Station - Gunook
Arduino Mehrspur-MIDI-Loop-Station - Gunook

Video: Arduino Mehrspur-MIDI-Loop-Station - Gunook

Video: Arduino Mehrspur-MIDI-Loop-Station - Gunook
Video: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, November
Anonim
Arduino Mehrspur-MIDI-Loop-Station
Arduino Mehrspur-MIDI-Loop-Station
Arduino Mehrspur-MIDI-Loop-Station
Arduino Mehrspur-MIDI-Loop-Station
Arduino Mehrspur-MIDI-Loop-Station
Arduino Mehrspur-MIDI-Loop-Station

Eine Loop-Station oder ein Looper ist im Wesentlichen ein Werkzeug, um Ihre Instrumentalriffs (Loops) in Echtzeit abzuspielen. Es ist nicht als Aufnahmemedium gedacht, sondern als Instrument, um die Inspiration ohne Ablenkung zu formen (und schließlich live zu spielen…).

Es gibt viele Loop-Stationen für Audioaufnahmen, sowohl in Form von dedizierter Hardware (fast jeder einzelne Hersteller von Gitarrenpedalen hat sein eigenes Produkt) als auch Computersoftware (der ausgezeichnete Linux Sooper Looper oder Windows Mobius, um die bekanntesten zu nennen). Ich konnte nur wenige Projekte über DIY-Nicht-Audio-, sondern MIDI-Looper finden, also ein Werkzeug, um MIDI-Events aufzunehmen und sie sofort in einer Schleife wiederzugeben; die meisten dieser Projekte (alle, sollte ich sagen) sind aufgegeben oder verloren … nun, hier sind wir mit einem kompletten Projekt für alle!

Diese Arduino MIDI-Loop-Station verfolgt einfach eingehende MIDI-Ereignisse und spielt sie ab. Sie müssen nur das Aufnahmepedal drücken, Ihr bestes Riff aller Zeiten erstellen und die Aufnahme beenden, indem Sie das Pedal erneut drücken. Supereinfach:)

Dieses Projekt basiert auf leicht zu findender offener Hardware (Arduino DUE), Software (meiner eigenen Firmware und Arduino IDE) und kann an Ihre Vorlieben angepasst werden.

Lass es uns tun!

PS: Ja, es ist super günstig!

Schritt 1: Grenzen

Bevor Sie beginnen, Hardwareteile für das Projekt zu beschaffen, lassen Sie mich Ihnen sagen, wo seine Grenzen liegen, damit Sie sich entscheiden können, hier fortzufahren oder aufzuhören.

- Aufgrund von Hardwarebeschränkungen (im Wesentlichen Aduino DUE-Speicher) ist die standardmäßige maximale Länge der Phrase, die Sie aufnehmen können, auf 46 Sekunden begrenzt.

- Loops können nach dem Herunterfahren nicht gespeichert und wiedergegeben werden. Sie können sie jedoch an einen PC senden und speichern.

- Es gibt keine Notenquantisierung.

- MIDI Clock wird unterstützt, befindet sich jedoch derzeit in einer Vorstufe.

- Aufgenommene MIDI-Meldungen sind Note On, Note Off, Control Changes und Pitch Bend; andere MIDI-Meldungen wie Aftertouch, Programmwechsel, SysEx usw. werden nicht berücksichtigt.

- Die maximale Polyphonie ist standardmäßig auf 10 eingestellt (wiederum Aduino DUE-Speichergrenzen).

Auf der positiven Seite werden MIDI-Streams von mehreren verschiedenen Instrumenten unterstützt, von denen jedes auf einem eigenen Kanal sendet; Dies bedeutet, dass Sie mehrere MIDI-Instrumente gleichzeitig aufnehmen können, überlagert oder mit einer eigenen Spur (mehr Profis im nächsten Schritt;)).

Wenn das Leben mit diesen Einschränkungen vernünftig erscheint (und das ist es für mich), werden Sie eine sehr gute Zeit mit diesem Ding haben;)

Schritt 2: Wie es funktioniert

Die MIDI-Loop-Station hier ist sehr einfach zu bedienen. Es funktioniert ähnlich wie die Hardware-Audio-Loop-Stationen, die jeder Hersteller von Gitarrenpedalen in seinem eigenen Katalog hat.

1) Wählen Sie die Spur aus, auf der Sie Ihre MIDI-Sequenz aufnehmen möchten. Standardmäßig ist die Spur "eins" ausgewählt, Sie können sie jedoch ändern, indem Sie eine der Spurentasten drücken (eine für jede Spur).

2) Beim ersten Drücken des "REC"-Schalters/Fußpedals wird der Looper aktiviert. Die grüne LED leuchtet. Es wird warten, bis Ihre erste Note empfangen wird, bevor mit der Aufnahme der eigentlichen Sequenz/des Riffs begonnen wird.

3) Wenn Sie Ihre Sequenz beendet haben, drücken Sie erneut den "REC"-Schalter/das Fußpedal, um die tatsächliche Länge des Riffs festzulegen. Die grüne LED erlischt. Der Looper beginnt sofort mit der Wiedergabe Ihrer MIDI-Sequenz. Wenn Sie die maximale Zeit erreichen, stoppt die Aufnahme automatisch und die Sequenz wird in einer Schleife wiedergegeben.

4) Jetzt können Sie entscheiden, ob Sie Ihre Sequenz auf dem aktuellen Track überspielen oder einen neuen Track auswählen und darauf aufnehmen möchten, indem Sie den "REC"-Schalter/das Fußpedal drücken. In beiden Fällen leuchtet die gelbe LED, auch wenn die neue Spur leer ist, da es sich um eine "Slave"-Spur handelt (die der allerersten aufgenommenen Spur untergeordnet ist). Drücken Sie erneut, um das Overdubbing zu stoppen (gelbe LED erlischt).

Für diejenigen unter Ihnen, die mit Audio-Looping-Stationen vertraut sind, wird diese MIDI-Abfolge "REC/PLAY/OVERDUB" genannt und wird als einzige unterstützt.

Wenn Sie zu irgendeinem Zeitpunkt das Gefühl haben, dass Ihr letztes Overdub nicht in Ordnung ist, können Sie es durch Drücken des "Undo"-Schalters/Fußpedals löschen. Sie können den gesamten aktuellen Track löschen, indem Sie das "REC"-Pedal länger als 3 Sekunden gedrückt halten; Sie können den Looper zurücksetzen (Software-Reset), indem Sie die ersten drei Spurtasten gleichzeitig drücken oder alle verwendeten Spuren löschen.

Sie können eine Spur stummschalten/aufheben, indem Sie die Spurtaste der aktuellen Spur drücken.

Sie können eine PANIK senden! Meldung durch Drücken der Paniktaste. Sie können sogar eine PANIK senden! durch gleichzeitiges Drücken der ersten beiden Titeltasten.

Der Looper verfügt über ein eingebautes einfaches Metronom: Eine Note-on-MIDI-Nachricht für die Notennummer "64" wird mit 100 BPM auf Kanal 10 gesendet (der Kanal, den Sie vermutlich mit Ihrem Drumcomputer hören). Sie können das Tempo erhöhen oder verringern, indem Sie den optischen Encoder drehen; Durch Drücken des Schalters des optischen Encoders können Sie das Metronom aktivieren/deaktivieren. Beachten Sie, dass Ihr Drumcomputer so eingestellt sein muss, dass er einen Sound (Snare, Bass oder was auch immer Sie bevorzugen) spielt, wenn er die MIDI-Note "64" empfängt, sonst wird das Metronom stumm geschaltet.

Eine Barebone-Version dieser MIDI-Loopstation könnte mit einem einzigen Fußschalter zum Starten und Stoppen der Aufnahme erstellt werden. Wenn Sie den Schalter länger als 3 Sekunden gedrückt halten, wird die Loop-Station neu initialisiert.

Wenn Sie zusätzliche Zeit in die Entwicklung der Hardware investieren möchten, wird die Loop-Station durch Hinzufügen von Schaltern und Tasten flexibler. Auf dem Bild habe ich meine vier Spuren (bis zu fünf werden unterstützt) mit vollem Funktionsumfang konfiguriert.

WICHTIGER HINWEIS: Die Hardware in meinen Bildern ist ein Prototyp. Ich habe mehr Klinkenbuchsen verwendet als benötigt, aber nur vier Tasten für Spuren. Dies liegt daran, dass ich zu Beginn des Projekts nicht ganz sicher war, was die endgültigen Anforderungen sein würden.

Tasten und Fußschalter sind elektronische Äquivalente und Sie können einen anstelle des anderen verwenden; Für meine Bedürfnisse, da es immer zu wenig Stellfläche gibt (verdammt schöne Effektpedale;)), habe ich die Fußpedale auf die einzelne REC-Funktion beschränkt.

Schritt 3: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Stückliste:

Voll ausgestattete 5-Spur-MIDI-Loop-Station

1x Arduino DUE

7x Kurztaster

1x Kunststoffkoffer (ich habe einen 150 x 110 x 70 mm Koffer verwendet)

2x 5-polige DIN-Buchse für Schalttafeleinbau MIDI-Buchsen

1x 6,3 mm Einbau-Klinkenbuchse

1x doppelseitiges 50x70 mm Lochbrett

5x 3 mm LED (grün)

1x 3 mm LED (gelb)

1x optischer Encoder

1x H11L1 Optokoppler

1x 1N4148 Diode

3x 1000 Ohm Widerstände

3x 220 Ohm Widerstände

10x 470 Ohm Widerstände

Etwas Lötdraht, ein paar Kabel, Lötstation… und Freizeit:)

Erforderliche Zeit, um das Projekt abzuschließen: 6-9 Stunden

Warum keine UNO?

Erste Tests (und ein funktionierender Code) wurden auf einem "normalen" Arduino UNO-Board geschrieben. Dieses Board hat RAM-Limits, die mich gezwungen haben, die Polyphonie auf "4" zu reduzieren, die maximale Länge auf weniger als 4 Sekunden und eine Auflösung von 40 ms bei max. Dies ohne Multichannel-Handling. Durch das Entfernen des Velocity-Trackings konnte ich die Aufnahmezeit auf bis zu 7 Sekunden erhöhen.

Mit einer UNO kann man dann zwar eine "funktionierende" MIDI-Loop-Station realisieren, allerdings stark eingeschränkt.

Schritt 4: Software

Die Software stützt sich stark auf die FortySevenEffects MIDI-Bibliothek. Diese Bibliothek ist großartig und macht diese Art von Projekten auch für Nicht-Programmierer wie mich machbar.

Die Arduino IDE und ihre Community sind ein weiterer wichtiger Teil dieses "Erfolgs".

Ich werde nicht näher darauf eingehen, wie Sie die Skizze auf Ihr arduino DUE hochladen. Wenn dies Ihre erste Erfahrung mit arduino IDE ist, lesen Sie dies bitte zuerst.

Ich habe zwei verschiedene Versionen des Codes geschrieben, die auf zwei völlig unterschiedlichen Ansätzen basieren.

Das Funktionsprinzip von Version 1 besteht darin, dass Arduino DUE während der Aufnahme oder des Overdubbings die unterstützten MIDI-Events (Note On, Note Off, Control Change und Pitch Bend) überprüft und in seinem (flüchtigen) Speicher speichert; Die Zeitachse wird in 20-ms-Schritten quantisiert und empfangene Nachrichten werden entsprechend in diesen Schlitzen gespeichert. Während des Spielens werden gespeicherte MIDI-Meldungen unter Berücksichtigung der Zeitquantisierung an den Synthesizer zurückgesendet.

Das Arbeitsprinzip von Version 2 besteht stattdessen darin, das Midi-Ereignis und den Zeitpunkt, zu dem das Ereignis ausgelöst werden muss, "einfach" aufzuzeichnen. Version 2 hat andere Beschränkungen als Version 1 (aufgeführt in einem vorherigen Schritt). Probieren Sie beide aus und verwenden Sie diejenige, die für Sie besser funktioniert.

Es gibt auch ein vorläufiges Clock-Handling, aber es braucht einige Optimierungen, um so zu funktionieren, wie es sollte. Code geht davon aus, dass Sie einen 4/4 - 4 Takte Loop (16 Beats) aufnehmen.

Sie können die externe Clock deaktivieren, indem Sie beim Einschalten des Loopers die „Panik“-Taste gedrückt halten.

Codes werden HIER hochgeladen. Überall sind Kommentare platziert, sodass Sie diese Firmware nach Belieben biegen können;)

Schritt 5: Verkabelungen

Verkabelung
Verkabelung
Verkabelung
Verkabelung
Verkabelung
Verkabelung

MIDI IN- und MIDI OUT-Schaltungen sind in den beigefügten Bildern beschrieben. Beachten Sie, dass TX1 und RX1 verwendet werden, nicht TX0 und RX0.

Arduino DUE-Eingangspins können 5 V nicht verarbeiten, aber 3,3 V; Aus diesem Grund wird ein H11L1-Optokoppler anstelle des üblicheren 6N138 verwendet. Ich habe Beweise dafür, dass die Verwendung eines 6N138, der mit einem Spannungsteiler gekoppelt ist, um die Signalspannung zu reduzieren, die an TX1 geht, wie in meinem ersten Prototyp in einigen Setups unregelmäßig funktionieren könnte.

LEDs sind über 470-Ohm-Widerstände mit Arduino DUE-Ausgangspins verbunden. Sie können Widerstände bis zu 1K Ohm verwenden, um den Strom zu den LEDs zu reduzieren und ihre Leuchtkraft zu reduzieren.

Tasten / Schalter / Buchsen sind dank der in der Skizze aktivierten Eingangs-Pullup-Widerstände direkt mit den Arduino-Eingangspins verbunden. Es sind keine externen (Pulldown-)Widerstände erforderlich.

Der optische Encoder ist mit GND und +5V verbunden. Es geht zu Arduino-Eingangspins, die durch 2 480-Ohm-Widerstände gehen, einen für jeden optischen Datenausgang.

Arduino DUE wird über einen +5V DC-Hub direkt von 5V-Pin und Masse mit Strom versorgt.

Alle Gründe sind miteinander verbunden.

Angehängt ist eine Tabelle mit Verbindungen von Arduino-Pins zum IN / OUT-Peripheriegerät. Arduino-Pin-Nummern spiegeln die in meiner Prototyp-Hardware wider und könnten zufällig aussehen (sie sind irgendwie …). Sie können die Pinposition in der Skizze nach Belieben ändern;)

Schritt 6: Was ist, wenn ich mehr als eine MIDI-Quelle habe?

Was ist, wenn ich mehr als eine MIDI-Quelle habe?
Was ist, wenn ich mehr als eine MIDI-Quelle habe?

Nach einer kurzen Suche nach einem MIDI-Merger fand ich, dass die praktischste (und billigste) Lösung ein MIDI-Switcher war.

Ein MIDI-Umschalter ist ein passives Gerät, das eine MIDI-Quelle aktiviert und alle anderen Quellen deaktiviert. So einfach ist das.

Das Herz eines MIDI-Switchers ist ein 2-poliger Multi-Positional-Schalter (meiner ist 6-Position). Es ist sehr wichtig, dass die Polzahl "2" ist, da jede MIDI-Buchse komplett abgeschnitten werden muss, wenn sie nicht ausgewählt ist und nicht mit den anderen kommuniziert. Anbei ein Bild von dem, das ich für meinen eigenen Gebrauch realisiert habe.

Bei DIESEM LINK ein Schema.

Empfohlen: