Soundfont คือ ?

ความหมายที่มาที่ไป ของ Soundfont ถ้าถามตรงๆ ก็จะตอบตรงๆ ว่า

คือส่วนที่ทำให้โปรแกรมคาราโอเกะของเราเสียงดี เสียงเสมือนจริง

และน่าฟัง แล้วมันมาจากไหน ใครคนทำ ทำเพื่ออะไร เล่นยังไง ฯลฯ

นี่แหละคือคำถามที่ทุกคนมีในใจ ผมจะรวบรวมคำตอบมาให้ เชิญ

___________________

SoundFont ?

SoundFont เป็นเครื่องหมายการค้าของครีเอทีฟ นำมาผสมผสานกับการ์ดเสียง ซึ่งมีการพัฒนาต่อจากเทคโนโลยีคุณภาพเสียง MIDI
ฉะนั้น SoundFont จึงเปรียบเสมือนรูปแบบของคุณภาพเสียง MIDI และให้เสียงของชิ้นดนตรีที่ไม่มีขอบเขตจำกัด ช่วยให้เสียงดนตรีมีความยืดหยุ่นมากขึ้น SoundFont Banks
เป็นห้องสมุดของซอฟต์แวร์ที่เก็บเสียงตัวอย่างของชิ้นดนตรีต่าง ๆเอาไว้หลากหลายเสียง ซึ่งเครื่องดนตรีชิ้นหนึ่งจะมีแบบของเสียงเก็บไว้หลายเสียง เช่น เสียงของเปียโน
จะมีแบบของเสียงที่ได้ยินหลาย ๆ แบบด้วยกัน เสมือนกับเสียงที่เราได้จากชิ้นดนตรีแต่ละชิ้นจริง ๆ SoundFont ช่วยให้เสียงของเครื่องดนตรีแต่ละชิ้นนั้นมีความยืดหยุ่น
และสามารถปรับแต่งได้ตามต้องการ SoundFont จะคอมแพตกับผลิตภัณฑ์ที่มี หรือการ์ดเสียงที่สนับสนุน E-MU / ENSONIQ ได้แก่

– E-MU Audio Production Studio
– E-MU E-Card
– E-MU PC
– E-MU The Music Box

Creative Labs SoundBlaster

หรืออาจสรุปได้ว่า SoundFont ก็คือเสียงที่ปรับแต่งไว้สามารถโหลดเข้าในคอมพิวเตอร์เพื่อใช้ในเพลงของคุณ
ซึ่งคุณอาจจะลองคิดว่า SoundFont นั้นก็เหมือนกับ text-font ที่ใช้ในโปรแกรมเวิร์ดโปรเซสเซอร์ SoundFont
ถูกออกแบบมาให้บรรจุข้อมูลไว้ เช่นเดียวกัน wavetable synthesizers (การ์ดเสียงในเครื่อง PC ) สามารถจำลอง
เสียงได้เหมือนเสียงจริงที่ตั้งใจเอาไว้( ซึ่งก็ต้องอาศัยความสามารถของฮาร์ดแวร์ร่วมด้วย)

ดังนั้นบุคคลที่จะใช้ SoundFonts ก็คงจะเป็นพวกนักแต่งเพลง นักแต่งทำนองดนตรี ซึ่งใช้ SoundFonts
ในการแต่งทำนองเพลงด้วยเสียงพิเศษ นอกเหนือจากเสียงธรรมดา

ที่มา :วิกิพีเดีย สารานุกรมเสรี

_______________

SoundFont คืออะไร

ก็ขออธิบาย ให้รู้จักกับ WaveTable ก่อน Wavetable คือตารางรวมคลื่นเสียง (Wave Samples) ที่อัดมาจากเสียงของเครื่องดนตรีจริง หรืออาจจะเป็นเพียง sine wave ที่ความถึ่ต่าง ๆ ถูกจัดเก็บในรูปแบบ digital ไว้บนชิพ ROM บนตัว Sound Card และเรียกใช้งานโดยผ่าน driver ของตัว sound card นั้น หรือ WaveTable บางแบบจะเป็น software เช่น Soft Synth หรือโปรแกรม WaveTable Emulator ต่าง ๆ ที่จะเก็บข้อมูลเสียงไว้เป็น file ตัวนึง และเรียกใช้งานผ่านทางโปรแกรมของตัวเอง

สำหรับตารางรวมคลื่นเสียงนี้ จะนำมาใช้ในการสังเคราะห์เสียงของคอมพิวเตอร์ โดยปกติแล้ว หากไม่มีตารางเสียงนี้ ตัวคอมพิวเตอร์จะทำการสร้างคลื่นเสียง FM (Frequency Modulator) ที่ความถี่ต่างๆออกมาเอง และนำมาผสมกัน เพื่อให้เกิดเสียงที่ใกล้เคียงกับเสียงเครื่องดนตรีแต่ละชนิด แต่เสียงที่ออกมานั้น จะไม่ได้มีต้นกำเนิด เหมือนการให้กำเนิดเสียงจากเครื่องจริง เสียงที่ได้ออกมาคุณภาพจึงไม่ค่อยดีนัก การนำ WaveTable เข้ามาใช้ จะเข้ามาแทนที่การ สร้างคลื่น FM โดยการนำเอาตัวอย่างเสียงของเครื่องเสียงที่มีบันทึกไว้ มาใช้แทน

SoundCard ที่มี wavetable ส่วนใหญ่แล้ว จะสามารถสังเคราะห์เสียงได้ 32 เสียง (เครื่องดนตรี) พร้อมๆกัน หรือมากกว่านั้น โดยใช้ Software เข้าช่วย ทั้งในการสร้าง (Creation) และการเล่น (Playback) ตารางข้อมูลเสียง หรือ Wavetable จะเป็นตัวอ้างอิงเสียงให้กับการสังเคราะห์เสียงแบบ Musical Instrument Digital Interface (MIDI) ซึ่งข้อมูลแบบ midi จะเป็นข้อมูลที่จัดเก็บ และนำมาใช้โดยผ่านชุดคำสั่ง คล้าย ๆ กับตารางโน้ตดนตรี (ผมไม่รู้จะใช้ศัพท์อะไรเรียก) ที่ใช้เวลาเล่นจริงกัน ชุดคำสั่งนี้ จะโยงบอกถึงเครื่องดนตรีที่ใช้และตัวโน้ตที่ใช้

ข้อ เสียของระบบ Wavetable ก็คือ ในการใช้ข้อมูลรูปแบบ MIDI นั้น ข้อมูลจะเก็บเฉพาะข้อมูล การเชื่อมโยงกับตารางเสียงเท่านั้น ไม่ได้เก็บตัวเสียงไว้ด้วย ในการนำมา playback เสียงที่ได้ อาจจะออกมาไม่ตรงกับมาตรฐาน ที่ผู้แต่งได้ทำไว้ (ถ้าเป็นระบบโรงหนัง ก็แห้ว ขอขอบพระคุณมากครับ ท่านผู้ใจดีครับ ไปแล้ว) จุดบอดของ MIDI คือ ต้องนำไป playback กับอุปกรณ์ชุดเดิมเท่านั้น จึงจะได้เสียงตรงกับที่คนแต่งได้แต่งไว้ ระบบ Sound Font จึงออกมาลบจุดบอดนี้ โดยการย้ายข้อมูลตารางเสียง จากใน ROM ให้มาอยู่ใน RAM และสามารถจัดเก็บเป็น file ต่างหากได้ ซึ่งก็จะมีข้อมูลของ Wave Samples ทั้งหมดอยู่ เมื่อนำมา playback เราก็จะนำข้อมูลของ wave samples ต่างๆเก็บเข้าไว้ใน RAM ของ sound card และ MIDI ก็จะเรียกใช้ข้อมูลจากตัว Sound Font นี้ ทำให้ไม่ว่าจะนำข้อมูล MIDI ไป playback ที่ไหน ก็จะได้เสียงที่ออกมาเหมือนอย่างที่คนแต่งได้ทำไว้ (จริงๆก็ยังไม่เหมือนเดิมหรอก เพราะอุปกรณ์เครื่องเสียงก็ยังต่างกันอยู่ดี แต่ติ๊ต่างว่าใช้อุปกรณ์ชุดเดียวกันละกัน)

ที่เหนือกว่านั้นของ SoundFont เนื่องจาก Sound Font เป็นการเก็บข้อมูลของ wave samples มาไว้ใน file ตัวนึง เราจึงสามารถทำการแก้ไข ดัดแปลงให้เข้ากับความต้องการของเราได้ อย่างไรก็ตาม SoundFont ก็ต้องมีการกำหนดค่ามาตรฐาน ของตำแหน่งเครื่องดนตรีไว้ ไม่ว่าการสร้าง SoundFont จะใช้ sample waves แบบใดก็ตาม เครื่องดนตรีจำเป็น ต้องอยู่ตามตำแหน่งที่กำหนดไว้ ถ้าใส่ไม่ถูกต้อง เสียงที่ออกมาก็จะผิดพลาดด้วยเช่นกัน ตำแหน่งมาตรฐานคือ GM (General MIDI) ซึ่งกำหนดเสียงเครื่องดนตรีไว้ 128 เสียง จาก instrument 000 ไปถึง instrument 127 ใน bank 000

ถ้าเคยเล่นเครื่องดนตรีจริงจะเข้าใจ เปียโน 2 ตัว เสียงยังไม่เหมือนกันเลย กีตาร์สองตัวเสียงก็ใช่ว่าเหมือนกัน แค่เปลี่ยนวัสดุที่ใช้ เสียงก็ต่างกันแล้ว การสร้าง Sound Font ก็เช่นกัน ตัว sample waves มาจากแหล่งกำเนิดเสียงที่ต่างกัน เสียงที่ได้จาก SoundFont แต่ละตัวก็ย่อมไม่เหมือนกัน ขึ้นกับตัวอย่างเสียง ที่นำมาใช้ใน SoundFont นั้นๆ

เพราะฉะนั้น เสียงที่ได้จาก Wavetable ที่ใช้ระบบ SoundFont จึงไม่ตายตัว สามารถเปลี่ยนแปลงได้ตามการเลือกใช้ แต่เนื่องจาก SoundFont คือไฟล์ข้อมูลที่ประกอบด้วยไฟล์ wave หลายๆตัว ซึ่งถ้าต้องการเสียงที่ใกล้เคียงเครื่องดนตรีจริงมาก จะต้องใช้ไฟล์ wave ที่มีจำนวนมาก อาจจะตั้งแต่ 1 sample wave ต่อ 1 octave ไปจนถึง 1 sample wave ต่อ 2-3 semi-tone เพื่อให้เข้าใจง่ายขึ้นอีกนิด ชิพ EMU10K ซึ่งเป็นตัวสังเคราะห์เสียงของ Creative Sound Blaster Live นั้น มีความสามารถที่จะสังเคราะห์เสียงจาก sample wave ให้สูงขึ้นไปได้อีก 2 Octave และต่ำลงไม่จำกัด ถ้าเรามีโน้ตเสียง โด ตัวนึง ชิพตัวนี้จะสามารถนำมาสังเคราะห์เป็น โด เร มี ฟา ซอล ลา ที โด เร มี ฟา ซอล ลา ที โด ได้โดยได้ระดับเสียง ( pitch ) ที่ยังไม่ผิดเพี้ยนนัก โดยการเปลี่ยนค่าความถี่เสียง ( pitch shift ) แต่ เนื่องจากเสียงจากเปียโนจริง เสียงที่สูงขึ้นนั้น เกิดจากการใช้ตัวสายเสียงที่เล็กลง หรือขึงสายให้ตึงขึ้น แต่ขนาดของตัวเครื่องยังเท่าเดิม ในการทำ pitch shift นั้น เป็นการคำนวน โดยลดขนาดสายเสียง ดึงสายให้ตึงขึ้น และลดขนาดของตัวเครื่องลงด้วย เสียงที่ผ่านการ shift หลายๆ octave จึงย่อมผิดเพี้ยนไปจากเสียงที่เกิดขึ้นจริงเช่นกัน การทำ SoundFont จึงต้องมีการเทียบกับเสียงจริงตลอด เมื่อจับได้ถึงการเริ่มเพี้ยนของเสียง ก็จะมีการแทรกเสียง sample wave เข้าไปเป็นข้อมูลเพื่อใช้ดึงข้อมูลใหม่ ทำให้ทุกโน้ต ทุก octave มีเสียงใกล้เคียงกับเครื่องดนตรีจริงมากที่สุด ส่วนคำว่า semi-tone ก็คือการเลื่อนระดับเสียงโน้ตขึ้นไป 1 ชั้น จาก โด เป็น โดชาร์ป เป็น เร เป็น เรชาร์ป เป็น มี เป็น ฟา ฟาชาร์ป แต่ละขั้นคือ 1 semi-tone Sound Font ที่มีเสียงใกล้เคียงกับเสียงจริงมากๆ จึงจำเป็นต้องมี sample wave หลายๆตัว ทำให้ Sound Font ที่มีเสียงดีๆ มีขนาดใหญ่โต และต้องการเนื้อที่ในการเก็บข้อมูลมาก ( ใน AWE32,64 ต้องการ module RAM สำหรับเก็บ ขนาดก็ขึ้นกับ module RAM ที่เพิ่มขึ้น ส่วน Live ใช้ System RAM สำหรับเก็บ ขนาดก็ครึ่งหนึ่งของ RAM ที่มี

ในการ เลือกใช้ SoundFont สำหรับเราๆท่านๆ ก็จะแตกต่างกันไป ตามสไตล์การฟัง MIDI ของแต่ละคน บางคนเน้นเครื่องสาย เครื่องเป่า หรือพวกเครื่องดีด Sound Font ที่ถูกสร้างมาแต่ละตัวจะเน้นเสียงที่ต่างกันไป ถ้าจะให้เน้นเสียงทุกตัว คิดเอาเองว่า แค่เสียงระดับคุณภาพพอฟังได้ เครื่องดนตรีละ 1 Mb 128 ชิ้น คุณจะต้องใช้เนื้อที่เท่าไหร่? แล้วจะทำอย่างไร ถ้าเราต้องการให้ได้เสียงที่ดีที่สุดสำหรับการฟัง MIDI ของเรา? ในการสร้าง SoundFont เราไม่จำเป็นต้องใส่ตัวอย่างเสียงให้ครบ 128 ชิ้น สำหรับชิ้นที่ไม่มีการเรียกใช้ใน MIDI ของเรา (ถ้ามีการเรียกใช้ขึ้นมา มันก็จะไม่มีเสียงอะไรออกมา เนื่องจากไม่มีตัวอย่างเสียงให้นำมาเรียกใช้) สำหรับท่านที่ไม่สัดทัดด้านการสร้าง SoundFont ขึ้นมาเอง มีวิธีง่ายกว่านั้น โดยการนำ Sound Font หลายๆตัวมาผสมกันโดย เลือกตัวอย่างเสียงเครื่องดนตรีที่จะนำมาใช้ วิธีทำก็คือ อย่างแรก เราต้องลองฟังเสียงเครื่องดนตรีแต่ละอย่าง ของ Sound Font และเราฟังแล้วรู้สึกว่าตัวไหนดีสุด ก็จำไฟล์นั้นไว้ แล้วเข้าไปทำการเลือกใช้ใน configure instrument ซึ่งเราจะเลือกตำแหน่ง การจัดวางได้อย่างอิสระ

อ้างอิงจาก : http://konpislok.com

__________________

ส่วนประกอบของ Soundfont

ชนิดดนตรีที่ใช้บรรเลงเสียงใน Soundfont ตามมาตราฐาน GM/GS

อธิบายเกี่ยวกับ Soundfont ตามที่ผมเข้าใจและได้รู้มา สำหรับผู้สนใจได้ทราบกันในไฟล์ SoundFont ประกอบไปด้วย 2 ส่วนหลักคือ
1. Melodic Pool คือ ส่วนที่เก็บเสียงดนตรีประเภทเครื่อง ดีด,สีและเป่าต่างๆ 2. Percussive Pool คือ ส่วนที่เก็บเสียงกลอง หรือเครื่องตีทุกชนิด

ทั้ง 2 ส่วนนั้นจะเก็บเสียงเอาใว้ใน Bank (คลังดนตรี) ที่มีลักษณะคล้ายกับตันไม้ ในแต่ละส่วนจะมีคลังเสียงดนตรีได้ 128 Bank
และจะเก็บเสียงที่ผ่านการปรับแต่งเสียงให้ดีและเป็นที่พอใจแล้วออกอีกย่อยๆ 128 เสียง เรียกว่า ” Preset ”
แต่ละ Preset ก็จะมีเลขประจำตัว เรียกว่า ” Preset ID ” ตั้งแต่เลข 0 จนถึง 127 รวมเป็น 128 เสียง
ตัวอย่าง ไฟล์ต่างๆที่มีใน Soundfont ดังต่อไปนี้
ส่วนที่ 1Melodic Pool
– Bank 0
…” ID: 0 ACOUSTIC GRAND PIANO
…เรื่อยๆจนไปถึง
…Preset ID: 127 (ให้นับ 0 เป็น 1จนถึง 127 ก็จะได้เท่ากับ 128 ตามมาตราฐาน GM)
– Bank 1
– Bank …แล้วแต่จะกำหนดให้มีกี่ Bank ถ้ามีหลาย Bank คุณภาพก็มาก หรือไม่กี่ Bank คุณภาพก็น้อย

รูปตัวอย่าง Melodic Pool
รูปภาพ

ส่วนที่2 Percussive Pool ก็คือ Bank 128 คลังเสียงดนตรีชุดสุดท้าย เครื่องตีหรือกลองชุดใหญ่ๆ นั่นเอง
– Preset ID: 0 STANDARD DRUM SET
– Preset ID: 1
…แล้วแต่จะกำหนดใส่เข้าไปตามใจคนทำ

รูปตัวอย่าง Percussive Pool
รูปภาพ

ถ้าอยากรู้ว่ามันอยู่อย่างไรโหลดโปรแกรม Soundfont Librarian เพื่อเปิดดูประกอบไปด้วยก็ดี จะได้เข้าใจง่ายๆ มีให้ดาวน์โหลดถัดไป
และอยากทราบว่า
– Bank 0,1,2,3,…127
– Preset ID: 0,1,2,3,…127
คือส่วนไหนของ Soundfont ก็ลองเปิด SF ที่เรามีด้วยโปรแกรม Soundfont Librarian ดูก็จะทราบว่ามันอยู่ส่วนไหนอย่างไร และหรือ
อันนี้สำคัญ เราสามารถเปิดดูและรู้ได้ว่า SF ของใครมีหน้าตาเป็นอย่างไร ทำไมไฟล์ใหญ่หรือเล็กไม่เท่ากัน เปิดดูได้ เพราะรายละเอียดจะไม่
เหมือนกัน
DOWNLOAD Soundfont Librarian

ถ้าอยากรู้ละเอียดมากกว่านี้ดาวน์โหลดโปรแกรม Vienna2.3 หรือ Viena มาเปิดดูได้ ซึ่งจะเข้าใจแจ่มแจ้งดีเลยแหละ
เพราะทั้ง 2 โปรแกรมนี้สามารถเปิดดูหรือปรับแต่งเสียงเองได้ตามชอบใจ ถ้าใครอยากจะทำ SF ก็ใช้ 2 ตัวนี้แหละทำ
ตัวแรกสำหรับคนมี Soundcard เสริมอื่นๆ ส่วนตัวที่ 2 สำหรับ Sound On Board

DOWNLOAD Vienna2.3
DOWNLOAD Viena

_________________

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

%d bloggers like this: