Lag en sang
Strålende! Nå har du en sang med en fin rytme og bass og med melodien over. Nå skal vi gjøre noe skikkelig tøft og demonstrere Sonic Pis virkelige potensial. La oss legge til noe generert musikk til sangen og programmere datamaskinen til å komponere musikk for oss!
Å transponere betyr å endre tonearten. Vi kan legge til litt tilfeldig transponering til en melodi innimellom for å krydre sangen litt. Du kan kaste en terning for å bestemme når vi skal endre melodiens tonehøyde. Her er ett eksempel:
La oss gjøre noe spennende med bassløkken. .choose
er en nyttig metode som velger et tilfeldig element fra en liste. Det ser sånn ut:
[:c, :e, :g]
er en liste av noter (i dette eksempelet er det notene i C-dur akkorden). .choose
velger ut en av disse notene tilfeldig. Istedenfor noter kn du ha hva du vil i listen, for eksempel verdier for sleep:
Du trenger ikke engang å huske hvilke noter som er i hvilke akkorder. Sonic Pi kan fikse det for deg. Istedenfor å skrive [:c, :e, :g]
kan du bare skrive (chord :C, :major)
. Det lager en list av noter for deg automatisk. For eksempel:
La oss bruke trolldommen vi nettopp lærte for å lage et boblende basspor. Lagre arbeidet ditt og kopier :bass
løkken til et annet mellomlager (buffer) i tilfelle du vil bruke det siden. Slett det som er inni løkken så vi får plass til noe nyt. La oss bruke den klassiske :tb303
synthen og spille tilfeldige noter fra C-dur akkorden:
Ough! Ikke akkurat sånn… Legg til , release: 0.125
parameteren etter play kommandoen, som dette:
Det høres bedre ut, men vi må pusse litt mer på det. Så langt har vi brukt attack:
og release:
parametere for play kommandoen. Avhengig av synthen du bruker så er det mange andre parametere man kan bruke. For eksempel har tb303 synthen 45 forskjellige muligheter å skru på. La oss bruke en parameter for en play kommando som heter cutoff
på bassen. Cutoff fjerner alle frekvenser over cutoff frekvenser, altså den lyse/høye biten av tonen. Du kan bruke verdier mellom 0-130.
Men hvorfor bruke en fast cutoff verdi når vi kan ha en tilfeldig verdi? Med rrand(min, max)
kan du velge tilfeldige tall i et bestemt intervall. Prøv det:
Strrrrrålende! Husk å utforske og prøve forskjellige ting. Som en oppsummering, her er et eksempel på hva du kan lage basert på det vi har lært så langt: