Innehållsförteckning:

Max MSP Ambient Loop Generator: 19 steg
Max MSP Ambient Loop Generator: 19 steg

Video: Max MSP Ambient Loop Generator: 19 steg

Video: Max MSP Ambient Loop Generator: 19 steg
Video: Max/Msp Random Stuff #1: Simple Ambient Pad Generator 2024, November
Anonim

Detta är en handledning om hur du kommer igång med att skapa en ambient loop -generator i Max MSP.

Denna handledning förväntar dig att du har en grundläggande förståelse för Max MSP, DAW -gränssnitt och signalbehandling. Om du vill använda programmet som är utformat i denna handledning, fortsätt och ladda ner det, gratis att använda (men inte för att sälja eller publicera om)!

Programmet som vi ska designa har TVÅ huvuddelar:

1) En flersignalprocessor

2) En semi-randomiserad notgenerator

Notgeneratorn går långsamt längs en nyckel/skala i semi-slumpmässiga mönster och matar MIDI-data till en DAW, som i sin tur skickar tillbaka ljud till Max för att bearbetas.

Här är en länk till den slutliga korrigeringsfilen:

Tillbehör:

  • Grundläggande Max MSP och MIDI kunskap
  • Max MSP
  • Ljudgränssnitt (vi använder Logic Pro X)
  • Soundflower
  • (Valfritt) Några bra plug -ins för programvaruinstrument för din DAW

Steg 1: Konfigurera Soundflower med Max och din DAW

Konfigurera Soundflower med Max och din DAW
Konfigurera Soundflower med Max och din DAW
Konfigurera Soundflower med Max och din DAW
Konfigurera Soundflower med Max och din DAW

Soundflower är ett program som hjälper till att skicka ljud mellan program på Mac. Vi kommer att använda detta för att få ljud från vår DAW till Max.

Att använda Soundflower med din DAW kunde inte vara enklare! Ladda bara ner Soundflower, så blir det tillgängligt att använda som ljudutgång och ingång. Om vi skapar ett adc ~ (ljudingång) och dac ~ (ljudutmatning) objekt kan vi se att Soundflower 2ch och Soundflower 64ch blir användbara ljudvägar. Vi kommer att använda Soundflower 2ch (2 kanaler) för detta program.

I Max lägger du till en växel för att slå på och stänga av din ingång och en förstärkningsreglage för volym, så är du på väg.

I din DAW, under inställningar> ljud ser du ljudingång och ljudutmatning. Vi kommer att använda Soundflower 2ch som ljudutgång.

Steg 2: Bestäm din signalbehandlingsväg

Bestäm din signalbehandlingsväg
Bestäm din signalbehandlingsväg

Enkelt uttryckt, kommer ditt ljud att förvrängas i en massa olika kanaler, eller allt i en rak linje?

Vi bestämde oss för att använda parallell ljudbehandling - vår signal kommer att förvrängas på flera olika kanaler. Detta ger oss fördelen med tydligare övergripande ljud och mer kontroll för vår signal, men pressar mycket volym in i masterförstärkningen, vilket resulterar i viss klippning. Vi bestämde att mer kontroll var värt lite förvrängt ljud, eftersom detta kommer att skapa omgivande loopar ändå!

Dessutom måste du bestämma vilka effekter du vill skapa. Vi kommer att demonstrera några effekttyper här om du vill ha idéer.

Steg 3: Lägg till en torr blandning

Lägg till en torr blandning
Lägg till en torr blandning
Lägg till en torr blandning
Lägg till en torr blandning

Vi lade först till en "torr blandning" så att vi kunde ha en separat, opåverkad ljudsignal. Detta gjordes genom att köra adc ~ -utgången till en förstärkningsreglage (med en ratt för att göra det enkelt att se), i ett svf ~ -filter med en ratt för att justera lågpassfiltrering och sedan till masterförstärkning och ut till dac ~. Att ha en torr blandning kan vara ganska praktiskt, så vi föreslår det om du vill hålla saker lite klara och lätta att testa!

Vi kanske har fått lite uppmärksamhet där - vi kommer att köra alla våra effekter i separata svf ~ -filter för att ha tonväljare för varje signalkanal. Detta gör det enkelt att rensa ljudutrymmet när en viss effekt är för hög. Vi gjorde alla våra svf ~ lågpassfilter (genom att ansluta till lågpassutgången), så att de gradvis stängde av höga frekvenser genom att vrida på ratten. Svf ~ har dock också bandpass (selektiv frekvens), highpass (ta bort nedgångar) och andra användbara filter. Experimentera för att se vad du gillar och behöver, eller till och med använda flera filter!

Steg 4: Växlingshöjd med en Pitchshifter

Växlingsplats med en Pitchshifter
Växlingsplats med en Pitchshifter
Växlingsplats med en Pitchshifter
Växlingsplats med en Pitchshifter

För en enkel, lättanvänd pitchshifter, kopiera pitchshifter -koden från pitchshifter -hjälpguiden i Max. Vår kod är väldigt lik, men tar bort funktioner som glid och flera ljudkvalitetsinställningar för att minska röran. Genom att köra in ditt ljud i detta (från adc ~ för parallellt ljud eller från den torra mixen för serieljud) kan du använda en ratt för att justera nivån för tonhöjden.

Precis som med den torra mixen lade vi till en gain -reglage och ett svf ~ -objekt för att möjliggöra volymkontroll och EQ -formning.

Steg 5: DISTORTION

FÖRVRÄNGNING!
FÖRVRÄNGNING!
FÖRVRÄNGNING!
FÖRVRÄNGNING!
FÖRVRÄNGNING!
FÖRVRÄNGNING!

Att använda objektet overdrive ~ är det enklaste sättet att lägga till distorsion. Du kan köra det i en förstärkningsreglage och ett filter och kalla det en dag. Men vi tog det ett par steg längre. För det första körde vi vänster och höger ljudväg till separata fasskift ~ objekt - dessa placerar vänster och höger ljudväg ur fas, "förtjockar" ljudet som hur en körpedal kan.

Dessutom skickade vi det resulterande ljudet till ett kaskad ~ objekt med ett filtergrafik bifogat. Detta gör att du kan förvränga ljudet mer eller mindre i vissa frekvenser och med så många filterband som du vill. Vår förvrängningsfiltergraf modellerades efter förvrängningen av en 1980-talets Boss HM-2 Heavy Metal-pedal.

Vid denna tidpunkt började vi också lägga till omx.peaklim ~ -objekt efter särskilt bullriga effekter - det här objektet begränsar ljudsignalen som kommer genom den som en kompressor skulle göra, vilket gör det lättare att hålla den slutliga ljudvägen från att klippa.

Steg 6: Drönarens kraft

Drönarens kraft
Drönarens kraft
Drönarens kraft
Drönarens kraft

Vi tyckte också att det var nödvändigt att lägga till en "droning" -frekvens i vår patch. Även om detta kunde ha åstadkommits med ett cykelobjekt för att skapa en enkel oscillator, hade det inte varit särskilt anpassningsbart för volym- eller frekvensändringar i det ursprungliga ljudet. Därför använde vi ett svf ~ filter för att skapa en ultraresonant ljudväg. Genom att köra ljud i ett svf ~ -filter och ställa in resonans till 1 skapar vi en dronningsfrekvens som rör sig in och ut som vår ljudväg gör, och kan sedan justeras för ljudstyrka, ton och frekvens. Justering av den bifogade ratten justerar droningfrekvensen.

Steg 7: Gå in i Bizarre: Ring Modulation

Gå in i det bisarra: ringmodulering
Gå in i det bisarra: ringmodulering
Gå in i det bisarra: ringmodulering
Gå in i det bisarra: ringmodulering

Nu går vi vidare genom att lägga till ringmodulering! Denna roliga och coola effekt är extremt enkel att göra, och mycket missförstådd eftersom den låter … lite funky. Detta uppnås genom att fästa en urtavla på ett *~ objekt i det högra inloppet och i det vänstra inloppet som fäster vår urtavla. Vi tog detta ett steg längre - när vår ringmodulator är helt nere stänger en grind av sin nummersignal, och så avbryts ringsignalen helt. Dessutom kan den också växlas till att mata ut till ett annat * objekt som reducerar frekvensen med ett visst belopp. På så sätt kan vi ha en "fin", tremolo-typ ringmod och en snabbare, konstig klingande ringmodulering. Liksom de andra effekterna stötte detta på en gain -reglage och ett svf ~ -filter.

Steg 8: Fördröjning och signalnedbrytning… Degrad… Deg… D….

Fördröjning och signalnedbrytning… Degrad… Deg… D….
Fördröjning och signalnedbrytning… Degrad… Deg… D….
Fördröjning och signalnedbrytning… Degrad… Deg… D….
Fördröjning och signalnedbrytning… Degrad… Deg… D….

Här skapar vi en fördröjning med tidskontroll, en återkopplingsratt, en tonvals och provnedbrytning. Detta gör att vi kan efterlikna en analog fördröjning genom att gradvis göra signalen tystare och mer förvrängd. För att göra detta använder vi anslutna tapin ~ och tapout ~ objekt. Vi skriver 5000 efter tapin ~ för att se till att den har 5000 ms minnestid. Genom att lägga till ett nedbrytnings ~ -objekt kan vi gradvis förstöra signalen. Sedan kör vi ljud från adc ~ till vårt nedbrytnings ~ -objekt, till tapin ~, till tapout ~, och samtidigt tillbaka till nedbrytning ~ från ett *~ och ur *~ till vår förstärkningskontroll. Genom att göra detta kan vi fästa en ratt för att justera fördröjningsvolymen som går tillbaka till sig själv och få en fördröjd signal från *~ -objektet till våra utgångar. Genom att placera nedbrytningsobjektet före tapin ~ kan vi dessutom lägga till mer och mer och mer provreduktion när signalen fördröjs. Kontrollera vår bild och kod för en tydlig bild av hur allt detta gjordes.

Steg 9: Belton Brick Style Reverb

Belton Brick Style Reverb
Belton Brick Style Reverb
Belton Brick Style Reverb
Belton Brick Style Reverb

En belton brick reverb hänvisar till en reverb utrustad med ett Accu-Bell BTDR Digi-logchip designat av Brian Neunaber från Neunaber Effects. Detta chip möjliggör enkla vårreverb med kaskadfördröjningslinjer. För att efterlikna detta har vi kodat ytterligare en fördröjning, med en ratt för att justera tid och feedback. Tiden kommer aldrig att överstiga 100 ms, och feedbacken är begränsad till 80%. Denna enkla fördröjning ger ett enkelt vårklangsljud! Ut i en förstärkning och tonkontroll igen.

Steg 10: Slumpmässig stereotremolo

Slumpmässig stereotremolo
Slumpmässig stereotremolo
Slumpmässig stereotremolo
Slumpmässig stereotremolo

Vår sista signaleffekt! Här har vi skapat samma kod som tidigare användes för ringmodulatorn, med ett par vändningar: djupet på tremolon är randomiserat och det finns en tremolo för vänster och höger kanal. Dessutom ställer vi in denna enhet i serie, så att alla effekter nu kommer före den, så varje signal påverkas av tremolos.

För att göra detta efterliknar vi ringmodkoden från tidigare, med några ändringar: signalen går nu in i två portar som öppnas när den andra är stängd. Detta gör att signalen antingen kan påverkas eller ej påverkas, snarare än att den påverkas eller bara stängs av. Detta gjordes med!- objektet. Vår urtavla går in i ett rand ~ -objekt, sedan *~ och a +~, och ner till ett annat *~ i det högra inloppet och ljudet i vänster. Här har vi en slumpmässig tremolo som slås på när urtavlan är uppe och nedåt när den är avstängd!

Detta behöver inte en förstärkningskontroll eller tonkontroll, så det går bara direkt till dac ~ -objektet.

Steg 11: Oscilloskoping

Oscilloskopisk!
Oscilloskopisk!
Oscilloskopisk!
Oscilloskopisk!

Slutligen lägger vi till ett scope ~ -objekt som är anslutet till ljudutmatningen från master gain -kontrollen. Vi har också lagt till en urtavla för att justera dess känslighet!

Steg 12: Presentation av signalbehandlingsmodulen

Presentation av signalbehandlingsmodulen
Presentation av signalbehandlingsmodulen

Vi avslutar detta avsnitt med att ge vår kod lite känsla i presentationsläget. Lägg bara till individuella urtavlor och kommentarsfält i presentationsläget, så är du igång! Vi gav vår extra känsla med färgade lådor och olika typsnitt och konstnärliga designbeslut. Dessutom var designen baserad på gitarrpedaldesigner: rattar i märkta rader och sektioner för att göra signalvägen enkel att förstå. Ha kul med den här delen!

Steg 13: Avsnitt 2: Ackordgeneratorn

Vi har nu en fullt fungerande signalprocessor i Max, vi behöver bara lite ljud för att mata in den. Genom att använda Soundflower kan vi dirigera allt ljud som matas ut genom signalprocessorn, så länge källan är din dator!

För att skapa våra egna omgivande slingor måste vi dock göra en annan Max -patch. Tack vare kraften i MIDI fungerar den färdiga patchen effektivt som en ny MIDI -kontroller för din DAW och skickar anteckningar direkt till den så att du kan använda valfritt instrument eller design! I motsats till en extern MIDI -controller kan vi med maxeffekten skapa en MIDI -controller som kan spela helt själv, så att du enkelt kan modulera den med signalprocessorn.

För unik notgenerering kommer vi att använda en arpeggiator för att generera triader, och senare kommer vi att titta på hur man sätter ihop en algoritm som gör att arpeggiatorn kan hoppa mellan ackord.

Steg 14: Få anteckningar att mata in i Arpeggiator

Få anteckningar att mata in i Arpeggiator
Få anteckningar att mata in i Arpeggiator
Få anteckningar att mata in i Arpeggiator
Få anteckningar att mata in i Arpeggiator

Innan vi kan sätta ihop en arpeggiator måste vi kunna generera ackorden för att den ska gå igenom. I MIDI motsvarar varje ton på tangentbordet ett tal, med mitten C är 60. Lyckligtvis är siffrorna sekventiella, så genom att tillämpa lite musikteori kan vi generera rätt intervall som motsvarar olika nyckelsignaturer.

De nyckelsignaturer du använder är upp till dig, men du kan också följa med de fyra nyckelsignaturer vi valt. Senare kommer vi att lägga till den här delen av koden så att den kan bläddra igenom nyckelsignaturerna på egen hand, så vi valde Major, Minor, Major 7ths och Minor 7ths för att bevara tonaliteten när programmet cyklar genom ackord.

Med hänvisning till den första bilden är huvuddelen av detta avsnitt bara matematiken som motsvarar intervallerna för dessa tangenter. Börjar med rutan längst till vänster märkt '60', det är roten. När roten ändras kommer intervallerna att ändras på motsvarande sätt baserat på den aktuella nyckeln. Om till exempel huvudnyckeln väljs är motsvarande intervall 4 och 7. Sedan går du igenom +0 -rutorna, vilket lägger till intervallet i roten och ger dig de 3 noterna för att göra ett durackord, från vilken rot som helst!

Steg 15: Arpeggiating de ackorden

Arpeggiating de ackorden
Arpeggiating de ackorden
Arpeggiating de ackorden
Arpeggiating de ackorden
Arpeggiating de ackorden
Arpeggiating de ackorden

Se bilden ovan för koden för Arpeggiator. Motobjektet och de bifogade 0, 1 och 2 objektboxarna kommer att låta dig styra arpeggiatorns riktning från upp, ner och uppåt.

Som visas ovan dirigeras intervallgeneratorn som vi just satt ihop till 'int' -rutorna, så när räknaren och markeringsrutorna körs kommer den att gå igenom ackordet från den andra delen av kod. Detta går sedan genom rutan "makenote" och "notering" för att slutligen förvandla dessa MIDI -nummer till ljud!

Observera objektet "port" från Max 1 "som är anslutet till rutan" notering ", eftersom det är detta som gör att du kan skicka MIDI -information från Max till din DAW.

Metro -objektet bestämmer hur lång tid det tar mellan varje intervall i millisekunder. Jag har den som standard till 500 ms, och om du följer den bifogade koden kan du med hjälp av skjutreglaget justera hur många millisekunder som är mellan varje intervall

Steg 16: 'Key Jumbler'

'Key Jumbler'
'Key Jumbler'

På bilden ovan är koden som gör att programmet automatiskt kan bläddra igenom nyckelsignaturerna, så att du kan skapa spontana ackord när du väljer olika rotnoter.

"Välj" -objektet fungerar mycket på samma sätt som det i arpeggiatorsektionen, men istället för en specifik sekvens använder vi rutan "urna" för att slumpmässigt bläddra igenom tangenterna. Det som gör rutan "urna" annorlunda än "slumpmässig" är att den inte kommer att upprepa ett tal förrän det har gått igenom hela intervallet, vilket i sin tur ger oss en jämn fördelning av hopp mellan olika de olika tangenterna.

Steg 17: Få magin att hända med autonom notgenerering

Få magin att hända med autonoma notgenerering
Få magin att hända med autonoma notgenerering
Få magin att hända med autonoma notgenerering
Få magin att hända med autonoma notgenerering
Få magin att hända med autonoma notgenerering
Få magin att hända med autonoma notgenerering
Få magin att hända med autonoma notgenerering
Få magin att hända med autonoma notgenerering

Denna bit kod är det som gör att den här korrigeringen kan köras självständigt. Om vi hänvisar till ackordgeneratorn från början av detta avsnitt, kommer roten automatiskt att fylla i följande intervall, så att vi kan använda det för att generera unika ackordprogressioner!

Nyckelposten här är "itable" eller den stora rutan med de små blå rektanglarna inuti. Genom att fästa detta på metroparametern från arpeggiatorn (rutan inställd på 500) kan vi styra den exakta punkten i arpeggiatorsekvensen som ackordet ändrar. Eftersom Arpeggiator körs i uppsättningar av 3, är storleken på itable inställd på 12, för att redovisa 4 cykler, och intervallet är satt till 2, med 2 som 'nej' och 1 som 'ja' för huruvida eller att inte byta ackord. Med sekvensen i huvudkoden skulle arpeggiatorn en till en triad, sedan skulle ett nytt ackord genereras och det skulle springa igenom den triaden, och så vidare.

De "slumpmässiga" rutorna avgör hur långt den nya roten är från originalet, för närvarande har jag den konfigurerad så att den kan gå upp till en halv oktav upp eller ner.

I den fullständiga bilden av koden, sett till vänster, är 67 -talrutan längst ner fäst vid rotnummerlådan från ackordgeneratorn, så vilket nummer som slutligen genereras från itable och dess bifogade algoritm kommer att gå till ackordet generator, och sedan in i arpeggiatorn där den kommer att spela det nyligen valda ackordet. Den 67 -taliga rutan ovanför den som löper in i "+0" -rutan är fäst vid pianobjektet på bilden ovan, som också är anslutet till rotnummerlådan från ackordgeneratorn. Detta är så att när algoritmen från denna bit kod genererar ett nummer, blir det också valt på pianot så det kommer att utlösa den noten att spela.

I den slutliga koden visas det här avsnittet två gånger, med den enda skillnaden som det är det. Se den separat bifogade tabellen för hur du gör det så att ett nytt ackord genereras efter att arpeggiatorn upprepar en sekvens 4 gånger.

Steg 18: Finisher

Finputsning
Finputsning

Du bör nu ha en fullt fungerande självspelande arpeggiator! Men om du vill lägga till lite mer kontroll kan koden på bilden ovan styra varaktigheten av noterna som spelas, så att du kan få långdragna anteckningar perfekta för en långsam, dronande, omgivande loop.

Ett "stop" -objekt bifogas också, vilket är särskilt användbart när du kör Max genom en DAW. I ett fall där Max börjar ha problem med att kommunicera MIDI -data kan du åsidosätta den och stoppa den utan att helt stänga av Max eller din DAW.

Steg 19: Slå in allt

Slå in allt
Slå in allt

Programmet är nu funktionellt klart, allt som återstår att göra är att organisera allt i presentationsläge. Det finns inte en enda lösning på allt detta, det är helt beroende av vad du vill kunna styra från en ytnivå.

Mitt urval täcker det väsentliga i allt jag vill kunna enkelt modulera, så att du kan lägga till det eller ta ifrån det som du tycker passar.

Allt som återstår att göra nu är att bekanta sig med dessa två patchar och börja skapa lite musik!

Njut av!

Rekommenderad: