Scripting bearbetning med MIDI (6 / 11 steg)

Steg 7: Vi kan göra bättre

Låt oss nu ta alla detta och se om vi kan göra det lite mer spännande.

Första, en viktig varning: The Neurogami estetiska kan inte bli din. Det är ett slags glitchy minimalism. Jag hoppas du gillar det, men det är inte riktigt målet här.

Tillvägagångssättet var att först skapa ett antal animerade GIF-bilder som gjorts med ImageMagick och vissa anpassade Ruby program till glitch bilder. Bearbetning koden sedan placerar, skalor, etc., eller GIF-fil baserat på vilka MIDI-not och kanal kommer till.

Det är nog mer vanligt att se processen skisser där alla visuella effekter görs av bearbetning (eller några ytterligare bearbetning bibliotek) mitt i skissen. Det här är, på sätt fusk: är det bara visar bilder av grafiska effekter. Så vad: det är slutresultatet som räknas.

Med hjälp av färdiga animationer gör dock saker lättare. Få samma visuella effekter realtid bearbetning skulle vara nästan omöjligt. Par som med också besvara MIDI-meddelanden i realtid gör det mer sannolikt för saker att gå fel.

Det är något om denna skiss som är gemensamt för de flesta bearbetning skisser. Om man tittar på de flesta något exempel som återger något visuellt slående skissen generellt fungerar så här: kör lite kod för att uppdatera en uppsättning variabler på varje pass av Rita, och sedan använda det aktuella läget för dessa variabler för att bestämma vad man ska göra.

Denna skiss är samma. Den använder ett mycket glättad bibliotek som kallas gifAnimation för att spela animerade GIF-bilder. Du kan använda dem som du skulle någon regelbunden bildfil, som är, passera en hänvisning till en animerad GIF bild att styra placeringen och skalning.

Saken är den, om du vill göra många bilder på varierande platser, vissa envisas vissa inte, du behöver något sätt att hålla reda på dem. Om du visste hur många bilder kanske du kan använda en fast uppsättning av variabler att hålla alla detaljer, men förbi några fåtal som blir tungrott.

Jag hade i åtanke att återge GIF-filer placeras i nät av olika storlekar. Jag bestämde mig att dela upp skärmen i hälften, i mitten. Bildplacering skulle ske genom att ange vänster eller höger, vilken storlek rutnät (genom att ge antalet rader och kolumner), och var i det rutnätet för att placera bilden.

Spåra en uppsättning relaterade data efterlyser något sätt att gruppera dem. En array fungerar ibland, men i detta fall måste det finnas två uppsättningar av grupperade data. Att göra dina klasser i bearbetning är lätt och ger ett sätt att hålla relaterade data tillsammans. Jag definierade en klass som kallas RenderArgs (du ser varför i ett ögonblick)

klass RenderArgs {

offentliga färgton;
offentliga Gif gif;

Public int numCols = 0;
Public int numRows = 0;
Public int slotIndex;

RenderArgs (färg t, Gif g, int nC, int nR, int idx) {
nyans = t;
GIF = g;
numCols = nC;
numRows = nR;
slotIndex = idx;
}

}

Det är bara ett sätt att gruppera en nyans färg, en referens till en animerad GIF, antalet kolumner och rader i ett rutnät, och var i det rutnätet för att placera GIF.

Detta (förutom nyansen) är alla argument till en metod placeGifAt.

void placeGifAt (Gif g, int leftOrRight, int numCols, int numRows, int slotIndex) {
int w = width/(numCols*2);
int h = höjd/numRows;
int count = 0;
int colOffset = 0;

om (leftOrRight == höger) {
colOffset = bredd/2;
}

för (int y = 0; y < numRows; y ++) {
för (int x = 0; x < numCols; x ++) {
om (greve == slotIndex) {
bild (g, x * w + colOffset, y * h, w, h);
}
greve ++;
}
}

}

(Filen med den här koden definierar också rätt som 1 för att göra det lättare att läsa.)

Plausibly, kunde denna metod vara en del av samma klass som innehar alla argumentvärden; koden utvecklats från först skapa en metod för att definiera hur du monterar en bild i ett rutnät-slot.

placeGifAt anropas i dra, tillsammans med en uppmaning till nyans. Allt detta kunde vara insvept i en förekomstmetod (render, kanske) i renderArgs (som sedan måste ett bättre namn) så att data och beteende hålls samman (typ av hela poängen med klasser). Jag har inte bara gjort detta. Jag försöker fortfarande saker och jag är OK om koden inte har fast i några slutliga form.

Det finns diverse hjälpare metoder att hanterar en lista över animerade GIF instanser och en lista över toner och vissa ArrayList instanser (renderL och renderR) att hålla fast vid RenderArgs instanser.

Rita gör mycket lite. Det sätter en svart bakgrund sedan itererar över RenderArgs listor, och för varje objekt samtal nyans då bilden. Med andra ord, man tittar på en uppsättning av variabler och använder dem för att bestämma vad du ska göra.

Här är lottningen

void draw() {
Background(0);
RenderArgs ra;

för (int jag = 0; jag < renderL.size(); i ++) {
ra = renderL.get(i);
Tint(ra.Tint);
placeGifAt (ra.gif, vänster, ra.numCols, ra.numRows, ra.slotIndex);
}

för (int jag = 0; jag < renderR.size(); i ++) {
ra = renderR.get(i);
Tint(ra.Tint);
placeGifAt (ra.gif, höger, ra.numCols, ra.numRows, ra.slotIndex);
}
}

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