Inhoudsopgave:
- Benodigdheden
- Stap 1: Ontwerp je eigen
- Stap 2: Solderen en bedrading
- Stap 3: Van hardware naar software
- Stap 4: Hoe MIDI werkt
- Stap 5: Hoe MIDI via USB op Arduino verzenden?
- Stap 6: Codeertijd
- Stap 7: Zet je dingen bij elkaar
Video: Arduino MIDI-controller voor Aalto - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Als amateurmuzikant ga ik vaak van analoge synths naar VST's.
Als ik in de "VST" -stemming ben, ben ik echt dol op één geweldig instrument: Madronalab's Aalto VST
Deze ongelooflijke VST is zeer flexibel, genereert zeer goede geluiden en is vrij eenvoudig te gebruiken voor een redelijke prijs.
Mijn beperking van VST's is echter dat ik de bedieningselementen niet echt kan aanraken en dat ik mijn muis/trackpad moet gebruiken terwijl ik jam - niet de beste. Ik heb een MIDI-controller, maar de knoppen komen niet overeen met de echte Aalto-interface.
Aan de andere kant, met modulaire of semi-modulaire synths kun je je patches niet echt opslaan, wat het geheel voor mij een beetje frustrerend maakt.
Dus ik wilde een aangepaste MIDI-controller voor Aalto maken met een ontwerp dat de interface van Aalto weerspiegelt om de meest relevante dingen te besturen.
Volg mij op Instagram om meer video's van het proces te zien: weirdest.worry
Ik, op Spotify:
Benodigdheden
- 1 Arduino Mega- 14 Potentiometers (die heb ik gebruikt -> PTV09A-4020F-B103) - Een breadboard voor prototypes - Ik raad Electro Cookie perfboard echt aan dat erg goed is om te solderen (de blauwe op de afbeelding) - Multiplex - Solderen IJzer - Koperband - Springdraden
Stap 1: Ontwerp je eigen
Uitgaande van de interface van mijn VST, wilde ik mijn lay-out wireframen met wat papier om de perfecte pasvorm te vinden.
Ik heb dat vervolgens met software ontworpen, afgedrukt en op een kartonnen prototype geplakt om te zien of de lay-out in de echte wereld zou kunnen werken.
Deze stap is helemaal aan jou - je kunt het ontwerpen voor een blikken doos of een luciferdoosje: mijn aanbeveling is om zoveel mogelijk prototypes te maken.
Het maken van de multiplex behuizing passend bij de elektronicaborden en het gebruik van perfboards is niet het meest precieze ooit: hoe meer je test, hoe beter.
Stap 2: Solderen en bedrading
Als je ontwerp klaar is, kun je gaan voor elektronica!
Opmerking: ik neem aan dat je een beetje weet hoe die dingen werken, dus ik zal niet ingaan op details over solderen en verbindingen.
In deze fase heb ik 2 verschillende geperforeerde platen gebruikt voor drie gescheiden circuits: de geelachtige is waarschijnlijk de meest voorkomende. Ik vind het niet zo leuk, maar ik had een reserve, dus die wilde ik toch gebruiken. De blauwe is veel beter en ik raad echt aan om die te gebruiken als je een beginner bent zoals ik.
In de geelachtige gaatjes zijn heel, heel klein en koper zit maar aan één kant rond elk gaatje, soldeer zal niet door het gat stromen.
Om de sporen op dit bord te ontwerpen, besloot ik te gaan voor 5 mm kopertape: ik sneed het doormidden, maar het was een vreselijk idee. Omdat het erg licht is, is het verschrikkelijk om mee om te gaan en zowel GND als VCC worden mogelijk niet goed gedistribueerd. Het vergde veel testen en repareren en het duurde erg lang.
Maar goed, het ziet er uiteindelijk heel goed uit.
Het is een beetje pijnlijk om de draden rond te laten lopen: het voltooien van dit bord is waarschijnlijk hetgene dat de meeste tijd heeft gekost.
Het gebruik van het blauwe perfboard (Electro Cookie op Amazon genoemd) was veel beter: het is verbonden als een breadboard, je kunt het gebruik van kopertape vermijden, omdat pinnen en draden al verbonden zijn wanneer ze op hetzelfde blok worden gesoldeerd.
Je kunt het ook met je handen in kleinere stukjes knippen, wat vreselijk beter is.
Gaten zijn groter en gecoat met koper waardoor het solderen super snel en schoon is.
Het duurde 3-4 dagen om het eerste geelachtige bord te maken, slechts een paar uur om de andere 2 te maken.
Opmerking over potentiometers Zoals je kunt zien, moest ik potvoeten buigen - die zijn bedoeld voor gebruik op PBC's en zijn in dit geval niet echt de beste. Door hun voeten in de juiste hoek te buigen, waren ze echter erg stabiel.
Stap 3: Van hardware naar software
Nu heb je al je dingen aangesloten en hopelijk heb je je tests gedaan om te controleren of je Vcc en GND in orde zijn.
Potentiometers zijn waarschijnlijk het gemakkelijkste om mee te beginnen op Arduino.
Ze hebben drie pinnen: één is voor GND, één is voor 5V. De centrale pin is een soort "uitgang" van de potentiometer. Als je GND aansluit op de linker pin, 5V op de rechter pin en je draait de pot met de klok mee, dan zie je de waarde op zijn "output" toenemen tussen 0 en 5V.
De centrale pin gaat naar een van de "analoge ingangen" van Arduino die de waarde zal samplen en deze zal vertalen in een digitaal getal: Arduino Mega 2560 vertaalt de waarden van 0 naar 1023 (het geeft een 0 als de pot helemaal de weg door links, 1023 wanneer is helemaal door rechts, 5V).
Houd er rekening mee dat MIDI waarden van 0 tot 123 accepteert, dus u moet de Arduino-waarde delen door 8 voordat u de integerwaarde via serieel verzendt.
Het ziet er heel eenvoudig uit (en dat is het ook), maar er zijn een paar dingen om in gedachten te houden: - vaak zijn potten niet supernauwkeurig: hun output kan willekeurig naar de aangrenzende waarden springen, waardoor ongewenste CC-commando's worden geactiveerd - jouw circuit (nou ja, de mijne in dit geval) is niet perfect: aangezien het geen PCB is, kun je hier en daar willekeurige waarden hebben, dus nogmaals, willekeurige waarden.- je wilt niet de hele tijd MIDI CC-waarden verzenden of je DAW zal waarschijnlijk zo verstoppen je moet een oplossing vinden om dit te voorkomen
Mijn code is geschreven om de drie bovenstaande punten aan te pakken en het doet het redelijk goed.
Stap 4: Hoe MIDI werkt
MIDI is een heel oud protocol, ontworpen en gemaakt om computers en instrumenten samen te laten werken.
Er is een uitgebreide uitleg over hoe MIDI werkt: als het gaat om het verzenden van notities, zijn er talloze signalen die je kunt verzenden, maar in ons geval is alles heel eenvoudig.
We werken met Control Change (MIDI), dus we moeten een van deze kanalen gebruiken die in deze tabel worden vermeld:
www.midi.org/specifications-old/item/table…
van 176 tot 191.
Wanneer u MIDI/CC-waarden verzendt, moet u via serieel verzenden: - de statusbyte (eerste kolom van de tabel) om uw DAW te vertellen dat u een CC verzendt - welke besturing - in dit geval welke KNOB - deze verzendt (geheel getal) - de waarde van het besturingselement
In mijn geval heb ik 14 knoppen, dus een bericht zou kunnen zijn:
Serieel.schrijven(176, 13, 107)
Knop 13 stuurt 107-waarde via CC.
MIDI accepteert waarden van 0 tot 123, terwijl Arduino analoge waarden van 0 tot 1023 leest - vergeet niet om te delen door 8 voordat u de waarde schuurt.
Stap 5: Hoe MIDI via USB op Arduino verzenden?
Je hebt 2 opties om MIDI via USB te verzenden met Arduino:
- knipperen van een interne Arduino USB-controller (aanbevolen helemaal aan het einde van uw project)
- Arduino-voorraad achterlaten en software op uw pc gebruiken (deze) ZEER AANBEVOLEN
Een knipperende Arduino USB-controller is niet de handigste manier om een prototype te maken: wanneer u de firmware flasht om MIDI via USB te verzenden, ontvangt Arduino geen nieuwe code om te uploaden, dus als u uw code wilt bijwerken, moet u de firmware flashen naar de stockversie. Dus je Arduino is bijvoorbeeld stock en je uploadt de code. Je flasht het om MIDI te laten werken. Ontkoppel het. Stekker het in. Je test de code. Het werkt niet.
Je flasht hem terug naar stock. Unplug. Plug-in. Wijzig de code. Upload. Flash. UnplugPlugin[REPEAT AND CRY]
Het enige voordeel hiervan is dat je geen externe software hoeft te gebruiken, maar ik raad aan om deze methode pas helemaal aan het einde van je project te gebruiken.
Aan de andere kant is Hairless supergemakkelijk te gebruiken omdat je niets hoeft te flashen - als je op een Mac werkt, werkt het perfect met MIDI Setup en je DAW zal het onmiddellijk herkennen als "haarloze midi-controller". Veel, veel beter.
Stap 6: Codeertijd
Hier valt niet veel te zeggen, aangezien ik mijn code op Github heb gepost en ik heb de code zoveel mogelijk becommentarieerd.
Onthoud alleen enkele fundamentele dingen:
- Elektrische waarden mijn fluctueren
- je wilt je DAW niet overspoelen met onnodige CC-signalen
- U wilt geen dubbel CC-bericht verzenden
In mijn code wordt alles uitgelegd en je kunt het hier vindenhttps://github.com/weirdest-worry/aalto_midi_contr…
Stap 7: Zet je dingen bij elkaar
Nu werkt je code en hoef je alleen nog maar je spullen in elkaar te zetten.
Dit vereist wat houtvaardigheden die ik niet heb (gelukkig heeft mijn vrouw me daarbij geholpen), dus ik kan niet echt advies geven, maar als je besluit om perfboards te gebruiken, heb je een heel schoon en overzichtelijk werk. Sluit nu je USB aan, open je DAW en drop wat bas!
Aanbevolen:
Installatie voor externe Bluetooth GPS-provider voor Android-apparaten: 8 stappen
Installatie voor externe Bluetooth GPS-provider voor Android-apparaten: deze instructable legt uit hoe u uw eigen externe Bluetooth-compatibele GPS voor uw telefoon kunt maken, wat dan ook voor ongeveer $ 10. Materiaallijst: NEO 6M U-blox GPSHC-05 bluetooth-module Kennis van interface Blutooth Low energy-modulesArdui
Idee voor doe-het-zelf-activiteit voor weerstations voor 12+ jaar: 4 stappen
Idee voor doe-het-zelf-weerstationactiviteit voor 12-plussers: in deze activiteit zullen deelnemers hun weerstation opzetten, de lucht in sturen en de opnames (licht, temperatuur, vochtigheid) in realtime volgen via de Blynk-app. Bovendien leert u hoe u de geregistreerde waarden publiceert
Systeem voor het bewaken van de luchtkwaliteit voor fijnstofverontreiniging: 4 stappen
Systeem voor monitoring van luchtkwaliteit voor fijnstofverontreiniging: INTRO: 1 In dit project laat ik zien hoe ik een deeltjesdetector bouw met dataweergave, databack-up op SD-kaart en IOT. Visueel geeft een neopixels ringdisplay de luchtkwaliteit aan. 2 Luchtkwaliteit is een steeds belangrijker zorg t
Relaisbord voor Arduino voor minder dan $8: 5 stappen
Relaisbord voor Arduino voor minder dan $8.: Hallo vrienden, vandaag ga ik je vertellen hoe je een relaisbord voor Arduino maakt voor minder dan $8. In dit circuit gaan we geen IC of transistor gebruiken. Dus laten we het doen
3.3V Mod voor ultrasone sensoren (bereid HC-SR04 voor 3.3V Logic op ESP32/ESP8266, Particle Photon, enz.): 4 stappen
3.3V Mod voor ultrasone sensoren (bereid HC-SR04 voor 3.3V Logic op ESP32/ESP8266, Particle Photon, enz.): TL;DR: Knip op de sensor het spoor naar de Echo-pin en sluit het opnieuw aan met een spanningsdeler (Echo trace -> 2.7kΩ -> Echo pin -> 4.7kΩ -> GND). Bewerken: Er is enige discussie geweest over de vraag of de ESP8266 daadwerkelijk 5V-tolerant is op GPIO in