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
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. ...
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ìm kiếm theo từ khóa liên quan:
âm thanh với Irrklang thủ thuật máy tính mẹo vặt máy tính tin học căn bản thủ thuật tin học tự học tin họcGợi ý tài liệu liên quan:
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 314 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 302 0 0 -
Cách phân tích thiết kế hệ thống thông tin quan trọng phần 4
13 trang 217 0 0 -
Thủ thuật chặn web đen bằng phần mềm
10 trang 215 0 0 -
Sửa lỗi các chức năng quan trọng của Win với ReEnable 2.0 Portable Edition
5 trang 212 0 0 -
Xử lý tình trạng máy tính khởi động/tắt chậm
4 trang 211 0 0 -
Bài giảng điện tử môn tin học: Quản trị các hệ thống thông tin quản lý xuyên quốc gia
27 trang 211 0 0 -
Giáo trình Bảo trì hệ thống và cài đặt phần mềm
68 trang 207 0 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 trang 203 0 0 -
Hướng dẫn cách khắc phục lỗi màn hình xanh trong windows
7 trang 202 0 0