Inhoudsopgave:
- Stap 1: Materialen
- Stap 2: Ontwerp
- Stap 3: Constructie en bedrading
- Stap 4: Programmeren
- Stap 5: Instellen
Video: Arduino Uno Midi Fighter - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Deze instructable is gemaakt om te voldoen aan de projectvereiste van de Makecourse aan de University of South Florida (www.makecourse.com)
Gebaseerd op de populaire MidiFighter van DJ Techtools, kan deze zelfgemaakte Arduino-aangedreven Musical Instrument Digital Interface (MIDI)-controller worden gebruikt als een MIDI-apparaat in elke Digital Audio Workstation (DAW)-software. Een MIDI-controller kan MIDI-berichten verzenden en ontvangen van een computer en kan worden gebruikt om direct te controleren welke software wordt gebruikt. Bovendien zijn de bedieningselementen op een MIDI-controller volledig aanpasbaar - wat betekent dat elke afzonderlijke knop, schuifregelaar en knop kan worden toegewezen aan elke functie in een DAW. Als u bijvoorbeeld op een knop drukt, kunt u een specifieke noot spelen of worden geprogrammeerd om het tempo van uw audioproject te wijzigen.
github.com/jdtar/Arduino-Midi-Controller
Stap 1: Materialen
Hieronder vindt u een lijst met materialen en gereedschappen die in dit project zijn gebruikt.
Arduino Uno
Breadboard
4051/4067 Multiplexer
Doorverbindingsdraden
Extra draad
2x 10k ohm lineaire schuifpotentiometers
16x Sanwa 24mm knoppen
Krimpkous
Soldeerbout
Scheermesje
4,7 kΩ weerstand
Acrylplaat (voor deksel)
Behuizing voor knoppen en Arduino
3D-printer
Lasersnijder
Stap 2: Ontwerp
Ik kreeg al de behuizing voor mijn MIDI-controller voordat ik met het project begon, dus ik maakte een schets voor het deksel om te visualiseren waar alles moest worden geplaatst. Ik wist dat ik ten minste 16 knoppen en een paar potentiometers als functie wilde hebben, dus ik probeerde de componenten zo gelijkmatig mogelijk te verdelen.
Nadat ik de lay-out voor het deksel had opgesteld, exporteerde ik het bestand als een 1:1 PDF en stuurde het naar een lasersnijder om een acrylplaat te snijden. Voor schroefgaten markeerde ik waar ik de gaten wilde hebben met een marker en smolt het acryl met een hete gloeidraad.
Bijgevoegd is de 1:1 PDF die kan worden afgedrukt als een 1:1 en kan worden gesneden met elektrisch gereedschap als er geen lasersnijder beschikbaar is.
Stap 3: Constructie en bedrading
Na het snijden van het acryl, kwam ik erachter dat het acryl te dun was om alle componenten voldoende te ondersteunen. Ik knipte toen nog een vel uit en plakte ze aan elkaar, wat toevallig perfect werkte.
Het bedraden van de componenten kostte wat vallen en opstaan, maar resulteerde in de bijgevoegde Fritzing-schets. Ik heb eerst de aardingsdraden en de weerstand van 4,7 k aangesloten, de verbindingen op de knoppen gesoldeerd en met warmte gekrompen. Het monteren van de twee schuifpotentiometers vereiste smeltgaten voor de schroeven in het acryl. Nadat de twee potentiometers waren ingeschroefd, werden ze aangesloten op de analoge pinnen A0 en A1. Nadat de bedrading was voltooid, herinnerde ik me dat er geen knopdoppen voor mijn faders waren, dus in plaats van ze te kopen, drukte ik enkele knopdoppen af met een 3D-printer door ze te schetsen in Autodesk Fusion 360 en te exporteren naar een STL-bestand. de
De Arduino Uno heeft slechts 12 beschikbare digitale ingangspinnen, maar 16 knoppen moesten worden aangesloten. Om dit te compenseren, heb ik een 74HC4051 Multiplexer aangesloten op een breadboard die 4 digitale ingangspinnen gebruikt en meerdere signalen in staat stelt om een gedeelde lijn te gebruiken, wat resulteert in 8 beschikbare digitale ingangspinnen voor een totaal van 16 digitale pinnen die beschikbaar zijn voor gebruik.
Het aansluiten van de knoppen op de juiste pinnen was gewoon een kwestie van een 4x4-matrix maken en die in de code gebruiken. Het lastige was echter dat de specifieke multiplexer die werd gekocht een specifieke pinlay-out had waarmee de datasheet hielp en ik had ook een specifieke notitielay-out in gedachten bij het bedraden van de knoppen, die er uiteindelijk een beetje zo uitzag:
OPMERKING MATRIX
[C2] [C#2] [D2] [D#2]
[G#2] [A1] [A#2] [B1]
[E1] [F1] [F#1] [G1]
[C2] [C#2] [D2] [D#2]
PIN-MATRIX (M = MUX-INGANG)
[6] [7] [8] [9]
[10] [11] [12] [13]
[M0] [M1] [M2] [M3]
[M4] [M5] [M6] [M7]
Stap 4: Programmeren
Zodra de montage is voltooid, hoeft u alleen nog maar de Arduino te programmeren. Het bijgevoegde script is zo geschreven dat het gemakkelijk aanpasbaar is.
Het begin van het script bevat de MIDI.h-bibliotheek en een controllerbibliotheek die is geleend van de Notes- en Volts-blog, die beide zijn opgenomen in het zipbestand voor de code. Met behulp van de controllerbibliotheek kunnen objecten voor knoppen, potentiometers en gemultiplexte knoppen worden gemaakt die gegevenswaarden bevatten, waaronder het nootnummer, besturingswaarden, nootsnelheid, MIDI-kanaalnummer, enz. De MIDI.h-bibliotheek maakt MIDI I/O-communicatie op de Seriële Arduino-poorten die op hun beurt de gegevens van de controller-objecten nemen, ze omzetten in MIDI-berichten en de berichten verzenden naar welke midi-interface dan ook is aangesloten.
Het void setup-gedeelte van het script initialiseert alle kanalen als uit en initieert ook een seriële verbinding op 115200 baud, een snelheid die sneller is dan de MIDI-signalen die worden uitgewisseld.
De hoofdlus neemt in wezen de reeksen knoppen en gemultiplexte knoppen en voert een for-lus uit die controleert of de knop is ingedrukt of losgelaten en de bijbehorende databytes naar de midi-interface stuurt. De potentiometerlus controleert de positie van de potentiometer en stuurt de bijbehorende spanningsveranderingen terug naar de midi-interface.
Stap 5: Instellen
Nadat het script op de Arduino is geladen, is de volgende stap plug-and-play. Er zijn echter een paar stappen voordat het kan worden gebruikt.
In OSX heeft Apple een functie ingebouwd om virtuele midi-apparaten te maken die toegankelijk zijn via de toepassing Audio Midi Setup op macs. Zodra het nieuwe apparaat is gemaakt, kan Hairless MIDI worden gebruikt om een seriële verbinding te maken tussen de Arduino en het nieuwe virtuele midi-apparaat. De seriële verbinding van de Arduino via Hairless MIDI werkt met de baudrate die is gedefinieerd in het ongeldige setup-gedeelte van het script en moet equivalent worden ingesteld in de Hairless MIDI-voorkeursinstellingen.
Voor testdoeleinden gebruikte ik Midi Monitor om te controleren of de juiste gegevens werden verzonden via de seriële MIDI-verbinding. Toen ik eenmaal had vastgesteld dat alle knoppen de juiste gegevens via de juiste kanalen hadden verzonden, stelde ik het MIDI-signaal in om naar Ableton Live 9 te leiden als een MIDI-invoer. In Ableton was ik in staat om gesegmenteerde audiosamples toe te wijzen aan elke knop en elke sample af te spelen.
Aanbevolen:
Bouw een Arduino MIDI-controller: 5 stappen (met afbeeldingen)
Bouw een Arduino MIDI-controller: Hallo allemaal! In deze instructable laat ik je zien hoe je je eigen Arduino-aangedreven MIDI-controller kunt bouwen. MIDI staat voor Musical Instrument Digital Interface en is een protocol waarmee computers, muziekinstrumenten en andere hardware met elkaar kunnen communiceren
Een Arduino MIDI-controller bouwen: 9 stappen (met afbeeldingen)
Een Arduino MIDI-controller bouwen: deze instructable is oorspronkelijk gepubliceerd op mijn blog op 28 juni 2020. Ik vind het leuk om dingen te bouwen die elektronica bevatten, en ik heb altijd al iets willen bouwen met Arduino. Een van de meest voorkomende builds voor beginners die ik vond, was een MIDI-controller
Arduino MIDI-drums: 6 stappen
Arduino MIDI-drums: ooit afgevraagd om drums te leren, maar je kunt een drumstel niet betalen of je hebt niet genoeg ruimte om het drumstel op te slaan. Maak thuis gemakkelijk een MIDI-drumstel met Arduino onder ₹ 800 ($ 10)
MIDI-drumkit op Python en Arduino: 5 stappen (met afbeeldingen)
MIDI-drumstel op Python en Arduino: ik wilde altijd al een drumstel kopen sinds ik een kind was. Destijds had alle muziekapparatuur niet alle digitale toepassingen zoals we er tegenwoordig veel hebben, vandaar dat de prijzen en de verwachtingen te hoog waren. Onlangs heb ik besloten om een c
MIDI/Arduino-gestuurde 8-bits geluidsgenerator (AY-3-8910): 5 stappen
MIDI/Arduino Controlled 8-Bit Sound Generator (AY-3-8910): Bouw een retro klinkende 8-Bit Sound Generator en bedien deze via MIDI. Dit ontwerp is gedeeltelijk geïnspireerd door Chiptune-enthousiastelingen die Arduino-circuits bouwen om Chiptune-bestanden en enkele mijn eigen ideeën om het geluid van vroege videogame-nadelen te integreren