Nick Karaoke บนลินุกส์ Kubuntu 6.10



Karaoke เกิดขึ้นครั้งแรกที่ประเทศญี่ปุ่น จากนั้นกระแสคาราโอเกะก็แพร่สะพัดไปทั่วโลก สำหรับการแพร่หลายเช้ามาในประเทศไทยประมาณสัก 20 ปีที่ผ่านมาได้มั้ง ถึงตอนนี้คาราโอเกะก็ได้กลายเป็นส่วนหนึ่งของวิถีชิวิตคนไทยไปซะแล้ว นิยามของ KaraOK ก็คือเสียงดนตรีที่ปราศจากเสียงของนักร้อง มีอักษรบรรยายและมีแถบสีปาดวิ่งบนอักษรตามท่วงทำนองดนตรี สำหรับเสียงผู้ร้องนั้นก็คือ เราๆ ท่านๆ นี่เอง เพราะเหตุนี้แหล่ะมันถึงโดนใจมหาชนทั่วโลกไม่มีเสื่อมคลาย ...

Karaoke ได้ถูกประยุกต์ใช้งานในโอกาสต่างๆอย่างเราอาจคาดไม่ถึง เช่น วีดีโอ, ซีดี, ดีวีดี, เกมส์, โทรศัพท์มือถือ, รถยนต์, วิทยุ, โทรทัศน์, อินเตอร์เน็ต ฯลฯ สำหรับคาราโอเกะบนคอมพิวเตอร์นั้นก็มีรูปแบบการพัฒนามายาวนานไม่น้อย นอกจากที่เราจะนำ VCD หรือ DVD มาเล่นตามปกติแล้ว ยังมีโปรแกรมพิเศษเฉพาะด้านคาราโอเกะโดยเฉพาะ เริ่มจากเสียง midi ปกติ ต่อมาเป็น Midi Wavetable และ MP3 ตามลำดับ ข้อดีคาราโอเกะบนคอมพิวเตอร์ก็คือหน่วยความจำฮาร์ดดิสต์ที่ใหญ่ ที่สามารถจะจัดเก็บจำนวนเพลงได้เป็นจำนวนมหาศาลมากเท่าที่ผู้ใช้ต้องการ ...

สำหรับ Nick Karaoke ถือว่าเป็นผู้บุกเบิกคาราโอเกะบนคอมพิวเตอร์ในยุคแรกๆทีเดียว เริ่มพัฒนาจากเสียง midi ปกติ คือเสียงที่ช่องเสียงน้อย ลักษณะเหมือนกับการฟังเสียงเปียโน ต่อมาก็พัฒนาเป็นเสียงแบบ midi WaveTable ซึ่งปัจจุบันก็ยังคงอยู่ในลักษณะนี้ไม่มีเปลี่ยนแปลง เสียงดนตรีลักษณะนี้จะมีช่องเสียงมากกว่า midi แบบปกติเยอะ เสียงจะเหมือนอิเล็กโทนผสมกับริทึ่มบล็อก(เสียงกลองชุด) ถึงแม้ปัจจุบันรูปแบบคาราโอเกะบนคอมพิวเตอร์จะถูกพัฒนาโดยเจ้าอื่นๆมากมาย แต่ขวัญใจมหาชนก็ยังอยู่ที่ตัว “นิค” อยู่ดี ถึงแม้จะมีรูปแบบทำงานบน DOS ก็ตาม ทำไมถึงเป็นเช่นนั้น เหตุผลก็เพราะ “นิค” ใช้แฟ้มเสียงแบบ midi ซึ่งใช้เนื้อที่จัดเก็บน้อยมาก เปรียบเทียบซีดีหนึ่งแผ่นมีความจุ 700 MB เชื่อมั้ยว่าเก็บเพลงได้มากกว่า 20000 เพลง โอ้โห!มันมากมายขนาดนี้ร้องกันเป็นปีก็ไม่หมด หาเพลงอะไรก็มีหมด ที่สำคัญเขาอัพเดตเพลงใหม่ๆให้ทุกๆเดือน นี่แหละมันถึงเป็นที่นิยม ถึงแม้เสียงจะเหมือนอิเลคโทนก็เถอะ มันก็สร้างความสุขได้ทันใจทันสมัยดีแท้ ...

ในช่วงแรกของเสียงเพลงแบบ Wavetable บนคอมพิวเตอร์นั้น ผู้ใช้ต้องจัดหาการ์ดซาวด์พิเศษมาเพิ่มเติม ตอนนั้นก็คือ Creative มันก็ต้องแหง๋แหล่ะ ก็เขาเป็นผู้คิดค้นเทคนิค Wavetable Synthesis ขึ้นมา ก็สร้างซาวด์การด์ออกมารองรับ ขายดิบขายดีมากๆในช่วงนั้น ถึงว่าจะแพงขนาดไหนก็ตาม Wavetable Synthesis มีหลักการสร้างเสียงดนตรีแบบmidi ให้มีคุณภาพเสียงคล้ายเสียงดนตรีจริงๆ ซึ่งมาจากความสามารถของชิพพิเศษที่มีชุดตารางเสียงเครื่องดนตรีต่างๆ หลายสิบชิ้น และราคาของการ์ดประเภทนี้ก็ถูกลงเป็นลำดับตามสภาพตลาด ปัจจุบันผู้ผลิตเมนบอร์ดคอมพิวเตอร์จะสร้างซาวด์มาบนแผงวงจรเลย ทำให้บทบาทของซาวน์การ์ดเริ่มน้อยลง จะใช้อยู่ในกลุ่มของผู้เสพความสุนทรีทางเสียงจริงๆ อ้าว! แล้วคาราโอเกะแบบ Wavetabel จะทำอย่างไรล่ะ ไม่ต้องห่วง เดี๋ยวนี้อะไรๆก็ใช้ซอฟต์แวร์จำลองได้หมดแล้ว สำหรับบนวินโดว์ที่นิยมคือ Yamaha SoftSynthesizer เป็นซอฟทแวร์จำลอง Wavetable Synthesis และจะมีชุดคำสั่ง SoundFont เป็นชุด Rom เสมือนจัดเก็บตารางเสียงเครื่องดนตรี ส่วนคุณภาพเสียงจะด้อยกว่าอุปกรณ์ฮาร์ดแวร์ แต่ก็ยังถือว่าอยู่ในเกณฑ์ดีพอรับได้ ...
อย่างที่กล่าวมาก่อนหน้าแล ้วว่า “นิคคาราโอเกะ” เป็นโปรแกรมที่นิยมใช้บนวินโดว์ แล้วถ้าจะนำมาใช้โปรแกรมบันเทิงตัวนี้มาใช้บนลินุกส์ล่ะ จะทำอย่างไรดีเอ่ย? สำหรับโปรแกรม “นิคคาราโอเกะ” เป็นโปรแกรมที่ทำงานบน DOS Base หากนำมาใช้บนลินุกส์ก็ต้องจัดหาโปรแกรมจำลองสภาพแวดล้อมแบบดอส ตัวที่ถูกเลือกขึ้นมาก็คือ DOSBox ผู้พัฒนาเขาสร้างมาเพื่อจุดประสงค์หลักคือ DOSเกมส์ แต่ก็สามารถนำมาประยุกต์กับแอพพลิชั่นอื่นๆได้เหมือนกัน ส่วนโปรแกรมจำลองเสียง Wavetable มีตัวเลือกตัวเดียวคือ Timidity++ มีหลักทำงานในรูปแบบเดียวกับ Yamaha SoftSynthesizer โอเค! เมื่อเครื่องมือปรุงแต่งพร้อมหมดแล้ว เรามาลงมือกันทำเลยดีกว่า
วิธีการจัดทำบน Kubuntu 6.10 Edgy Eft ปัจจุบันได้มีระบบ midi พื้นฐานเข้าไว้ในเคอเนลอยู่แล้ว เพราะเดิมเราต้องคอมไพล์เคอเนลใหม่ให้รับรู้อุปกรณ์ตัวนี้ ก็เลยทำงานง่ายขึ้นเยอะ เริ่มต้นด้วยการตรวจสอบระบบ midi ของลินุกส์เครื่องเราก่อนด้วยคำสั่งนี้
aplaymidi -lจะแสดงข้อมูลประมาณนี้
Port Client name Port nameก่อนติดตั้งแพ็คเก็ตใช้งานควรตรวจสอบแฟ้ม /etc/apt/sources.list ต้องมี reposition เหล่านี้อยู่เป็นอย่างน้อย สถานที่เก็บ http://archive.ubuntu.com หรือจะเป็น Local Mirror อื่นๆก็ได้ เช่น http://th.archive.ubuntu.com หรือ http://us.archive.ubuntu.com
14:0 Midi Through Midi Through Port-0
deb http://archive.ubuntu.com/ubuntu/ edgy universe main multiverse restrictedปรับปรุง repositon ด้วยคำสั่ง
sudo apt-get updateติดตั้งโปรแกรมที่ต้องการดังนี้
sudo apt-get install timidity freepats dosboxเนื่องจาก DOS Box เป็นอีมูเลเตอร์ DOS ที่ค่อนข้างดึงทรัพยากรซีพียูพอสมควร ดังนั้นจะควรปิดความสามารถบางตัวของ Timidity ก่อน ด้วยการเข้าไปแก้ไขแฟ้มข้อมูลดังนี้ ตัวเองเลือก nano (pico clone) เป็นตัวแก้ไขแฟ้มต่างๆ
sudo nano /etc/timidity/timidity.cfgให้ลบเครื่องหมาย # หน้าบรรทัดที่มีข้อความเหล่านี้
opt EFresamp=d #disable resamplingสร้างระบบจำลอง MidiSoftware Synthesis
opt EFvlpf=d #disable VLPF
opt EFreverb=d #disable reverb
opt EFchorus=d #disable chorus
opt EFdelay=d #disable delay
sudo modprobe snd-seq-deviceจบขั้นตอนเรื่องระบบเสียง ตรวจสอบความสมบูรณ์ของระบบ midi อีกครั้งด้วยคำสั่ง
sudo modprobe snd-seq-midi
sudo modprobe snd-seq-oss
sudo modprobe snd-seq-midi-event
sudo modprobe snd-seq
timidity -iA -B2,8 -Os &
aplaymidi -lจะแสดงข้อมูลประมาณนี้ถือว่าถูกต้อง
Port Client name Port nameตำแหน่ง 128:0 เราจะใช้เป็นช่องส่งผ่านกับโปรแกรม DOSBox ลำดับต่อมาเป็นขั้นตอนการตั้งค่าให้กับ DOSBox วิธีการกำหนดค่าใดๆที่ต้องการเพิ่มเติมจะต้องกระทำผ่านแฟ้ม .conf และใช้คำสั่งภายใน DOSBox เป็นตัวสร้างค่าเริ่มต้นของแฟ้มตัวนี้ให้เราก่อน มีวิธีการจัดทำดังนี้
14:0 Midi Through Midi Through Port-0
128:0 TiMidity TiMidity port 0
128:1 TiMidity TiMidity port 1
128:2 TiMidity TiMidity port 2
128:3 TiMidity TiMidity port 3
สร้างโพลเดอร์เหล่านี้เพื่อเป็นพื้นที่ทำงาน จัดการงานดอสของเราไว้ก่อน
/home/[ชื่อยูสเซอร์ที่ล็อกอิน]/DOS ---> พื้นที่จำลองC:เข้าโปรแกรม DOSBox ด้วยคำสั่งนี้ผ่าน โปรแกรม Terminal Console
/home/[ชื่อยูสเซอร์ที่ล็อกอิน]/DOS/nick ---> พี้นที่จำลอง Drive D:
dosboxจะปรากฏหน้าจอดังนี้

สังเกตุที่ Terminal Console ว่าโปรแกรมแจ้งข้อบกพร่องของระบบ midi ดังนี้
CONFIG:Loading settings from config file dosbox.confสร้างแฟ้ม .conf ด้วยคำสั่ง
ALSA:Can't subscribe to MIDI port (65:0)
MIDI:Opened device:oss
config -writeconf /home/[ชื่อยูสเซอร์ที่ล็อกอิน]/DOS/nick.confตอนนี้จบโปรแกรม DOSBox ก่อน เสร็จแล้วแก้ไขแฟ้ม nick.conf ด้วยคำสั่งดังนี้
sudo nano /home/[ชื่อยูสเซอร์ที่ล็อกอิน]/DOS/nick.confแก้ไขข้อความในกลุ่มต่างๆ และแก้ไขให้เป็นค่าเหล่านี้
[cpu]หรือกรณีต้องการเรียกโปรแกรมจากซีดี ไม่ต้องการคัดลอกข้อมูล ก็ใช้คำสั่งนี้แทน
core=dynamic
cycles=8000
[midi]
mpu401=intelligent
config=128:0
[autoexec]
mount c /home/[ชื่อยูสเซอร์ที่ล็อกอิน]/DOS
mount d /home/[ชื่อยูสเซอร์ที่ล็อกอิน]/DOS/nick
mount d /media/cdromเสร็จสิ้นการปรุงแต่งสภาพแวดล้อมต่างๆเพื่อโปรแกรม “นิคคาราโอเกะ” ณ ตอนนี้เรายังไม่มีแฟ้มใช้งานของ”นิค”เลย ก็ให้นำแผ่นซีดี Nick Karaoke (ทดสอบด้วย "นิค" เวอร์ชั่น 4.5) มาใส่ในเครื่อง ทำการคัดสำเนาแฟ้มข้อมูล ทุกๆแฟ้ม ทุกๆ โฟลเดอร์ สำเนาไปที่ /home/[ชื่อยูสเซอร์ที่ล็อกอิน]/DOS/nick/ เสร็จเรียบร้อยก็เตรียมตัวโยกลูกคอกัน ด้วยการเรียกโปรแกรมด้วยคำสั่งนี้
dosbox -conf /home/[ชื่อยูสเซอร์ที่ล็อกอิน]/DOS/nick.confสังเกตุที่ Terminal Console จะแสดงสถานะความถูกต้องของระบบ midi
CONFIG:Loading settings from config file /home/userone/DOS/nick.confภายในโปรแกรม DOSBox เรียกโปรแกรม “นิคคาราโอเกะ” ดังนี้
ALSA:Client initialised [128:0]
MIDI:Opened device:alsa
Requested buffer size 32768, fragment size 8192
ALSA pcm 'default' set buffer size 33868, period size 3760 bytes
d:หน้าตา "นิคคาราโอเกะ" เมื่อแรกเริ่มโปรแกรม ...
auto หรือ 220

เมื่อกด

พิมพ์ชื่อเพลงที่ต้องการ ก็เขย่าลูกคอกันได้แล้วครับพี่น้อง ...

ขั้นตอนก่อนหน้านี้เป็นการจำลองค่า midi ใช้งานเฉพาะกิจ เมื่อปิดเครื่องก็หายไปเมื่อเปิดใหม่ แต่ถ้าหากต้องการให้เปิดแบบถาวร เมื่อเปิดเครื่องแล้วให้จำลองค่าดังกล่าวแบบอัตโนมัติ แต่จะเสียพื้นที่หน่วยความจำไปบ้าง มีวิธีการจัดทำดังต่อไปนี้ เข้าโปรแกรม Terminal Console แล้วพิมพ์คำสั่ง
sudo gedit /etc/modulesเพิ่มคำสั่งเหล่านี้เข้าไปในแฟ้มดังกล่าว
snd-seq-deviceกำหนดค่าเริ่มต้นของโปรแกรม Timidity++
snd-seq-midi
snd-seq-oss
snd-seq-midi-event
snd-seq
sudo gedit /etc/default/timidityแก้ไขบรรทัดที่มีข้อความดังให้เป็นไปตามตัวอย่าง
TIM_ALSASEQ=trueถ้ารูสึกเสียงที่ได้ยินได้ฟัง คิดว่ายัง ไม่เพราะ ไม่ใส ไม่ชัดเจน มีผู้รู้แนะนำให้หาไฟล์รอม SoundFont มาใช้แทนรอมปัจจุบัน (freepats) (เท่าที่ลองทำดูแล้วดีขึ้นมานิดเดียวเอง) มีขั้นตอนแนะนำดังนี้ คัดลอก SoundFont กรณีนี้เป็น deb ไฟล์
TIM_ALSASEQPARAMS="-B2,8 -Os"
wget -c -P /tmp/ http://www.fbriere.net/debian/dists/etch/misc/deb/timidity-patches-eaw_12-0fbriere.1_all.debปรับปรุงค่าเริ่มต้นของโปรแกรม Timidity++
sudo dpkg -i /tmp/timidity-patches-eaw_12-0fbriere.1_all.deb
sudo gedit /etc/timidity/timidity.cfgแก้ไขบรรทัดที่มีข้อความดังกล่าวให้เป็นไปตามตัวอย่าง
#source /etc/timidity/freepats.cfg..............................................................................................................................
source /usr/share/doc/timidity-patches-eaw/examples/timidity.cfg
ที่มาของแหล่งของข้อมูลเบื้องต้น บล็อกคุณ kitty และ Ubuntu Howto และ DosBox
ผมรันคำสั่งนี้ timidity -iA -B2,8 -Os & แล้วไม่ผ่านครับ มันบอกว่าให้ไปดูรูปแบบคำสั่งใหม่ใน timidity --help ไม่รู้ว่าจริงๆแล้วควรพิมพ์ว่ายังไงกันแน่ครับ อิอิ อยากได้คาราโอเกะในลินุกส์อ่ะครับ แล้วอีกอย่าง ผมไม่มีซีดี ของ nick จะสามารถใช้โฟล์เดอร์ในคอมของโปรแกรม ncn ได้ไหมครับ(โฟล์เดอร์ใน windows XP)
ขอบคุณสำหรับความรู้ใหม่ๆครับ