Innholdsfortegnelse:

Max MSP Ambient Loop Generator: 19 trinn
Max MSP Ambient Loop Generator: 19 trinn

Video: Max MSP Ambient Loop Generator: 19 trinn

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

Dette er en opplæring om hvordan du kommer i gang med å lage en ambient loop generator i Max MSP.

Denne opplæringen forventer at du har en grunnleggende forståelse av Max MSP, DAW -grensesnitt og signalbehandling. Hvis du vil bruke programmet som er designet i denne opplæringen, kan du laste det ned gratis (men ikke for å selge eller publisere på nytt)!

Programmet vi skal designe har TO hoveddeler:

1) En flersignalprosessor

2) En semi-randomisert notatgenerator

Notatgeneratoren går sakte langs en nøkkel/skala i semi-tilfeldige mønstre, og mater MIDI-data til en DAW, som igjen sender lyd tilbake til Max for å bli behandlet.

Her er en lenke til den endelige oppdateringsfilen:

Rekvisita:

  • Grunnleggende Max MSP og MIDI kunnskap
  • Maks MSP
  • Lydgrensesnitt (vi bruker Logic Pro X)
  • Soundflower
  • (Valgfritt) Noen gode programvareinstrument -plugins for DAW

Trinn 1: Konfigurere Soundflower med Max og DAW

Sette opp Soundflower med Max og DAW
Sette opp Soundflower med Max og DAW
Sette opp Soundflower med Max og DAW
Sette opp Soundflower med Max og DAW

Soundflower er et program som hjelper til med å sende lyd mellom programmer på Mac. Vi bruker dette for å få lyd fra DAW til Max.

Å bruke Soundflower med DAW kan ikke være enklere! Bare last ned Soundflower, så blir den tilgjengelig som lydutgang og inngang. Hvis vi oppretter en adc ~ (lydinngang) og dac ~ (lydutgang) objekter, kan vi se at Soundflower 2ch og Soundflower 64ch blir brukbare lydveier. Vi bruker Soundflower 2ch (2 kanaler) for dette programmet.

I Max, legg til en veksle for å slå inngangen din på og av, og en gevinstglidebryter for volum, så er du på vei.

I din DAW, under preferanser> lyd, vil du se lydinngang og lydutgang. Vi bruker Soundflower 2ch som lydutgang.

Trinn 2: Bestem signalbehandlingsbanen

Bestem din signalbehandlingsbane
Bestem din signalbehandlingsbane

Enkelt sagt, vil lyden din bli forvrengt i en rekke forskjellige kanaler, eller alt i en rett linje?

Vi bestemte oss for å bruke parallell lydbehandling - signalet vårt vil bli forvrengt på flere forskjellige kanaler. Dette gir oss fordelen med klarere generell lyd og mer kontroll for signalet vårt, men skyver mye volum inn i masterforsterkningen, noe som resulterer i noe klipp. Vi bestemte oss for at mer kontroll var verdt litt forvrengt lyd, siden dette uansett vil skape omgivende sløyfer!

I tillegg må du bestemme hvilke effekter du vil lage. Vi vil demonstrere noen effekttyper her hvis du vil ha ideer.

Trinn 3: Tilsett en tørr blanding

Tilsett en tørr blanding
Tilsett en tørr blanding
Tilsett en tørr blanding
Tilsett en tørr blanding

Vi la først til en "tørr blanding" slik at vi kunne ha et eget, upåvirket lydsignal. Dette ble gjort ved å kjøre adc ~ -utgangen til en gain -glidebryter (med en skive for å gjøre det enkelt å se), i et svf ~ -filter med en skive for å justere lowpass -filtrering, og deretter til master gain og ut til dac ~. Å ha en tørr blanding kan være ganske praktisk, så vi foreslår det hvis du vil at ting skal være litt klare og enkle å teste!

Vi har kanskje fått øye på deg der - vi vil kjøre alle effektene våre i separate svf ~ -filtre for å ha tonetaster for hver signalkanal. Dette gjør det enkelt å rydde opp i lydrommet når en bestemt effekt er for høy. Vi lagde alle våre svf ~ lavpass -filtre (ved å koble til lavpass -utgangen), slik at de gradvis kuttet av høye frekvenser ved å skru ned skiven. Svf ~ har imidlertid også båndpass (selektiv frekvens), høypass (fjern nedturer) og andre nyttige filtre. Eksperimenter for å se hva du liker og trenger, eller til og med bruke flere filtre!

Trinn 4: Skifte pitch med en pitchshifter

Skiftepitch med en Pitchshifter
Skiftepitch med en Pitchshifter
Skiftepitch med en Pitchshifter
Skiftepitch med en Pitchshifter

For en enkel, lett å bruke pitchshifter, kopier pitchshifter -koden fra pitchshifter -hjelpeguiden i Max. Koden vår er veldig lik, men fjerner funksjoner som glid og flere lydkvalitetsinnstillinger for å redusere rotet. Ved å kjøre lyden inn i denne (fra adc ~ for parallell lyd, eller fra den tørre blandingen for serielyd) kan du bruke en skive til å justere nivåforskyvningen.

Som med den tørre blandingen la vi til en gain -glidebryter og et svf ~ -objekt for å tillate volumkontroll og EQ -utforming.

Trinn 5: FORVISTNING

FORVRENGNING!
FORVRENGNING!
FORVRENGNING!
FORVRENGNING!
FORVRENGNING!
FORVRENGNING!

Å bruke overdrive ~ -objektet er den enkleste måten å legge til forvrengning. Du kan kjøre det inn i en gevinstglidebryter og et filter og kalle det en dag. Imidlertid tok vi det et par skritt videre. For det første kjørte vi venstre og høyre lydbane inn i separate faseforskyvnings ~ objekter - disse plasserer venstre og høyre lydbane ut av fase, og "tykner" lyden som en korpedal.

I tillegg sendte vi den resulterende lyden til et kaskade ~ objekt med et filtergrafikk vedlagt. Dette lar deg forvride lyden mer eller mindre i visse frekvenser, og med så mange filterbånd du vil. Vår forvrengningsfiltergraf ble modellert etter forvrengningen av en 1980-talls Boss HM-2 Heavy Metal-pedal.

På dette tidspunktet begynte vi også å legge til omx.peaklim ~ -objekter etter spesielt bråkete effekter - dette objektet begrenser lydsignalet som kommer gjennom det som en kompressor ville, noe som gjør det lettere å hindre at den siste lydbanen klipper ut.

Trinn 6: Droneens kraft

Droneens kraft
Droneens kraft
Droneens kraft
Droneens kraft

Vi følte det også nødvendig å legge til en "droning" -frekvens i vår oppdatering. Selv om dette kunne ha blitt oppnådd med et syklusobjekt for å lage en enkel oscillator, ville det ikke ha vært veldig tilpasset volum- eller frekvensendringer i den originale lyden. Derfor brukte vi et svf ~ filter for å lage en ultraresonant lydbane. Ved å kjøre lyd inn i et svf ~ filter og sette resonans til 1, oppretter vi en droningsfrekvens som beveger seg inn og ut som lydbanen vår gjør, og kan deretter justeres for lydstyrke, tone og frekvens. Justering av den vedlagte skiven vil justere droningsfrekvensen.

Trinn 7: Gå inn i Bizarre: Ring Modulation

Gå inn i Bizarre: Ring Modulation
Gå inn i Bizarre: Ring Modulation
Gå inn i det bisarre: ringmodulering
Gå inn i det bisarre: ringmodulering

Nå går vi videre ved å legge til ringmodulasjon! Denne morsomme og kule effekten er ekstremt enkel å lage, og veldig misforstått fordi den høres ut … litt funky. Dette oppnås ved å feste en skive til et *~ objekt i høyre innløp, og i venstre innløp ved å feste skiven vår. Vi tok dette et skritt videre - når ringmodulatoren vår er helt nede, stenger en port nummerets signal, og så blir ringmod -signalet fullstendig avbrutt. I tillegg kan den også veksles til utgang til et annet * objekt som reduserer frekvensen med et spesifisert beløp. På denne måten kan vi ha en "fin" ringmodul av tremolo-type og en raskere, merkelig ringemodulering. I likhet med de andre effektene ble dette kjørt inn i en gain -glidebryter og et svf ~ filter.

Trinn 8: Forsinkelse og signalnedbrytning … Degrad… Deg… D…

Forsinkelse og signalnedbrytning … Degrad… Deg… D…
Forsinkelse og signalnedbrytning … Degrad… Deg… D…
Forsinkelse og signalnedbrytning … Degrad… Deg… D…
Forsinkelse og signalnedbrytning … Degrad… Deg… D…

Her oppretter vi en forsinkelse med tidskontroll, en tilbakemeldingsskive, en toneoppringning og prøvenedbrytning. Dette lar oss etterligne en analog forsinkelse ved gradvis å gjøre signalet roligere og mer forvrengt. For å gjøre dette bruker vi tilkoblede tapin ~ og tapout ~ objekter. Vi skriver 5000 etter tapin ~ for å sikre at den har 5000 ms minnetid. Ved å legge til et degraderingsobjekt kan vi gradvis ødelegge signalet. Deretter kjører vi lyd fra adc ~ til vårt nedbrytings ~ objekt, til tapin ~, til tapout ~, og samtidig tilbake til nedbrytning ~ fra et *~ og ut av *~ til vår gevinstkontroll. Ved å gjøre dette kan vi feste en skive for å justere forsinkelsesvolumet som går tilbake til seg selv og få et forsinket signal fra *~ -objektet til våre utganger. Ved å plassere nedbrytningsobjektet før tapin ~ kan vi i tillegg legge til mer og mer og mer prøvereduksjon ettersom signalet blir forsinket. Sjekk bildet vårt og koden for en klar oversikt over hvordan alt dette ble gjort.

Trinn 9: Belton Brick Style Reverb

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

En belton-murklokke-reverb refererer til en reverb som er utstyrt med en Accu-Bell BTDR Digi-log-brikke designet av Brian Neunaber fra Neunaber Effects. Denne brikken gir mulighet for enkle vårreverb ved bruk av kaskaderende forsinkelseslinjer. For å etterligne dette har vi kodet enda en forsinkelse, med en skive for å justere tid og tilbakemelding. Tiden vil aldri krysse 100 ms, og tilbakemeldingen er begrenset til 80%. Denne enkle forsinkelsen gir en enkel vårklang! Ut i en gevinst og tonekontroll nok en gang.

Trinn 10: Tilfeldig stereotremolo

Tilfeldig Stereo Tremolo
Tilfeldig Stereo Tremolo
Tilfeldig Stereo Tremolo
Tilfeldig Stereo Tremolo

Vår siste signaleffekt! Her har vi opprettet den samme koden som tidligere ble brukt for ringmodulatoren, med et par vendinger: dybden på tremoloen er randomisert, og det er en tremolo for venstre og høyre kanal. I tillegg setter vi opp denne enheten i serie, slik at alle effekter nå kommer før den, så hvert signal påvirkes av tremolos.

For å gjøre dette etterligner vi ringmodkoden fra tidligere, med noen endringer: signalet løper nå inn i to porter som åpnes når den andre er lukket. Dette gjør at signalet enten kan påvirkes eller ikke påvirkes, i stedet for bare påvirket eller av. Dette ble gjort med!- objektet. Skiven vår går inn i et rand ~ objekt, deretter *~ og a +~, og ned til en annen *~ i høyre innløp og lyden i venstre. Her har vi en randomisert tremolo som slås på når skiven er oppe, og ned når den er slått av!

Dette trenger ikke en forsterkningskontroll eller tonekontroll, så det går bare rett til dac ~ objektet.

Trinn 11: Oscilloskopi

Oscilloskopisk!
Oscilloskopisk!
Oscilloskopisk!
Oscilloskopisk!

Til slutt legger vi til et omfang ~ objekt koblet til lydutgangen fra master gain kontrollen. Vi har også lagt til en skive for å justere følsomheten!

Trinn 12: Presentasjon av signalbehandlingsmodulen

Presentasjon av signalbehandlingsmodulen
Presentasjon av signalbehandlingsmodulen

Vi avslutter denne delen med å gi koden vår litt teft i presentasjonsmodusen. Bare legg til individuelle ringer og kommentarfelt i presentasjonsmodus, så er du i gang! Vi ga vår litt ekstra teft med fargede esker og forskjellige font- og kunstneriske designbeslutninger. I tillegg var designet basert på design av gitarpedaler: ringer i merkede rader og seksjoner for å gjøre signalveien enkel å forstå. Ha det gøy med denne delen!

Trinn 13: Del 2: Akkordgeneratoren

Vi har nå en fullt fungerende signalprosessor i Max, vi trenger bare litt lyd for å mate den inn. Ved å bruke Soundflower kan vi dirigere all lyden som sendes ut gjennom signalprosessoren, så lenge kilden er datamaskinen din!

For å lage våre egne omgivelsesløkker må vi imidlertid lage en annen Max -oppdatering. Takket være kraften til MIDI vil den ferdige oppdateringen effektivt fungere som en ny MIDI -kontroller for DAW -en din, og sende notater direkte til den slik at du kan bruke hvilket som helst instrument du ønsker eller design! I motsetning til en ekstern MIDI -kontroller, med maksimal effekt kan vi lage en MIDI -kontroller som kan spille helt av seg selv, slik at du enkelt kan modulere den med signalprosessoren.

For unik notegenerering bruker vi en arpeggiator for å generere triader, og senere vil vi se på hvordan vi kan sette sammen en algoritme som lar arpeggiatoren hoppe mellom akkorder.

Trinn 14: Få notater til å mate inn i Arpeggiator

Få notater for å mate inn i Arpeggiator
Få notater for å mate inn i Arpeggiator
Få notater for å mate inn i Arpeggiator
Få notater for å mate inn i Arpeggiator

Før vi kan sette en arpeggiator sammen, må vi kunne generere akkordene for at den skal sekvensere gjennom. I MIDI tilsvarer hver tone på tastaturet et tall, med midten C som 60. Heldigvis er tallene sekvensielle, så ved å bruke litt musikkteori kan vi generere de riktige intervallene som tilsvarer forskjellige nøkkelsignaturer.

Nøkkelsignaturene du bruker er opp til deg, men du kan også følge med på de 4 nøkkelsignaturene vi valgte. Senere vil vi legge til denne delen av koden slik at den kan bla gjennom nøkkelsignaturene på egen hånd, så vi valgte Major, Minor, Major 7ths og Minor 7. for å bidra til å bevare tonaliteten mens programmet går gjennom akkorder.

Når det gjelder det første bildet, er hoveddelen av denne delen bare matematikken som tilsvarer intervallene til disse tastene. Fra og med boksen til venstre merket '60', det er roten. Når roten endres, vil intervallene endres tilsvarende basert på gjeldende nøkkel. For eksempel, hvis dur -nøkkelen er valgt, er de tilsvarende intervallene 4 og 7. Deretter går du gjennom +0 -boksene, som vil legge det intervallet til roten, og gi deg de 3 notene for å lage et durakkord, fra hvilken som helst rot!

Trinn 15: Arpeggiating de akkordene

Arpeggiating de akkordene
Arpeggiating de akkordene
Arpeggiating de akkordene
Arpeggiating de akkordene
Arpeggiating de akkordene
Arpeggiating de akkordene

Se bildet ovenfor for koden til Arpeggiator. Tellerobjektet og de vedlagte 0, 1 og 2 objektboksene lar deg kontrollere retningen til arpeggiatoren fra opp, ned og opp ned.

Som vist ovenfor, blir intervallgeneratoren som vi nettopp satte sammen, dirigert til "int" -boksene, så når telleren og utvalgsboksene kjøres, går den gjennom akkordet fra den andre delen av koden. Dette går deretter gjennom "makenote" og "noteout" -boksen for endelig å gjøre disse MIDI -tallene til lyd!

Legg merke til objektet "port" fra Max 1 "som er koblet til boksen" noteout ", da dette er det som lar deg sende MIDI -informasjonen fra Max til DAW.

Metro -objektet bestemmer hvor lang tid det er mellom hvert intervall i millisekunder. Jeg har den som standard til 500 ms, og hvis du følger den vedlagte koden, kan du justere hvor mange millisekunder som er mellom hvert intervall ved hjelp av skyveobjektet

Trinn 16: 'Key Jumbler'

'Key Jumbler'
'Key Jumbler'

På bildet ovenfor er koden som lar programmet automatisk bla gjennom nøkkelsignaturene, slik at du kan lage spontane akkorder mens du velger forskjellige rotnoter.

"Velg" -objektet fungerer veldig likt som det i arpeggiatorseksjonen, men i stedet for en bestemt sekvens bruker vi urn -boksen for å tilfeldig bla gjennom tastene. Det som gjør "urne" -boksen annerledes enn "tilfeldig" er at den ikke vil gjenta et tall før det har gått gjennom hele området, noe som igjen gir oss en jevn fordeling av hopp mellom de forskjellige tastene.

Trinn 17: Få magien til å skje med autonom notatgenerering

Få magien til å skje med autonom notatgenerering
Få magien til å skje med autonom notatgenerering
Få magien til å skje med autonom notatgenerering
Få magien til å skje med autonom notatgenerering
Få magien til å skje med autonom notatgenerering
Få magien til å skje med autonom notatgenerering
Få magien til å skje med autonom notatgenerering
Få magien til å skje med autonom notatgenerering

Denne delen av koden er det som bringer denne oppdateringen til å kunne kjøre autonomt. Hvis vi refererer tilbake til akkordgeneratoren fra begynnelsen av denne delen, vil endring av roten automatisk fylle ut følgende intervaller, slik at vi kan bruke det til å generere unike akkordprogresjoner!

Hovedelementet her er 'itable', eller det store torget med de små blå rektanglene inni. Ved å feste dette til metroparameteren fra arpeggiatoren (boksen satt til 500), kan vi kontrollere det nøyaktige punktet i arpeggiatorsekvensen som akkordet endrer. Siden Arpeggiator kjøres i sett med 3, er størrelsen på itable satt til 12, for å utgjøre 4 sykluser, og området er satt til 2, hvor 2 fungerer som 'nei' og 1 som 'ja' for om eller ikke å endre akkord. Med sekvensen i hovedkoden, ville arpeggiatoren gå gjennom en triade, deretter ville en ny akkord bli generert og den ville løpe gjennom den triaden, og så videre.

De "tilfeldige" boksene bestemmer hvor langt den nye roten er fra originalen, for øyeblikket har jeg den konfigurert slik at den kan gå opp til en halv oktav opp eller ned.

I hele bildet av koden sett til venstre er 67 -boksen på bunnen festet til rotnummerboksen fra akkordgeneratoren, så uansett hvilket nummer ender med å bli generert fra itable og den vedlagte algoritmen vil gå til akkordet generator, og deretter inn i arpeggiatoren der den vil spille det nylig valgte akkordet. 67 -boksen over den som løper inn i +0 -boksen er festet til pianoobjektet som er vist ovenfor, som også er festet til rotnummerboksen fra akkordgeneratoren. Dette er slik at når algoritmen fra denne delen av koden genererer et tall, blir den også valgt på pianoet, så den vil utløse den noten for å spille.

I den endelige koden vises denne delen to ganger, med den eneste forskjellen den som kan brukes. Se den separat vedlagte tabellen for hvordan du lager det slik at et nytt akkord genereres etter at arpeggiatoren gjentar en sekvens 4 ganger.

Trinn 18: Etterbehandling

Finpuss
Finpuss

Du bør nå ha en fullt fungerende selvspillende arpeggiator! Imidlertid, hvis du vil legge til litt mer kontroll, lar koden på bildet ovenfor deg kontrollere varigheten av tonene som spilles, slik at du kan få lange, uttrukne notater som er perfekte for en langsom, droning, omgivende sløyfe.

Det er også festet et "stop" -objekt, noe som er spesielt nyttig når du kjører Max gjennom en DAW. I et tilfelle hvor Max begynner å ha problemer med å kommunisere MIDI -dataene, kan du overstyre dem og stoppe dem uten å stenge Max eller DAW helt.

Trinn 19: Pakk alt inn

Pakker det hele inn
Pakker det hele inn

Programmet er nå funksjonelt komplett, alt som gjenstår å gjøre er å organisere alt i presentasjonsmodus. Det er ikke en ende på alle løsningene på dette, det er helt avhengig av hva du vil kunne kontrollere fra et overflatenivå.

Mitt utvalg dekker det viktigste av alt jeg ønsker å kunne enkelt modulere, slik at du kan legge til det eller ta fra det som du finner passende.

Alt som gjenstår å gjøre nå er å bli kjent med disse to oppdateringene og begynne å lage musikk!

Nyt!

Anbefalt: