Stap 14: Software - verwerking programma
Dit programma verbindt met de seriële poort van de Launchpad zodat wij invoer kunnen ontvangen. Het krijgt de berichten, decodeert hen, en indelingen van een MIDI-bericht en stuurt het. Het bevat ook een gebruikersinterface waarmee u de juiste seriële poort en MIDI-verbinding te selecteren. Als u verbinding met de Microsoft MIDI Synth maakt, kunt u sommige vrij spooky piano met het toetsenblok spelen! Hoe dan ook, ik geef een overzicht van hoe de software werkt en dan vertellen hoe te configureren. We moeten eerst een paar dingen.
Materialen:
- Verwerking van IDE
- proMIDI 1.0 bibliotheek
- controlP5 bibliotheek
Zie de vorige stap voor links
Verkrijgen van setup
Beginnen met de installatie van de libraries. Vind uw Processing-map (meestal in documenten) en ga naar Processing\libraries. Pak de bibliotheken naar deze map en u moet zitten helemaal troep (het is hetzelfde als het installeren van bibliotheken voor Energia of Arduino).
Inzicht in de Code
Er zijn sommige delen van de code niet verwant aan de verwerking van de inbreng van de DJ-Controller. Het gaat hierbij om de seriële poort en MIDI verbindingen beheren evenals de gebruikersinterface maken. Ik zal geen betrekking op deze delen van de code. Zie de pagina voor het bepaalde bibliotheek in kwestie als u wilt dat een uitleg van hoe alles werkt.
De gegevens van de controller voert ons programma in de functie genaamd 'serialEvent.' In deze functie, de twee afzonderlijke bytes van het bericht worden gecombineerd tot één 16-bits char (niet geheel getal... omdat verwerking geen niet-ondertekende gegevenstypen hebt, zie de commentaar bij de code voor meer informatie en vloekend). Het roept vervolgens de functie 'ParseMessage'...
ParseMessage is het uitgangspunt voor de verwerking van de bits krijgen we van de controller. Bitsgewijze math wordt gebruikt om te decoderen van de id-nummer en het type van het besturingselement waarop het bericht is verzonden. Op basis van deze eigenschappen, kan het het bericht vervolgens verzenden naar de juiste functie om te worden verwerkt.
Als het besturingselement een analoge is, roept het 'ProcessAnalog'. Deze functie decodeert de 10-bits waarde van het besturingselement en verandert het in een MIDI-waarde tussen 0 en 127. Vervolgens stuurt een MIDI-bericht van controle verandering door te bellen naar 'SendControlChange'. Een besturingselement aangepast is een soort MIDI-controle die heeft een variabele input in plaats van een nota, die een aan / uit-status heeft.
Als het besturingselement een digitale is, heeft 3 keuzen in hoe om het te verwerken: als het id-nummer 0 is, dat nummer is gereserveerd voor het toetsenbord, zodat het stuurt het naar 'ProcessKeypad'. Als het id-nummer 1 is, is dat aantal gereserveerd voor de roterende encoder zodat het stuurt het naar 'ProcessRotary'. Als het id-nummer niet van deze gereserveerde waarden is, verwerkt het als een algemene digitale ingang (aka knop) door het bericht te sturen naar 'ProcessDigital'.
ProcessKeypad decodeert welke toets werd ingedrukt, de aan/uit-status, de modus die was geselecteerd op het moment en het dek die was geselecteerd op het moment. Vervolgens stuurt een MIDI-notitie op basis van deze informatie. Het MIDI opmerking nummer wordt berekend met behulp van een speciaal algoritme waarmee elke combinatie een unieke Nootwaarde geeft.
ProcessRotary decodeert wat de waarde van het bericht is en of de geïntegreerde knop werd ingedrukt terwijl de roterende encoder werd gedraaid. De waarden variëren van 0 tot 2, waarbij 0 betekent rechtsom draaien, 1 zin tegen de roulatie en 2 wat betekent dat een dubbele klik (gebruikt voor het laden van tracks op geselecteerde dek). De superspeed-bit is ingesteld op 1 als de geïntegreerde knop werd ingedrukt terwijl het draaien, en als het werd ingedrukt, het programma 10 MIDI-berichten verzonden. Aangezien de roterende encoder is bedoeld om te worden gebruikt voor het doorbladeren van een bibliotheek, kunt dit u sneller door de nummers scrollen.
ProcessDigital gewoon decodeert het laatste stukje in het bericht en dat vertelt of voor het verzenden van een op of mailbericht MIDI uit voor de specifieke notitie dat besturingselement is gekoppeld.
Zie voor meer informatie over het protocol dat wordt gebruikt in dit project, de eerste stap in het gedeelte van de Firmware.
Uitvoeren van de Code en het configureren van de Software
Nu dat je de code te begrijpen, laat krijgen om te lopen!
U zult opmerken dat wanneer u eerste open verwerkt is vrijwel identiek aan Energia. Ze zijn gebaseerd uit hetzelfde soort (bedrading, geloof ik). Dit maakt het super intuïtief aan de slag! Kopieer en plak mijn code in het editorvenster en klik op de afspeelknop in de linker bovenhoek ("uitvoeren").
Een klein venster moet verschijnen die twee drop-down menu's en drie knoppen heeft. Deze besturingselementen kunnen u selecteren welke MIDI-uitgang te verbinden en welke seriële poort invoerbronnen op te luisteren. De knop Vernieuwen kunt u de lijsten te vernieuwen als u ontkoppelen/plug in uw launchpad of een MIDI-aansluiting. Voor onze doeleinden, sluit de MIDI Out-lijn naar loopMIDI (Windows) of de virtuele MIDI-poort zelfgemaakt eerdere (Mac/Linux). Sluit de controller en de seriële poort verbinden met de seriële poort waarop de controller brandt. Het moet degene die u gebruikt in combinatie met Energia. MIDI input van je controller moet nu bereiken wat aan het andere einde van uw virtuele MIDI-poort is aangesloten.