Scripting bearbetning med MIDI (9 / 11 steg)

Steg 10: Gridly godhet

Denna inställning tillåter flera enheter att lägga roll rutnät. Vad som återstår är att lägga till några slutliga blomstrar.

Huvuddelen av grafiken händer på en delad skärm. En mer rendering struktur som täckte hela skärmen skulle vara trevligt. För detta ändamål skapas en ny RenderArgs ArrayList-instans.

Några mer tweaks bli presenterad också. Möjligheten att ställa en skalningsfaktor vid rendering en GIF. Detta gör att två intressanta funktioner: du kan centrera en stor GIF som annars inte skulle passa int ett enhetligt rutnät (eftersom du kan placera det övre vänstern och sedan skala det), och du kan växa/förminska GIF-bilder som de är Visa.

MIDI-standardmappning för arvet Launchpad ser ut som detta anmärkningsvärt sofistikerade diagram:

(104) (105) (106) (107) (108) (109) (110) (111)
[0] [1] [2] [3] [4] [5] [6] [7] (8)
[16] [17] [18] [19] [20] [21] [22] [23] (24)
[32] [33] [34] [35] [36] [37] [38] [39] (40)
[48] [49] [50] [51] [52] [53] [54] [55] (56)
[64] [65] [66] [67] [68] [69] [70] [71] (72)
[80] [81] [82] [83] [84] [85] [86] [87] (88)
[96] [97] [98] [99] [100] [101] [102] [103] (104)
[112] [113] [114] [115] [116] [117] [118] [119] (120)

Det finns runda knappar överst och längs till höger; den huvudsakliga layouten är en 8 x 8 rutnät. Siffrorna i diagrammet är MIDI notera värdena varje knapp skickar som standard.

Några saker att notera: det finns luckor i Obs spänner, och notera 104 upprepas två gånger, först på topp som den första knappen och igen på en knapp längst ner till höger.

Jag ville att relatera pad ställning till någon aspekt av en effekt att göra det mer intuitivt. Som du kanske har gissat av nu det i konstant flöde, men här är några exempel.

Renoise spåret inrättades att skicka några ganska strukturerade skiss utlösare. Exempelvis genererar en grid-fyllning sekvens.

Jag ville onGridNoteNN meddelanden för att kunna placera och skala GIFs över fönstret full skiss.

Som innan, det finns en lista att hålla data för utsläppande GIF-bilder på skärmen och metoder lägga till objekt och rensa listan.

Fokus ligger på avsnitt av startfönstret: de första fem kolumnerna (från vänster) och de tre översta raderna.

Flytta över kuddar i rad placerar en GIF relativa skärmen läge (längst till vänster, kinda vänster, center, etc.). Flyttar från första raden till tredje anger olika GIF gradering; lägre är större.

Slå pad för not 32 platser en GIF som fyller hela vänster sida; not 36 fyller till höger.

Kontrollera den skiss använda startfönstret

Allt detta verk av ett rutnät 8 rader av 16 kolumner. Skillnaden är i skalningsfaktor används. Att lägga till en GIF remderC RenderArgs listan omfattar anropar den här metoden:

void placeGif8x16 (heltal index, flyta skalning) {
gridCRows = 8;
gridCCols = 16.
gridCPointer = index.
centerScaling = gradering;
addToGridC();
}

där addToGridC är ungefär som addToGridL4x4.

Och mycket som äldre kod, det finns användning av diverse globala variabler kontrollera rutnät indexering och skalning.

Varning: Kan orsaka biverkningar

En hel del bearbetning koden jag ser gör rikliga användande av globala variabler. Det vill säga variabler som kan nås och eventuellt ändras för någon plats i skissen.

Allmänhet gör sådana saker mig krypa. Men varför? Och om det är så krypa-inducerande varför gör jag det här?

Det är är något god täckning av farorna med globala variabler här och här.

I ett nötskal, globala variabler är just det: globalt variabel. När en metod, som placeGifAt använder har en global variabel (t.ex. centerScaling) det finns inga garantier vilket värde den variabeln.

Värdet kan har fastställt en metod, men senare ändrade då av en annan, innan placeGifAt kommer att använda den. Denna höga grad av föränderlighet gör det mycket svårt att förstå vad som kommer att hända när placeGifAt anropas. Det är faktiskt mycket möjligt att centerScaling kan sluta med ett helt oanvändbar värde. När något inte beter sig korrekt, där ser du för att förstå varför? Om ett värde som används i en metod kan ändras från var som helst i din kod, hur du styr det?

Många bearbetning skisser är ganska små. De passar in i en fil, och är för det mesta lätt att titta igenom. Om en skiss inte är fruktansvärt komplicerat är då spåra udda beteende kanske inte ett stort problem.

Det började ett litet program med hjälp av globala variabler är inte en stor synd och kan göra det lättare att hoppa i, prova grejer och bedöma resultaten. Denna typ av utforskning bör uppmuntras.

När koden växer, men avsett nackdelen med biverkningar som följd av globala variabler förändras på ett sätt som strider mot beteende kan växa. Det kan vara meningsfullt att starta encapsulating dessa variabler, och hur de kan nås, i klasser.

För förberedande kod, och kanske creative coding i allmänhet, kan dessa biverkningar vara en oavsiktlig välsignelse.

Som jag skrev i handtagen för att reagera på Launchpad meddelanden jag lagt till metoder som befolkat en lista över GIF-placering. Faktiska utsläppande av dessa GIF-filer använder gemensamma globala värdet av centerScaling.

Utan att inse konsekvenserna hade jag mina metoder ändra värdet för centerScaling. Oavsiktliga resultatet blev att alla befintliga GIFs i renderC ändra storlek när en metod ändras värdet för centerScaling.

Inte vad jag tänkte, men jag gillar effekten. Om och när jag corral koden in i en mindre slumpartat strukturera detta slags beteende kan vara något jag vill hålla.

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