วันนี้อารมณ์ดีผีชนะ เขียนอะไรเล่นๆ เรื่อยเปื่อยดีกว่า
การเลือก audio output mode สำคัญนะครับเพราะ hardware ต่างชนิดกันต้องการการติดต่อสื่อสาร
ต่างกันเพื่อให้ได้ประสิทธิภาพและคุณภาพของเสียง โดยปกติเราสามารถเลือก output mode ได้ดังนี้
Windows- Direct Sound
- WASAPI
- ASIO
- Kernel Streaming
- Disk Writer
- Null Output
OSX- Core Audio
- Null Output
Hardware Direct เพื่อให้ได้คุณภาพของเสียงที่ดีที่สุด ซอฟแวร์ที่เราใช้ควรสื่อสารโดยตรงกับ
Sound Hardware โดยไม่ผ่าน windows หรือ layer อื่นๆ
เพื่อกระทำการ resampling หรือผ่านกระบวนการเปลี่ยนแปลงทางสัญญาณใดๆ
การติดต่อโดยตรงกับ hardware ได้แก่ Core Audio,ASIO, WASAPI
คราวนี้มีข้อควรระวังเมื่อเราใช้การติดต่อสื่อสารโดยตรงกับ sound hardware คือ
- ระหว่าง audio playback เจ้า sound interface จะทำการ lock เราไม่สามารถเล่นหรือใช้
sound จาก web browser หรือโปรแกรมอื่นขณะที่เราเล่น audio
- ถ้าเราเล่นเพลงที่ sound interface เราไม่รองรับ มันไม่สามารถเล่นได้นะครับ ต้องเลือก sample rate ที่ sound interface เรารองรับด้วย
การเลือก audio output modeใน OSX จะใช้ Core Audio เพื่อสื่อสารกับ sound interface
สามารถรองรับการเล่นแบบ bit-perfect โดยไม่ต้องปรับแต่งหรือต้องการ driver
คนเล่นเพลงส่วนมากถึงนิยมใช้ Macintosh ส่วนใน Windows ควรเลือกใช้ตามลำดับดังนี้
1 ถ้า hardware รองรับ NATIVE ASIO ให้ใช้ ASIO
2. ถ้าไม่รองรับ ASIO ใน windows vista,7,8,10 ให้ใช้ WASAPI Exclusive Access
3. หรือเลือกใช้ Kernel Streaming ถ้ามันสามารถทำงานได้นะ
4.ถ้าสามข้อบนไม่สามารถเล่นได้ ก็ต้องใช้ DirectSound หรือ Waveout
ASIO คือระบบการสื่อสารที่สร้างขึ้นโดย Steinberg ถ้า soundcard เรา
สามารถใช้ native ASIO driver ปกติคิดว่าน่าจะดีที่สุดนะ
ปล. ASIO4All ปกติใช้ Kernel Streaming พื้นฐานกับ ASIO wrapper
ไม่มีเหตุผลที่จะใช้ ASIO + ASIO4All เหมือนกับใช้ Kernel Streaming โดยตรง
เป็นเหตุผลที่ว่า ASIO4ALL ทำงานได้แต่สำหรับผมมันห่างจาก NATIVE ASIO
WASAPI (Windows Audio Session API) การติดต่อโดยตรงกับ hardware ใน Vista,
Windows 7,8,10 เมื่อใช้ exclusive mode Windows system mixer จะถูก bypass
แต่ application อื่นจะไม่สามารถใช้ audio device ร่วมด้วย
Kernel Streaming คือการติดต่อ hardware โดยตรงโดยใช้ WDM audio driver สามารถทำงานบน XP
เราสามารถใช้ทางเลือกนี้ถ้า ASIO และ WASAPI ไม่สามารถใช้งานได้
Direct Sound คือ Windows default และสามารถใช้ได้กับทุก output ซึ่งจะทำงานผ่าน system mixer
นั่นหมายความว่าทุก format จะถูกเปลี่ยนโดย windows เพื่อให้สามารถทำงานได้กับทุก sound card
แต่คุณภาพไม่ดีสู้ที่กล่าวมาด้านบนไม่ได้
Wave Out วิธีโบราณแต่ดีกว่า DirectSound
Disk Writer เป็นการเขียนลงอุปกรณ์บันทึกในรูปแบบ wave file
ไม่ถูกต้องตรงไหนแย้งได้นะครับ