Scripting bearbetning med MIDI (7 / 11 steg)

Steg 8: Vad är den kanalen?

Eftersom Rita inte göra mycket verkliga åtgärder måste vara fallet på andra håll. Det är faktiskt de Obs-hantering metoder som driver vad som syns. När ett MIDI-meddelande kommer i blir det sänds till en matchande Obs handler om det finns någon. Jag bestämde mig för att kunna generera några mönster, till exempel att fylla upp ett 4 x 4 rutnät med bilder Obs-av-note. Jag skrev en Obs-hanterare som gjorde detta för till vänster i fönstret skiss, och trodde det skulle vara trevligt att göra samma sak på höger sida men spegelvänd.

Vid första gjorde jag detta med hjälp av två olika Obs hanterare, tänkte jag skulle använda en oktav för saker att hända på vänster sida, och en annan octave för rätten. Detta kändes tafatt. Varför inte engagera kanaler?

Midibussar ger några extra händelsehanterare, inklusive noteOn, som, om du definierar den, blir kallade när alla enheter får en anteckning-på meddelandet. Denna metod ger dig kanalen, notvärde och hastigheten. Men ger det inte du Midi-bussen som fått det namnet.

På denna punkt i utvecklingen jag har inte en tydlig plan för att använda buss namnet men några idéer formning och jag ville inte släppa möjlighet att använda den. Men jag ville ha kanalen, alltför.

midiMessage kallas med vissa specifika data som räckte precis till dig (såsom buss namnet) men själva meddelandet är något kryptiskt. Du kanske har märkt det finns några intressanta matte ska få värdet Obs och hastighet.

int Obs = (int)(message.getMessage() [1] & 0xFF);

MIDI-meddelanden är ganska kompakt. Det skickas som en serie av byte. Jag kommer att hoppa över de tekniska detaljerna utan att få användbara värdet av dessa byte i Java måste du greppa ett underavsnitt av dem och sedan tillämpa en "mask". Denna mask tvingar någon del av värdet som antar ett visst värde vilket ger oss ett användbart resultat.

Koden gör detta för att få värdet Obs och hastighet. De samma tillvägagångssätt kan användas för att få kanalen. midiMessage blir då detta:

void midiMessage (MidiMessage meddelande, lång tidsstämpel, sträng bus_name) {
int kanal = (int)(message.getMessage() [0] & 0x0F) + 1;
int Obs = (int)(message.getMessage() [1] & 0xFF);
int vel = (int)(message.getMessage() [2] & 0xFF);
invokeNoteHandler (Obs, vel, kanal, bus_name);
}

invokeNoteHandler måste nu göra en metod look-up med tre argument:

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;
Metoden handler = this.getClass () .getMethod ("onNote" + note, cls);
handler.Invoke (denna, hastighet, kanal, bus_name);
} fånga (undantag e) {
println ("* ***** fel hantering OBS" + OBS + "******");
e.printStackTrace(); }
}

Med både kanal och buss tillgängliga varje not handler kan beteende olika sätt beroende på källan till anteckningen. I vissa fall gör detta det lättare att organisera anteckningar avreseorten. Till exempel, skapade jag en metod som skulle fortsätta att lägga till en bild till 4 x 4 rutnät, spåra ett rutnät index. Om indexet gick out of bounds (det vill säga under 0 eller över 15, beroende på vilken riktning används för att fylla i rutnätet) nätet skulle rensas.

Jag har tilldelat detta C4 (dvs not 48). Framför bringande kanaler in i koden jag hade C64 utlösa problemet på vänster sida av skiss och C5 används för att utlösa den till höger (där det skulle köras i omvänt, start från rutnätet plats 15). Men jag var inte nöjd med denna användning av oktaver. Man beslutar att lägga till kanaler jag skapat en annan MIDI-trigger instrument i Renoise och sätta den till utgången på kanal 2. Detta sätt jag kunde ställa upp varje not att mappa till vissa specifika beteenden, med kanal bestämma på vilken sida av skärmen verkar.

Dessa typer av organisera beslut är helt subjektiva. Detta fungerar för mig (så långt, kanske efter mer gång jag ska träna några andra system). Poängen är att det finns ingen sann väg att göra detta; hitta en metod som fungerar för dig.

Här är hur onNote48 hamnade efter förändringen:

void onNote48 (int vel, int kanal, sträng bus_name) {
om (vel > 0) {
Switch(Channel) {
fall 1:
addToGridL4x4();
bryta;
fall 2:
addToGridR4x4();
bryta;
}
}
}

addToGridL4x4() är denna:

void addToGridL4x4() {

om (gridL4x4Pointer < 0) {
renderL.clear();
gridL4x4Pointer = 15.
}

renderL.add (nya RenderArgs (nextTint(), gifs[nextGifIndex()], 4, 4, gridL4x4Pointer));
gridL4x4Pointer--;
}

Det allmänna stödprogrammet är användningen av en variabel för att spåra ett index i ett rutnät, uppdatera indexet, och att se till att det alltid har ett giltigt värde.

Någon gång de globala variablerna måste gå bort och allt detta insvept i en klass, men den lös föränderlighet lämpar sig för intressant beteende.

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...