Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sonic Pi 教學 - 1

Kalan
March 18, 2020

Sonic Pi 教學 - 1

向好和弦與 Sam Aaron(Sonic Pi 作者) 致敬 | 用 Sonic Pi 寫音樂!

youtube: https://youtu.be/aTA5wWhvKAQ

這部影片的靈感是來自好和弦在前幾週的直播,如果沒看過的話可以趕快到資訊卡裡頭看看!好和弦一直是我很喜歡的 YouTube 頻道之一,甚至連我開頭音樂都是用好和弦推薦的 PixiTracker 做出來的。
好和弦頻道:https://www.youtube.com/channel/UCVXstWyJeO6No3jYELxYrjg

◼︎ 為什麼要用程式碼寫音樂?
可能你是本科系的人,透過程式碼這個媒介,讓創作的元素變得更加豐富;如果不是本科系,透過音樂這種大家都喜歡的領域來學習,反饋的速度比較快,也會更想要學習更多!

◼︎ Sonic Pi 是什麼?
Sonic Pi 是由 Sam Aaron 與 Raspberry Pi Foundation 協作開發的軟體,可以透過 live coding 的方式來做音樂,最初用在教學音樂課跟程式理論上,不過隨著功能越來越多,你甚至可以用它來做現場演奏。而且為了讓初學者可以快速上手,這個軟體在語法上以及環境上下了非常大的功夫,所以寫起來也相當直覺,馬上就可以看到成果。

Kalan

March 18, 2020
Tweet

More Decks by Kalan

Other Decks in Programming

Transcript

  1. play :e3, amp: 1 play 播放一個音高為 E3(參照下圖),音量為 1 的聲音 (amplify

    的縮寫) https://sonic-pi.mehackit.org/exercises/en/10-cheatsheet/01-cheatsheet.html 數字越大聲音越大 play "e3", amp: 1
  2. notes = [:c4, :c4, :g4, :g4, :a4, :a4, :g4, :f4,

    :f4, :e4, :e4, :d4, :d4, :c4]
 
 sleeps = [0.25, 0.25, 0.25, 0.25, 0.25,0.25, 0.5, 0.25, 0.25, 0.25, 0.25, 0.25,0.25, 0.5] notes.each_with_index do |n, i| play n, amp: 0.7, release: 0.4 sleep sleeps[i] end 用 play 跟 sleep 彈小星星 小星星的旋律 小星星的節奏 Ruby 迴圈語法 在 0.4 小節內讓聲音完全消失
  3. 重複執行 loop loop do notes.each_with_index do |n, i| use_synth :beep

    play n, amp: 0.7, release: 0.4 sleep sleeps[i] end end
  4. loop do # do something end loop do # do

    something2 end 不能兩個 loop 同時執行 這行永遠不會執行
  5. live_loop :hihat do sample :drum_cymbal_closed sleep 0.25 end 加上 hihat

    跟一點創意... live_loop :hihat2 do sample :drum_cowbell sleep 1 end
  6. 在 sonic pi 可以建立音階 scale 音階 loop do play scale(:c4,

    :major).choose(), release: 0.5 sleep 0.25 end 從 C 大調裡面隨機選一個音符
  7. 和弦 chord loop do play_chord chord(:c4, :maj9) sleep 1 end

    loop do play chord(:c4, :maj9).choose() sleep 0.25 end 一起播放! 一次隨機選一個音 C4 的 major9 和弦
  8. • Sonic Pi 的 tick • 強大的 ring 系統 •

    利用 spread 創造節奏 • sync 與 time 控制 • 隨機(Random) • 建立 FX 下一集,我們來介紹