Newbie_SG®
Well-Known Member
Hi các bác, em toàn nghe lossless, hầu như chả có cái CD nào, nên cũng vọc vạch tý về kết nối máy vi tính với DAC.
Em mở thớt này chia sẻ với các bác một chút kinh nghiệm chơi còn còi cọc của em. Em sẽ đi dần từ máy tính Windows, sang Mac, từ driver phần mềm bên trong HĐH ra ngoài.
I. Âm thanh từ máy tính Windows.
Phải nói lại chút lịch sử máy tính, nó vốn không được làm ra để chơi các loại game, nhạc, video mà chủ yếu làm nhiệm vụ tính toán này nọ.
Khi game, multimedia bắt đầu phát triển, thì máy tính lúc này chơi được cả âm thanh, hình ảnh, video... với các phần cứng được tích hợp thêm vào (add on cards: card cắm thêm) hoặc tích hợp thẳng vào bo mạch chủ (onboard)
Microsoft đã đưa ra một bộ thư viện các API (giao diện lập trình ứng dụng) có tên chung là DirectX để tạo cơ sở cho các nhà lập trình viết phần mềm game, multimedia có thể gọi và sử dụng tài nguyên của hệ điều hành Windows, thay vì phải viết code để điều khiển trực tiếp phần cứng máy tính.
1. Direct Sound là một thành tố của Direct X, chịu trách nhiệm cung cấp một giao diện có độ trễ thấp (low latency) cho các trình điều khiển card âm thanh (sound driver) giao tiếp với các ứng dụng âm thanh.
Direct Sound là một phần mềm đã lỗi thời, mặc dù nó tên là Direct, nhưng nó chính là trung gian cản trở sự giao tiếp "trực tiếp" giữa phần mềm chơi nhạc và trình điều khiển (driver) và phần cứng âm thanh. Tuy nhiên, nó lại tạo ra được sự "tương thích" rất rộng rãi cho các phần mềm chơi nhạc, nhờ nó mà phần mềm chơi nhạc có thể giao tiếp được với bo mạch âm thanh mà không cần thiết phải viết code cho từng loại phần cứng âm thanh cụ thể.
Dưới đây là sơ đồ tối giản của cơ chế hoạt động của Direct Sound. Qua mô tả này chúng ta thấy nếu sử dụng Direct sound thì từ trình phát nhạc đến phần cứng âm thanh có ít nhất 2 tầng trung gian, và phải đi qua kmixer của Windows. Cách này sẽ làm "chất lượng âm thanh" giảm đi đáng kể, do kmixer đã trộn âm theo ngầm định của Windows...Và nếu có một lựa chọn nào khác, thì không nên dùng Direct Sound của Windows he he he ....
Khi nào mà âm thanh nhạc nhẽo của các bác vẫn còn có thể chỉnh được bằng cách kéo các thanh trượt dưới đây, thì lúc này âm thanh vẫn đang bị kmixer can thiệp
2. KMixer (Kernel Audio Mixer)
Là một phần mềm trung gian trong hệ điều hành Windows, nó làm nhiệm vụ trộn - tách các kênh âm thanh nhận được từ Direct Sound, định dạng,thay đổi tần số lấy mẫu... để giảm tải cho các chip sound nhỏ bé và rẻ tiền gắn trên các bo mạch âm thanh giá có 5$ (đùa tý, lúc đầu card sound cũng đắt phết đới, em còn nhớ lần đầu tiên được sờ vào con card sound Creative và con ổ CD-ROM 2x từ đâu năm 1995, giá tới 300$ lận)
Phần mềm này tạo ra một độ trễ rất lớn đối với dữ liệu âm thanh, tầm 30 mili giây haizzz và không có cách nào rút ngắn được hơn nữa. Kmixer đã gây ra vô số rắc rối với các định dạng âm thanh khác nhau, âm thanh đa kênh... và sau này đã dần bị loại bỏ
3. Kernel Streaming
Đây là một kỹ thuật giúp cho phần mềm chơi nhạc giao tiếp trực tiếp với phần cứng âm thanh, không cần qua mixer và volume của hệ điều hành. Nó được giới thiệu với Windows 98 và sau đó nâng cấp lên trong Windows XP (AVstream)
Kernel Streaming cho chất lượng âm thanh tốt hơn Direct Sound, nhưng tiềm ẩn một số lỗi với một số phần cứng nào đó, và không cho phép dùng chung hay chia sẻ thiết bị âm thanh. Các phần mềm chơi nhạc như foobar, JRiver, Winamp hỗ trợ KS. Khi một ứng dụng đang truyền âm thanh theo KS đến phần cứng, thì nó toàn quyền truy cập thiết bị, các ứng dụng khác sẽ không dùng được thiết bị đó nữa cho đến khi ứng dụng đầu tiên trả lại tài nguyên cho hệ thống.
4. WASAPI
May mắn thay cho dân nghe nhạc trên máy vi tính, MS đã nhận thấy các rắc rối tồi tệ mà Direct Sound, cùng với kmixer mang lại, vì vậy họ thiết kế một kiến trúc xử lý âm thanh mới có tên là WASAPI (Windows Audio Session API) với nhiều cải tiến, các ứng dụng phát âm thanh lúc này giao tiếp với phần cứng âm thanh thông qua các Sessions của WASAPI.
WASAPI cho phép khai thác phần cứng âm thanh ở 2 chế độ: chế độ chia sẻ và chế độ độc quyền (share / exclusive mode).
Ở chế độ độc quyền, WASAPI cho phép phần mềm chơi nhạc giữ toàn quyền truy cập vào phần cứng âm thanh, bỏ qua mixer của HĐH cũng như các thiết lập hiệu ứng này khác của trình điều khiển thiết bị (driver). Ở chế độ này, luồng dữ liệu âm thanh (bitstream) được truyền toàn vẹn từ phần mềm phát nhạc sang cho phần cứng âm thanh.
WASAPI đem lại chất lượng âm thanh khá hơn nhiều so với Direct Sound. Và WASAPI được khuyến cáo là phương thức giao tiếp ngầm định cho mọi phần cứng âm thanh, có hiệu quả tương đương với ASIO, và các chuyên gia cũng khuyên dùng WASAPI, trừ khi bản thân phần cứng âm thanh có kèm theo một bộ giao thức ASIO thật tốt và phù hợp
Để đảm bảo soft chơi nhạc được quyền truy cập độc quyền tới phần cứng nằm sau WASAPI, các bác phải thiết lập phần thuộc tính của audio hardware như dưới đây, nhớ tick đánh dấu vào 2 hộp ..."exclusive control..." và "...priority..."
5. (ASIO) Audio Stream Input/Output
Đây là một giao thức khác được phát minh bởi công ty Steinberg GmbH tại Đức, với nguyên lý tương tự WASAPI, cho phép audio software có thể giao tiếp trực tiếp với audio hardware, bỏ qua mixer của HĐH, đem lại độ trung thực cao cho âm thanh. Tuy nhiên, không phải phần cứng nào cũng có trình điều khiển ASIO đi kèm, nên đại đa số vẫn sử dụng WASAPI.
Có một phần mềm tương tự là ASIO4All do kỹ sư người Đức Michael Tippach viết ra, có thể cài và sử dụng với hầu hết các audio hardware, nó vẫn có độ trễ tương đối thấp nhưng chất lượng âm thanh thì khá tốt.
Như vậy, khi muốn cải thiện chất lượng âm thanh từ máy tính Windows, chúng ta nên chỉ định các phần mềm chơi nhạc xuất ra các cổng sau, theo thứ tự ưu tiên:
1. ASIO đi kèm phần cứng (phần này do hãng sx phần cứng cung cấp)
2. ASIO4All
3. WASAPI của Windows
4. Kernel Streaming
5. Direct Sound
Lưu ý là không phải tất cả các phần mềm chơi nhạc đều có thể chỉ định cổng ra.
Đối với foobar2k thì phải cài thêm plug-in foo_out_asio mới có chức năng này.
iTunes thì chỉ có lựa chọn Direct Sound hoặc WASAPI
Em mở thớt này chia sẻ với các bác một chút kinh nghiệm chơi còn còi cọc của em. Em sẽ đi dần từ máy tính Windows, sang Mac, từ driver phần mềm bên trong HĐH ra ngoài.
I. Âm thanh từ máy tính Windows.
Phải nói lại chút lịch sử máy tính, nó vốn không được làm ra để chơi các loại game, nhạc, video mà chủ yếu làm nhiệm vụ tính toán này nọ.
Khi game, multimedia bắt đầu phát triển, thì máy tính lúc này chơi được cả âm thanh, hình ảnh, video... với các phần cứng được tích hợp thêm vào (add on cards: card cắm thêm) hoặc tích hợp thẳng vào bo mạch chủ (onboard)
Microsoft đã đưa ra một bộ thư viện các API (giao diện lập trình ứng dụng) có tên chung là DirectX để tạo cơ sở cho các nhà lập trình viết phần mềm game, multimedia có thể gọi và sử dụng tài nguyên của hệ điều hành Windows, thay vì phải viết code để điều khiển trực tiếp phần cứng máy tính.
1. Direct Sound là một thành tố của Direct X, chịu trách nhiệm cung cấp một giao diện có độ trễ thấp (low latency) cho các trình điều khiển card âm thanh (sound driver) giao tiếp với các ứng dụng âm thanh.
Direct Sound là một phần mềm đã lỗi thời, mặc dù nó tên là Direct, nhưng nó chính là trung gian cản trở sự giao tiếp "trực tiếp" giữa phần mềm chơi nhạc và trình điều khiển (driver) và phần cứng âm thanh. Tuy nhiên, nó lại tạo ra được sự "tương thích" rất rộng rãi cho các phần mềm chơi nhạc, nhờ nó mà phần mềm chơi nhạc có thể giao tiếp được với bo mạch âm thanh mà không cần thiết phải viết code cho từng loại phần cứng âm thanh cụ thể.
Dưới đây là sơ đồ tối giản của cơ chế hoạt động của Direct Sound. Qua mô tả này chúng ta thấy nếu sử dụng Direct sound thì từ trình phát nhạc đến phần cứng âm thanh có ít nhất 2 tầng trung gian, và phải đi qua kmixer của Windows. Cách này sẽ làm "chất lượng âm thanh" giảm đi đáng kể, do kmixer đã trộn âm theo ngầm định của Windows...Và nếu có một lựa chọn nào khác, thì không nên dùng Direct Sound của Windows he he he ....
Khi nào mà âm thanh nhạc nhẽo của các bác vẫn còn có thể chỉnh được bằng cách kéo các thanh trượt dưới đây, thì lúc này âm thanh vẫn đang bị kmixer can thiệp
2. KMixer (Kernel Audio Mixer)
Là một phần mềm trung gian trong hệ điều hành Windows, nó làm nhiệm vụ trộn - tách các kênh âm thanh nhận được từ Direct Sound, định dạng,thay đổi tần số lấy mẫu... để giảm tải cho các chip sound nhỏ bé và rẻ tiền gắn trên các bo mạch âm thanh giá có 5$ (đùa tý, lúc đầu card sound cũng đắt phết đới, em còn nhớ lần đầu tiên được sờ vào con card sound Creative và con ổ CD-ROM 2x từ đâu năm 1995, giá tới 300$ lận)
Phần mềm này tạo ra một độ trễ rất lớn đối với dữ liệu âm thanh, tầm 30 mili giây haizzz và không có cách nào rút ngắn được hơn nữa. Kmixer đã gây ra vô số rắc rối với các định dạng âm thanh khác nhau, âm thanh đa kênh... và sau này đã dần bị loại bỏ
3. Kernel Streaming
Đây là một kỹ thuật giúp cho phần mềm chơi nhạc giao tiếp trực tiếp với phần cứng âm thanh, không cần qua mixer và volume của hệ điều hành. Nó được giới thiệu với Windows 98 và sau đó nâng cấp lên trong Windows XP (AVstream)
Kernel Streaming cho chất lượng âm thanh tốt hơn Direct Sound, nhưng tiềm ẩn một số lỗi với một số phần cứng nào đó, và không cho phép dùng chung hay chia sẻ thiết bị âm thanh. Các phần mềm chơi nhạc như foobar, JRiver, Winamp hỗ trợ KS. Khi một ứng dụng đang truyền âm thanh theo KS đến phần cứng, thì nó toàn quyền truy cập thiết bị, các ứng dụng khác sẽ không dùng được thiết bị đó nữa cho đến khi ứng dụng đầu tiên trả lại tài nguyên cho hệ thống.
4. WASAPI
May mắn thay cho dân nghe nhạc trên máy vi tính, MS đã nhận thấy các rắc rối tồi tệ mà Direct Sound, cùng với kmixer mang lại, vì vậy họ thiết kế một kiến trúc xử lý âm thanh mới có tên là WASAPI (Windows Audio Session API) với nhiều cải tiến, các ứng dụng phát âm thanh lúc này giao tiếp với phần cứng âm thanh thông qua các Sessions của WASAPI.
WASAPI cho phép khai thác phần cứng âm thanh ở 2 chế độ: chế độ chia sẻ và chế độ độc quyền (share / exclusive mode).
Ở chế độ độc quyền, WASAPI cho phép phần mềm chơi nhạc giữ toàn quyền truy cập vào phần cứng âm thanh, bỏ qua mixer của HĐH cũng như các thiết lập hiệu ứng này khác của trình điều khiển thiết bị (driver). Ở chế độ này, luồng dữ liệu âm thanh (bitstream) được truyền toàn vẹn từ phần mềm phát nhạc sang cho phần cứng âm thanh.
WASAPI đem lại chất lượng âm thanh khá hơn nhiều so với Direct Sound. Và WASAPI được khuyến cáo là phương thức giao tiếp ngầm định cho mọi phần cứng âm thanh, có hiệu quả tương đương với ASIO, và các chuyên gia cũng khuyên dùng WASAPI, trừ khi bản thân phần cứng âm thanh có kèm theo một bộ giao thức ASIO thật tốt và phù hợp
Để đảm bảo soft chơi nhạc được quyền truy cập độc quyền tới phần cứng nằm sau WASAPI, các bác phải thiết lập phần thuộc tính của audio hardware như dưới đây, nhớ tick đánh dấu vào 2 hộp ..."exclusive control..." và "...priority..."
5. (ASIO) Audio Stream Input/Output
Đây là một giao thức khác được phát minh bởi công ty Steinberg GmbH tại Đức, với nguyên lý tương tự WASAPI, cho phép audio software có thể giao tiếp trực tiếp với audio hardware, bỏ qua mixer của HĐH, đem lại độ trung thực cao cho âm thanh. Tuy nhiên, không phải phần cứng nào cũng có trình điều khiển ASIO đi kèm, nên đại đa số vẫn sử dụng WASAPI.
Có một phần mềm tương tự là ASIO4All do kỹ sư người Đức Michael Tippach viết ra, có thể cài và sử dụng với hầu hết các audio hardware, nó vẫn có độ trễ tương đối thấp nhưng chất lượng âm thanh thì khá tốt.
Như vậy, khi muốn cải thiện chất lượng âm thanh từ máy tính Windows, chúng ta nên chỉ định các phần mềm chơi nhạc xuất ra các cổng sau, theo thứ tự ưu tiên:
1. ASIO đi kèm phần cứng (phần này do hãng sx phần cứng cung cấp)
2. ASIO4All
3. WASAPI của Windows
4. Kernel Streaming
5. Direct Sound
Lưu ý là không phải tất cả các phần mềm chơi nhạc đều có thể chỉ định cổng ra.
Đối với foobar2k thì phải cài thêm plug-in foo_out_asio mới có chức năng này.
iTunes thì chỉ có lựa chọn Direct Sound hoặc WASAPI
Chỉnh sửa lần cuối: