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

Tìm hiểu về midi và xây dựng ứng dụng học nhạc trên android

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 (1.12 MB, 33 trang )

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
----------

BÁO CÁO ĐỒ ÁN 2

Đề tài : Tìm hiểu về Midi và Xây dựng ứng
dụng học nhạc trên Android

Giáo viên hướng dẫn: Thái Thụy Hàn Uyển

Sinh viên thực hiện: K’Long – 17520707

TP.Hồ Chí Minh, tháng 1 năm 2021


MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU ................................................................................ 5
1.1. Giới thiệu đề tài.......................................................................................... 5
1.2. Mục tiêu ..................................................................................................... 5
1.3. Chức năng chính ........................................................................................ 6
1.3.1. Chức năng Kết nối với Midi Controller .............................................. 6
1.3.2. Chức năng chơi nhạc........................................................................... 6
1.3.3. Chức năng thu âm ra file midi ............................................................ 6
1.3.4. Chức năng hiển thị nốt nhạc ............................................................... 6
1.3.5. Chức năng bàn phím ảo ...................................................................... 6
1.3.6. Chức năng chọn âm sắc ...................................................................... 6
1.3.7. Chức năng hiển thị các dữ liệu midi ................................................... 6
CHƯƠNG 2 CÔNG NGHỆ ỨNG DỤNG LIÊN QUAN ................................. 7
2.1 Android Studio ............................................................................................ 7


2.1.1 Giới thiệu hệ điều hành Android ......................................................... 7
2.1.2 Giới thiệu Android studio .................................................................... 7
2.1.3. Cài đặt mơi trường lập trình Android ................................................. 8
2.2 Midi ............................................................................................................. 9
2.2.1 Giới thiệu về Midi ................................................................................ 9
2.2.2 Ưu điểm của MIDI ............................................................................... 9
2.2.3 Kết nối Midi ....................................................................................... 10
CHƯƠNG 3 THIẾT KẾ USECASE ............................................................... 14
2.1. Sơ đồ usecase Tổng quan ......................................................................... 14
2.2. Danh sách các usecase ............................................................................. 14
2.3 Đặc tả usecase ........................................................................................... 15
2.3.1 Use-case Play Instruments ................................................................. 15
2.3.2 Select Instruments .............................................................................. 16
2.3.3 Use-case Recording Midi File (Hiện chỉ khả dụng khi kết nối Midi
Controller) ................................................................................................... 17
2.3.4 Use-case Open Midi File ................................................................... 18
2.3.5 Use-case Select Midi Device ............................................................. 18
2|Page


CHƯƠNG 4 CƠ SỞ DỮ LIỆU ........................................................................ 20
4.1. Cơ sở dữ liệu ............................................................................................ 20
4.2. Cấu trúc dữ liệu của file Midi .................................................................. 20
4.3. Cấu trúc các note trong Midi ứng với Keyboard Midi Controller ........... 23
CHƯƠNG 5 THIẾT KẾ GIAO DIỆN ............................................................ 25
5.1 Danh sách các màn hình chính.................................................................. 25
5.2 Giao diện màn hình .................................................................................. 25
CHƯƠNG 6 TRIỂN KHAI KIỂM THỬ ........................................................ 29
6.1. Cài đặt ...................................................................................................... 29
6.2. Kết nối Midi Controller ........................................................................... 29

6.3. Các thiết bị Midi tương thích ................................................................... 30
6.4. Các thiết bị đã cài đặt kiểm thử ............................................................... 30
CHƯƠNG 7 KẾT LUẬN ................................................................................. 31
6.1. Thuận lợi .................................................................................................. 31
6.2. Khó khăn .................................................................................................. 31
6.3. Kết quả đạt được ...................................................................................... 31
6.4. Hướng phát triển ...................................................................................... 32
CHƯƠNG 7 TÀI LIỆU THAM KHẢO.......................................................... 33

3|Page


LỜI CẢM ƠN
Đầu tiên, em xin gởi lời cảm ơn chân thành đến tập thể quý Thầy Cô
Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM và quý Thầy
Cô khoa Công Nghệ Phần Mềm đã giúp cho nhóm chúng em có những kiến thức
cơ bản làm nền tảng để thực hiện đề tài này.
Đặc biệt, em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Cô Thái
Thụy Hàn Uyển đã tạo điều kiện cho em thực hiện đề tài và giúp em hồn thành
tốt báo cáo mơn học của mình.
Trong thời gian một học kỳ thực hiện đề tài, em đã vận dụng những kiến
thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những
kiến thức mới. Từ đó, em vận dụng tối đa những gì đã thu thập được để hồn
thành một báo cáo đờ án tốt nhất. Tuy nhiên, trong q trình thực hiện, em khơng
tránh khỏi những thiếu sót. Chính vì vậy, em rất mong nhận được những sự góp
ý từ phía các Thầy Cơ nhằm hồn thiện những kiến thức mà em đã học được đờng
thời giúp em có kiến thức để thực hiện tiếp các đề tài khác trong tương lai.

Em xin chân thành cảm ơn quý Thầy Cô!


4|Page


CHƯƠNG 1: GIỚI THIỆU
1.1. Giới thiệu đề tài
Ngày nay, công nghệ ngày càng phát triển và xâm nhập sâu sắc vào tất cả các lĩnh
vực trong cuộc sống. Nhiều ứng dụng được ra đời để phục vụ cho mục đích ngày
càng đa dạng của người sử dụng nhằm giảm bớt gánh nặng cho người dùng về
thời gian, tiền bạc,…
Tương tự như thế, đối với lĩnh vực âm nhạc cũng không thiếu những ứng dụng
phục vụ cho người dùng như nghe nhạc, hát karaoke, chơi nhạc cụ,… Trong đó
có thể kể đến là ứng dụng chơi piano trên điện thoại. Học piano vốn rất tốn thời
gian và giá thành của một chiếc piano không hề rẻ nhưng với ứng dụng chơi piano
trên điện thoại người dùng vừa có thể chơi vào những thời gian rảnh rỗi mà không
mất nhiều thời gian. Chính vì như thế cùng với niềm đam mê âm nhạc mà em
quyết định thực hiện một ứng dụng mang tên EzMidiPiano.
EzMidiPiano là một ứng dụng giúp người dùng có thể thỏa mãn niềm đam mê
Piano của mình, Ứng dụng có thể giúp người dung tạo ra một cây Piano thật sự
bằng cách cung cấp các âm sắc và kết nối Midi cho người dùng. Chỉ cần dùng
một thiết bị Midi Controller, người dùng có thể chơi Piano trên bàn phím Midi
với chất lượng âm sắc cao, Ngồi ra cịn có thể tạo ra một bản nhạc Midi và sử
dụng nó ở bất kì thiết bị nào họ muốn hoặc lưu lại một ý tưởng với những thiệt bị
hiện có (Android smartphone và Midi Controller).

1.2. Mục tiêu
- Xây dựng một ứng dụng chơi Piano cho đổi tượng người dùng đã biết về piano
và có một số kiến thức nhạc lý nhất định.
- Ứng dụng có khả năng kết nối thiết bị Midi và cho phép sử dụng âm sắc của
ứng ụng cho mục đích của người dung.
- Cung cấp các thông tin cần thiết cho người dung về các nốt, âm sắc mà họ

đang sử dụng.
- Tạo điều kiện để lưu lại các bản nhạc mà không tốn nhiều dung lượng như các
úng dụng trước đó với định dạng là file Midi. (.mid; .midi).
5|Page


1.3. Chức năng chính
1.3.1. Chức năng Kết nối với Midi Controller
Midi Controller là một thiết bị điện tử có kết nối Midi, có thể là bàn phím Midi
hay bất kì một thiết bị nào đó khác cho phép kết nối và giao tiếp với các ứng
dụng nhất định.
Ứng dụng cho phép người dung có thể kết nối với Midi Controller và sử dụng
âm sắc của ứng dụng để tạo ra bản nhạc theo ý thích.
1.3.2. Chức năng chơi nhạc
Khi kết nối ứng ứng dụng với Midi Controller, người dung có thể chơi nhạc như
đang chơi trên một cây Piano thực thụ với sự hỗ trợ của âm sắc nhạc cụ ảo.
1.3.3. Chức năng thu âm ra file midi
Chức năng này tạo điều kiện cho người dùng muốn thu âm lại bản nhạc mình vừa
chơi và có thể mở file, hoặc xử lý chúng với những ứng dụng chuyên dụng khác.
1.3.4. Chức năng hiển thị nốt nhạc
Đây là một tính năng cho phép người dung có thể mở lại file midi của mình hoặc
bất kỳ file midi nào và hiển thị các nốt nhạc có trong file đó.
1.3.5. Chức năng bàn phím ảo
Chức năng này hiển thị cho người dung các nốt mà người dung đang ấn trên màn
hình của điện thoại theo thời gian thực.
1.3.6. Chức năng chọn âm sắc
Ngoài chơi nhạc ứng dụng còn cung cấp chức năng cho phép người dung có thể
thay đổi âm sắc của nhạc cụ, khơng chỉ có Piano, mà cịn có nhiều âm sắc khác
như String, Organ, Synth …. Tạo nên một kho âm sắc đa dạng cho người dung.
1.3.7. Chức năng hiển thị các dữ liệu midi

Ứng dụng sẽ hiển thị đến người dùng những thông tin về nhận và truyền dữ liệu
midi qua giao tiếp với MidiController, bao gồm nốt nhạc (dưới dạng số
nguyên), các MidiEvent, trạng thái của chúng …

6|Page


CHƯƠNG 2 CÔNG NGHỆ ỨNG DỤNG LIÊN QUAN
2.1 Android Studio
2.1.1 Giới thiệu hệ điều hành Android
Giới thiệu chung về hệ điều hành android Android là một hệ điều hành di động
dựa trên nền tảng linux phiên bản 2.6 dành cho các dòng điện thoại SmartPhone.
Đầu tiên được ra đời bởi cơng ty liên hợp Android, sau đó được Google mua lại
và phát triển từ năm 2005 và trở thành một hệ điều hành di động mã ng̀n mở,
miễn phí, mạnh mẽ và được ưa chuộng cao trên thế giới. Hệ điều hành android
một hệ điều hành rất mạnh mạnh, có bảo mật cao, hỗ trợ được nhiều công nghệ
tiên tiến như 3G, GPS, EDGE, Wifi.. tương thích với nhiều phần cứng, hỗ trợ
nhiều loại bộ nhập dữ liệu như keyboard, touch và trackball. Android là hệ điều
hành di động nên có khả năng kết nối cao với các mạng khơng dây. Hỗ trợ cơng
nghệ OpenGL nên có khả năng chơi các phương tiện media, hoạt hình cũng như
trình diễn các khả năng đồ họa khác cực tốt, là tiền đề để phát triển các ứng dụng
có giao diện phức tạp chẳng hạn như là các trò chơi. Năm 2008, hệ điều hành
android đã chính thức mở tồn bộ mã ng̀n, điều đó cho phép các hãng điện
thoại có thể đem mã nguồn về tùy chỉnh, thiết kế lại sao cho phù hợp với mỗi mẫu
mã điện thoại của họ và điều quan trọng nữa là hệ điều hành mở này hồn tồn
miễn phí, khơng phải trả tiền nên giúp họ tiết kiệm khá lớn chi phí phát triển hệ
điều hành. Với Google, vì android hồn tồn miễn phí, Google khơng thu tiền từ
những hãng sản xuất điện thoại, tuy không trực tiếp hưởng lợi từ android nhưng
bù lại, những dịch vụ của hãng như Google Search, Google Maps,... nhờ có
android mà có thể dễ dàng xâm nhập nhanh vào thị trường di động vì mỗi chiếc

điện thoại được sản xuất ra đều được tích hợp hàng loạt dịch vụ của Google. Từ
đó hãng có thể kiếm bội, chủ yếu là từ các ng̀n quảng cáo trên các dịch vụ đó.
2.1.2 Giới thiệu Android studio
Android Studio là một môi trường phát triển tích hợp (IDE) được Google xây
dựng và cung cấp miễn phí cho các nhà phát triển ứng dụng Android. Android
7|Page


studio dựa vào IntelliJ IDEA, là một IDE tốt cho nhất Java hiện nay. Do đó
Android Studio sẽ là mơi trường phát triển ứng dụng tốt nhất cho Android.
2.1.3. Cài đặt mơi trường lập trình Android
Cài đặt JAVA JDK
Bước 1: Tải file cài đặt từ đường dẫn:
/>Lưu ý: Chọn phiên bản tương ứng với hệ diều hành đúng với máy đang sử dụng.
Bước 2: Mở file cài đặt “jdk-*.exe” để tiến hành cài đặt
Bước 3: Cấu hình biến mơi trường cho Java. Việc này không bắt buộc, nhưng nếu
trên máy tính của cài đặt nhiều phiên bản Java, thì việc cấu hình là cần thiết để
xác định phiên bản java nào mặc định được sử dụng.

8|Page


2.2 Midi
2.2.1 Giới thiệu về Midi
MIDI là cụm từ viết tắt của Musical Instrument Digital Interface, có nghĩa là Giao
Diện Số Hố Nhạc Cụ. Đó là một giao thức truyền thông tin âm nhạc theo chế độ
thời gian thực.
MIDI được phát triển vào đầu những năm 1980 do một liên hợp các nhà sản xuất
synthesizer quốc tế. Vào thời điểm đó có hai nhiệm vụ được đưa ra. Thứ nhất:
Làm thế nào để một bàn phím có thể điều khiển cao độ, rung, bend, Pedal vang...

của bàn phím khác. Thứ hai: Làm thế nào để đồng bộ các thiết bị có tempo chẳng
hạn như Sequencer, Drums machines... làm cho chúng chạy cùng tốc độ với nhau.
Từ đó các nhà sản xuất lớn như Roland, Sequential Circuits và Oberheim đã
nghiên cứu ra một giao diện chuẩn đa năng (Universal Standard Interface) và sau
này trở thành MIDI.
MIDI là một dạng giao tiếp. Nó là một giao thức máy tính hay ngơn ngữ truyền
thông tin giữa hai hay nhiều thiết bị MIDI. Cũng như máy tính hay tất cả các giao
tiếp khác, MIDI bao gồm những thông điệp (messages) giữa các thiết bị đầu cuối
mà hiểu được chung giao thức. Cũng có thể hiểu đơn giản, bạn là một thiết bị khi
bạn nói chuyện với ai đó khác (thiết bị khác).
Nếu một thiết bị điện tử được trang bị MIDI, nó có thể hiểu được giao thức MIDI
và do vậy nó có thể giao tiếp với bất kỳ thiết bị nào được trang bị MIDI khác, hay
bất kỳ sản phẩm nào từ các hãng khác nhau. Ví dụ đàn Keyboard Yamaha có thể
gửi thông điệp đến một Drum machine của hãng Roland, bởi vì tất cả các thiết bị
được trang bị giao thức MIDI đều tương thích với nhau.
2.2.2 Ưu điểm của MIDI
Có nhiều thuận lợi của định dạng MIDI:
• Kích thước file Midi nhỏ nhẹ, kích thước chỉ khoảng vài trăm kb.

9|Page


• Các phần khác nhau của bản nhạc có thể được gán cho bất kỳ nhạc cụ nào
mà bạn muốn, và midi có thể được chỉnh sửa dễ dàng qua các phần mềm
chuyên dụng.
• Midi lưu giữ âm nhạc đầy đủ về các thông tin như nốt nhạc, tốc độ, hóa
biểu… có thể được hiển thị và chỉnh sửa dễ dàng khi dùng các chương trình
khác nhau.
2.2.3 Kết nối Midi
Thơng điệp MIDI được gửi đi từ cổng MIDI OUT của một thiết bị tới cổng MIDI

IN của một thiết bị khác qua một cáp nối MIDI (MIDI cable). Để gửi một thông
điệp từ đàn keyboard tới máy tính hay bất kỳ thiết bị nào, bạn phải dùng cáp MIDI
để nối cổng MIDI OUT của đàn keyboard này tới cổng MIDI IN của máy vi tính.
Để gửi lại thông điệp MIDI ngược trở lại đàn keyboard, bạn cần nối cáp MIDI từ
cổng MIDI OUT của vi tính với cổng MIDI IN của đàn Keyboard.
OUT Port - Thông điệp MIDI được gửi ra khỏi một thiết bị qua cổng này. Nếu
bạn chơi nốt C4 trên bàn phím, thông điệp "chơi nốt C4" này được truyền ra ngoài
bằng đường OUT Port.
IN Port - Thông điệp MIDI được nhận vào một thiết bị đều qua cổng này.
Thru Port - Thông điệp MIDI được nhận vào thiết bị MIDI qua cổng IN và được
chuyển qua cổng Thru của thiết bị đó để từ đó có thể được chuyển qua một thiết
bị thứ ba mà thôngn tin vẫn không thay đổi. Cổng này được dùng khi có một thiết
bị MIDI gửi và nhiều thiết bị MIDI nhận .

10 | P a g e


Để nối máy tính với keyboard ta cần một cáp nối MIDI một đầu là 2 chấu cắm 5
chân nối vào đàn, đầu kia là một chấu 15 chân nối với sound card qua cổng
MIDI/Gameport. Hai đầu 5 chân IN và OUT được nối với hai đầu OUT và IN
của Keyboard (IN vào OUT và OUT vào IN)
Nhưng hiện nay Midi đã có 1 số thay đổi, chúng ta khơng nhất thiết phải dung
cổng kết nối 5 chân mà có thể sử dụng một cable usb 2.0 để kết nối với máy tính
qua đường host. Chính vì điểm này, khả năng kết nối của Midi Controller với
các thiết bị khác (trong đó có Smartphone) được mở rộng.
Một Smartphone có thể kết nối với Midi Controller qua một cổng USB OTG.
(Đây là một adapter chuyển đổi cổng hiện có của Smartphone (micro usb, type
C, Lightning) sang cổng USB 3.0 và kết nối với cổng host của Midi Controller)

2.2.4. Midi Chanel

MIDI cho phép gửi dữ liệu theo từng đường riêng rẽ cùng một lúc, mỗi đường
này là một kênh MIDI (Channel). Mỗi kênh này được gán một số định danh.
11 | P a g e


Nếu một nốt được chơi trên thiết bị A, nó được gửi kèm một số định danh kênh
MIDI. Nếu thiết bị B được đặt cùng kênh với thiết bị A, nó sẽ đáp lại bằng cách
chơi nốt đó. Nếu thiết bị B được đặt ở một kênh khác, nó khơng nhận được
thông điệp này mặc dù về mặt lý thuyết đã được nối bằng cáp MIDI.
MIDI có 16 kênh khác nhau, và chúng đều có chức năng sau. Mỗi kênh đều có
thể chứa tất cả các loại thơng điệp MIDI nhưng chúng đều được tách biệt.
Thông điệp của kênh 1 khi được gửi đi không bị ảnh hưỏng bởi các kênh 2,
kênh 3...
Nói cách khác, Midi cho phép các kênh khác nhau hoạt động riêng biệt nhau
nhưng đờng thời có thể mix các kênh này lại với nhau để tạo nên một bản nhạc
kĩ thuật số hoàn chỉnh.
2.2.5 Standard MIDI Files (SMF)
Standard MIDI Files là tập tin dữ liệu Sequencer MIDI. Standard MIDI Files
ban đầu được dùng làm phương tiện trao đổi dữ liệu giữa các thiết bị sequencer
từ nhiều nhà sản xuất khác nhau. Sau đó nó được dùng làm định dạng file MIDI
chuẩn cho hệ điều hành Windows và các ứng dụng multimedia.
MIDI files sử dụng định dạng Chunky (theo từng khoang), tương tự như định
dạng của Electronic Arts -IFF hay định dạng của Microsoft/IBM - RIFF. Các
tập tin dạng này chứa các khoang khác nhau, mỗi khoang chứa một số dạng dữ
liệu mà chương trình có thể đọc được. MIDI File được cấu tạo bởi hai loại
khoang: Khoang tiêu đề, chứa các thông tin về trật tự tracks, độ phân giải của
thời gian (timing resolution), và khoang tracks chứa các dữ liệu MIDI và các dữ
liệu khác.
MIDI Files có thể có một trong ba định dạng. Số định dạng được lưu ở khoang
tiêu đề chỉ ra các khoang tracks được thể hiện như thế nào. Các định dạng này

là:
Format 0: Các tập tin này chỉ chứa một track nhưng nhiều kênh (multi-channel).
Định dạng này được dùng thích hợp cho việc playback ở các ứng dụng
multimedia vì kiểu định dạng này có thể được đọc từ đĩa nhanh hơn các định
dạng nhiều rãnh (Multi-track)
Format 1: Những tập tin theo định dạng này chứa nhiều tracks. Track đầu tiên
luôn chứa tất cả tempo và thơng tin về hố biểu, giọng cùng với các dạng dữ
liệu tổng thể (global); Các track cịn lại chứa dữ liệu MIDI. Bởi vì định dạng
Format 1 cho phép dữ liệu MIDI chia thành nhiều kênh khác nhau hay nhiều
tiêu chí khác, nên chúng dễ dàng hiệu chỉnh lại so với Format 0.
12 | P a g e


Format 2: Những tập tin dạng này ít dùng hơn. Nó được dùng cho các thiết bị
sequencer cho phép các track được chơi riêng rẽ và lặp lại (Loop).
Định dạng Midi là định dạng rất hữu dụng và đang được sử dụng ở hầu hết các
giai đoạn của việc tạo ra một bản nhạc. Với sự trợ giúp của VST (nhạc cụ ảo),
Midi là một cơng nghệ khó có thể thay thế ở thời điểm hiện tại trong ngành
công nghiệp âm nhạc. Hiện nay Midi đã có những nâng cấp so với trước đây.
Nhưng đến hiện tại, nó chưa được cơng bố và có thể trong tưởng lai gần, cơng
nghệ này sẽ tiếp cận sớm trong nền công nghiệp âm nhạc.

13 | P a g e


CHƯƠNG 3 THIẾT KẾ USECASE
2.1. Sơ đồ usecase Tổng quan

2.2. Danh sách các usecase
STT

1
2
3
4
5

Tên Use-case
Use-case Play
Instruments
Use-case Select
Instruments
Use-case Recording
Midi File
Use-case Open Midi
File
Use-case Select
Midi Device

Ý nghĩa/Ghi chú
Chơi nhạc tự do qua Midi Controller
Chọn âm sắc cho từng nhạc cụ
Thu âm bài hát thành Midi File
Chức năng mở file Midi
Chức năng lựa chọn thiết bị Midi

14 | P a g e


2.3 Đặc tả usecase
2.3.1 Use-case Play Instruments


Tên use-case Use-case Play Instruments
Tóm tắt
Use-case bắt đầu khi người dùng mở ứng dụng hoặc khi User
Select Midi Device được kích hoạt
Dịng sự kiện 1.Chọn chức năng chơi nhạc và chơi tùy ý.
chính
Dịng sự kiện 1. Nếu người dùng đã kết nối thành công Midi Controller vào
phụ
thì có thể chơi nhạc bằng 2 hình thức là qua Midi Controller
hoặc chạm vào màn hình bàn phím ảo trên điện thoại.
Điều kiện
Khơng có
trước
Điều kiện sau Khơng có

15 | P a g e


2.3.2 Select Instruments

Tên use-case
Use-case Select Instruments
Tóm tắt
Use-case bắt đầu khi người dùng chọn chức năng Select
Sound
Dòng sự kiện
1. Mở ứng dụng
chính
2. Chọn chức năng Select Sound.

3. List Sound hiện lên
4. User chọn bất kì sound u thích nào
5. Hệ thống sẽ kích hoạt sound
Dịng sự kiện
phụ

1. Nếu xảy ra lỗi trong quá trình này, hệ thống sẽ đưa sound
về mặc định là sound “Grand Piano”

Điều kiện
trước
Điều kiện sau

1.Người dung đã mở ứng dụng
Khơng có

16 | P a g e


2.3.3 Use-case Recording Midi File (Hiện chỉ khả dụng khi kết nối Midi
Controller)

Tên use-case
Use-case Recording Midi File
Tóm tắt
Use-case bắt đầu khi người dùng chức năng Recording trên
thanh Menu
Dòng sự kiện 1. Người dùng chọn button Recording trên Menu.
chính
2. Hệ thống hiển thị danh sách các thông số cho người dung

chọn.
3. Người dùng chọn các thông số phù hợp (tempo, nhịp …)
4. Người dùng chơi bản nhạc và chọn lưu
Dòng sự kiện 1. Khi người dùng chọn Cancel, dialog Recording Midi File
phụ
sẽ tắt đi
Điều kiện
Khơng có
trước
Điều kiện sau Khơng có

17 | P a g e


2.3.4 Use-case Open Midi File

Tên use-case
Use-case Open Midi File
Tóm tắt
Use-case bắt đầu khi người dùng chọn chức năng Open Midi
File trên giao diện
Dòng sự kiện 1. Chọn tệp midi sẽ được mở
chính
2. Chọn OK
3. Midi File sẽ được mở và Score cũng được hiện lên
4. Người dùng chọn Play, Stop Midi File
Dịng sự kiện
phụ
Điều kiện
trước

Điều kiện sau

1. Người dùng có thể chọn tất hoặc hiện bàn phím ảo
Khơng có
Khơng có

2.3.5 Use-case Select Midi Device
Tên use-case
Use-case Select Midi Device
Tóm tắt
Use-case bắt đầu khi người dùng kết nối Midi Device vào
điện thoại (Có thể là qua cổng USB)
Dịng sự kiện
1. Hộp thoại hiện ra
chính
2. Người dùng xác nhận chọn thiết bị mình muốn kết nối
3. Hệ thống sẽ tự động kệt nối vào thiệt bị
Dịng sự kiện Khơng có
phụ
18 | P a g e


Điều kiện
trước
Điều kiện sau

Thiết bị phải tương thích với Ứng dụng (Xem them các thiết
bị tương thích ở trang sau)
Không có


19 | P a g e


CHƯƠNG 4 CƠ SỞ DỮ LIỆU
4.1. Cơ sở dữ liệu
Hệ thống không áp dụng các hệ quản trị cơ sở dữ liệu để lưu dữ liệu ứng dụng.
Mà thay vào đó, các cấu trúc dữ liệu sẽ được ghi vào tứng file. Phần này chủ
yếu mô tả các dữ liệu cần có để có thể chạy ứng dụng, và cách các dữ liệu được
lưu trữ trong mỗi file được tạo ra.
4.1.1 Các sound có trong ứng dụng
STT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17


Tên Sound Tiếng

Accoustic guitar
GrganPiano
Live String
Cool Orgran
Electronic Piano
Session Brass
Finger Bass
Saw Lead
Warm Pad
Bright Pad
Rock Guitar
Sweet Fulte
Live Choir
Accordion
Studio Kit 1
Studio Kit 2
Synth Lead

Kiểu

.sf2
.sf2
.sf2
.sf2
.sf2
.sf2
.sf2
.sf2

.sf2
.sf2
.sf2
.sf2
.sf2
.sf2
.sf2
.sf2
.sf2

Ý nghĩa/ghi chú

Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng
Sound Tiếng


Các sound này được đọc dưới định dạng .sf2 (Sounfont2). Đây là một định dạng
được sử dụng bởi các ứng dụng SoftSynth hoặc các Arranger Keyboard.

4.2. Cấu trúc dữ liệu của file Midi
4.2.1: Cấu trúc dữ liệu của Midi File

20 | P a g e


Bản chất của file midi sử dụng định dạng Chunky (theo từng khoang), tương tự
như định dạng của Electronic Arts -IFF hay định dạng của Microsoft/IBM RIFF. Các tập tin dạng này chứa các khoang khác nhau, mỗi khoang chứa một
số dạng dữ liệu mà chương trình có thể đọc được. MIDI File được cấu tạo bởi
hai loại khoang: Khoang tiêu đề, chứa các thông tin về trật tự tracks, độ phân
giải của thời gian (timing resolution), và khoang tracks chứa các dữ liệu MIDI
và các dữ liệu khác.
MIDI Files có thể có một trong ba định dạng. Số định dạng được lưu ở khoang
tiêu đề chỉ ra các khoang tracks được thể hiện như thế nào
4.2.2: Cấu trúc Midi Message
Message Type

Message Name

Channel
Message

Note Off1

Binary
Data Byte
Value

#1
1000xxxx2 Note
Number

Data Byte
#2
Velocity

21 | P a g e


Channel
Message
Channel
Message
Channel
Message
Channel
Message
Channel
Message
Channel
Message
System
Common
Message

System
Common
Message

System
Common
Message
System
Common
Message
System
Common
Message
System
Common
Message
System
Common
Message
System
Common
Message
System RealTime Message

Note On

1001xxxx

Velocity

1101xxxx

Note
Number

Note
Number
Controller
Number3
Program
Number
Pressure

1110xxxx

Bend LSB4

Bend MSB

Polyphonic Key 1010xxxx
Pressure
Control Change 1011xxxx
Program
Change
Channel
Pressure
(Aftertouch)
Pitch Bend

1100xxxx

System
Exclusive

111100005 Numerous

data bytes
depending
on device
and function
11110001 MTC
Quarter
Frames
11110010 Sequence
Location
LSB
11110011 Song
Number

MIDI Time
Code
Song Position
Pointer
Song Select

Undefined

11110100

none

Undefined

11110101

none


Tune Request

11110110

Status byte
only

End of
Exclusive

11110111

Status byte
only

Timing Clock
(24ppq)6

11111000

Status byte
only

Pressure
Controller
Value
none
none


none

Sequence
Location
MSB
none

22 | P a g e


System RealTime Message
System RealTime Message
System RealTime Message
System RealTime Message
System RealTime Message
System RealTime Message
System RealTime Message

Undefined

11111001

none

Sequence Start

11111010

Sequence
Continue

Sequence Stop

11111011

Undefined

11111101

Status byte
only
Status byte
only
Status byte
only
none

Active Sensing

11111110

Reset

11111111

11111100

Status byte
only
Status byte
only


Các thiết bị Midi giao tiếp với nhau qua các message. Ví dụ các thiết bị sẽ biết
khi nào người dùng ấn phím đàn xuống, khi nào người dùng ấn phím lên.
Tương tự như thế các message như Note on, Not off sẽ được các thiết bị này
truyền đi cho các Syntheizers, và các Syntheizers này có nhiệm vụ xử lý các
message. Trên đây là bảng các message thông dụng trong Midi.

4.3. Cấu trúc các note trong Midi ứng với Keyboard Midi
Controller
4.3.1: Note Number.
C
8
7
6
5
4
3
2
1
0
-1
-2

C#
120
108
96
84
72
60

48
36
24
12
0

D
121
109
97
85
73
61
49
37
25
13
1

D#
122
110
98
86
74
62
50
38
26
14

2

E
123
111
99
87
75
63
51
39
27
15
3

F
124
112
100
88
76
64
52
40
28
16
4

F#
125

113
101
89
77
65
53
41
29
17
5

G
126
114
102
90
78
66
54
42
30
18
6

G#
127
115
103
91
79

67
55
43
31
19
7

A
X
116
104
92
80
68
56
44
32
20
8

Bb
X
117
105
93
81
69
57
45
33

21
9

B
X
118
106
94
82
70
58
46
34
22
10

X
119
107
95
83
71
59
47
35
23
11

Các thiết bị Midi dùng các con số để biểu diễn các nốt và các cao độ trong âm
thanh tự nhiên. Mỗi note sẽ tương ứng với một số được sắp xếp sẵn và các số

23 | P a g e


này khơng thay đổi trong bất kì một thiết bị hay phần mềm xử lý Midi nào, Do
đó chúng có thể giao tiếp với nhau.
4.3.2: Note in Controller.

Các số trên bàn phím tương ứng với các note mà người dung chạm vào. Khi
người dung ấn vào phím C4 (tức phím số 40), một thông điệp (msg) sẽ được
truyền đến Synthesizers cùng các thông số khác nhau như độ lớn, các control
khác nhau như Pedal, Sustan, Pitch Bend và nhờ đó Syntheizers sẽ tái tạo âm
thanh dựa vào các thông số mà Midi truyền vào và biến nó thành âm thanh
Analog mà chúng ta có thể nghe được.

24 | P a g e


CHƯƠNG 5 THIẾT KẾ GIAO DIỆN
5.1 Danh sách các màn hình chính
STT
Tên màn hình
1
Màn hình Midi Piano
2
Màn hình Select
Instruments
3
Màn hình Recording
4
Màn hình Select File

5
Màn hình Select
Device
6
Màn hình hiển thị
Midi Score

Ý nghĩa/Ghi chú
Màn hình chơi nhạc tự do
Màn hình chọn nhạc cụ
Màn hình thu âm file Midi
Màn hình chọn file Midi
Màn hình chọn thiết bị Midi
Hiển thị nốt midi

5.2 Giao diện màn hình
5.2.1 Màn hình Piano Midi

25 | P a g e


×