Innholdsfortegnelse:

Arduino MIDI -kontroller for Aalto: 7 trinn
Arduino MIDI -kontroller for Aalto: 7 trinn

Video: Arduino MIDI -kontroller for Aalto: 7 trinn

Video: Arduino MIDI -kontroller for Aalto: 7 trinn
Video: Web Programming - Computer Science for Business Leaders 2016 2024, Juli
Anonim
Arduino MIDI -kontroller for Aalto
Arduino MIDI -kontroller for Aalto

Som amatørmusiker går jeg ofte fra Analog Synths til VST.

Når jeg er i "VST" -stemning, liker jeg virkelig et fantastisk instrument: Madronalabs Aalto VST

Denne utrolige VST er veldig fleksibel, den genererer veldig gode lyder og er ganske enkel å bruke til en fornuftig pris.

Min begrensning av VST -er er imidlertid at jeg egentlig ikke kan berøre kontrollene, og jeg må bruke musen/styreflaten mens jeg jam - ikke den beste. Jeg eier en MIDI -kontroller, men knappene gjenspeiler ikke det virkelige Aalto -grensesnittet.

På den annen side, med modulære eller halvmodulære synths, kan du ikke lagre oppdateringene dine, noe som gjør det hele litt frustrerende for meg.

Så jeg ønsket å lage en Custom MIDI -kontroller for Aalto med et design som gjenspeiler Aaltos grensesnitt for å kontrollere de mest relevante tingene.

Følg meg på Instagram for å se flere videoer av prosessen: weirdest.worry

Meg, på Spotify:

Rekvisita

- 1 Arduino Mega- 14 potensiometre (jeg brukte de -> PTV09A -4020F -B103) - Et brødbrett for prototyper - jeg anbefaler virkelig Electro Cookie perfboard som er veldig bra for lodding (den blå på bildet) - Kryssfiner - lodding Jern - Kobberbånd - Hoppetråder

Trinn 1: Design din egen

Design din egen
Design din egen
Design din egen
Design din egen
Design din egen
Design din egen
Design din egen
Design din egen

Fra grensesnittet til min VST, ønsket jeg å ramme oppsettet mitt med litt papir for å finne den perfekte passformen.

Jeg har da designet det med en programvare, skrevet det ut og limt det på en pappprototype for å se om oppsettet kan fungere i den virkelige verden.

Dette trinnet er virkelig opp til deg - du kan designe den for en tinnboks eller en fyrstikkeske: min anbefaling er å prototype så mye du kan.

Å få kryssfinerhuset til å passe til elektronikkbrettene og bruke perfboard er ikke det mest presise noensinne: jo mer du tester, desto bedre er det.

Trinn 2: Lodding og ledninger

Lodding og ledninger
Lodding og ledninger
Lodding og ledninger
Lodding og ledninger
Lodding og ledninger
Lodding og ledninger
Lodding og ledninger
Lodding og ledninger

Når designet er ferdig, kan du gå for elektronikk!

Merk: Jeg antar at du vet hvordan disse stoffene fungerer, så jeg vil ikke gå inn på detaljer om lodding og tilkoblinger.

I denne fasen brukte jeg 2 forskjellige perforerte brett for tre atskilte kretser: den gulaktige er trolig den vanligste. Jeg liker det ikke så godt, men jeg hadde en ekstra, så jeg ville bruke den uansett. Den blå-ish er mye bedre, og jeg anbefaler virkelig å bruke den i stedet hvis du er en nybegynner som jeg er.

I gul-ish er ett hull veldig, veldig lite og kobber er bare på den ene siden rundt hvert eneste hull, loddetinn vil ikke strømme gjennom hullet.

For å designe sporene på dette brettet bestemte jeg meg for å gå for 5 mm kobberbånd: Jeg kuttet det i to, men det var en forferdelig idé. Siden det er veldig lett, er det forferdelig å håndtere og det kan hende at både GND og VCC ikke distribueres riktig. Det krevde mye testing og fiksing, og det tok veldig lang tid.

Men hei, det ser veldig bra ut på slutten.

Det er litt smertefullt å få ledningene til å løpe rundt: å fullføre dette brettet er sannsynligvis det som tok mest tid.

Å bruke det blå perfboardet (kalt Electro Cookie på Amazon) var langt bedre: det er koblet til som et brødbrett, du kan unngå å bruke kobberbånd siden pinner og ledninger allerede er tilkoblet når de loddes på samme blokk.

Du kan også knipse den med hendene i mindre biter som er fryktelig bedre.

Hull er større og belagt med kobber, noe som gjør lodding super raskt og rent.

Det tok 3-4 dager å gjøre det første gulaktige brettet, bare noen få timer for å lage de andre 2.

Merknad om potensiometre Som du kan se måtte jeg bøye gryteføtter - de er ment å bli brukt på PBC -er og er egentlig ikke de beste i dette tilfellet. Men å bøye føttene til riktig vinkel gjorde dem veldig stabile.

Trinn 3: Fra maskinvare til programvare

Fra maskinvare til programvare
Fra maskinvare til programvare

Nå har du alle tingene tilkoblet, og forhåpentligvis gjorde du testene dine for å kontrollere at Vcc og GND er ok.

Potensiometre er sannsynligvis det enkleste å begynne med på Arduino.

De har tre pinner: en er for GND, en er for 5V. Den sentrale pinnen er en slags "utgang" av potensiometeret. Hvis du kobler GND til venstre pinne, 5V til høyre pinne og du dreier potten med klokken, vil du se verdien øke på "utgangen" mellom 0 til 5V.

Den sentrale pinnen går til en av de "analoge inngangene" til Arduino som vil prøve verdien, og den vil oversette den til et digitalt tall: Arduino Mega 2560 oversetter verdiene fra 0 til 1023 (det vil gi en 0 når potten er alt veien gjennom venstre, 1023 når er helt gjennom høyre, 5V).

Husk at MIDI godtar verdier fra 0 til 123, så du må dele Arduino -verdien med 8 før du sender hele tallverdien via seriell.

Det ser veldig enkelt ut (og det er), men det er et par ting å huske på:- Ofte er potter ikke super presise: utgangen deres kan tilfeldig hoppe til de tilstøtende verdiene og utløse uønskede CC-kommandoer- kretsen din (vel, min i dette tilfellet) er ikke perfekt: siden det ikke er et kretskort, kan du ha tilfeldige verdier her og der, så igjen, tilfeldige verdier.- du vil ikke sende MIDI CC-verdier hele tiden, ellers vil DAW sannsynligvis tette så du må finne en løsning for å unngå dette

Koden min er skrevet for å takle de tre punktene ovenfor, og den gjør det ganske bra.

Trinn 4: Hvordan fungerer MIDI

MIDI er en veldig gammel protokoll, designet og laget for å få datamaskiner og instrumenter til å fungere sammen.

Det er en omfattende forklaring på hvordan MIDI fungerer: Når det gjelder å sende notater, er det tonnevis av signaler du kan sende, men i vårt tilfelle er alt veldig enkelt.

Vi jobber med Control Change (MIDI), så vi må bruke en av disse kanalene som er rapportert i denne tabellen:

www.midi.org/specifications-old/item/table…

fra 176 til 191.

Når du sender MIDI/CC -verdier, må du sende via seriell: - statusbyte (første kolonne i tabellen) for å fortelle DAW -en at du sender en CC - hvilken kontroll - i dette tilfellet hvilken KNOB - sender den (heltall)- verdien av kontrollen

I mitt tilfelle har jeg 14 knapper, så en melding kan være:

Serial.write (176, 13, 107)

Knott 13 sender 107 verdi via CC.

MIDI godtar verdier fra 0 til 123 mens Arduino leser analoge verdier fra 0 til 1023 - bare husk å dele med 8 før du sliper verdien.

Trinn 5: Hvordan sende MIDI over USB på Arduino

Du har to alternativer for å sende MIDI over USB med Arduino:

  • blinker en intern Arduino USB -kontroller (anbefalt helt på slutten av prosjektet)
  • forlater Arduino lager og bruk en programvare på din PC (denne) MEGET ANBEFALT

Blinkende Arduino USB -kontroller er ikke den mest praktiske måten å prototype på: Når du blinker fastvaren for å sende MIDI over USB, vil Arduino ikke motta noen ny kode å laste opp, så hvis du vil oppdatere koden, må du blinke fastvaren Så for eksempel, din Arduino er lager og du laster opp koden. Du blinker den for å få MIDI til å fungere. Koble den fra. Koble den til. Du tester koden. Den fungerer ikke.

Du blinker den tilbake til stock. Unplug. Plug-in. Rediger koden. Upload. Flash. UnplugPlugin [REPEAT AND CRY]

Den eneste fordelen med dette er at du ikke trenger å bruke ekstern programvare, men jeg anbefaler å bruke denne metoden bare helt på slutten av prosjektet.

På den annen side er Hairless superenkelt å bruke fordi du ikke trenger å blinke noe - hvis du er på en Mac fungerer det perfekt med MIDI -oppsett, og DAW -en din vil umiddelbart gjenkjenne den som "hårløs midikontroller". Mye, mye bedre.

Trinn 6: Kodetid

Kodingstid!
Kodingstid!

Ikke mye å si her da jeg postet koden min på Github, og jeg har kommentert koden så mye jeg kunne.

Bare husk noen grunnleggende ting:

  1. Elektriske verdier svinger
  2. du vil ikke oversvømme DAW med unødvendige CC -signaler
  3. Du vil ikke sende duplikat CC -melding

I koden min er alt forklart, og du finner den her

Trinn 7: Sett sammen tingene dine

Sett sammen tingene dine
Sett sammen tingene dine
Sett sammen tingene dine
Sett sammen tingene dine
Sett sammen tingene dine
Sett sammen tingene dine

Nå fungerer koden din, og det eneste du trenger å gjøre er å sette sammen tingene dine.

Dette vil kreve noen treferdigheter jeg ikke har (heldigvis hjalp kona mi meg i prosessen) så jeg kan egentlig ikke gi råd, men hvis du bestemte deg for å bruke perfboards vil du få et veldig rent og ryddig arbeid. Koble nå til USB -en din, åpne DAW og slipp litt bass!

Anbefalt: