Indholdsfortegnelse:

Max MSP Ambient Loop Generator: 19 trin
Max MSP Ambient Loop Generator: 19 trin

Video: Max MSP Ambient Loop Generator: 19 trin

Video: Max MSP Ambient Loop Generator: 19 trin
Video: RTT - Rhythm and Time Toolkit 2024, November
Anonim

Dette er en vejledning i, hvordan du kommer i gang med at lave en ambient loop -generator i Max MSP.

Denne vejledning forventer, at du har en grundlæggende forståelse af Max MSP, DAW -grænseflader og signalbehandling. Hvis du vil bruge programmet, der er designet i denne vejledning, skal du downloade og downloade det, gratis at bruge (men ikke til at sælge eller genudgive)!

Det program, vi skal designe, har TO hoveddele:

1) En multi-signal processor

2) En semi-randomiseret note-generator

Notegeneratoren kører langsomt langs en nøgle/skala i semi-tilfældige mønstre, der føder MIDI-data til en DAW, som igen sender lyd tilbage til Max for at blive behandlet.

Her er et link til den sidste patchfil:

Tilbehør:

  • Grundlæggende Max MSP og MIDI viden
  • Maks. MSP
  • Lydgrænseflade (vi bruger Logic Pro X)
  • Lydblomst
  • (Valgfrit) Nogle gode softwareinstrument -plugins til din DAW

Trin 1: Opsætning af Soundflower med Max og din DAW

Opsætning af Soundflower med Max og din DAW
Opsætning af Soundflower med Max og din DAW
Opsætning af Soundflower med Max og din DAW
Opsætning af Soundflower med Max og din DAW

Soundflower er et program, der hjælper med at sende lyd mellem programmer på Mac. Vi bruger dette til at få lyd fra vores DAW til Max.

Det kunne ikke være lettere at bruge Soundflower med din DAW! Du skal blot downloade Soundflower, så bliver den tilgængelig til brug som lydudgang og input. Hvis vi opretter en adc ~ (lydindgang) og dac ~ (lydudgang) objekter, kan vi se, at Soundflower 2ch og Soundflower 64ch bliver brugbare lydveje. Vi bruger Soundflower 2ch (2 kanal) til dette program.

I Max kan du tilføje en skifte til at slå dit input til og fra og en gain -skyder til lydstyrke, og du er på vej.

I din DAW vil du under præferencer> lyd se lydindgang og lydoutput. Vi bruger Soundflower 2ch som lydoutput.

Trin 2: Beslut din signalbehandlingssti

Beslut din signalbehandlingssti
Beslut din signalbehandlingssti

Enkelt sagt vil din lyd blive forvrænget i en flok forskellige kanaler eller alt i en lige linje?

Vi besluttede at bruge parallel lydbehandling - vores signal vil blive forvrænget på flere forskellige kanaler. Dette giver os fordelen ved klarere overordnet lyd og mere kontrol af vores signal, men skubber meget lydstyrke ind i masterforstærkningen, hvilket resulterer i noget klipning. Vi besluttede, at mere kontrol var noget forvrænget lyd værd, da dette alligevel vil skabe omgivende sløjfer!

Derudover skal du beslutte, hvilke effekter du vil oprette. Vi demonstrerer nogle effekttyper her, hvis du vil have ideer.

Trin 3: Tilsætning af en tør blanding

Tilsætning af en tør blanding
Tilsætning af en tør blanding
Tilsætning af en tør blanding
Tilsætning af en tør blanding

Vi tilføjede først et "tørt mix", så vi kunne få et separat, upåvirket lydsignal. Dette blev gjort ved at køre adc ~ output til en gain skyder (med en urskive for at gøre det let at se), i et svf ~ filter med en skive for at justere lowpass filtrering og derefter i master gain og ud til dac ~. At have en tør blanding kan være temmelig praktisk, så vi foreslår det, hvis du vil have tingene lidt klare og lette at teste!

Vi har måske fanget dit øje lidt der - vi kører alle vores effekter i separate svf ~ filtre for at få toneknapper til hver signalkanal. Dette gør det let at rydde op i lydrummet, når en bestemt effekt er for høj. Vi lavede alle vores svf ~ lavpasfiltre (ved at tilslutte lavpasudgangen), så de gradvist afbrød høje frekvenser ved at dreje på drejeknappen. Svf ~ har imidlertid også båndpas (selektiv frekvens), højpas (fjern lavpunkter) og andre nyttige filtre. Eksperimenter for at se, hvad du kan lide og har brug for, eller brug endda flere filtre!

Trin 4: Skift af pitch med en pitchshifter

Skifteplads med en Pitchshifter
Skifteplads med en Pitchshifter
Skifteplads med en Pitchshifter
Skifteplads med en Pitchshifter

For en enkel, let at bruge pitchshifter kan du kopiere pitchshifter -koden fra pitchshifter -hjælpeguiden i Max. Vores kode er meget ens, men fjerner funktioner som glid og flere lydkvalitetsindstillinger for at reducere rodet. Ved at køre din lyd ind i dette (fra adc ~ for parallel lyd eller fra det tørre mix til seriel lyd) kan du bruge en drejeknap til at justere niveauforskydningen.

Som med den tørre blanding tilføjede vi en gain -skyder og et svf ~ -objekt for at give mulighed for volumenkontrol og EQ -formning.

Trin 5: FORVISNING

FORVRÆNGNING!
FORVRÆNGNING!
FORVRÆNGNING!
FORVRÆNGNING!
FORVRÆNGNING!
FORVRÆNGNING!

Brug af objektet overdrive ~ er den enkleste måde at tilføje forvrængning. Du kan køre det ind i en gain -skyder og et filter og kalde det en dag. Vi tog det dog et par skridt videre. For det første løb vi venstre og højre lydsti ind i separate faseskift ~ objekter - disse placerer venstre og højre lydsti ud af fase og "tykner" lyden som en korpedal.

Derudover sendte vi den resulterende lyd til et kaskade -objekt med et filtergraf vedhæftet. Dette giver dig mulighed for at forvrænge lyden mere eller mindre på bestemte frekvenser og med så mange filterbånd som du vil. Vores forvrængningsfiltergraf blev modelleret efter forvrængning af en 1980'er Boss HM-2 Heavy Metal-pedal fra 1980'erne.

På dette tidspunkt begyndte vi også at tilføje omx.peaklim ~ -objekter efter især støjende effekter - dette objekt begrænser lydsignalet, der kommer igennem det, som en kompressor ville, hvilket gør det lettere at forhindre den sidste lydsti i at klippe.

Trin 6: Droneens kraft

Dronens magt
Dronens magt
Dronens magt
Dronens magt

Vi følte det også nødvendigt at tilføje en "droning" frekvens til vores patch. Selvom dette kunne have været opnået med et cyklusobjekt for at oprette en simpel oscillator, ville det ikke have været meget tilpasset lydstyrke eller frekvensændringer i den originale lyd. Derfor brugte vi et svf ~ filter til at oprette en ultra resonant lydsti. Ved at køre lyd ind i et svf ~ filter og indstille resonans til 1, opretter vi en droningsfrekvens, der bevæger sig ind og ud, som vores lydsti gør, og kan derefter justeres for lydstyrke, tone og frekvens. Justering af den vedhæftede skive justerer droningsfrekvensen.

Trin 7: Indtastning af Bizarre: Ring Modulation

Indtastning af det bizarre: ringmodulation
Indtastning af det bizarre: ringmodulation
Indtastning af det bizarre: ringmodulation
Indtastning af det bizarre: ringmodulation

Nu går vi videre ved at tilføje ringmodulation! Denne sjove og seje effekt er ekstremt enkel at lave og meget misforstået, fordi den lyder … lidt funky. Dette opnås ved at vedhæfte en urskive til et *~ objekt i det højre indløb, og i det venstre indløb vedhæfte vores urskive. Vi tog dette et skridt videre - når vores ringmodulator er helt nede, lukker en port sit nummersignal, og ringemodssignalet afbrydes totalt. Derudover kan den også skiftes til at sende til et andet * objekt, hvilket reducerer frekvensen med et bestemt beløb. På denne måde kan vi have en "fin", tremolo-type ringmod og en hurtigere, underlig ringende ringmodulation. Ligesom de andre effekter blev dette kørt ind i en gain -skyder og et svf ~ filter.

Trin 8: Forsinkelse og signalforringelse … Degrad… Deg… D…

Forsinkelse og signalforringelse … Degrad… Deg… D…
Forsinkelse og signalforringelse … Degrad… Deg… D…
Forsinkelse og signalforringelse … Degrad… Deg… D…
Forsinkelse og signalforringelse … Degrad… Deg… D…

Her skaber vi en forsinkelse med tidskontrol, et feedback -opkald, et tonehjul og prøveforringende. Dette giver os mulighed for at efterligne en analog forsinkelse ved gradvist at gøre signalet mere støjsvagt og mere forvrænget. For at gøre dette bruger vi tilsluttede tapin ~ og tapout ~ objekter. Vi skriver 5000 efter tapin ~ for at sikre, at den har 5000 ms hukommelsestid. Tilføjelse af et nedbrydeligt ~ objekt lader os gradvist ødelægge signalet. Derefter kører vi lyd fra adc ~ til vores nedbrydelige ~ objekt, til tapin ~, til tapout ~ og samtidigt tilbage til nedbryder ~ fra et *~ og ud af *~ til vores gevinstkontrol. Hvis du gør dette, kan vi vedhæfte en urskive for at justere forsinkelsesvolumen tilbage i sig selv og få et forsinket signal fra *~ -objektet til vores output. Derudover kan placeringen af nedbrydningsobjektet før tapin ~ tillade os at tilføje mere og mere og mere prøvereduktion, da signalet er forsinket. Tjek vores billede og kode for et klart overblik over, hvordan alt dette blev gjort.

Trin 9: Belton Brick Style Reverb

Belton mursten stil rumklang
Belton mursten stil rumklang
Belton mursten stil rumklang
Belton mursten stil rumklang

En belton murklang rumklang refererer til en rumklang udstyret med en Accu-Bell BTDR Digi-log chip designet af Brian Neunaber fra Neunaber Effects. Denne chip muliggør enkle fjederreverb ved hjælp af kaskadende forsinkelseslinjer. For at efterligne dette har vi kodet endnu en forsinkelse, med en urskive til at justere tid og feedback. Tiden vil aldrig krydse 100 ms, og feedbacken er begrænset til 80%. Denne enkle forsinkelse giver en let forårsklanglyd! Ud i en gain og tone kontrol endnu en gang.

Trin 10: Tilfældig stereotremolo

Tilfældig Stereo Tremolo
Tilfældig Stereo Tremolo
Tilfældig Stereo Tremolo
Tilfældig Stereo Tremolo

Vores sidste signaleffekt! Her har vi oprettet den samme kode, der tidligere blev brugt til ringmodulatoren, med et par vendinger: dybden af tremoloen er randomiseret, og der er en tremolo til venstre og højre kanal. Derudover opsætter vi denne enhed i serie, så alle effekter nu kommer før den, så hvert signal påvirkes af tremoloerne.

For at gøre dette efterligner vi ringmodkoden fra tidligere med nogle ændringer: signalet løber nu ind i to porte, der åbnes, når den anden er lukket. Dette gør det muligt for signalet enten at blive påvirket eller ikke -inficeret, snarere end påvirket eller kun slukket. Dette blev gjort med!- objektet. Vores urskive løber ind i et rand ~ objekt, derefter *~ og et +~, og ned til en anden *~ i højre indløb og lyden i venstre. Her har vi en randomiseret tremolo, der tænder, når urskiven er oppe, og ned, når den er slukket!

Dette behøver ikke en forstærkningskontrol eller tonekontrol, så det går bare direkte til dac ~ objektet.

Trin 11: Oscilloskopi

Oscilloskopisk!
Oscilloskopisk!
Oscilloskopisk!
Oscilloskopisk!

Endelig tilføjer vi et scope ~ objekt, der er forbundet til lydoutput fra master gain kontrollen. Vi tilføjede også en urskive for at justere dens følsomhed!

Trin 12: Præsentation af signalbehandlingsmodulet

Præsentation af signalbehandlingsmodulet
Præsentation af signalbehandlingsmodulet

Vi afslutter dette afsnit med at give vores kode noget flair i præsentationstilstanden. Bare tilføj individuelle opkald og kommentarfelter til præsentationstilstanden, så er du klar til at gå! Vi gav vores noget ekstra flair med farvede æsker og forskellige font- og kunstneriske designbeslutninger. Desuden var designet baseret på guitarpedaldesign: urskiver i mærkede rækker og sektioner for at gøre signalvejen let at forstå. God fornøjelse med denne del!

Trin 13: Afsnit 2: Akkordgeneratoren

Vi har nu en fuldt fungerende signalprocessor i Max, vi har bare brug for noget lyd for at føde til den. Ved at bruge Soundflower kan vi dirigere al den lyd, der udsendes gennem signalprocessoren, så længe kilden er din computer!

For at skabe vores egne omgivende sløjfer skal vi dog lave en anden Max -patch. Takket være MIDI's kraft vil den færdige patch effektivt fungere som en ny MIDI -controller til din DAW og sende noter direkte til den, så du kan bruge ethvert instrument, du vælger eller designer! I modsætning til en ekstern MIDI -controller kan vi med maksimal effekt oprette en MIDI -controller, der kan spille helt af sig selv, så du let kan modulere den med signalprocessoren.

Til unik tonegenerering bruger vi en arpeggiator til at generere triader, og senere vil vi se på, hvordan vi sammensætter en algoritme, der gør det muligt for arpeggiatoren at hoppe mellem akkorder.

Trin 14: Få noter til at fodre i Arpeggiatoren

Få noter til at fodre i Arpeggiator
Få noter til at fodre i Arpeggiator
Få noter til at fodre i Arpeggiator
Få noter til at fodre i Arpeggiator

Før vi kan sætte en arpeggiator sammen, skal vi være i stand til at generere akkorder for at den kan sekvensere igennem. I MIDI svarer hver note på tastaturet til et tal, hvor midten C er 60. Heldigvis er tallene sekventielle, så ved at anvende noget musikteori kan vi generere de korrekte intervaller, der svarer til forskellige nøglesignaturer.

De nøglesignaturer, du bruger, er op til dig, men du kan også følge med de 4 nøglesignaturer, vi valgte. Senere vil vi tilføje denne del af koden, så den kan gennemgå nøglesignaturerne på egen hånd, så vi valgte Major, Minor, Major 7. og Minor 7. for at hjælpe med at bevare tonaliteten, mens programmet cykler gennem akkorder.

Med henvisning til det første billede er hovedparten af dette afsnit kun den matematik, der svarer til intervallerne mellem disse taster. Begyndende med den yderste boks til venstre mærket '60', det er roden. Når roden ændres, ændres intervallerne tilsvarende baseret på den aktuelle nøgle. For eksempel, hvis major -nøglen er valgt, er de tilsvarende intervaller 4 og 7. Der løber derefter gennem +0 -boksene, som tilføjer dette interval til roden og giver dig de 3 noter til at lave en durakkord, fra enhver rod!

Trin 15: Arpeggiating de akkorder

Arpeggiating de akkorder
Arpeggiating de akkorder
Arpeggiating de akkorder
Arpeggiating de akkorder
Arpeggiating de akkorder
Arpeggiating de akkorder

Se billedet ovenfor for at få koden til Arpeggiator. Tælleren og de vedhæftede 0, 1 og 2 objektbokse giver dig mulighed for at styre retningen af arpeggiatoren fra op, ned og op ned.

Som vist ovenfor dirigeres den intervalgenerator, som vi lige har sat sammen, til 'int' -boksene, så når tælleren og udvalgte bokse kører, vil den gå gennem akkorden fra den anden del af koden. Dette løber derefter gennem feltet 'makenote' og 'noteout' for endelig at gøre disse MIDI -numre til lyd!

Læg mærke til objektet "port" fra Max 1 ", der er forbundet til" noteout "-boksen, da det er det, der giver dig mulighed for at sende MIDI -oplysninger fra Max til din DAW.

'Metro' -objektet bestemmer, hvor meget tid der er mellem hvert interval i millisekunder. Jeg har det som standard til 500 ms, og hvis du følger den vedhæftede kode, kan du ved hjælp af skyderobjektet justere, hvor mange millisekunder der er mellem hvert interval

Trin 16: 'Key Jumbler'

'Key Jumbler'
'Key Jumbler'

Billedet ovenfor er det stykke kode, der giver programmet mulighed for automatisk at gennemgå nøglesignaturerne, så du kan oprette spontane akkorder, når du vælger forskellige rodnoter.

'Vælg' -objektet fungerer meget på samme måde som det i arpeggiatorsektionen, men i stedet for en bestemt sekvens bruger vi' urn' -boksen til tilfældigt at gå gennem tasterne. Det, der gør 'urn' -boksen forskellig fra' tilfældig ', er, at den ikke vil gentage et tal, før det er gået gennem hele området, hvilket igen giver os en jævn fordeling af spring mellem forskellige de forskellige taster.

Trin 17: Få magien til at ske med autonom noteudvikling

At få magien til at ske med autonom noteudvikling
At få magien til at ske med autonom noteudvikling
At få magien til at ske med autonom noteudvikling
At få magien til at ske med autonom noteudvikling
At få magien til at ske med autonom noteudvikling
At få magien til at ske med autonom noteudvikling
At få magien til at ske med autonom noteudvikling
At få magien til at ske med autonom noteudvikling

Dette stykke kode er det, der bringer denne patch til at kunne køre autonomt. Hvis vi refererer tilbage til akkordgeneratoren fra begyndelsen af dette afsnit, vil ændring af roden automatisk udfylde de følgende intervaller, så vi kan bruge det til at generere unikke akkordprogressioner!

Nøgleelementet her er 'itable' eller den store firkant med de små blå rektangler indeni. Ved at vedhæfte dette til metroparameteren fra arpeggiatoren (boksen indstillet til 500), kan vi styre det nøjagtige punkt i arpeggiatorsekvensen, som akkorden ændrer. Da Arpeggiator kører i sæt med 3, er størrelsen på itable indstillet til 12, hvilket tegner sig for 4 cyklusser, og intervallet er sat til 2, hvor 2 tjener som 'nej' og 1 tjener som 'ja' for, om eller ikke at ændre akkorden. Med sekvensen i hovedkoden ville arpeggiatoren en til en triade, derefter ville en ny akkord blive genereret, og den ville løbe gennem den triade osv.

De 'tilfældige' felter bestemmer, hvor langt den nye rod er fra originalen, i øjeblikket har jeg den konfigureret, så den kan gå op til en halv oktav op eller ned.

I det fulde billede af koden, set til venstre er 67 -talboksen i bunden knyttet til rodnummerboksen fra akkordgeneratoren, så uanset hvilket nummer der ender med at blive genereret fra itable, og dens vedhæftede algoritme vil gå til akkorden generator, og derefter ind i arpeggiatoren, hvor den vil spille den nyvalgte akkord. 67 -boksen over den, der løber ind i boksen '+0', er fastgjort til klaverobjektet på billedet ovenfor, som også er knyttet til rodnummerboksen fra akkordgeneratoren. Dette er sådan, at når algoritmen fra dette stykke kode genererer et tal, bliver det også valgt på klaveret, så det vil udløse den note til at spille.

I den sidste kode vises dette afsnit to gange, hvor den eneste forskel er den itable. Se den separat vedhæftede itable for, hvordan du laver den, så en ny akkord genereres, efter at arpeggiatoren gentager en sekvens 4 gange.

Trin 18: Efterbehandling

Efterbehandling
Efterbehandling

Du skal nu have en fuldt fungerende selvspillende arpeggiator! Men hvis du vil tilføje lidt mere kontrol, giver koden på billedet ovenfor dig mulighed for at styre varigheden af de toner, der spilles, så du kan få langstrakte noter perfekte til en langsom, droning, omgivende loop.

Der er også vedhæftet et 'stop' -objekt, hvilket er særligt nyttigt, når du kører Max gennem en DAW. I et tilfælde, hvor Max begynder at have problemer med at kommunikere MIDI -data, kan du tilsidesætte dem og stoppe dem uden helt at lukke Max eller din DAW.

Trin 19: Indpakning af det hele

Indpakning af det hele
Indpakning af det hele

Programmet er nu funktionelt gennemført, alt hvad der er tilbage at gøre er at organisere alt i præsentationstilstand. Der er ikke en ende på alle løsning på dette, det er helt afhængigt af, hvad du vil kunne styre fra et overfladeniveau.

Mit valg dækker det væsentlige i alt, hvad jeg let vil kunne modulere, så du kan tilføje det eller tage det fra dig, som du finder passende.

Det eneste, der er tilbage at gøre nu, er at blive fortrolig med disse to patches og begynde at lave noget musik!

God fornøjelse!

Anbefalede: