Danh mục

Lập trình xử lý âm thanh với Irrklang

Số trang: 3      Loại file: pdf      Dung lượng: 227.86 KB      Lượt xem: 8      Lượt tải: 0    
10.10.2023

Phí lưu trữ: miễn phí Tải xuống file đầy đủ (3 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Lập trình xử lý âm thanh với Irrklang(Post 05/10/2010) Engine Irrklang được phát triển bởi Ambiera có hai phiên hệ, một miễn phí cho người d và một có phí đối với nhóm phát triển các sản phẩm thương mại. Vào thời điểm thực hiện bài viết này Am 1.1.3c với nhiều tính năng mới và sửa nhiều lỗi trong các phiên bản trước.
Nội dung trích xuất từ tài liệu:
Lập trình xử lý âm thanh với Irrklang Lập trình xử lý âm thanh với Irrklang(Post 05/10/2010) Engine Irrklang được phát triển bởi Ambiera có hai phiên hệ, một miễn phí cho người dvà một có phí đối với nhóm phát triển các sản phẩm thương mại. Vào thời điểm thực hiện bài viết này Am1.1.3c với nhiều tính năng mới và sửa nhiều lỗi trong các phiên bản trước.Đặc điểmIrrklang là engine âm thanh 2D và 3D hỗ trợ nhiều hệ điều hành khác nhau như Windows, Linux và MacOS. Đưcác ứng dụng xử lý âm thanh.Irrklang hỗ trợ các định dạng tệp tin âm thanh sau:  RIFF WAVE (*.wav)  OGG VORBIS (*.ogg)  MPEG-1 Audio Layer 3 (*.mp3)  AMIGA MODULES (*.mod)  IMPULSE TRACKER (*.it)  SCREAM TRACKER 3 (*.s3d)  FAST TRACKER 2 (*.xm)Bản thân engine ngoài việc hỗ trợ các thao tác thực thi tệp tin âm thanh còn dựng sẵn bên trong các hàm xử lý hiCompressor, Distorsion, Echo, Flanger Gargle, 3DL2Reverb, ParamEQ và WaveReverb...Bài viết này hướng dẫn lập trình với phân hệ miễn phí dùng cho Windows. Để lập trình xử lý âm thanh với enginthư viện Irrklang tại đâySau khi giải nén chúng ta có bộ công cụ hỗ trợ lập trình âm thanh gồm các tệp tin thư viện liên kết động (*.dll), hWindows, và .NET.Khởi động EngineSử dụng ngôn ngữ lập trình Visual C ++ 2005 Express. Khuôn mẫu cho một chương trình sử dụng engine Irrklan#includeusing 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 );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;}Diễn giải:1. #include - Nạp file header irrklang.h2. using namespace irrklang - Sử dụng không gian tên irrklang làm không gian tên mặc định3. pragma comment(lib, irrKlang.lib) - Dẫn hướng biên dịch để trình biên dịch nạp thư viện irrklang.lib4. ISoundEngine* engine = createIrrKlangDevice(); - Khai báo một con trỏ thiết bị có kiểu ISoundEngine và khđịnh.Có thể tách dòng lênh trên thành hai lệnh sau để mã chương trình rõ ràng và dễ đọ c hơn:ISoundEngine* engine = 0;engine = createIrrKlangDevice();Đoạn lệnh sau kiểm tra việc nạp và khởi tạo Engine:if (!engine){printf(Khong the khoi tao Engine );return 0; // Lỗi khởi tạo Engine}5. engine->play2D(nongnanhanoi.mp3, true); - Thực thi file âm thanh sử dụng play2d(), đây là hàm thông dụnsử dụng engine Irrklang, hàm này có các tham số như sau: Tham số thứ nhất là đường dẫn và tên tệp tin âm thanh  Tham số thứ hai qui định việc lặp lại. 6. engine->drop(); Khi kết thúc, gọi hàm drop() để gỡ bỏ engine ra khỏi bộ nhớ.Việc xử lý âm thanh đòi hỏi nhiều thao tác phức tạp, trong khuôn khổ bài báo hạn chế nên không thể liệt kê hết ởmà engine Irrklang có hỗ trợ sẵn: stopAllsound(): Dừng việc thực thi các Tệp tin âm thanh  setVolume(giatri): Đặt giá trị âm lượng  setMinDistance(giatri): Đặt khoảng cách đến nguồn âm  setPosition(vị trí): Đặt vị trí nguồn âm Irrklang còn hỗ trợ việc điều khiển các tình huống âm thanh: isFinished(): Dùng để kiểm tra việc đã thực thi xong tệp tin âm thanh  isCurrentlyPlaying(): Kiểm tra tệp tin âm thanh đang được thực thi Khi viết các ứng dụng xử lý âm thanh, chúng ta thường muốn đưa vào các hiệu ứng cho âm thanh như: Chorus,Gargle, 3DL2Reverb, ParamEq và WavesReverb,... Irrklang xây dựng sẵn một số hàm chức năng để đáp ứng yê enableEchoSoundEffect(): Bật chế độ nhại (vọng) âm  enableChorusSoundEffect(): Bật chế độ hòa hợp âm  disableAllEffects(): Tắt hết các hiệu ứng Không thể bỏ qua một chức năng rất quan trọng đó là thực thi các giá trị âm thanh được nạp trực tiếp vào bộ nhớvới lập trình xử lý âm thanh, chúng ta có thể can thiệp đến từng giá trị của âm t hanh và xử lý nó trước khi cho th addSoundSourceFromMemory(): hàm dùng với quá trình xử lý âm thanh trong bộ nhớ  startRecordingBufferedAudio(): Bắt đầu thu âm  stopRecordingAudio(): Dừng thu âm  addSoundSourceFromRecordedAudio(): Nạp âm thanh đã thu vào con trỏ nguồn âm để thực thi Chú ý: Nếu trong quá trình thực hiện bạn thấy chương trình không thực thi được một tệp tin *.mp3 thì có thể khikpMp3.dll đi kèm theo với bộ công cụ vào cùng thư mục chứa tệp tin chương t rình của bạn. ...

Tài liệu được xem nhiều: