Scripting verwerking met MIDI (9 / 12 stap)

Stap 9: Nog een andere bus...

U kunt kijken naar de laatste broncode om te zien wat ik kwam met voor opmerking handlers, voeren met het voorbeeldbestand Renoise, of Bekijk de video gewoon om het te zien in actie. Er is een zeer goede kans dat de code niet zal precies wat ik hier heb getoond. Zoals ik de schets die ik heb zijn heroverweging hoe dingen zou moeten werken beschreven heb. Dit is de aard van de experimentele codering.

Terwijl het uitproberen van dit en dat ik besefte dat het moeilijk zijn kan om elke verandering vooraf te plannen en te schakelen springen kunt u zien in de tekening. Als ik zou code aanpassen of bewerken van de MIDI-tracks in Renoise en kijken naar de resultaten bleef ik denken, hey, een plotselinge tint verandering goed zou zijn, of dit zou de juiste beat aan overgeven dubbele afbeeldingen op volledig formaat voor de helft een bar. Met andere woorden, waren er een paar selecteren effecten die ik alleen maar op belangrijke momenten wilde.

Dit in het Renoise trigger tracks bewerken, zou lastig zijn. Zoveel mooier om te activeren sommige dingen in real-time met behulp van een andere controller terwijl de song wordt afgespeeld.

Ik had begon te experimenteren met mijn toetsenbord QuNexus. Dit apparaat, kunt u het octaaf verschuiven zodat ik heb met een aantal notities niet al zijn toegewezen gewerkt kon. Maar ik wilde een controller die meer intuïtief, iets anders dan een standaard toetsenbord wellicht gebruiken.

Ik pakte een Novation Launchpad ergens vorig jaar. Het is een raster van touchpad switches. Er is geen controle van de snelheid, alleen aan/uit, groot voor het genereren van samples en loops en dergelijke. Het stuurt MIDI notities binnen een vooraf ingestelde bereik. Nu, ik zeker is er een manier om te veranderen wat notities zijn toegewezen aan elke knop, maar aangezien de bus naam wordt doorgegeven aan de MIDI Opmerking handlers in de schets ik veilig de bestaande notities kunt hergebruiken.

Een andere benadering zou zijn om in te stellen van de Launchpad op een specifiek kanaal. U kunt zelf beslissen of selecteren gedrag op nog een ander kanaal of vertakking gebaseerd op bus-naam die beter past bij je mentale model van wat er gebeurt.

Er zijn verschillende plaatsen die de code gedrag gebaseerd op de naam van de bus schakelen kunt. Natuurlijk, is binnen een van de opmerking aangestuurde methoden. Een ander zou in invokeNoteHandler. Hoewel ik heb is het passeren van de naam van de bus naar de opmerking handlers mijn ideeën voor het gebruik van voelde de Launchpad niet als een goed geschikt voor de bestaande notitie behandeling van code. Bijvoorbeeld, als ik C48 verzendt vanuit de Launchpad ik ben misschien niet op zoek om te doen een andere variatie op de 4 x 4 raster-opvulpatroon, maar iets heel anders. Het toevoegen van een test in onNote48 voor dit specifieke apparaat voelde te onhandig. Stel dat ik een andere set van opmerking handlers, specifiek voor dit apparaat gedefinieerd?

Dit zou uitgezonderd mij de moeite van het toe te voegen dat deze apparaatnaam controle aan elke interne onNoteNN-methode op de off-kans er is een opmerking waarde overlapping. Het nadeel is dat u een apparaatnaam hardcoded in mijn schets.

... en nog een andere configuratieoptie

Terwijl ik wilde verzending van bepaalde MIDI-berichten om te selecteren van de handlers die zijn gebaseerd op de naam van de bus wilde ik niet te hard-code de naam van de bus. Ik heb thuis een keuze van controllers, maar als ik deze zin schrijf ik toevallig op HeatSync Labs. Ik bracht niet de Launchpad; het QuNexus past veel beter in mijn laptoptas.

In plaats van te vertrouwen op de naam van een specifieke domeincontroller in de code ik heb toegevoegd een andere configuratieoptie apparaatnamen toewijzen aan andere tekst.

De config.jsi-post ziet er zo uit:

 device_mappings: {"Launchpad": "grid", "QuNexus": "grid" } 

Schets in de code die apparaten nu ook kijkt om te zien als er een apparaattoewijzing voor een gevonden apparaat en als dat zo is dan het gebruikt dat toewijzingsnaam als de naam van de bus plaats dan gezien de apparaatnaam.

Dit vereist nog een wijziging aan de Configgy.pde. Wat is nieuw dat u kunt opslaan een naam :{} instellen en weer een HashMap van naam/waarde-reeksparen op.

Zo pakt de schets deze naam apparaattoewijzingen...

 HashMap mappings = config.getHashMap("device_mappings"); 

... en dan later...

 if (mappings.containsKey( deviceNames[x] ) ) { println("+ + + + Add device using mapping " + mappings.get( deviceNames[x]) ); devices.add( new MidiBus(this, available_inputs[i], 1, (String) mappings.get( deviceNames[x]) ) ); } else { devices.add( new MidiBus(this, available_inputs[i], 1, deviceNames[x]) ); } 

Nu kunt de MIDI-bericht verzenden code zoeken naar berichten van een bus genaamd grid; het feitelijke apparaat zou een willekeurig aantal apparaten afhankelijk van wat u hebt aangesloten en hoe hebt toegewezen namen.

Nu verzending op MIDI-berichten kunt bellen gespecialiseerde handlers:

 void invokeNoteHandler(int note, int velocity, int channel, String bus_name) { try { Class[] cls = new Class[3]; cls[0] = int.class; cls[1] = int.class; cls[2] = String.class; if (bus_name.equals("grid") ) { Method handler = this.getClass().getMethod( "onGridNote" + note, cls ); handler.invoke(this, velocity, channel, bus_name); } else { Method handler = this.getClass().getMethod( "onNote" + note, cls ); handler.invoke(this, velocity, channel, bus_name); } } catch (Exception e) { println("* * * * * * Error handling note " + note + ", velocity " + velocity + ", channel " + channel + ", bus_name " + bus_name + " * * * * * * "); e.printStackTrace(); } } 

Gerelateerde Artikelen

Hoe maak je een Arduino sound synthesizer met MIDI-interface

Hoe maak je een Arduino sound synthesizer met MIDI-interface

Met deze synthesizer kun je Arduino reproduceren van volledig aangepaste golfvormen. Als gevolg van de MIDI-interface, kan het worden aangesloten op alle instrumenten die dergelijke functie en spelen met het gewenste geluid.Stap 1: materialen(In dit
Verwerking met behulp van het model van de arduino proteus

Verwerking met behulp van het model van de arduino proteus

Deze toepassing nota wordt beschreven hoe u verwerking metde LabCenter Proteus-software voor het simuleren van de Arduino via een virtuele COMPoort.Hierbij wordt ervan uitgegaan dat de gebruiker vertrouwd met Proteus, de ArduinoIDE en de verwerking I
Launchpad / Sequencer met MIDI uitgang

Launchpad / Sequencer met MIDI uitgang

Voor een project dat we hadden om een instrument te maken, kwamen we met het idee een Sequencer om geschikt te maken voor het verzenden van MIDI-data naar een MIDI speler. We dit gemaakt met behulp van Arduino en Processing. Het kostte ons ongeveer 5
Hybride zes snarige bas met midi mogelijkheden

Hybride zes snarige bas met midi mogelijkheden

Deze basgitaar is gemaakt voor een beoordeling van de Universiteit waarin een oorspronkelijke instrument moest zijn ontworpen en geconstrueerd en kunnen communiceren met een computer op een bepaalde manier. Deze bas kan echter worden gemaakt zonder d
Verwerking met Ember

Verwerking met Ember

Een van de dingen die interesseert mij het meest over Ember, is het feit dat de inputdossiers een stapel PNGs. Dit betekent dat men kan in wezen het voeden van de beelden van de printer zonder de behoefte aan solide lichaam modellering, STLs of snijd
Hoe u een eenvoudig spel van de verwerking met Arduino

Hoe u een eenvoudig spel van de verwerking met Arduino

Hoi allemaalIn dit Instructable, zullen we zien hoe maak je een "link" tussen een Processing Schets en een Arduino-kaart. In dit voorbeeld worden een ultrasone module worden gebruikt voor het besturen van een vliegtuig in een eenvoudig spel. Nog
Time-Lapse fotografie verwerking met behulp van GIMP

Time-Lapse fotografie verwerking met behulp van GIMP

na het nemen van enkele foto's van wolken buiten mijn huis, ik zag dat ze op bijna dezelfde richting. Bij het bekijken van hen in snelle opeenvolging, leek ze bijna een frame-voor-frame time-lapse animatie. Ik besloot om te zetten in een GIF-bestand
MIDI-handschoen met behulp van de Arduino en lichtsensoren drummen

MIDI-handschoen met behulp van de Arduino en lichtsensoren drummen

ik zal beschrijven een leuke en gemakkelijke manier om uw eigen geluid expressie opbouwt MIDI ingeschakeld handschoen gebruikten veel van geld op MIDI Interfaces of dure sensoren zonder.Voel je vrij om contact met mij direct per mail als u suggesties
U Rock Guitar midi controller met Bluetooth BLE en oplaadbare batterij

U Rock Guitar midi controller met Bluetooth BLE en oplaadbare batterij

In deze tutorial zal ik u tonen hoe te schakelen gitaar u Rock gitaar in een midi-controller voor Bluetooth 4.0 met oplaadbare batterij. De oplossing was simpel maar moest denken.Dit systeem is getest met de iMac, iPad en iPhoneHet materiaal dat we n
Controle van een RepStrap met verwerking

Controle van een RepStrap met verwerking

dit instructable laat zien hoe u kunt vele openlijk beschikbare projecten samen een interessante en complexe systeem te bouwen. Zij is geïnspireerd op diverse communautaire projecten waaronder: RepRap, Arduino, verwerking, Linux en, natuurlijk, Instr
Verzenden en ontvangen van MIDI met Arduino

Verzenden en ontvangen van MIDI met Arduino

Dit instructable zal u tonen hoe te een Arduino gebruiken voor het verzenden en ontvangen van een verscheidenheid van MIDI-berichten, zodat u kunt beginnen met het opbouwen van uw eigen MIDI-controllers en instrumenten. Eerst ik zal praten een beetje
Converteren van een speelgoedpiano om te werken als een midi-apparaat en gebruik het met Synthesia

Converteren van een speelgoedpiano om te werken als een midi-apparaat en gebruik het met Synthesia

doel van dit project:Converteren van een goedkope speelgoedpiano om te werken als een midi-apparaat en gebruik het met Synthesia (http://www.synthesiagame.com/)Andere programma's die gebruikmaken van midi-ingangen kunnen ook worden gebruikt.Aanpak:De
Arduino Midi-controller met een ZX afstand en gebaar Sensor

Arduino Midi-controller met een ZX afstand en gebaar Sensor

Welkom bij dit instructable over het bouwen van een zeer basic Midi-Controller met de SparkFun ZX afstand en gebaar Sensor. Dit instructable is onderdeel van een schoolwerk.Opmerking: Dit is geen codering tutorial. De definitieve code zal worden opge
Verbinding maken met meerdere MIDI-apparaten, Y-kabel, SAVE $$$

Verbinding maken met meerdere MIDI-apparaten, Y-kabel, SAVE $$$

Ooit wilde doen LIVE optredens, door het aansluiten van meerdere toestellen via MIDI? Beheersing van mixer, zelfs als het andere toetsenbord niet heeft, zoals PA800 >> PA3X? zoals PSR 3000 en omhoog >> Tyros 3 +?Het is nu mogelijk! Als u de in