Sample

Miint Anocha U
Nov 3 · 2 min read

คือ เสียงเครื่องดนตรีหรือเสียงอื่นๆ ที่ถูกบันทึกมาเป็นส่วนประกอบในการทำงานเพลงหรืองานเสียงต่างๆ เช่นเสียงกลอง, เสียงลม, เสียงฝน ใช้ทำจังหวะต่างๆ

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 ค่าเริ่มต้น เป็น 0
attack_level: คือขนาด amplitude ของสัญญาณในช่วง ​attack โดยจะเพิ่มขึ้นแบบ linear จาก 0 จนถึง attack level

Decay คือช่วงเวลาที่2 ต่อจาก attack เมื่อใช้กับ sample จะมี parameters 2 ตัว
decay: ช่วงเวลาของ decay ค่าเริ่มต้น เป็น 0
decay_level: คือขนาด amplitude ของสัญญาณในช่วง ​decay โดยจะเพิ่มขึ้นหรือลดลงเป็น linear จาก level ของ attack จนถึง decay level

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

Sound ของ ADSR code ข้างบน

ยังมีอีกหลาย parameters ให้เล่น เดี๋ยวจะมีมาอีกครับ ขอให้สนุกกับการเขียน code และ sound

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade