Scripting bearbetning med MIDI (8 / 11 steg)

Steg 9: Ännu en buss...

Du kan titta på sista källkoden för att se vad jag kom fram till för Obs hanterare, köra det med exempel Renoise fil eller titta på videon att bara se den i aktion. Det finns en mycket bra chans att koden inte exakt vad jag har visat här. Som jag har som beskriver skissen har jag ompröva hur saker ska fungera. Detta är typ av förberedande kodande.

Medan provar detta och att jag insåg att det kan vara svårt att förväg planera varje förändring och växla och hoppa kanske du vill se i skissen. När jag skulle ändra koden eller redigera MIDI-spår i Renoise och se resultaten tänkte jag, Hej, en plötslig nyans förändring skulle vara bra, eller det skulle vara i rätt takt att kasta upp dubbla full storlek bilder för halv ett bar. Med andra ord, fanns det några Välj effekter jag ville men bara vid avgörande tillfällen.

Redigera detta till Renoise trigger spåren skulle vara knepigt. Så mycket trevligare att aktivera vissa saker i realtid med hjälp av en annan domänkontrollant medan låten spelas upp.

Jag hade började experimentera med min QuNexus tangentbord. Den här enheten kan du skifta oktav så jag kunde ha arbetat med en mängd anteckningar inte redan utsetts. Men jag ville använda en controller som kan vara mer intuitivt, något annat än ett vanligt tangentbord.

Jag plockade upp en Novation Launchpad någon gång förra året. Det finns ett rutnät av touch-pad växlar. Det finns ingen velocity kontroll, bara på/av, bra för att utlösa prover och loopar och sådant. Den skickar MIDI-noter inom ett förinställt intervall. Nu har jag visst det finns ett sätt att ändra vad anteckningar tilldelas till varje knapp, men eftersom bussen namn vidarebefordras till MIDI-not handlers i skissen jag tryggt kan återanvända de befintliga anteckningarna.

En annan strategi kan vara att ställa in i startfönstret på särskilda kanaler. Du kan bestämma dig om du väljer beteende på ännu en kanal eller förgrening baserad på buss namn bättre passar du mentala modell av vad som händer.

Det finns olika platser koden kan växla beteende baserat på buss namn. En, naturligtvis, är inne i någon av metoderna som Obs-hantering. En annan skulle vara i invokeNoteHandler. Även om jag har förbi buss namnet på Obs hanterarna mina idéer för hur du använder kändes startfönstret som en bra passform för den befintliga journalanteckningen hantering av koden. Till exempel om jag skickar C48 från startfönstret jag skulle inte se till att göra en annan variant på 4 x 4 rutnät-fyllningsmönstret, men något helt annat. Lägga till ett test i onNote48 för särskilda enheten kände clunky. Antar att jag definierade en annan uppsättning Obs hanterare, specifika för denna enhet?

Detta skulle spara mig besväret att behöva lägga detta enhetsnamn check till varje enskild onNoteNN metod på off-chans det är en anmärkning värde överlappning. Nackdelen är att ha ett enhetsnamn hårdkodade i min skiss.

... och ännu ett konfigurationsalternativ

Medan jag ville sända vissa MIDI-meddelanden välj hanterare baserat på buss namn ville jag inte hårdkoda buss namnet. Hemma har jag ett val av domänkontrollanter, men när jag skriver detta dömer jag råkar vara på HeatSync Labs. Jag kom inte med i startfönstret; QuNexus passar mycket bättre i min laptop väska.

Snarare än att förlita sig på namnet på en specifik domänkontrollant i koden lagt jag en annan konfigurationsalternativ som tillåter mappning enhetsnamn på någon annan text.

Posten config.jsi ser ut så här:

device_mappings: {"Sjösätta": "grid", "QuNexus": "grid"}

I skissen ser koden som sätter upp enheter nu också för att se om det finns en enhet mappning för en hittade enhet, och om så är fallet sedan används det mappningsnamn som buss namn snarare än då med tanke på enhetens namn.

Detta krävde ännu en förändring av Configgy.pde. Vad är nytt är att du kan lagra ett namn :{} inställning och komma tillbaka en HashMap av namn/värde-par string.

Så griper skissen dessa enhetsmappningar namn...

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

... och senare...

om (mappings.containsKey (enhetsnamn [x])) {
println ("+ +++ Lägg till enhet använder mappning" + mappings.get (deviceNames[x]));
Devices.Add (nya midibussar (denna, available_inputs [i], 1, (sträng) mappings.get (deviceNames[x])));
} annat {
Devices.Add (nya midibussar (denna, available_inputs [i], 1, deviceNames[x]));
}

Nu kan MIDI-meddelandet avsänding kod söka efter meddelanden från en buss som heter rutnät. den faktiska enheten kan vara valfritt antal enheter beroende på vad du har bifogat och hur du har kopplat namn.

Nu avsänding på MIDI-meddelanden kan ringa specialiserade hanterare:

void invokeNoteHandler (int Obs, int hastighet, int kanal, sträng bus_name) {
försök {
Undergrupp [] cls = ny klass [3].
CLS [0] = int.class;
CLS [1] = int.class;
CLS [2] = String.class;

om (bus_name.equals("grid")) {
Metoden handler = this.getClass () .getMethod ("onGridNote" + note, cls);
handler.Invoke (denna, hastighet, kanal, bus_name);
} annat {
Metoden handler = this.getClass () .getMethod ("onNote" + note, cls);
handler.Invoke (denna, hastighet, kanal, bus_name);
}

} fånga (undantag e) {
println ("* ***** fel hantering OBS" + OBS + ", velocity" +
Velocity + ", kanalisera" + kanal + ", bus_name" + bus_name + "******");
e.printStackTrace(); }
}

Se Steg
Relaterade Ämnen

Träbearbetning med barn hur till: Fox och får spela styrelsen

Små snabba projekt är perfekta när du vill komma igång och träna din träbearbetning färdigheter; de är också utmärkt om du arbetar med en mycket ung snickare. Det är därför vi har valt detta roliga spel till att börja med - det är snabbt och enkelt a...

Hur man gör en Arduino ljud synthesizer med MIDI-gränssnittet

Med denna synt kan du göra Arduino reproducera helt anpassade vågformer. På grund av MIDI-gränssnittet, kan det anslutas till alla instrument som sådan har och spela det med det ljud som du vill.Steg 1: materialArduino (i detta fall Arduino UNO)Instr...

Bearbetning med hjälp av proteus arduino modell

Denna ansökan Obs beskriver hur du använder bearbetning medLabCenter Proteus programvara för att simulera Arduino genom en virtuell COMPort.Det förutsätts att användaren är bekant med Proteus, ArduinoIDE och bearbetning IDE.Vad du behöver:LabCenters...

Launchpad / Sequencer med MIDI-utgång

För ett projekt som vi hade att göra ett instrument, kom vi upp med idén att göra en Sequencer kan skicka MIDI-data till en MIDI-spelare. Vi gjorde detta genom att använda Arduino och bearbetning. Det tog oss ca 5 dagar att utforma instrumentet, saml...

Hur man bygger en billig arbetsbänk för träbearbetning med en HD Kreg Jigg, med VIDEO tutorial

Gratis planer finns även nedan i Imperial och metriska.Steg 1: Se Full Video Tutorial Video här.Warren från en trä verktyg visar hur man bygger en billig och enkel ön träbearbetning workbench med hund hål, lederna är gjorda med Kreg HD pocket hole ji...

Hybrid sex strängad bas med MIDI-funktioner

Denna bas gitarr gjordes för ett universitet bedömning som ett original instrument var att vara konstruerat och tillverkat och kunna kommunicera med en dator på något sätt. Denna bas kan dock skapas utan MIDI-funktionerna som det låter bra och är bil...

"Träd-Nex" - träbearbetning med naturliga former (uppdaterad)

ju mer jag arbetar med trä, ju mer jag älskar det och ju mer jag känner djup beundran & respekt för det.Respekt för att underlätta arbetet, även med grundläggande verktyg.Respekt för sin enorma variation - varje bit av trä är unik och inte två stycke...

Med bearbetning med glödande kol

En av de saker som intresserar mig mest om Ember, är det faktum att indatafilerna är en bunt med png. Detta innebär att man kan i huvudsak mata skrivare bilder utan behov av heltäckande förkroppsligar modellering, STLs eller skivning! Det är en gansk...

Fotocell reagerar på ljus som ett öga. ett inledande projekt för bearbetning med Arduino

I detta projekt kan du se ett enkelt exempel på med behandling för att göra en grafisk representation av data som en arduino får som indata från en sensor. I detta fall en fotocell.Efter att få ett öga bild från internet, vad jag gjorde är, göra med...

Time-Lapse fotografi bearbetning med hjälp av GIMP

efter att ha tagit flera bilder av moln utanför mitt hem, märkte jag att de var på nästan samma riktning. Genom att visa dem i snabb följd, de såg nästan ut som en tidsfördröjd bildruta-för-bildruta-animering. Jag bestämde mig att göra den till en an...

Beatfly: Gör en lysande luftskepp och kontrollera den med din röst, tangentbord, MIDI-Controller, Garageband fil, iPhone, Flash och mycket mer! [Mac OSX]

Jag har arbetat med flera projekt med hjälp av luftskepp och ballonger, och här vill jag dela en av dem, Beatfly. Detta är en lysande luftskepp kontrolleras med olika gränssnitt såsom röst, tangentbord, MIDI-Controller, Garageband MIDI-fil, iPhone oc...

Skicka och ta emot MIDI med Arduino

Detta instructable visar dig hur du använder en Arduino att skicka och ta emot en mängd olika MIDI-meddelanden så att du kan börja bygga din egen MIDI-controllers och instrument. Första jag ska prata lite om MIDI-protokollet, om du bara letar exempel...

Kontrollera en MIDI CC i Ableton Live med en Arduino Uno

I detta instructable vi ska använda en potentiometer på en Arduino Uno för att styra en MIDI CC i Ableton Live. Ett MIDI CC står för kontinuerlig Controller, dvs ett nummer i intervallet från 0 till 127 inclusive att modulera något med. I youtube jag...

MIDI-SoundFont synthetizer med Intel Edison och Fluidsynth

På detta Instructable, ska jag visa hur man bygger din egen MIDI SoundFont synthesizer med hjälp av Intel Edison och Fluidsynth.Genom att följa stegen som beskrivs här, har du en synt som kan spela nästan alla SoundFont finns på Internet, så i princi...

Konvertera en toy piano för att arbeta som en MIDI-enhet och använda den med Synthesia

målet med detta projekt:Konvertera en billig leksakspiano för att arbeta som en MIDI-enhet och använda den med Synthesia (http://www.synthesiagame.com/)Andra program som använder MIDI-ingångar kan också användas.Tillvägagångssätt:Tryckknappar av pian...

Roligt spel med arduino och bearbetning

Denna tutorial ska show dig hur man gör en första person FPS-shooter i bearbetning med hjälp av en arduino. Detta projekt lämnades till oss som en avslutande tentamen i en teknisk specialkurs, (gymnasieskolan).Video av projektet! :) (Svårt att spela...

Trumma MIDI handske med hjälp av Arduino och ljussensorer

kommer jag att beskriva ett roligt och enkelt sätt att bygga ditt eget ljud uttryck MIDI aktiverat handske utan att använda massor av pengar på MIDI-gränssnitt eller dyra sensorer.Välkommen att kontakta mig direkt via mail om du gillar det eller har...

Hur man skär runt Bullnose gips pärlor med en Mider

detta är hur vi skär runda gips pärlor som möts i en 90 graders hörn. Vi kommer att använda ett verktyg som kallas en "Mider" för att markera våra linjer så att våra hörnen har inga luckor där de möter. Om det finns luckor mellan två pärlor, är...

Dub Cadet: Holografiska MIDI & LED-Controller för Arduino - del 1

Jag tror holografisk musikinstrument blir vardagsmat i framtiden, visar överallt från skolor (Skolverket), hem (på skoj), till media kontor (för kreativitet), och i musik studios (för produktion). Anledningen är enkel: den holografiska musikinstrumen...