Inhaltsverzeichnis:
Video: HX1-DM - die Upcycled Arduino DUE Powered DIY Drum Machine (hergestellt mit einer toten Maschine MK2) - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Die spez
- Hybrider Midi-Controller / Drum-Machine: Arduino DUE powered!
- 16 Velocity Sensing Pads mit sehr geringer Latenz 1>ms
- 8 Regler, die jedem Midi #CC-Befehl zuweisbar sind
- 16ch Eingebauter Sequenzer (kein Computer erforderlich!!)
- MIDI In/Out/Thru-Funktionalität (kann als USB-Midi-Interface verwendet werden!)
- Teilweise MIDI-Clock- und MTC-Unterstützung (funktioniert mit MMC- und DAW-Steuerung)
Dies ist definitiv eines der kompliziertesten Projekte, an denen ich gearbeitet habe, es handelte sich um 17 Ausgangsschieberegister, 6 Eingangsschieberegister, 2x 16-Kanal-Multiplexer, die auf einer Platine arbeiten. Ich habe keine Ahnung, was was und wo ist, und ich habe noch nie durcheinander gebracht mit Schieberegistern / Multiplexern vor……
Es begann als Impulskauf bei eBay, ich wollte unbedingt eine Native Instruments Maschine, weil ich die Drum-Pads auf ihnen im Vergleich zu denen im MPC-Studio, die ich besaß, immer mochte Ich würde versuchen, es zu reparieren, wobei das Worst-Case-Szenario lautet: "Wenn ich es nicht reparieren kann, habe ich ein Arduino DUE und ein paar UNOs, die herumliegen, ich könnte immer etwas hacken"
Die Drumpads gefallen mir sowieso sehr gut!!!!
Lieferungen
1 x defekte Native Instruments Maschine MK2
1 x Arduino fällig.
17 x SN74HC595 - 8-Bit-Ausgangsschieberegister
6 x SN74HC165 - 8-Bit-Eingangsschieberegister
2 x 74HC4067 - 16-Kanal-Multiplexer.
2 x 3,2 256x64 OLED-Displays.
etwas Flachdraht (altes Floppy-Kabel reicht aus)
Schritt 1: Die Reparatur
Der eBay-Verkäufer war so freundlich, eine Vorstellung davon zu geben, was in der Beschreibung zu erwarten ist, und hatte den USB-Anschluss entfernt. Die Platine hatte eine Überspannung erlitten und ließ sich nicht einschalten. Cue das Multimeter…. Das Board schien einen Kurzschluss zu haben.. 'Ich habe schon unzählige Motherboards mit Shorts repariert Also wie schwer kann es sein!?!' Komponente auf der Platine einschließlich der Haupt-CPU. Diesem Board ging es wirklich schlecht!
Ich fuhr fort, mit meinem Multimeter herumzustochern, ein wenig über die Komponenten zu recherchieren und herauszufinden, was jeder einzelne macht, und NI hat großartige Arbeit geleistet, um die Dinge mit den verschiedenen Testpunkten rund um das Motherboard ziemlich offensichtlich zu machen.
Schritt 2: Der Hack
Da ich wusste, dass ich alles außer der Haupt-CPU ersetzen muss (die nicht benötigt wird), wandte ich mich an eBay. Zum Glück war alles, was benötigt wurde, billig, so dass es Spaß machte, eine Menge davon zu bestellen. ?
17 x SN74HC595 - 8-Bit-Ausgangsschieberegister
Die 17 Ausgangsschieberegister werden verwendet, um die mehrfarbigen LEDs des Drum-Pads und alle Button-LEDs (136 um genau zu sein!) zu steuern. Diese sind wirklich einfach zu bedienen und haben mit der Arduino IDE schnell eine Bibliothek gefunden, um mir die Erstellung zu sparen.. sie sind aneinander gekettet.
6 x SN74HC165 - 8-Bit-Eingangsschieberegister
Diese Eingangsschieberegister eignen sich hervorragend für mehrere Eingänge auf einem Kanal. Es gibt insgesamt 48 Tasten.
2 x 74HC4067 - 16-Kanal-Multiplexer
Wir haben noch 16 Pads und 8 Regler, die ebenfalls analog sind. Ich fand es einfacher, diese zu verwenden, da die auf der Platine 8-Kanal waren und ich Probleme hatte, herauszufinden, wo die Datenpins angeschlossen werden sollten. Cue Spaghetti Junction….
2 x 3,2" 256x64 OLED-Displays
Es muss einige Bildschirme haben !!! Ich konnte keine Informationen zu den Original-LCD-Bildschirmen finden, die in der NI-Maschine enthalten waren, und ich konnte nicht mehr Zeit damit verschwenden, es zu versuchen, also beschloss ich, einige aus China zu bestellen … Ich habe die UG8x8-Bibliothek verwendet, um diese zum Laufen zu bringen. Die neuen Bildschirme waren etwas kleiner als das Original, also habe ich nur die "schlechten Teile" ausgeblendet.
1 x Arduino fällig
Ich hatte das einige Zeit herumliegen und auf ein Projekt gewartet, das für all diese Macht würdig genug war! Es gab ein Problem, auf das ich gestoßen bin. Es scheint, dass einige Revisionen dieser Boards ein Reset-Problem haben, das bedeutete, dass ich manchmal die Reset-Taste drücken musste, um das Ding nach dem Hochladen einer Skizze zum Laufen zu bringen. Dies wurde leicht mit einem 10K-Widerstand behoben (dazu gibt es einen Beitrag im Arduino-Forum).
Schritt 3: Der Code
Ich war wirklich beeindruckt, wie viel Unterstützung es in der Arduino-Community gibt. Das Auffinden von Codebeispielen und Bibliotheken für die verschiedenen Komponenten war wirklich einfach und unkompliziert.
Das USB-Midi zum Laufen zu bringen war einfach und dauerte ein paar Minuten. Die LEDs brauchten einige Zeit und ich musste eine Skizze erstellen, die jeden Pin in 1-Sekunden-Intervallen inkrementell auf HIGH setzt und mir eine Notiz machte. Ich habe ein Array erstellt, das die PIN-Nummern enthielt, um das Codieren zu erleichtern.
Ich habe 2 Bibliotheken erstellt, um mit den Multiplexern zu kommunizieren, eine behandelt die analogen Pads und die andere die Regler. Das war wieder ganz einfach. Ich habe sie angehängt, sie können gerne bearbeiten usw.
Ich wollte einen Sequenzer und die Möglichkeit haben, ohne Computer aufzunehmen. Ich fand einige Informationen zum Konvertieren von BPM in ms und fand eine großartige Arduino DUE-Timer-Bibliothek.
Mit der Timer-Bibliothek konnte ich Leseeingänge und Dinge in Intervallen einstellen:
Pads @ 1ms - Ich habe festgestellt, dass dies die beste Balance zwischen Response- / De-Bounce-Artefakten bietet.
Tasten @ 40ms - Ich habe eine Warteschlangenbibliothek verwendet, damit kein Drücken verpasst wurde.
Die Verarbeitung erfolgt in der Hauptschleife, Sie können nicht zu viel tun, wenn Sie sich in einem Interrupt befinden, da dies das Arduino sperrt.
Midi-Stuff @BPM (in ms) - für das Sequencing wird beim gewünschten BPM eine Funktion aufgerufen, die aktualisiert, welche Noten ETC gespielt werden sollen und den Beatcounter erhöht.
Schritt 4: Fazit
Ich bin mir nicht sicher, was ich hier gemacht habe, aber ich bin ziemlich stolz, die Pads reagieren ausgezeichnet, ich musste mit dem Timing herumfummeln, um die richtige Balance mit Reaktions- und Entprellungsproblemen zu finden. Die Sequenzierung funktioniert großartig und sobald ich die DAW-Unterstützung herausgefunden habe, kann ich dieses Ding vollständig in meinen Workflow integrieren und Dinge in einen Controller einfügen, den ich schon immer wollte! um sich mit C auseinanderzusetzen, Reverse-Engineering zu verstehen und wie Multiplexer, Schieberegister und MIDI-Sequenzierung funktionieren. Ich bin dabei, den Hauptcode weiter zu verbessern und könnte ihn eines Tages als Open-Source-Rhythmusdesigner veröffentlichen.
TIPPS:
Ich habe herausgefunden, wie man den USB-Namen des DUE ändert, indem ich eine der Header-Dateien im Arduino / SAM-Ordner bearbeitet habe.
MIDI-OX ist ein großartiges Tool zum Testen der Midi-Funktionalität
LINKS:
www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spechttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi… Einige Informationen zum Konvertieren von BPM in ms
travis-ci.com/SMFSW/Queue - Für Tasteneingaben, damit wir kein Drücken verpassen!
github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8-Bibliothek für LED/LCD-Bildschirme
github.com/ivanseidel/DueTimer/releases - Arduino DUE Timing Lib
www.pjrc.com/teensy/td_libs_Encoder.html - Encoder Lib für den großen Knopf
shiftregister.simsso.de/ - ShiftIn Register lib - Erstellt von Henrik Heine, 24. Juli 2016
forum.arduino.cc/index.php?topic=57636.0 - MIDI-Timecode-Zeug
Empfohlen:
Anleitung zur nutzlosen Maschine: 21 Schritte (mit Bildern)
Anleitung zur nutzlosen Maschine: Die nutzlose Maschine ist eine Variation von Marvin Minskys "Ultimate Machine", die im Grunde eine Maschine ist, deren ultimatives Ziel es ist, sich selbst auszuschalten. Nach dem Aufbau werden Sie erstaunt sein, wie eine Maschine aus zwei Schaltern und einem Motor besteht und nicht
So leiten Sie ein USB-Modem zu einer virtuellen VMware ESXi-Maschine um – wikiHow
So leiten Sie ein USB-Modem zu einer virtuellen VMware ESXi-Maschine um: Hallo zusammen! Heute erkläre ich Ihnen, wie Sie ein USB-Modem auf eine virtuelle VMware ESXi-Maschine umleiten. Auf die gleiche Weise können Sie einen Speicherstick und einige andere USB-Geräte umleiten. Diese altbewährte VMware-Funktion hat ihre Vor- und Nachteile, daher haben wir
DIY Audio-Cinch-Stecker (männlich / weiblich) - Aluminium hergestellt: 3 Schritte
DIY Audio-Cinch-Stecker (männlich / weiblich) | Aluminium Made: Sehen Sie sich das Video an: Dies ist ein spezieller Cinch-Stecker aus Aluminiumblech, sowohl männlich als auch weiblich. So lernen Sie, wie Sie einen herstellen, wenn Sie keine Stecker mehr haben oder Ihr Lautsprecher kaputt ist. Machen Sie jetzt einfach einen zu Hause und ersetzen Sie den kaputten oder verwenden Sie ihn einfach als
Gewusst wie: Einrichten einer IPCop Virtual Machine Firewall zum Schutz Ihres Windows-Hosts (kostenlos!): 5 Schritte
Gewusst wie: Einrichten einer IPCop Virtual Machine Firewall zum Schutz Ihres Windows-Hosts (kostenlos!): Zusammenfassung: Das Ziel dieses Projekts ist es, IpCop (kostenlose Linux-Distribution) in einer virtuellen Maschine zu verwenden, um ein Windows-Hostsystem in einem beliebigen Netzwerk zu schützen. IpCop ist eine sehr leistungsstarke Linux-basierte Firewall mit erweiterten Funktionen wie: VPN, NAT, Intrusion Det
"Verwandeln Sie Ihren toten PC in ein Aquarium": 11 Schritte (mit Bildern)
"Verwandeln Sie Ihren toten PC in ein Aquarium": Was tun mit einem toten veralteten PC??? Verwandeln Sie es in ein Aquarium! Ich hatte einen alten, veralteten, toten PC herumliegen und sah, dass ich ihn für nichts benutzte, und beschloss, ihn in ein Aquarium zu verwandeln. Ich wollte schon lange immer irgendwie