ในช่วงนี้ ถ้าพูดถึง HTPC แล้ว OS ที่ใช้กันหลักๆ คงมีอยู่ 3 ตัว คือ
1. Windows ที่ใช้ WASAPI
2. MAC ที่ใช้ CoreAudio และ
3. Linux ที่ใช้ ALSA
หลายคนคงสงสัยว่า ก็มัน Bit perfect น่าจะเหมือนๆ กัน แต่จริงๆ มันไม่เหมือนกันครับ อย่างใน Windows แม้จะเล่นโหมด WASAPI ก็ไม่ได้หมายความว่า ข้อมูลที่ส่งไปยัง DAC จะเหมือนกับ Source จริงๆ 100% อย่างใน Foobar2000 เคยมีคนพบว่า เมื่อปรับ Volume Gain เป็น 0 และปิด DSP ทั้งหมด สั่งให้ Foobar2000 เล่นเพลงแล้วแทนที่จะส่งข้อมูลไป Soundcard ให้เขียนเป็นไฟล์ลง Harddisk แทน ซึ่งตามหลักแล้ว ถ้าเป็น Bit perfect จริง ข้อมูลจะต้องเหมือนกัน แต่กลับไม่เหมือนกัน (Bug นี้แก้ไขไปแล้วใน Version ใหม่)
ส่วนใน Linux ก็เคยมีคนจับได้ว่า ALSA แอบทำการ Resampling สัญญาณเป็น 48kHz ไม่ว่า Source จะเป็นความถี่เท่าไรก็ตาม แถมใช้ Resampler Algorithm ที่เน้นประสิทธิภาพ มากกว่าคุณภาพซะด้วย (ปัจจุบันแก้ไขแล้ว) ช่วงนั้นคนทิ้ง ALSA ไปเล่น OSS4 กันตรึม แต่ตอนนี้คนทิ้ง OSS4 มาเล่น ALSA เนื่องจาก OSS4 ไม่ใช่ Open Source อีกแล้ว
ซึ่งหมายความว่ามันมีปัจจัยอื่นๆ อีก ที่ทำให้ไม่เป็น Bit perfect จริง ตั้งแต่ตัว Software ที่ใช้เล่นเพลง ยันระบบปฎิบัติการ และ Audio API
เท่าที่ผมลองเทสดูตอนนี้ ผมว่า Linux เสียงดีสุด ที่ผมใช้คือ Ubuntu กับ Mainline Kernel เวอร์ชั่น 4.10 (ถ้าสั่งอัพเกรด Kernel ผ่าน OS ตามมาตรฐานปัจจุบันจะเป็นเวอร์ชั่น 4.8 ถ้าจะลง Mainline kernel ต้องทำเอง Manual ผ่าน Command line) Kernel 4.8 เสียงไม่ต่างอะไรกับ WASAPI มากคือ ดีกว่าหน่อยๆ แต่ 4.10 นี่ต่างกับ 4.8 แล้วก็ WASAPI เยอะพอควรครับ Ubuntu + Kernel v4.10 ตำแหน่งเครื่องดนตรีจะกว้างและชัดกว่าวินโดว์มากจนไม่ต้องสังเกตอะไร ประมาณเปิดมาฟังเพลงไม่ถึง 10-20 วินาที ก็ไม่อยากกลับไปฟังใน Windows อีกแล้ว
ตัวอื่นที่แนะนำก็เช่น Daphile และ Audiophile Linux (AP Linux) สำหรับ Daphile ผมไม่แน่ใจว่าอัพเกรด Kernel ได้หรือเปล่า เพราะมันแทบจะมีไว้ฟังเพลงอย่างเดียว ข้อดีมากๆ ข้อนึงคือ support native DSD512 playback ส่วน AP linux ผมไม่อยากจะลองเท่าไร เพราะเป็น Arch Linux และใช้ custom Real-time kernel คือ คนพัฒนาไปโม Kernel เอง แล้วสำหรับ Linux ถ้ามีการอัพเกรด Driver ต้องเปลี่ยน Kernel ด้วย เท่ากับว่าจะไม่สามารถอัพเกรด Driver ได้ ต้องรอผู้พัฒนา เอา Source Code Kernel ตัวใหม่มาโม แล้ว compile ใหม่
และสำหรับ Daphile กับ AP Linux ตัว Installer มันไม่สนับสนุนการทำ Multi boot เพราะงั้นจะลงหลาย OS ฟังเสียงเทียบกัน ค่อนข้างเป็นเรื่องลำบากครับ
ในระบบ HTPC ของผม
DAC: NPE 1541A โมตามคำแนะนำพี่ Goda เปลี่ยน Receiver เป็น AK4113 และเปลี่ยน LM337 เป็น LT1033 เพิ่มอีกอย่าง
CPU: AMD APU A8-7600
RAM: G.SKILL 16GB DDR3-2133
MB:Asrock Fatal1ty FM2A88X+ Killer
Sound Card (SP/DIF out): ESI Juli@
SSD: Kingston HyperX 120GB
HDD: Toshiba 4TB
BD Drive: Pioneer BDR-S09XLB
โดยมีติดตัวกรองไฟของ Elfidelity ที่ PCI, PCI-e, RAM, พัดลม PSU, พัดลม CPU, HDD และ BD Drive
ส่วน Mac เป็นระบบปฎิบัติการที่ผมจะหลีกเลี่ยงไม่ใช้มากที่สุด สั้นๆ เข้าใจง่ายๆ คือ แพง และ ห่วย ปัญหาเยอะ แก้ไขอะไรเองแทบไม่ได้ ไม่ได้มีเครื่อง Mac หรอกครับ แต่เคยต้องไปนั่งตั้งค่า Software พวก Player กับ CD Ripper ให้คนรู้จักครับ
ถามว่าทำไมผมถึงกล้าบอกว่า Mac ห่วย
ก่อนอื่นต้องเข้าใจก่อนว่า OS ของ Mac มาจากไหน
หลายคนคิดว่า Mac พัฒนา OS เอง แต่จริงๆ ไม่ใช่ครับ OS ของ Mac ชื่อ Darwin และชื่อของ Kernel คือ XNU พัฒนาโดยมีแรงบันดาลใจ (ก็อป Source Code มาดุ้นๆ ) จาก NeXTSTEP, BSD, Mach รวมไปถึง Linux เองด้วย โดนจับได้บ่อยๆ ว่าไปลอกเขามา แล้วมาโม้ว่าดีกว่าต้นฉบับ ทั้งๆ ที่ Source code เดิมเปะๆ คำถามคือไปใช้ต้นฉบับเลยดีกว่าไหม? ถ้าชอบหน้าตา OSX เนี่ย Linux ก็ทำให้หน้าตาเหมือน OSX ได้ครับ
ซึ่งก็มีคนที่ไม่เข้าใจเรื่อง IT อ้างว่า Mac เป็น Monolithic kernel ซึ่ง "ดี" กว่า Windows ที่เป็น Micro Kernel และถ้าคำอ้างนี้จริง ผมไปเล่น Linux ที่เป็น Monolithic kernel แท้ไม่ดีกว่าเหรอ? และจริงๆ มันขึ้นอยู่กับ Algorithm ของ Software/Drivers/OS และพวก Bugs ต่างๆ ในระบบมากกว่าว่ามีมากน้อยขนาดไหน มากกว่าที่จะเป็นเพราะประเภทของ Kernel ไม่ได้แปลว่าถ้าเป็น Monolithic แล้วจะเสียงดี เป็น Hybrid หรือ Micro Kernel แล้วจะเสียงไม่ดี
http://www.informatica.co.cr/bsd/research/1999/1022.htmและทั้ง Windows NT (XP 2000 7 8 10) และ OSX เป็น Hybrid Kernel ซึ่งเป็นลูกผสมระหว่าง Micro Kernel และ Monolithic kernel :p
ข้อแตกต่างระหว่าง Monolithic Kernel กับ Micro kernel คือ ตามชื่อครับ Micro Kernel มีขนาดเล็กกว่า ส่วน Monolithic ใหญ่กว่า เนื่องจากรวม Software ส่วนอื่นๆ เข้าไป ใน Kernel เช่น Driver ของ Hardware ต่างๆ
คนที่เคยใช้ OS ที่เป็น Monolithic จะทราบดี เพราะหากต้องลง Driver ใหม่ที่เดิม OS ไม่สนับสนุน หมายถึงการ Patch kernel แล้ว Compile source code ใหม่ ซึ่งวิธีการดังกล่าวไม่เหมาะกับ OS ที่ขายให้กับคนทั่วไป ไม่ค่อยมีความรู้ด้านคอมใช้
และแน่นอนการอัพไดรเวอร์ Sound card มักจะมีผลกับเสียง ซึ่งพวก Monolithic kernel เนื่องจาก Driver มันอยู่ใน Kernel ทำให้การอัพ Kernel มีผลกับเสียงด้วย ถ้ามีการแก้ไข Driver ให้ดีขึ้น
และที่คนไม่ทราบกันคือ Darwin เป็น Open source ครับ คือ ถ้าอยากลงหามาลงได้ ไม่จำเป็นเลยที่จะต้องไปซื้อเครื่อง Mac
http://www.puredarwin.org/แต่นั่นไม่เท่ากับประเด็นที่สำคัญมากๆ 2 ประเด็นที่ทำให้ผมเมิณ Mac
1. เลือกประเภท Kernel ไม่ได้ว่าจะใช้ Generic หรือพวก low-latency เช่น Preemption, soft real-time หรือ hard real time ซึ่งสำหรับงานทั่วไป รวมไปถึงดูหนัง ฟังเพลงแล้ว Generic kernel นั้นเหมาะสมกับงานสุดครับ ไม่ใช่ กลุ่ม low-latency kernel แต่อยู่ๆ วันนึง Apple ก็หักคอให้ทุกคนใช้ Preemption มาตั้งแต่สมัย Puma (OS X 10.1) หรือ Cheetah (OSX 10.0) เนี่ยแหละ ถ้าผมจำไม่ผิด
Studio ห้องอัด นิยมใช้ระบบ Low-Latency หรือ Real-time สาเหตุว่าทำไม? เพราะห้องอัด ต้อง Mix ภาพกับเสียง บางทีภาพและเสียงก็มีมากกว่า 1 แหล่งที่มา ถ้าเป็นระบบที่ Latency สูง ไม่แน่นอน ย่อมมีปัญหา ภาพเสียงเหลื่อม
แต่เราเอามาเล่นเพลง ดูหนัง ไม่ได้มาตัดต่อวีดีโอหรือเสียงนี่? แล้วจะใช้ระบบ real-time ไปทำแป๊ะอะไร? ซึ่งบางคนแย้งว่า real-time ต้องดีกว่าระบบ Latency สูงอยู่แล้ว สำหรับทุกๆ งาน ซึ่งเป็นความเข้าใจผิดของคนไม่มีความรู้ด้านคอมครับ
โดยหลักการแล้วระบบ real-time คือ การยอมให้ทิ้งงานที่ทำไม่เสร็จตามเป้าหมายไปครับ เป็นสาเหตุที่ทำให้ต้องซื้อ Hardware ราคาแพงที่มี Latency ต่ำๆ ด้วย เพื่อให้ระบบทำงานได้ตามปกติ เพราะอย่างถ้าโปรแกรมตัดต่อเขียนข้อมูลลงฮาร์ดดิส ถ้าฮาร์ดดิสตอบสนองไม่ทัน ทั้งๆ ที่ความเร็วในการเขียนมากพอ (High bandwitdh แต่ High latency ด้วย เช่นพวก USB) ไฟล์วีดีโอที่ทำสำเร็จมา อาจจะเสียงภาพ หายบ้าง กระตุกบ้าง ตอนเล่นไฟล์ก็เช่นกัน ทำให้ระบบพวกนี้จำเป็นต้องใช้ Interface ที่ Latency ต่ำๆ เช่น Thunderbolt หรือ Firewire แทนที่จะใช้ USB บ้านๆ ได้โดยไม่มีปัญหา และนอกจากนี้มันยังกระหายทั้ง CPU และ RAM Spec สูงๆ ด้วย
รวมไปถึงขนาด Buffer ใน Real-time ต้องมีขนาดเล็ก เพราะการเขียน Buffer ต้องใช้เวลา Buffer ใหญ่ก็ใช้เวลาเติม Buffer มาก และเวลาเป็นข้อจำกัด ผลคือในระบบแบบ Real-time มักประสบปัญหา Buffer underrun คือ ระบบเอาข้อมูลใน buffer ไปประมวลผลหมดก่อนที่ระบบจะเติมข้อมูลใหม่ลง Buffer ได้ทัน คนที่เล่นวีดีโอ หรือ เพลงในระบบแบบนี้ มักจะพบว่า จำเป็นต้องแก้ปัญหาโดยการกำหนด Buffer ขนาดใหญ่ใน Software เล่นเพลงหรือวีดีโอ แล้วให้ Software อ่านข้อมูลจากฮาร์ดดิสไปเก็บไว้ใน RAM ก่อนเล่นเพลงหรือวีดีโอ และให้ Kernel มาเอาข้อมูลใน RAM ไปเติมใน Buffer แทนการเอาข้อมูลจาก Hard disk โดยตรงไปเติมใน Buffer ไม่งั้นตอนเล่นจะมีปัญหากระตุก หรือ noise หลุดออกมา
และเนื่องด้วยมันเป็นระบบที่ออกแบบมาเพื่อเน้น "ความเร็วในการตอบสนอง" มากกว่า "คุณภาพ" ในระบบเดียวกัน Kernel แบบ Generic จะทำงานออกมาได้ดีกว่า ยกเว้น Hardware ที่มี Spec สูงลิ่ว จน Latency ใน generic kernel แทบจะเท่า low-latency kernel ก็เหมือนกับการไปบอกให้คนนึงๆ เร่งทำงานให้เสร็จภายใน Deadline กับบอกว่าเน้นคุณภาพทำนานหน่อยก็ได้แหละครับ ผลย่อมออกมาไม่เหมือนกัน
2. Software ครับ ลองถามคนเล่น MAC ดูสิครับ อย่างเรื่อง Rip แผ่น CD คนใช้ Windows มักจะแปลกใจเสมอว่า ทำไมคนเล่น MAC บอกว่าอุปกรณ์มีผลต่อการ rip เพลงมากมายมหาศาล ทั้งๆ ที่คนใช้ Windows Rip เพลงออกมา ไฟล์เหมือนกัน 100% ทุกครั้ง และมันจะฉงนกับคำกล่าวอ้างของชาว MAC ซึ่งผมขอ Confirm ครับ สิ่งที่ชาว MAC เจอแล้วมาบ่นเป็นเรื่องจริงทั้งหมดครับ สาเหตุก็มาจาก Software CD Rip กับ ระบบ OS ของ Mac นะแหละ
หลายคนที่ Rip เพลงบนวินโดว์น่าจะรู้ดีอยู่แล้ว คือ ส่วนใหญ่ใช้ Software ที่สนับสนุน AccurateRip กับ Optical drive ที่มี Accurate stream, C2 Error Info และไม่มี Caching (ถ้ามี Caching ก็สั่งปิดในโปรแกรม Rip CD)
โปรแกรมที่ใช้ก็เช่น Exact Audio Copy ที่ไปตั้งค่าพวกนี้ รวมถึง Read Offset ได้ ซึ่งโปรแกรมเมื่อ rip แต่ละ track แล้วจะอ่านค่า checksum ขึ้นมา แล้วต่อเน็ตเพื่อเปรียบเทียบค่า checksum กับ ฐานข้อมูลในระบบ เพื่อจะได้รู้ว่าข้อมูลนั้นตรงกับต้นฉบับ 100% หรือเปล่า
ซึ่งตรงไม่ตรงรู้ทันทีหลัง Rip CD เสร็จ
แต่ใน MAC ไม่มี Software แบบนี้ใน App store ครับ (หรืออาจจะมีแต่ผมไม่รู้จัก แล้วเจ้าของ Mac ที่ผมไปเซ็ตเครื่องให้ไม่รู้จัก) Software Rip เพลงพี่ท่านประมาณว่า กดสั่ง rip เพลงจาก CD แล้วจบครับ บางตัวกำหนด Read Speed ไม่ได้ด้วยซ้ำ และนอกจากนี้ หลายตัวมันไม่มีฟรีด้วยเนี่ยสิ

แล้วลองถามคนเล่น Mac สิครับ ว่าตอนเลือกซื้อ Optical Drive มา Rip CD เขาเลือกไดรฟ์ที่แจ้งค่า C2 Error Info, AccurateStream และไม่มี Caching หรือเปล่า หรือ ตั้งค่าใน Software ที่ใช้ Rip ยังไง มีตั้ง Read offset หรือใช้ AccurateRip (ต้องต่อเน็ตตอน Rip CD) หรือเปล่า?
คนใช้ Mac จะทำหน้าประมาณว่า เคยได้ยินศัพท์แสงพวกนี้ครั้งแรกในชีวิต...
http://www.exactaudiocopy.de/en/index.php/overview/basic-technology/accurate-rip/คราวนี้ อย่างที่เคยบอกไปว่า หลายอย่าง Mac ก็อบมาจากชาวบ้าน Software ใน Linux นี่ไปรันใน Mac ได้ครับ แค่ Compile ใหม่ เพราะงั้นหาโปรแกรม Rip ที่เป็น AccurateRip ใน Linux ไปลงก็ย่อมได้ครับ หลายตัวก็ Compile มาให้แล้ว ปัญหาคือ จะลง App ที่ไม่มีใน Store เขามันก็วุ่นวายพอควร คือ ต้องลง Xcode และ Enable Root User เพื่อ เอา Software ที่ Port มาจาก Linux หรือพวก Open Source อื่นๆ มาสั่ง Compile ใน OS X ได้
อารมณ์ประมาณ จาก ทุกปัญหามีทางออก เป็น ทุกทางออกถูกทำให้เป็นทางตันโดย Apple แก้ได้โดยการจ่ายเงินเพิ่มซื้ออุปกรณ์แพงๆ เกินความจำเป็นเท่านั้น ไม่ก็ต้องมาปวดหัวเพราะเรื่องที่ไม่ควรจะต้องเป็นปัญญหา จ่ายแพงแล้วชีวิตยังวุ่นวายมากขึ้นด้วย
https://support.apple.com/en-us/HT204012ตัว CD Ripper ที่แนะนำของ Mac ก็เช่น Max กับ Rip ครับ
http://sbooth.org/Max/ http://sbooth.org/Rip/ซึ่งจะสนับสนุนไดร์ฟที่อ่านค่า C2 Errors รวมถึงสนับสนุน AccurateRip
http://sbooth.org/Rip/details.html