DIY USB DJ Controller (14 / 16 steg)

Steg 14: Software - Program bearbetning



Detta program ansluter till den seriella porten av startfönstret så vi kan få input. Det blir meddelandena, avkodar dem, och formaterar ett MIDI-meddelande och skickar det. Den innehåller också ett användargränssnitt som gör det möjligt att välja rätt serieport och MIDI-anslutning. Du kan spela några ganska kusliga piano med knappsatsen om du ansluter till Microsoft MIDI Synth! Hur som helst, jag ska ge en översikt av hur programmet fungerar och sedan berätta hur man konfigurerar den. Vi behöver ett par saker först.

Material:

  • Bearbetning IDE
  • proMIDI 1.0 bibliotek
  • controlP5 bibliotek

Se föregående steg för länkar

Att få setup

Börja med att installera biblioteken. Hitta din bearbetning mapp (vanligtvis i dokument) och gå till Processing\libraries. Extrahera bibliotek till den här mappen och du bör vara redo (det är samma som installerar bibliotek för Energia eller Arduino).

Förstå koden

Det finns vissa delar av koden inte är relaterade till bearbetning input från DJ-Controller. Dessa inkluderar hantering av seriell port och MIDI-anslutningar samt skapa användargränssnittet. Jag kommer inte täcka dessa delar av koden. Se sidan för vissa biblioteket i fråga om du vill ha en förklaring av hur allt fungerar.

Data från registeransvarige registrerar våra program i funktionen kallas "serialEvent." I denna funktion, två separata byte av meddelandet kombineras till en 16-bitars char (inte heltal... eftersom behandlingen inte har osignerade datatyper, se kodkommentarer för mer information och avvikelser). Sedan anropar funktionen "ParseMessage"...

ParseMessage är utgångspunkten för bearbetning av bitarna vi får från registeransvarige. Bitvis matematik används för att avkoda den ID-nummer och typ av kontroll som skickade meddelandet. Baserat på dessa egenskaper, kan det sedan skicka meddelandet till rätt funktion som ska bearbetas.

Om kontrollen är en analog kontroll, kallar det "ProcessAnalog". Denna funktion avkodar det 10-bitars värdet i kontrollen och omvandlar den till en MIDI-värde mellan 0 och 127. Det skickar sedan kontroll ändra MIDI-meddelanden genom att ringa "SendControlChange". En kontroll förändring är en typ av MIDI-kontroll som har en variabelindata i stället för en anteckning, som har en på / av-stat.

Om kontrollen är en digital kontroll, har 3 val i hur att behandla det: om ID-numret är 0, numret är reserverad för knappsatsen så skickas det till "ProcessKeypad". Om ID-numret är 1, är numret reserverad för rotary encoder så skickas det till "ProcessRotary". Om ID-numret är ingen av dessa reserverade värden, bearbetar det som en allmän digital ingång (aka knappen) genom att skicka meddelandet till 'ProcessDigital'.

ProcessKeypad avkodar vad knapptryckningen, dess/på tillstånd, som var utvald vid tidpunkten och däck som valdes på gång. Det skickar sedan en MIDI-not baserat på denna information. MIDI-notera antalet beräknas med en speciell algoritm som ger varje kombination ett unikt notvärde.

ProcessRotary avkodar vad värdet av meddelandet och om knappen integrerad sköts medan rotary encoder vändes. De värden varierar från 0 till 2, med 0 vilket innebär Medsols rotation, 1 menande moturs rotation och 2 vilket innebär en dubbel klick (används för att läsa in låtar till valda däck). Den superspeed biten är satt till 1 om knappen integrerad pressades samtidigt vrida, och om det trycktes ner, skickar programmet 10 MIDI-meddelanden. Eftersom rotary encoder är avsedd att användas för att bläddra ett bibliotek, kan du rulla snabbare genom låtar.

ProcessDigital helt enkelt avkodar den sista biten i meddelandet och som berättar om att skicka en på eller en av MIDI-meddelanden för specifika noteringen förknippade med kontrollen.

Mer information om det protokoll som används i detta projekt finns det första steget i avsnittet Firmware.

Kör koden och konfigurera programvaran

Nu när du förstår koden, kan få igång det!

Du kommer att märka när du först öppna bearbetning som är nästan identisk med Energia. De bygger upp samma sak typ av (ledningar, tror jag). Detta gör det super intuitivt att komma igång! Kopiera och klistra in min kod i editorfönstret och klicka på Play-knappen i det övre vänstra hörnet ("Run").

Ett litet fönster bör dyka upp som har två nedrullningsbara menyer och tre knappar. Dessa kontroller kan du välja vilka MIDI-utgång för anslutning till och vad seriell port ingång för att lyssna på. Uppdateringsknappen kan du uppdatera listorna om du koppla ur/plugg i din launchpad eller MIDI-anslutning. För våra syften, Anslut MIDI Out raden till loopMIDI (Windows) eller virtual MIDI-port du skapat tidigare (Mac/Linux). Anslut registeransvarige och ansluta den seriella porten till den seriella porten som registeransvarige på. Det bör vara den som du använde med Energia. MIDI-ingång från handkontrollen bör nu nå vad är ansluten till den andra änden av din virtual MIDI-port.

Se Steg
Relaterade Ämnen

DIY - USB-OSCILLOSKOP i en TÄNDSTICKSASK

Jag presentera en "Bäst i KLASSEN", "Fullfjädrad" DIY-USB-OSCILLOSKOP som är "Verkligt DIY".Mitt mål är att ge en billig Digital-lagring-oscilloskop för studenter, blivande ingenjörer och hobby.Denna USB-oscilloskop kunde var...

Gör en USB-NES Controller

denna tutorial kombinerar en ursprungliga NES controller, USB-tangentbord, tråd och takt växlar till en USB NES controller lämplig för använda med NES och arcade emulatorer. Den grundläggande idén är att den tangentbord controller-enheten är installe...

DIY USB-matlagning Pan

DIY USB-matlagning Pan - Klicka här för de mest populära videorna matlagning ägg med din bärbara. Gör din mat i skolan....

USB fot controller/looper

Hej alla,Jag spelar gitarr och jag datormusik på Ableton Live. Denna programvara har en looper, men det är inte så effektiv och jag behövde något bättre att spela... Därför började jag bygga en USB-foten styrenhet med billiga tyger!Kontrollera följan...

USB-SNES Controller

första instructable. Låt mig veta vad den behöver och fixar.Jag gjorde inte det krets eller program. Jag gör bara en guide som visar steg för steg montering av hur man gör USB SNES controller. Den ursprungliga sidan finns här:www.raphnet.net/electron...

Lätt USB Massage Controller

i detta Instructable jag berätta hur du sätter en Playstation controller till en USB-massage styrenhet att slappna av kroppen genom vibrationer.När du spelar spel på Playstation har du nog märkt en kort vibration inuti registeransvarige.Detta orsakas...

Pro USB DMX Controller och terminator för QLC +

Idag vill jag dela med dig hur man gör en professionell letar USB DMX-controller att använda med belysning styrprogram som QLC +. I ungefär 5-10 minuter och ca $35 i delar och sjöfart.Detta projekt kan faktiskt ta mindre tid för dig att tävla än det...

Professional USB Xbox controller

I detta instructable, jag ska visa dig hur man gör mest professionella ser USB Xbox-handkontrollen. Nu, låt oss få till det!Steg 1: Vad du behöver Nästan allt du behöver är Taggad i bilden.Du behöver också:Sax eller knivLimpistolTång eller en hammare...

USB NES controller med en arduino!

UPPDATERING 22-12-2014Instructables användare mattpbooth har uppdaterat koden och är värd det på github:https://github.com/mattpbooth/ArduinoNESController...Tack Matt!UPPDATERING 2011-03-12Ersatte en println med tryck (derp).UPPDATERING 2011-01-12Omg...

Hur du ställer in en USB NES controller med NESTOPIA på PC

spela NESTOPIA är inte detsamma utan en NES USB-styrenhet. I denna tutorial får du lära dig att kartlägga knappar och ställa in USB-NES CONTROLLER....

Gör din egen billiga USB-MIDI-Controller eller tangentbord

Jag letade efter en USB MIDI-controller-enheten (eller gränssnitt) för musikprogram som piano eller orgel tangentbord eller pedalboard. Efter en del forskning ville jag gå till en mer "hemlagad" lösning. Mitt val har äntligen varit inriktad på e...

DIY Xbox 360 controller mottagaren med en LinkIt

I detta Instructable, kommer att jag berätta hur man gör en Xbox 360 controller-mottagare att ansluta din Xbox 360-handkontrollen till din dator för att spela spel.För att göra detta, behöver du följande:Xbox 360 phat ROL styrelseLinkIt en och dess k...

Teensy MIDI USB foten controller för att styra Mobius Looper

Motivation:Spelar i en 2 piece band, med trummor och massor av andra prover som spelas upp som bakgrundsspår, fanns det ett behov av att använda en looper för att lägga i fler element till spåren. En hårdvarubaserad looper misslyckas i detta avseende...

DIY USB-Android laddare

Denna Nokia laddare liggande i min skräppost som tråd hade knäppte från mitten men jag tänkte att laddaren fungerar.Jag öppnade upp och med hjälp av några heta kniv jag smält plast av höljet till göra en skåra för (kvinnliga USB-kontakten) och limmas...

DIY Modded PS3 Controller

två nätter sedan jag tänkte på hur jag kunde 'mod' min PS3-handkontrollen för att göra det bättre och mer personlig. Jag bestämde mig att skruva med random grejer att se vad skulle komma ut och... Skåda! Den mäktiga DIY sorta gamer's modded controlle...

DIY USB-Altoids Apple/Samsung laddare

Om du läst min profil beskrivning, säga jag att jag älskar att bygga USB-enheter. Jag tänker alltid på enheter ladda nästa med det apple-liknande funktion som försöker stoppa oss DIY-nalister för att bygga vår egen laddare. Du uppenbarligen vet att A...

DIY Synth + MIDI-controller

Vill du kunna styra din DIY Synth med MIDI?Spela upp den med ett tangentbord eller ordnar det i din favorit ljud redigeringsprogram?Steg 1: Vad du behöverHårdvara1 x DIY Synth Kit1 x Arduino Uno1 x Usb kabel1 x 10 k Resistor1 x 0.1uF kondensator (pol...

DIY MIDI baserade CONTROLLER (trummor) - TOWER OF POWER

Här är steg för steg instruktioner till att göra din egen Tower of Power !!! Tower of Power är en ny MIDI-baserad domänkontrollant där du kan utföra din trumma prover som Bop It! någonsin velat kasta din MIDI-controller runt i händerna samtidigt kunn...

DIY ARDUINO flyg CONTROLLER

Kan bygga en Arduino baserat flygning styrenhet som kan göra trådlösa PID tuning, orientering lås och höjd håller och placerar lås med hjälp av en GPS. OK så här DIY flyg controller är en pedagogisk Arduino baserad modul. Det är enkelt att göra, lätt...