Friday, January 2, 2015

Processing กับเสียง ตอนที่ 2 Event Sound/ Sound Effects

คราวนี้เราจะมาลองกับเสียงสั้นๆ ที่ดังก็ต่อเมื่อเราทำอะไรสักอย่างกับโปรแกรม เช่น เลื่อนเมาส์ไปตำแหน่งที่กำหนด หรือคลิก ฯลฯ

ถ้าเป็นเสียงสั้นๆ ใน reference ของ Minim บอกว่าควรจะใช้คลาสชื่อ AudioSample แทน AudioPlayer เพราะว่าเสียงสั้นควรจะถูกโหลดไปไว้ใน memory เลย

สมมติว่าเราสร้างโปรแกรมง่ายๆ ให้มีวงกลมตรงกลางจอ จากนั้นถ้าเลื่อนเมาส์ไปวางแถวๆวงกลม ให้เกิดเสียง ถ้าเอาเมาส์ออก เสียงก็จะหายไป



อันดับแรก ไปหาเสียงพวก Event Sound นี้ก่อน ถ้าลองค้นหาด้วยคำว่า free sound effects ก็จะเจอเยอะแยะมากมาย มีเว็บนึงที่สามารถสร้างเสียงเหล่านี้ขึ้นได้เองเลย คือ http://www.bfxr.net/ ลองไปเล่นดูได้ครับ

สมมุติว่าเรามีไฟล์เสียงอันนึง ชื่อ coin.wav แล้วย้ายไปไว้ยัง data folder ของโปรเจคแล้ว

โค้ดก็จะประมาณนี้ครับ
import ddf.minim.*;

Minim minim;
AudioSample coin;

void setup()
{
  size(200, 200);
  minim = new Minim(this);
  //load sound to memory with buffer 512 KB
  coin = minim.loadSample("coin.wav", 512);
}

void draw()
{
  background(0);  
  fill(255,0,0);
  ellipse(100,100,50,50);
  if(mouseX>=80 && mouseX<=120){
      if(mouseY>=80 && mouseY<=120){
        //trigger a sound
        coin.trigger();
      }
  }
}

No comments:

Post a Comment