Tải bản đầy đủ (.pdf) (13 trang)

BÁO CÁO BÀI TẬP LỚN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Ứng dụng chơi nhạc Midi

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (930.93 KB, 13 trang )

BÁO CÁO BÀI TẬP LỚN
LẬP TRÌNH HƯỚNG ĐỐI
TƯỢNG
Ứng dụng chơi nhạc Midi

Nhóm:
Huỳnh Văn Bảo 09910001
Nguyễn Hoàng Duy 09910002
GIỚI THIỆU
 Giao diện
GIỚI THIỆU
 Chức năng:
- Đọc và phát được các file có định
dạng *.mid
- Phím đàn thay đổi theo nhạc khi
phát
- Sử dụng chuột, bàn phím để
tương tác với phím đàn.
Cấu trúc chương trình
 Sealed Class Settings, Class Resources,
Class Program: mặc định của hệ thống
khi tạo project
Hệ thống class được thiết kế bởi trường
ĐH Sanford (Mỹ)
Cấu trúc chương trình
 Sử dụng các interface được dựng sẵn
trong bộ công cụ Visual Studio:
- IComponent
- ICollection
Các interface tự tạo:
- IClock


- IMessageBuilder
- IMidiMessage
- PianoControl
Cấu trúc chương trình
 Trong chương trình có sử dụng các
abstract class, sealed class, Interface,
enum, struct
 Sử dụng các đặc điểm của lập trình
hướng đối tượng: kế thừa, kế thừa
giao diện, đóng gói….
 Xử lý các sự kiện chuột, bàn phím và
các biệt lệ…
Các thành phần chính
lớp ảo cơ sở, dùng
để tạo mẫu chung
cho các lớp Device
con phía dưới
Xuất ra
card âm
thanh
Xuất ra
file
Các thành phần chính
Đối tượng để giả lập
đàn piano (interface)
Có chức năng phân
tích file midi
Xử lý các tương tác
của các nút chức
năng: play, pause,

continue….
OUTPUT DEVICE
Có chức năng giống như card âm thanh.
Tiến trình:

Nhận các thông điệp từ đối tượng ->
qua output Device -> win API: tích hợp
trong thư viện wimm.dll -> xuất ra âm
thanh.
PianoControl
1) Nhận được các thao tác từ chuột, bàn phìm, các
đối tượng khác gừi tới
2) Sau khi control piano nhận được tín hiệu thì sẽ
sinh ra 2 sự kiện Keydown và Keyup.
3) 2 sự kiện trên sẽ gửi thông điệp tới
OutputDevice
SEQUENCE
 Có chức năng đọc file *.mid
 Trong quá trình đọc sẽ xuất hiện sự
kiện ProgressChanged
 Kết thúc quá trình đọc bằng sự kiện
LoadComplete và được thông báo
bằng MessageBox.
SEQUENCER
 Có 3 phương thức: Play, Stop,
Continue….
 3 phương thức này sẽ truyền cho
MidiInternalClock khi đó MidiInternalClock
sẽ sinh ra các sự kiện:
- PlayingCompleted

- ChannelMessagePlayed
- SysExMessagePlayed
- MetaMessagePlayed
- Chased
- Stopped

Khi gọi sự kiện
ChannelMessagePlay
ed nó sẽ gửi thông
điệp tới Output Device
và Piano

Khi gọi sự kiện
chased nó sẽ gửi
thông điệp tới Output
Device
Khi gọi sự kiện
stopped nó sẽ gửi
thông điệp tới
Output Device và
Piano
Cảm ơn sự chú ý của thầy và các
bạn đã lắng nghe….

×