Het Transformer-object in de Environment is een van de krachtigste tools die Logic te bieden heeft. Met een beetje MIDI-kennis kan het een ongelooflijk krachtige creatieve tool worden. In het tweede deel van deze Environment-serie gaan we kijken naar het basisconcept van hoe de Transformer MIDI-berichten interpreteert en manipuleert. Zelfs als je geen Logica hebt, is er ook wat nuttige informatie over MIDI.
Voordat we beginnen, raad ik u aan het artikel te lezen eerste - voordat je de screencast bekijkt!
Het Transformer-object van Logic Pro gebruiken van AUDIOTUTS Video on Vimeo.
In Logic is 'transforming' het proces van het wijzigen van MIDI-berichten. Het kan worden gebruikt om inkomende MIDI-berichten via het Transformer-object (dat kan worden gevonden in de omgeving) te wijzigen of om vooraf opgenomen MIDI-parts via het Transform-venster (Command + 4) te wijzigen. De objectversie kan worden gebruikt voor meer creatieve doeleinden, terwijl de vensterversie kan worden gebruikt voor het verwerken van MIDI-gegevens in uw arrangement en u veel handenarbeid bespaart. Hoewel we in deze zelfstudie het Transform-venster niet behandelen, is het, als je het concept begrijpt, vrijwel hetzelfde als het object.
Maar eerst om deze krachtige functies te gebruiken is het van vitaal belang om te begrijpen hoe een MIDI-bericht is opgebouwd, omdat beide transformatoren deze structuur gebruiken als basis voor taken. Zonder dit te weten, ziet het er alleen maar eng uit!
MIDI is zonder twijfel een van de belangrijkste technologische ontwikkelingen in de muziekproductie van de afgelopen 25 jaar, zelfs overgaand in ons dagelijks leven - denk maar aan ringtones van mobiele telefoons. Het bestuurt zelfs games zoals Guitar Hero! We gebruiken het allemaal in de muziekproductie, maar meestal op een zeer oppervlakkig niveau via een gebruikersinterface. Dus wat is MIDI en hoe werkt het?
MIDI (een afkorting van Musical Instrument Digital Interface) is een 8-bits binaire taal die in de vroege jaren 80 door Dave Smith en Chet Wood werd ontwikkeld in een poging om communicatieprotocollen te standaardiseren tussen de evoluerende digitale synthesizertechnologieën van verschillende fabrikanten. In 1983 werd de MIDI 1.0-specificatie vrijgegeven aan de wereld en ondanks een aantal verbeteringen blijft deze tot op de dag van vandaag vrijwel hetzelfde. Hiermee kunnen allerlei muzikale apparaten van synths, sequencers, hardware-effecten en zelfs toneelverlichting met elkaar spreken in een universele universele taal..
MIDI-gegevens worden verzonden in een MIDI 'bericht'. Er zijn drie soorten MIDI-berichten.
Gelukkig zijn we geïnteresseerd in spraakberichten terwijl ze de basisprestatiegegevens beheren.
Een standaard MIDI-bericht bestaat uit twee of meer bytes. Bytes bestaan uit 8 bits. Elke bit is als een schakelaar - hetzij UIT (0) of AAN (1). Met binaire code kunnen we grote getallen maken met minder code en is MIDI zo klein mogelijk ontworpen om latentiekwesties te overwinnen, omdat MIDI in serie wordt verzonden (het ene bericht volgt op het andere).
Een byte kan een maximale decimale waarde van 255 hebben (alle AAN-waarden optellen). Ik wil geen les volgen in het tellen van binaire gegevens, maar hier is een zeer snel voorbeeld.
Er zijn twee soorten byte types geassocieerd met MIDI-berichten.
Statusbytes - De statusbyte wordt als eerste afgeleverd. Het vertelt het apparaat dat het ontvangt welk soort MIDI-bericht het is. Ze beginnen altijd met een 1. Dit geeft ze een potentiële waarde ergens tussen 0-255 - in het binaire getal 00000000 - 11111111. Typische gesproken bericht Statusbytes zijn opmerking, pitchbend, controle, aftertouch en programmawijziging.
Vaker wel dan niet wordt de statusbyte opgesplitst in twee vierbitsberichten die 'nibbles' worden genoemd. In spraakberichten bevat een nibbel het type spraakbericht (status), terwijl de andere de MIDI-kanaalgegevens bevat. Interessant is dat de hoogste decimale waarde van een nibble 16 is, wat de reden is dat we slechts 16 MIDI-kanalen hebben.
Gegevensbytes - De gegevensbyte bevat de waarde van de statusbyte. Ze beginnen altijd met een 0, waardoor ze een potentiële waarde tussen 0 en 127 hebben, in het binaire getal 00000000 - 01111111.
Deze waarde van 0-127 is waarschijnlijk iets dat u zeer bekend bent. Nootnummers gaan van 0-127. Hetzelfde voor snelheid, modulatiegegevens enzovoort. Een uitzondering hierop is pitchbend die twee bytes gebruikt, waardoor deze een 14 bit-resolutie heeft om 'stepping' te voorkomen. Waarom 14 bits? Omdat Data Bytes slechts een resolutie van zeven bits hebben - vergeet niet dat ze beginnen met een 0 die ze definieert als een gegevensbyte, en twee keer zeven is 14. Dit 14-bits bericht geeft pitchbend een resolutie van 16.384 stappen over alle 128 nootnummers. Dit betekent dat elke noot 128 stappen heeft voordat het de volgende noot bereikt, wat een vloeiende overgang oplevert.
Hieronder ziet u een diagram van een standaard Note On-bericht. Je krijgt een beeld van hoe bytes worden samengevoegd om een MIDI-bericht te maken.
Laten we dus eens kijken naar ons Transformer-object. Het Transformer-object kan worden gevonden in de omgevingsmenu's door te selecteren Nieuw> Transformer. Dubbelklik op het Transformer-object en er wordt een venster geopend.
De vier rijen met vervolgkeuzemenu's bovenaan zijn gelabeld als Status, Kanaal, Data Byte 1 en Data Byte 2, net als de structuur van het MIDI-bericht in het bovenstaande diagram. De structuur van MIDI-berichten varieert enigszins van de ene naar de andere. Hier volgt een korte beschrijving van de manier waarop gesproken berichten verschillen. Al deze worden verzonden via MIDI-kanaal 1 (de tweede nibble van de statusbyte). Het is belangrijk om toe te voegen dat u de binaire toewijzingen van de statusbytes niet hoeft te leren, omdat uw DAW ze in het Engels vertaalt.
Het enige vreemde in deze lijst zijn de waarden MSB en LSB. Deze staan voor Most Significant Byte en Minst Significante Byte. Dit is slechts een binair iets dat aangeeft welke byte de hoogste waarde heeft.
Hier ziet u hoe de structuren voor spraakberichten eruitzien wanneer ze worden toegepast op de Transformer.
In de sectie Voorwaarden definieert u de parameters die u wilt transformeren. De vervolgkeuzemenu's bevatten verschillende 'Voorwaardelijke verklaringen'. Deze zijn vergelijkbaar met het soort conditionals dat je in programmeertalen vindt, zoals Javascript of PHP in webdesign. Als X = Y, voer dan een actie uit. Door een voorwaarde uit de vervolgkeuzelijst te kiezen, wordt een parametermenu geopend waarin u de waarde voor uw conditie kunt toevoegen. Als u bijvoorbeeld 'Gelijk' kiest, wordt er één waardekeuze weergegeven, waarbij het nummer dat u wilt dat uw keuze is, gelijk is. Als u 'Binnen' kiest, krijgt u twee waardeopties waarin u het bereik van uw conditie kunt instellen. Als u de vervolgkeuzelijst op 'Alles' laat staan, kunt u het volledige bereik of alle waarden in een gegeven byte bewerken.
In de bovenstaande afbeelding heb ik een voorwaarde ingesteld voor elk MIDI-bericht dat gelijk is aan besturingsgegevens (statusknabbel 1) op alle MIDI-kanalen (statusknabbels 2) met een controllernummer van 12 (gegevensbyte 1) en hebben alleen effect op de waarden van dat controller nummer tussen 10 en 50 (Data Byte 2).
In het gedeelte Bewerkingen past u de formule toe voor uw transformaties. Dit kunnen eenvoudige wiskundige bewerkingen zijn zoals optellen en aftrekken of complexere scenario's met behulp van de kaart. 'Fix' is hier een heel gebruikelijke waarde, vooral als het gaat om de status van het bericht. Om controller-waarden te wijzigen in nootwaarden, selecteert u 'Control' in de statuskolom in Conditions en 'Fix' in 'Note' in de kolom Bewerkingen. Dit herstructureert simpelweg de binaire code in de eerste nibble van 1011, wat besturingswijziging is naar een andere waarde van 1001, wat Note On is. Eenvoudig! Met de instelling 'Thru' kunnen gegevens onaangeroerd worden doorgegeven.
In dit voorbeeld heb ik 6 toegevoegd aan het nummer in Data Byte 1. Deze eenvoudige handeling zet Modulation (Controller No 1) in Volume (Controller No 7). 1 + 6 = 7.
De drie regels die voorwaarden en bewerkingen scheiden, worden gebruikt om waarden van één byte naar een andere te routeren tijdens een transformatie. Dit komt omdat de meeste berichten een andere structuur hebben. Als je bijvoorbeeld aantekeningennummers naar panwaarden wilt converteren, zou je denken dat dit in orde is.
Er is hier echter een probleem. De nootnummers worden opgeslagen in Data Byte 1 in het notitiebericht en in het besturingsbericht wordt de panwaarde opgeslagen in Data Byte 2. Op het moment dat de panwaarde wordt bestuurd door de nootsnelheid uit Data Byte 2 van het nootbericht. Om dit te omzeilen, klikt u tweemaal op de regel die Data Byte 2 verbindt. Nu wordt de waarde van het nootnummer omgeleid naar Data Byte 2 van het besturingsbericht. Probleem opgelost! Dit is een goede reden om de structuur van MIDI-berichten te kennen.
Met Transformermodi kunt u verschillende taken uitvoeren voor het filteren van bepaalde berichten en hoe de Transformer zijn gegevens daadwerkelijk uitvoert.
Een goed voorbeeld is de modus Condition-splitter (true> top-kabel). Dit voert het getransformeerde bericht uit via de bovenste uitvoerkabel en alle MIDI-berichten die niet voldoen aan de gespecificeerde voorwaarden (dat wil zeggen besturingsnummer 1) worden uit de onderste kabels gevoerd. Dit is erg handig als u alleen de getransformeerde gegevens naar een andere bestemming wilt omleiden. Hieronder ziet u dat de Note-berichten (die niet aan de voorwaarde voldoen) zijn doorgegeven aan de onderste kabel. De handleiding bevat alle details van de modi, dus bekijk ze.
In sommige gevallen zijn modi de enige manier om een probleem op te lossen. De screencast heeft hier een goed voorbeeld van met behulp van de modus Afwisselend splitsen om Notitie aan en Noot uit berichten te scheiden.
De kaart is beschikbaar in zowel voorwaarden als bewerkingen, maar u kunt op elk moment slechts één kaart gebruiken. Zie het als een XY-grafiek.
In feite kunt u elk nummer tussen 0 - 127 langs de X-as toewijzen aan een andere waarde met behulp van de Y-as. Dit wordt gedaan met de muis om de nieuwe waarde in te tekenen of met behulp van de invoervakken onderaan.
Er zijn veel toepassingen voor de kaart, zoals het maken van snelheidsgrafieken en willekeurige getallen. In de vervolgkeuzelijst Operaties zijn er verschillende bewerkingen die de kaart gebruiken als basis, maar parameters gebruiken om deze aan te passen. Deze omvatten Random, Crescendo en Reverse. Alleen de optie 'Gebruik kaart' geeft u de mogelijkheid om uw eigen aangepaste kaart in te voeren.
Hieronder kunt u zien door op de knop 'Initialiseren' te drukken. De waarden langs de onderkant (X-as) zijn gelijk aan de waarden op de Y-as.
Door onderaan op de knop 'Reverse' te drukken, worden de waarden langs de onderkant nu omgekeerd. Wat was 0-127 is nu 127-0.
Dit is een heel eenvoudig voorbeeld en het is mogelijk om zeer complexe en specifieke kaarten te maken als je wilt. Een ding om op te letten is dat het tekenen op de kaart erg saai kan zijn vanwege de grootte, dus geduld is vereist!
Met monitorobjecten kunt u de informatie bekijken die door een kabel gaat. Deze zijn essentieel voor het oplossen van problemen met MIDI. De gegevens worden weergegeven in vier kolommen, net als de structuur van de transformator. Plaats ze gewoon tussen objecten om uw MIDI-berichten bij te houden.
Als je meer wilt weten over MIDI zijn er genoeg bronnen. Hier zijn enkele goede startpunten.
Na het lezen van dit moet je een vrij goed begrip hebben van hoe de Transformer werkt en misschien heb je het een en ander geleerd over MIDI. Zoals alle dingen, hoe meer je oefent en experimenteert, hoe beter je krijgt bij het gebruik van de Transformer. Natuurlijk is de sleutel het bedenken van een aantal slimme toepassingen voor! De handleiding is een goede plaats om zaken als de modi en voorwaardelijke verklaringen te gaan begrijpen. De volgende keer gaan we het allemaal samenvoegen en wat prestatie-gerelateerde dingen bouwen in de omgeving. Ik hoop dat dit nuttig is geweest en tot de volgende keer.
Download het Play Pack voor deze zelfstudie (27 KB)
Inhoud