JACK là một máy chủ âm thanh độ trễ thấp, được viết cho bất kỳ hệ điều hành nào tuân thủ POSIX một cách hợp lý. Nó hiện đang tồn tại cho Linux, OS X, Solaris, FreeBSD và Windows. Nó có thể kết nối một số ứng dụng khách hàng với một thiết bị âm thanh, và cho phép họ chia sẻ âm thanh với nhau. Khách hàng có thể chạy như các quá trình riêng biệt như các ứng dụng bình thường, hoặc trong máy chủ JACK như & trích dẫn;bổ trợ". JACK được thiết kế từ đầu cho công việc âm thanh chuyên nghiệp, và thiết kế của nó tập trung vào hai lĩnh vực chính: thực hiện đồng bộ tất cả các khách hàng và hoạt động độ trễ thấp. Theo truyền thống nó đã được khó khăn nếu không phải là không thể viết các ứng dụng âm thanh có thể chia sẻ dữ liệu với nhau. Ngoài ra, cấu hình và quản lý phần cứng giao diện âm thanh thường là một trong những khía cạnh phức tạp nhất của việc viết phần mềm âm thanh. JACK thay đổi tất cả điều này bằng cách cung cấp một API thực hiện một số việc: 1. cung cấp một trừu tượng cấp cao cho các lập trình viên loại bỏ phần cứng giao diện âm thanh từ hình ảnh và cho phép họ tập trung vào các chức năng cốt lõi của phần mềm của họ. 2. cho phép các ứng dụng gửi và nhận dữ liệu âm thanh đến / từ nhau cũng như giao diện âm thanh. Không có sự khác biệt trong cách một ứng dụng gửi hoặc nhận dữ liệu bất kể nó đến từ / đi đến một ứng dụng khác hoặc giao diện âm thanh. Đối với các lập trình viên có kinh nghiệm của một số API âm thanh khác như PortAudio, CoreAudio của Apple, VST và ASIO của Steinberg cũng như nhiều người khác, JACK trình bày một mô hình quen thuộc: chương trình của bạn cung cấp chức năng & gọi lại & sẽ được thực hiện vào đúng thời điểm. Gọi lại của bạn có thể gửi và nhận dữ liệu cũng như thực hiện các tác vụ xử lý tín hiệu khác. Bạn không chịu trách nhiệm quản lý giao diện âm thanh hoặc luồng, và không có &định dạng đàm phán": tất cả dữ liệu âm thanh trong JACK được thể hiện dưới dạng giá trị điểm nổi 32 bit. Đối với những người có kinh nghiệm bắt nguồn từ thế giới Unix, JACK trình bày một API hơi lạ. Hầu hết các API Unix được dựa trên mô hình đọc / ghi được sinh ra bởi & tất cả mọi thứ là một tập tin & trừu tượng mà Unix là đúng nổi tiếng cho. Vấn đề với thiết kế này là nó không tính đến bản chất thời gian thực của giao diện âm thanh, hoặc chính xác hơn, nó không buộc các nhà phát triển ứng dụng phải chú ý đầy đủ đến khía cạnh này của nhiệm vụ của họ. Ngoài ra, nó trở nên khá khó khăn để tạo điều kiện cho inter-ứng dụng định tuyến âm thanh khi các chương trình khác nhau không phải là tất cả chạy đồng bộ. Sử dụng JACK trong chương trình của bạn rất đơn giản, và thường chỉ bao gồm: - gọi jack_client_open() để kết nối với máy chủ JACK. - đăng ký & cổng & để cho phép dữ liệu được di chuyển đến và đi từ ứng dụng của bạn. - đăng ký một &quá trình gọi lại & mà sẽ được gọi là vào đúng thời điểm của máy chủ JACK. - nói với JACK rằng ứng dụng của bạn đã sẵn sàng để bắt đầu xử lý dữ liệu. Có rất nhiều hơn mà bạn có thể làm với giao diện của JACK, nhưng đối với nhiều ứng dụng, đây là tất cả những gì là cần thiết. Ví dụ simple_client.c thể hiện một hoàn chỉnh (đơn giản!) Ứng dụng JACK chỉ sao chép tín hiệu đến cổng đầu vào của nó vào cổng đầu ra của nó. Tương tự như vậy, inprocess.c cho thấy làm thế nào để viết một khách hàng nội bộ & plugin" chạy trong quá trình máy chủ JACK.
lịch sử phiên bản
- Phiên bản 0.109.2 đăng trên 2008-01-30
Một số bản sửa lỗi và cập nhật - Phiên bản 0.109.2 đăng trên 2008-01-30
Chi tiết chương trình
- Mục: Âm thanh & Đa phương tiện > Khác
- Publisher: jackaudio.org/
- Giấy phép: Miễn phí
- Giá: N/A
- Phiên bản: 1.9.10
- Nền tảng: linux