
Engine Irrklang, được phát triển bởi Ambiera, cung cấp hai phiên bản: một phiên bản miễn phí dành cho mục đích phi thương mại và một phiên bản trả phí cho các nhà phát triển sản phẩm thương mại. Tính đến thời điểm hiện tại, Ambiera đã phát hành phiên bản Irrklang 1.1.3c, tích hợp nhiều tính năng mới và khắc phục các lỗi từ các phiên bản trước.

Irrklang 1.3 là một engine âm thanh mạnh mẽ, hỗ trợ cả âm thanh 2D và 3D, tương thích với nhiều hệ điều hành phổ biến như Windows, Linux và MacOS. Nó được ứng dụng rộng rãi trong việc phát triển game và các ứng dụng xử lý âm thanh chuyên nghiệp.
Irrklang hỗ trợ đa dạng các định dạng tệp âm thanh, bao gồm:
Bên cạnh khả năng phát các tệp âm thanh, engine còn tích hợp sẵn các hiệu ứng âm thanh cao cấp như Chorus, Compressor, Distorsion, Echo, Flanger Gargle, 3DL2Reverb, ParamEQ và WaveReverb…
Bài viết này sẽ hướng dẫn lập trình với phiên bản miễn phí của Irrklang dành cho hệ điều hành Windows. Để bắt đầu, bạn cần tải bộ thư viện Irrklang từ đây.
Sau khi giải nén, bạn sẽ có bộ công cụ hỗ trợ lập trình âm thanh, bao gồm các tệp thư viện liên kết động (*.dll), tài liệu hướng dẫn sử dụng và các ví dụ minh họa cho Windows và .NET.
Sử dụng ngôn ngữ lập trình Visual C++ 2005 Express, cấu trúc cơ bản của một chương trình sử dụng engine Irrklang như sau:
#include
using namespace irrklang;
#pragma comment(lib, "irrKlang.lib")
int main(int argc, const char** argv) {
ISoundEngine* engine = createIrrKlangDevice();
if (!engine) {
printf("Khong the khoi tao Engine \n");
return 0; // Lỗi khởi tạo engine
}
//Nạp và thực thi file âm thanh thông qua hàm play2d()
engine->play2D("nongnanhanoi.mp3", true);
engine->drop(); // Gỡ bỏ Engine khỏi bộ nhớ
return 0;
}
1. #include - Khai báo file header irrklang.h.
2. using namespace irrklang - Sử dụng không gian tên irrklang để đơn giản hóa việc gọi các hàm và lớp của engine.
3. #pragma comment(lib, "irrKlang.lib") - Chỉ định trình biên dịch liên kết với thư viện irrklang.lib.
4. ISoundEngine* engine = createIrrKlangDevice(); - Khai báo một con trỏ đến đối tượng ISoundEngine và khởi tạo engine với các tham số mặc định.
Để tăng tính rõ ràng của mã, bạn có thể tách lệnh khởi tạo engine thành hai dòng:
ISoundEngine* engine = 0;
engine = createIrrKlangDevice();
Đoạn mã sau kiểm tra xem engine đã được khởi tạo thành công hay chưa:
if (!engine) {
printf("Khong the khoi tao Engine \n");
return 0; // Lỗi khởi tạo Engine
}
5. engine->play2D("nongnanhanoi.mp3", true); - Phát file âm thanh bằng hàm play2d(). Hàm này nhận các tham số sau:
6. engine->drop(); - Giải phóng bộ nhớ đã cấp phát cho engine khi kết thúc chương trình.
Việc xử lý âm thanh thường đòi hỏi nhiều thao tác phức tạp. Irrklang cung cấp một số hàm hỗ trợ sẵn có:
Irrklang cũng hỗ trợ kiểm soát các tình huống âm thanh:
Engine này còn cung cấp các hàm để áp dụng các hiệu ứng âm thanh như Chorus, Compressor, Distortion, Echo, Flanger Gargle, 3DL2Reverb, ParamEq và WavesReverb…
Một tính năng quan trọng khác là khả năng xử lý trực tiếp các giá trị âm thanh trong bộ nhớ, cho phép can thiệp và điều chỉnh âm thanh trước khi phát:
Nếu chương trình không thể phát file *.mp3, hãy sao chép file plugin ikpMp3.dll đi kèm bộ công cụ vào thư mục chứa file chương trình của bạn.
1 nhận xét

