Transformatorobjektet i miljön är ett av de kraftfullaste verktygen Logic har att erbjuda. Med lite MIDI-know-how kan det bli ett otroligt kraftfullt kreativt verktyg. I den andra delen av denna miljöserie ska vi titta på det grundläggande begreppet hur transformatorn tolkar och manipulerar MIDI-meddelanden. Även om du inte har Logic finns det också användbar information om MIDI.
Innan vi börjar rekommenderar jag att du läser artikeln först - innan du tittar på skärmen!
Använda Logic Pros transformatorobjekt från AUDIOTUTS Video på Vimeo.
I Logic är "transformation" processen att ändra MIDI-meddelanden. Den kan antingen användas för att modifiera inkommande MIDI-meddelanden via transformatorobjektet (som finns i miljön) eller för att ändra förinspelade MIDI-delar via transformationsfönstret (Command + 4). Objektversionen kan användas för mer kreativa ändamål medan fönsterversionen kan användas för satsvis bearbetning av MIDI-data i ditt arrangemang och spara dig massor av manuell arbetskraft. Även om vi inte kommer att täcka Transform-fönstret i denna handledning när du förstår konceptet är det ganska mycket detsamma som objektet.
Men först att använda dessa kraftfulla funktioner är det mycket viktigt att förstå hur ett MIDI-meddelande är konstruerat, eftersom båda transformatorerna använder denna struktur som grund för uppgifterna. Utan att veta det ser det bara skrämmande ut!
MIDI är utan tvekan en av de viktigaste tekniska utvecklingen inom musikproduktionen de senaste 25 åren, även övergången till våra vardagsliv - tänk bara mobiltelefon ringsignaler. Det kontrollerar även spel som Guitar Hero! Vi använder alla det i musikproduktion, men mestadels på en mycket ytlig nivå genom ett användargränssnitt. Så vad är MIDI och hur fungerar det?
MIDI (kort för Musical Instrument Digital Interface) är ett 8-bitars binärt språk som utvecklades i början av 80-talet av Dave Smith och Chet Wood i ett försök att standardisera kommunikationsprotokoll mellan olika tillverkares utvecklande digital synthesizer-teknik. 1983 frigörs MIDI 1.0-specifikationen till världen och trots ett par förbättringar är det ungefär lika stort för denna dag. Det låter alla typer av musikinstrument från synths, sequencers, hårdvaruffekter och jämnt scenbelysning att prata med varandra i ett plattformsperspektiv, universalspråk.
MIDI-data skickas inuti ett MIDI-meddelande ". Det finns tre typer av MIDI-meddelanden.
Lyckligtvis är vi intresserade av röstmeddelanden eftersom de kontrollerar de grundläggande prestandadata.
Ett grundläggande MIDI-meddelande består av två eller flera byte. Bytes består av 8 bitar. Varje bit är som en strömbrytare - antingen OFF (0) eller ON (1). Binär kod som den här låter oss göra stora siffror med mindre kod och MIDI utformades för att vara så liten som möjligt för att övervinna latensproblem som MIDI sänds i serie (ett meddelande följer en annan).
En byte kan ha ett maximalt decimalvärde på 255 (lägger till alla ON-värden). Jag vill inte komma in i en lektion med att räkna i binär men här är ett mycket snabbt exempel.
Det finns två typer av byte typer som hör samman med MIDI-meddelanden.
Statusbyte - Statusbyten levereras först. Det berättar enheten som tar emot den vilken typ av MIDI-meddelande det är. De börjar alltid med en 1. Detta ger dem ett potentiellt värde någonstans mellan 0-255 - i binär som är 00000000 - 11111111. Typiskt röstmeddelande Statusbyte är anteckning, pitchbend, control, aftertouch och programbyte.
Ofta delas statusbyten i två fyra bitars meddelanden som kallas "nibbles". I röstmeddelanden rymmer en nibble typen av röstmeddelande (status) medan den andra har MIDI-kanaldata. Intressant är det högsta decimala värdet på en nibble 16, varför vi bara har 16 MIDI-kanaler.
Databyte - Databyte innehåller värdet av statusbyten. De börjar alltid med en 0 som ger dem ett potentiellt värde mellan 0-127, i binär som är 00000000 - 01111111.
Detta värde på 0-127 är förmodligen något du är mycket bekant med. Anteckningsnummer går från 0-127. Samma för hastighet, moduleringsdata och så vidare. Ett undantag till detta är pitchbend som använder två byte vilket ger den 14 bitars upplösning för att undvika "stepping". Varför 14 bit? Eftersom databyte bara har sju bitars upplösning - glöm inte att de börjar med en 0 som definierar dem som en databyte och två gånger sju är 14. Detta 14-bitarsmeddelande ger pitchbend en upplösning på 16.384 steg över alla 128 notnummer. Det betyder att varje anteckning har 128 steg innan den kommer till nästa anteckning, vilket ger en smidig övergång.
Nedan visas ett diagram över ett grundläggande meddelande om meddelandet. Du får en bild av hur byte sätts samman för att göra ett MIDI-meddelande.
Så låt oss ta en titt på vårt transformatorobjekt. Transformatorobjektet finns i miljömenyerna genom att välja Ny> Transformator. Dubbelklicka på transformatorobjektet och ett fönster öppnas.
De fyra raderna av nedrullningsbara filer längst upp är märkta Status, Kanal, Data Byte 1 och Data Byte 2 precis som strukturen i MIDI-meddelandet i diagrammet ovan. Strukturen för MIDI-meddelanden varierar något från en till en annan. Här är en snabb nedbrytning av hur röstmeddelanden skiljer sig åt. Alla dessa kommer att sändas över MIDI-kanal 1 (den andra nibbleen i statusbyten). Det är viktigt att tillägga att du inte behöver lära dig de binära uppdragen i Statusbyte eftersom din DAW kommer att översätta dem till engelska.
Det enda nyfiken i denna lista är värdena MSB och LSB. Dessa står för mest signifikanta byte och minst signifikanta byte. Detta är bara en binär sak som uttrycker vilken byte har högsta värde.
Så här visar röstmeddelandestrukturerna när de appliceras på transformatorn.
Avsnittet Villkor är där du definierar de parametrar du vill transformera. Nedrullningsmenyerna innehåller olika "villkorliga uttalanden". Dessa liknar den typ av villkor som du hittar i programmeringsspråk som Javascript eller PHP i webbdesign. Om X = Y, utför sedan en åtgärd på den. Om du väljer ett villkor från rullgardinsmenyn öppnas en parametervåda där du kan lägga till värdet för ditt tillstånd. Om du exempelvis väljer "Equal" kommer du att få upp ett värdeval, det nummer du vill att ditt val ska vara lika med. Att välja "Inside" kommer att ge upp två valmöjligheter där du kan ställa in ditt tillståndsortiment. Om du lämnar rullgardinsuppsättningen till "Alla" kan du göra hela intervallet eller alla värden i en viss byte.
I bilden ovan har jag satt ett villkor som letar efter MIDI-meddelanden som är lika med Control Data (Status Nibble 1) på alla MIDI-kanaler (Status Nibble 2) med ett styrnummer 12 (Data Byte 1) och endast påverkar värdena på det registeransvariga numret mellan 10 och 50 (Data Byte 2).
Avsnittet Operationer är där du tillämpar formeln för dina omvandlingar. Dessa kan vara enkla matematiska operationer som tillägg och subtrahera eller mer komplexa scenarier med hjälp av kartan. "Fix" är ett mycket vanligt värde här, särskilt när det gäller meddelandets status. För att ändra kontrollvärden för att notera värden, välj "Control" i statuskolumnen i Villkor och "Fix" den till "Notera" i kolumnen Funktioner. Detta omstrukturerar helt enkelt den binära koden i den första nibble från 1011 vilket är Control Change till ett annat värde på 1001, vilket är Not On. Enkel! Med "Thru" -inställningen kan data passera genom orörd.
I det här exemplet har jag lagt till 6 till numret i Data Byte 1. Denna enkla operation gör modulering (Controller No 1) till Volym (Controller No 7). 1 + 6 = 7.
De tre linjerna som skiljer Betingelser och Operationer används för att räkna värden från en byte till en annan under en transformation. Detta beror på att de flesta meddelanden har en annan struktur. Till exempel om du ville konvertera anteckningsnummer till pan-värden kanske du tror att det här är okej.
Det finns dock ett problem här. Anteckningsnumren lagras i Data Byte 1 i anteckningsmeddelandet och i kontrollmeddelandet lagras panvärdet i Data Byte 2. För närvarande styrs panvärdet med nothastighet från databyte 2 i anteckningsmeddelandet. För att komma runt detta, klicka två gånger på linjen som förbinder Data Byte 2. Det här omdirigerar nummerkoden till Data Byte 2 i kontrollmeddelandet. Problemet löst! Detta gör ett bra fall för att känna till strukturen i MIDI-meddelanden.
Transformer Modes tillåter dig att utföra olika uppgifter om att filtrera vissa meddelanden och hur Transformatorn faktiskt matar ut sina data.
Ett bra exempel är Condition splitter (true> top cable) -läget. Detta matar ut det transformerade meddelandet via den övre utgångskabeln och eventuella MIDI-meddelanden som inte uppfyller de angivna förhållandena (dvs kontroll nr 1) passerar ut ur bottenskablarna. Det här är mycket användbart när du vill omdirigera bara den transformerade data till en annan destination. Nedan ser du att anteckningsmeddelandena (som inte uppfyller villkoret) skickas ut i bottenkabeln. Handboken har fullständiga detaljer om lägena så kolla in dem.
Det finns vissa fall när lägen är det enda sättet att lösa ett problem. Screencasten är ett bra exempel på detta med hjälp av Alternerande Split-läge för att skilja Not On och Not Off-meddelanden.
Kartan är tillgänglig i både Villkor och Operationer, även om du bara kan använda en karta vid en viss tidpunkt. Tänk på det som en XY-graf.
Det låter dig i princip kartlägga alla tal mellan 0-127 längs X-axeln till ett annat värde med Y-axeln. Detta görs genom att använda musen för att rita in det nya värdet eller använda inmatningsrutorna längst ner.
Det finns många applikationer för kartan som att skapa hastighetskurvor och slumptal. I rullgardinsmenyn Operationer finns flera operationer som använder kartan som bas men använder parametrar för att ändra den. Dessa inkluderar Random, Crescendo och Reverse. Endast alternativet som heter "Använd karta" låter dig ange din egen anpassade karta.
Nedan kan du se genom att trycka på knappen "Initialize" värdena längst ned (X-axeln) är samma som värdena på Y-axeln.
Genom att trycka på "Reverse" -knappen längst ner är värdena längst ner nu inverterad. Vad var 0-127 är nu 127-0.
Det här är ett mycket enkelt exempel och det är möjligt att skapa väldigt komplexa och specifika kartor om du vill. En sak att se efter är att dra i kartan kan vara väldigt tråkigt på grund av dess storlek, så tålamod krävs!
Övervaka objekt kan du se informationen som passerar genom en kabel. Dessa är väsentliga för felsökning av MIDI. Data representeras i fyra kolumner precis som transformatorns struktur. Lägg bara in dem mellan objekt för att hålla reda på dina MIDI-meddelanden.
Om du vill lära dig mer om MIDI finns det många resurser där ute. Här är några bra utgångspunkter.
Efter att ha läst detta borde du ha ett ganska rättvist grepp om hur transformatorn fungerar och kanske lärt sig en sak eller två om MIDI. Liksom alla saker, desto mer övar du och experimenterar desto bättre kommer du att få använda transformatorn. Naturligtvis tänker nyckeln på några kloka användningsområden för det! Handboken är ett bra ställe att börja förstå saker som Modes and Conditional Statements. Nästa gång kommer vi att lägga allt ihop och bygga några prestationsrelaterade saker i miljön. Jag hoppas att det här har varit användbart och vi ses nästa gång.
Ladda ner Play Pack för denna handledning (27KB)
Innehåll