Begynder Sonic Pi Music Ruby/Sonic Pi

Kom i gang med Sonic Pi

Lær hvordan man koder music live på raspberry pi eller din computer med Sonic Pi


Start

Hvad du vil lave

Sonic Pi er en open-source programmeringsmiljø, designet til at lave nye lyde med kode i et live kodningsmiljø. Det var udviklet af Dr Sam Aaron ved University of Cambridge. Han brugte softwaren til at spille live med hans band. Denne ressource vil hjælpe med at introducere dig til det grundlæggende af Sonic Pi, så du kan programmere din egen music.

Hvad du vil lære

Ved at følge denne Sonic Pi vejledning på din Raspberry Pi, vil du lære:

  • At lave lyde ved at taste tekst ind i Sonic Pi
  • At få en melodi til at gentage sig
  • Hvad MIDI nodetal er, og hvordan man omdanner dem til musiknoder
  • Hvordan man ændrer lydene ved at bruge forskellige synths og samples
  • Hvordan man afspiller to melodier på samme tid ved at bruge tråde
  • At spille med Sonic Pi ved at bruge live kodning
  • Hvordan man tilføjer effekter og bruger parametre til at ændre den måde, toner lyder
  • Hvordan man bruger randomisering i en komposition

Denne ressource bruger elementer fra den følgende sektion af Raspberry Pi Digital Making Curriculum:


Næste

Hvad du har brug for

Hardware

  • Hovedtelefoner eller en højttaler
  • En computer, der kan køre Sonic Pi — der er versioner til Windows, macOS, Raspberry Pi, og Linux

Software


Tilbage Næste

Første lyde med Sonic Pi

Dette er Sonic Pi interfacet; det har tre hovedvinduer. Det største vindue er til at skrive din kode, og vi vil kalde det Programmeringspanelet. Der er også et output panel, der viser information omkring dit program, mens det kører. Når du klikker på help knappen øverst i vinduet, vil det tredje panel dukke op langs bunden og vise hjælpedokumentationen. Dette indeholder information omkring forskelligt kode du kan prøve, så vel som forskellige synth lyde, samples, og meget mere.

  • Kør Sonic Pi fra skrivebordet eller applikationsmenuen.

  • Vælg Buffer 1 og skriv:

play 60
  • Klik på play ikonet øverst på skærmen. Hvad sker der efterfølgende?

  • Hvad sker der, hvis du skriver pley 60 og trykker på play ikonet?

    Dette er et eksempel på en bug i din kode. I de kommende aktiviteter, hvis error-panelet viser tekst, vil du vide, at du har en bug der skal fikses. Det kunne være, at du har stavet play forkert.

  • Skriv nu:

play 60
play 67
play 69
  • Klik på play ikonet øverst på skærmen. Hvad sker der nu?

  • Computeren afspiller hver node i sekvens (en efter den anden), men det sker så hurtigt, at det for os lyder som om, at de afspilles samtidigt.

    Vi bliver nødt til at fortælle computeren, at den skal holde pause imellem hver node. Vi kan gøre dette ved at skrive følgende kode efter hver play:

sleep 1

Værdien indtastet efter ordet sleep forestiller det antal sekunder, computeren skal holde pause. Værdien 1 skal forestille et sekund. Hvad ville du indtaste for halvdelen af et sekund?

  • Skriv nu en sekvens af play og sleep for at lave en melody, der lyder sejt!

Tilbage Næste

MIDI noder og musiknoder

Værdierne du har indtastet efter ordet play skal forestille noder; de er faktisk MIDI nodetal. Dette betyder, at vi kan oversætte sange, der er spillet på et klaver, til Sonic Pi MIDI noder ved at bruge en tabel som denne:

C D E C eller 60 62 64 60 i MIDI noder.

Musiknoder til MIDI noder Værdier

C D E F G A B
60 62 64 65 67 69 71

Dette er en ret lang proces, hvis du kender noderne til den sang, du prøver at spille. Med Sonic Pi kan du også bruge normal nodenotation.

  • I en ny buffer fane, skriv:
play :c4
sleep 0.5
play :d4
sleep 0.5
play :e4
sleep 0.5
play :c4
sleep 0.5
  • Tryk play for at høre din melodi. Er melodien den samme som den, du fik ved at bruge MIDI noder?

Tilbage Næste

Skift lydene

Det er tid til at gøre dine melodier mere interessante! Vi kan gøre dette ved at ændre de brugte synthesizer lyde. Standardsynthen, som Sonic Pi bruger, er kaldt beep.

For at bruge en anden synth, bliver du nødt til at tilføje koden use_synth :navn på synth over den sekvens af kode, som du vil bruge den i.

I dette eksempel er fm navnet af den brugte synth:

use_synth :fm
2.times do
  play 60
  sleep 0.5
  play 67
  sleep 0.5
end

Synths, du kan bruge

Der er mange synths, der lyder seje, som er inkluderet med Sonic Pi. For at finde deres navne, klik på help ikonet øverst på skærmen for at vise hjælpedokumentationen. Vælg derefter Synths fra fanerne til venstre af hjælpevinduet. Klik på en af synth navnene for at få at vide, hvordan man bruger det.


Tilbage Næste

Brug samples

Ikke nok med at du kan lave musik i Sonic Pi ved at bruge enkelte noder, men du kan også lave musik med samples. Samples er forudindspillede lyde eller melodier, som du kan indsætte i din musik. Dette er en meget simpel måde at få din musik til at lyde utroligt godt!

For at bruge en sample, skal du tilføje koden sample :navn af sample i den sekvens af dit musikprogram, hvor du vil have det til at blive afspillet.

I dette eksempel er loop_amen navnet på det brugte sample:

2.times do
  sample :loop_amen
  sleep 1.753
end

Samples, du kan bruge

Der er mange samples inkluderet med Sonic Pi. For at finde deres navne, klik på help og derefter samples til venstre af hjælpevinduet. Klik på en af sample navnene for at få at vide, hvordan man bruger det.


Tilbage Næste

Live kode!

Sonic Pi er blevet udviklet til at være en platform for live kodning af music, så koden kan blive manipuleret, ændret, og tilpasset i realtid; dette betyder, at programmører kan udføre deres kode i stedet for at afspille forudskrevet programmer. Lad os prøve det!

  • I en ny buffer fane, skriv:
define :play_my_synth do
  use_synth :prophet
  play 50, attack: 0.2, release: 1.3
  sleep 0.5
end

loop do
  play_my_synth
end
  • Tryk play for at starte programmet.
  • Mens melodien spiller, kommenter de tre sidste linjer ud ved at tilføje et # symbol i starten af hver linje som vist her:
# loop do
#   play_my_synth
# end
  • Lav derefter nogle ændringer til noget af koden i funktionen og tryk play igen. Nu rocker du for vildt!

Tilbage Næste

At tilføje effekter

Moderne synthesizere kan tilføje effekter til lyde. Sonic Pi er ikke anderledes på det punkt: du kan tilføje studioeffekter som rumklang, ekko, og forvrængning. For at tilføje effekterne bliver du selvfølgelig nødt til at bruge kode!

  • Åben et nyt worksheet og find et sample som du synes godt om, for eksempel sample :guit_e_fifths

  • Indsæt dit sample i en effektblok som i dette eksempel:

with_fx :reverb do
  sample :guit_e_fifths
end
  • Du kan også tilføje effekter ovenpå andre effekter:
with_fx :reverb do
  with_fx :distortion do
    sample :guit_e_fifths
  end  
end
  • Leg lidt med nogle effekter og tilføj dem til din musik. Husk at en fuld liste af effekter kan findes i hjælpedokumentet af Sonic Pi under FX.

Tilbage Næste

At ændre parametre

Det er muligt, at du nogen gange gerne vil få lyde til at spille i længere tid eller ved en anden hastighed. Dette kan let opnås ved at ændre parametrene af den kode, som du bruger.

Som et eksempel kan vi undersøge play 60.

  • Klik på help for at åbne hjælpedokumentationen. Vælg derefter lang på den venstre side, og kør ned til play. Du vil blive vist nogle eksempler på, hvordan det bliver brugt. Indtil videre har du brugt play uden nogen parametre; lad os bruge nogen nu.
  • Skriv i et nyt worksheet:
play 60, attack: 1, release: 3
  • Tryk på play knappen for at høre, hvordan den ene node lyder. Attack og release styrer amplituden af en node over tid.

  • Prøv nu at ændre værdierne for attack og release for at se, hvordan disse parametre påvirker noden.

Der er mange andre parametre, som også kan ændre, hvordan et sample eller en synth lyder. Prøv at ændre værdierne for cutoff:, pan:, rate:, eller amp:.

For at få en fuld liste af parametre, klik på Help ikonet, og derefter på Samples. Vælg et sample og rul ned for at få en fuld forklaring for hver parameter, der kan bruges med det valgte sample. Det samme gælder også for synths!


Tilbage Næste

At bruge rrand

Sonic Pi inkluderer et antal funktioner, der kan tilføje mere interessante elementer til din musik. En virkelig sjov funktion er rrand, som vil sende en tilfældig værdi mellem to bestemte tal tilbage. Hvis du vil have en sej effekt, kan du bruge rrand til at få cutoff til at hoppe rundt.

  • Skriv i et tomt worksheet:
loop do
  play chord(:a3, :minor).choose, attack: 0, release: 0.3, cutoff: 80
  sleep 0.2
end
  • I stedet for at bruge et tal som 80 til at bestemme cutoff værdien, prøv at bruge rrand(40, 120) som set her:
loop do
  play chord(:a3, :minor).choose, attack: 0, release: 0.3, cutoff: rrand(40, 120)
  sleep 0.2
end
  • Du kan derefter eksperimentere med at bruge rrand med andre parametre. For eksempel, tilføj pan: rrand(-1, 1) til play chord linjen og derefter tryk play.

Tilbage Næste

Hvad er det næste?

  • Kan du lave dit eget sample og indsætte det i Sonic Pi?
  • Kan du lave en original komposition og dele den med dine venner?

Tilbage

Licence

Unless otherwise specified, everything in this repository is covered by the following licence:

Creative Commons Attribution 4.0 International Licence

Getting Started with Sonic Pi 2 by Sam Aaron and the Raspberry Pi Foundation is licensed under a Creative Commons Attribution 4.0 International Licence.

Based on a work at https://github.com/raspberrypilearning/sonic-pi-2-taster

login