Sample
คือ เสียงเครื่องดนตรีหรือเสียงอื่นๆ ที่ถูกบันทึกมาเป็นส่วนประกอบในการทำงานเพลงหรืองานเสียงต่างๆ เช่นเสียงกลอง, เสียงลม, เสียงฝน ใช้ทำจังหวะต่างๆ
Sonic PI มี Samples ให้ใช้โดยแบ่งเป็นประเภท
Ambient, Bass Drums, Bass, Drums, Electric Sounds, Glitchy, Mehackit , Misc, Percussive, ETC.
ลองไปฟังกันดูว่ามีเสียงอะไรบ้าง Code ค้นหา sample ใน Sonic Pi
Play with Samples
use_bpm 135sample :drum_heavy_kick, rate: 1, amp: 1.5sleep 1
ใช้ sample :drum_heavy_kick เสียงกระเดื่องrate: คือ speed ในการ play back sample ค่าเริ่มต้นเป็น 1 ถ้าค่าเพิ่มขึ้น speed ก็จะเพิ่มขึ้น ทำให้ความถี่(frequency)ของ sample นั้นสูงขึ้น (เสียงแหลม) ถ้าเป็นค่าติดลบจะเป็นการ play back กลับหลังของ sample นั้น ( reverse)amp: amplitude คือขนาดของสัญญาณเสียง เราสามารถสัมผัสได้ในรูปแบบของความดังเบา ค่ายิ่งเยอะเสียงยิ่งดัง
ADSL envelop
คือการ modify สัญญาณต่อหน่วยเวลา โดยแบ่งเป็น 4 ช่วง Attack, Decay, Sustain, Release
Attack คือช่วงเวลาเริ่มต้นของสัญญาณ เมื่อใช้กับ sample จะมี parameters 2 ตัวattack: ช่วงเวลาของ attack ค่าเริ่มต้น เป็น 0attack_level: คือขนาด amplitude ของสัญญาณในช่วง attack โดยจะเพิ่มขึ้นแบบ linear จาก 0 จนถึง attack level
Decay คือช่วงเวลาที่2 ต่อจาก attack เมื่อใช้กับ sample จะมี parameters 2 ตัวdecay: ช่วงเวลาของ decay ค่าเริ่มต้น เป็น 0decay_level: คือขนาด amplitude ของสัญญาณในช่วง decay โดยจะเพิ่มขึ้นหรือลดลงเป็น linear จาก level ของ attack จนถึง decay level
Get Miint Anocha U’s stories in your inbox
Join Medium for free to get updates from this writer.
Sustain คือช่วงเวลาที่3 ต่อจาก decay เมื่อใช้กับ sample จะมี parameters 2 ตัวsustain: ช่วงเวลาของ sustain ค่าเริ่มต้น เป็น -1 คือกำหนดช่วงเวลาให้อัตโนมัติ (auto-stretch)sustain_level: คือขนาด amplitude ของสัญญาณในช่วง sustain โดยจะเพิ่มขึ้นหรือลดลงเป็น linear จาก level ของ decay จนถึง sustain level
Release คือช่วงเวลาที่4 ต่อจาก sustain เมื่อใช้กับ sample จะมี parameter 1 ตัวrelease: ช่วงเวลาของ release ค่าเริ่มต้น เป็น 0 ส่วน level จะลดลงเป็น linear จาก level ของ sustain จนเป็น 0
::: Basic Code :::
adsr = (sample_duration :ambi_glass_rub) / 4live_loop :ADSR douse_bpm 120sample :ambi_glass_rub, attack: adsr, attack_level: 3, decay: adsr, decay_level: 2, sustain: adsr, sustain_level: 1, release: adsrprint adsrsleep 8end
**sample_duration คือ ช่วงเวลาของ sample นั้น หาร (/) 4 เพื่อแบ่งช่วงเวลาเป็น 4 ส่วน
ตัวอย่าง Code ADSR
ยังมีอีกหลาย parameters ให้เล่น เดี๋ยวจะมีมาอีกครับ ขอให้สนุกกับการเขียน code และ sound






