Inhoudsopgave:

Arduino MIDI-controller voor Aalto - Ajarnpa
Arduino MIDI-controller voor Aalto - Ajarnpa

Video: Arduino MIDI-controller voor Aalto - Ajarnpa

Video: Arduino MIDI-controller voor Aalto - Ajarnpa
Video: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Juli-
Anonim
Arduino MIDI-controller voor Aalto
Arduino MIDI-controller voor Aalto

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

Ontwerp je eigen
Ontwerp je eigen
Ontwerp je eigen
Ontwerp je eigen
Ontwerp je eigen
Ontwerp je eigen
Ontwerp je eigen
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

Solderen en Bedrading
Solderen en Bedrading
Solderen en Bedrading
Solderen en Bedrading
Solderen en bedrading
Solderen en bedrading
Solderen en Bedrading
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

Van hardware naar software
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

Codeer tijd!
Codeer tijd!

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:

  1. Elektrische waarden mijn fluctueren
  2. je wilt je DAW niet overspoelen met onnodige CC-signalen
  3. 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

Zet je spullen bij elkaar
Zet je spullen bij elkaar
Zet je spullen bij elkaar
Zet je spullen bij elkaar
Zet je spullen bij elkaar
Zet je spullen 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: