Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 69 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
69
Dung lượng
1,92 MB
Nội dung
ĐẠ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 K’LONG – 17520707 TRẦN XUÂN LIÊM – 17520680 KHÓA LUẬN TỐT NGHIỆP TÌM HIỄU VỀ MIDI VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ HỌC PIANO TRÊN NỀN TẢNG ANDROID Research Midi and build an application supporting for learning Piano on Android platform KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2021 ĐẠ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 K’LONG – 17520707 TRẦN XUÂN LIÊM – 17520680 KHĨA LUẬN TỐT NGHIỆP TÌM HIỄU VỀ MIDI VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ HỌC PIANO TRÊN NỀN TẢNG ANDROID Research Midi and build an application supporting for learning Piano on Android platform KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN THS THÁI THỤY HÀN UYỂN TP HỒ CHÍ MINH, 2021 THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số …………………… ngày ………………… Hiệu trưởng Trường Đại học Công nghệ Thông tin ………………………………………… – Chủ tịch ………………………………………… – Thư ký ………………………………………… – Ủy viên ………………………………………… – Ủy viên LỜI CẢM ƠN Lời chúng em xin gửi lời cảm ơn chân thành tri ân sâu sắc đến toản ban giám hiệu, quý thầy cô tất cán nhân viên công tác trường Đại học Cơng nghệ Thơng tin – ĐHQG TP.HCM tạo điều kiện, dẫn dắt trang bị cho chúng em kiến thức q báu để hồn thành khóa luận tốt nghiệp Đặc biệt, chúng em xin gửi lời cảm ơn lòng biết ơn sâu sắc tới cô Thái Thụy Hàn Uyển, người dẫn dắt giúp đỡ tạo điều kiện để chúng em hồn thành tốt khóa luận Cám ơn bảo tận tình suốt thời gian qua giúp cho khóa luận chúng em ngày hoàn thiện Chúng em chân thành cảm ơn thầy cô hội đồng chấm luận văn cho chúng em đóng góp quý báu để luận văn thêm hoàn thiện Bên cạnh chúng em cảm gia đình, bạn bè sẵn sàng giúp đỡ chúng em việc học sống Lời cuối chúng em xin chúc người, tập thể cán nhà trường, quý thầy cô thật nhiều sức khỏe, gặp thật nhiều may mắn thành cơng đường TP.Hồ Chí Minh, 24 tháng 06 năm 2021 Nhóm thực K’Long –Trần Xuân Liêm ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: (tiếng Việt): Tìm hiểu Midi xây dựng ứng dụng hỗ trợ học Piano tảng Android TÊN ĐỀ TÀI: (tiếng Anh): Research Midi and build an application supporting for learning Piano on Android platform Cán hướng dẫn: ThS Thái Thụy Hàn Uyển Thời gian thực hiện: Từ ngày 8/03/2021 đến ngày 26/06/2021 Sinh viên thực hiện: K’ Long - 17520707 Trần Xuân Liêm - 17520680 - Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện, kết mong đợi đề tài) Mục tiêu đề tài 1.1.Bối cảnh chọn đề tài Từ trước tới nay, âm nhạc lĩnh vực quan trọng gắn liền với đời sống người, việc phát triển âm nhạc ln quan tâm Ngày bối cảnh công nghệ ngày phát triển, việc kết hợp công nghệ âm nhạc đẩy mạnh, kết đời ứng dụng, phần mềm sản xuất nhạc tiên tiến đại Ở khía cạnh khác, việc tự học nhạc cụ nỗ lực lớn học viên tự học nhạc cụ không dễ, việc tiếp cận phương pháp học tập cách hiệu việc quan trọng Đứng góc độ này, ý tưởng tạo ứng dụng giúp cho việc học nhạc trở nên dễ dàng hình thành Đó kết hợp yếu tố công nghệ lý thuyết âm nhạc, giúp học viên có cách tiếp cận phù hợp hiệu Chính nhóm em định thực đề tài 1.2 Mục tiêu - Tìm hiểu cơng nghệ liên quan đến q trình xây dựng ứng dụng âm nhạc đồng thời áp dụng cơng nghệ vào ứng dụng thực tế - Xây dựng ứng dụng hỗ trợ tốt cho người (ở độ tuổi) tự học nhạc cụ (cụ thể nhạc cụ Piano) với tảng lý thuyết âm nhạc thực hành Phạm vi nghiên cứu - Tập trung tìm hiểu lý thuyết âm nhạc phương pháp tiếp cận với việc học âm nhạc từ mức độ đến nâng cao - Tìm hiểu cơng nghệ bổ trợ cho việc xây dựng ứng dụng liên quan đến âm nhạc (Midi số công nghệ khác) - Xây dựng ứng dụng tảng Android hướng đến đối tượng người dùng có sở thích đam mê học nhạc 2.1 Các tính chính: • • • • • • • Cho phép kết nối điện thoại Android với Midi device Mơ bàn phím piano chơi piano theo thời gian thực Thay đổi âm sắc Piano theo loại khác Thu âm lưu trữ nhạc chơi theo dạng midi Đọc hiển thị nốt nhạc thu âm Hiển thị nốt chơi theo thời gian thực Học nốt hợp âm 2.2 Các tính mở rộng: • Nhận diện hợp âm chơi theo thời gian thực (có kết nối Midi) • Nhận diện nốt đàn Piano thật (không qua Midi connection) • Nhận diện hợp âm chơi đàn Piano thật (không qua Midi connection) Đối tượng nghiên cứu - Các công nghệ: + Android Java + SQLite + C/C++ JNI + Midi (Musical Instrument Digital Interface) + Audio Processing - Đối tượng phạm vi đề tài hướng đến: + Người dùng đam mê âm nhạc + Các trung tâm dạy nhạc Phương pháp thực - Nhóm lên kế hoạch thực hiện, trao đổi với giảng viên hướng dẫn để định hướng đề tài - Phương pháp thực hiện: o Tìm hiểu đọc tài liệu, phân tích ứng dụng liên quan o Phân tích thiết kế hệ thống, thiết kế giao diện database o Xây dựng tính bật o Triển khai kiểm thử Kết mong đợi - Xây dựng ứng dụng có tính thực tế đáp ứng cầu người dung - Có thể dễ dàng mở rộng phát triển chức tương lai - Ứng dụng tiếp cận nhiều đối tượng khác Kế hoạch thực hiện:(Mô tả kế hoạch làm việc phân công công việc cho sinh viên tham gia) STT Nội dung công việc Thời gian thực Phân công Phase 1: Tìm hiểu lý thuyết âm nhạc cơng nghệ liên quan 1.1 Tìm hiểu kiến thức âm nhạc liên quan đến nốt nhạc, âm giai, hợp âm phương pháp tiếp cận cho việc học nhạc 07/03/2021 – 13/03/2021 Long, Liêm 1.2 Tìm hiểu kiến thức Midi, xử lý tín hiệu Midi message 14/03/202120/03/2021 Long, Liêm 1.3 Tìm hiểu thuật tốn liên quan đến xử lý âm (FFT) 21/03/2021 - Long, Liêm 27/03/2021 Phase 2: Thiết kế hệ thống 2.1 Thiết kế sở liệu vẽ sơ đồ UML (Usecase, Activity Diagram, Sequence Diagram) 28/03/2021 03/04/2021 Long, Liêm 2.2 Thiết kế giao diện vẽ wireframes cho ứng dụng 04/04/2021 10/04/2021 Liêm 3.1 3.2 Phase 3: Cài đặt triển khai Hiện thực cài đặt chức kết nối Android smartphone với Midi device 11/04/2021 17/04/2021 Long Xây dựng chức mô đàn Piano chơi Piano theo thời gian thực 18/04/2021 - Long 24/04/2021 Hiện thực chức thu âm midi file Xây dựng chức đếm nhịp (metronome) 25/04/2021 01/05/2021 Long, Liêm 3.4 Đọc hiển thị nhạc thu âm 02/05/2021 08/05/2021 Long, Liêm 3.5 Xây dựng database cho chức học hợp âm nốt nhạc 9/05/2021 15/05/2021 Liêm 3.6 Xây dựng chức học hợp âm Piano 16/05/202125/05/2021 Long 3.3 Phase 4: Xây dựng chức mở rộng 4.1 Hiện thực chức nhận diện hợp âm theo thời gian thực có kết nối với Midi device 26/05/202105/06/2021 Long 4.2 Hiện thực chức nhận diện nốt đàn Piano thật (sử dụng thuật toán FFT) 06/06/202108/06/2021 Long 4.3 Hiện thực chức nhận diện hợp âm đàn Piano thật 09/06/202115/06/2021 Long, Liêm 4.4 Kiểm thử triển khai thực tế 16/06/202117/06/2021 Long, Liêm 4.1 4.2 Phase 5: Đánh giá kết đạt được, viết báo cáo Lập bảng đánh giá kết thu sau hoàn thành ứng dụng 18/06/2021 Viết báo cáo 19/06/2021 26/06/2021 Long, Liêm Long, Liêm Xác nhận CBHD TP HCM, ngày 10 tháng 03 năm 2021 (Ký tên ghi rõ họ tên) Sinh viên (Ký tên ghi rõ họ tên) ThS Thái Thụy Hàn Uyển K’ Long Sinh viên (Ký tên ghi rõ họ tên) Trần Xuân Liêm 5.4.1.3 Màn hình hiển thị tệp Midi Hình 5.10 Wireframe hình hiển thị danh sách file Midi 5.4.1.4 Màn hình hiển thị thư mục chứa file Hình 5.11 Wireframe hình hiển thị thư mục chứa file 55 5.4.1.5 Màn hình hiển thị danh sách nhạc cụ Hình 5.12 Wireframe hinh hiển thị nhạc cụ 5.4.1.6 Màn hình chơi file Midi Hình 5.13 Wireframe hình chơi file Midi 56 5.4.1.7 Màn hình hiển thị hợp âm Hình 5.14 Wireframe hình hiễn thị hợp âm 5.4.1.8 Màn hình dialog chọn hợp âm Hình 5.15 Wireframe hình dialog chọn hợp âm 57 5.4.1.9 Màn hình hiển thị phím đàn lớn Hình 5.16 Wireframe hình hiển thị phím đàn lớn 5.4.1.10 Màn hình nhận biết hợp âm Hình 5.17 Wireframe hình nhận biết hợp âm 58 5.4.1.11 Màn hình lưu hợp âm Hình 5.18 Wireframe hình lưu hợp âm 5.5 Thiết kế giao diện hoàn chỉnh 5.5.1 Màn hình ứng dụng Hình 5.19 Màn hình ứng dụng 59 5.5.2 Màn hỉnh hiển thị dialog ghi nhạc file Midi Hình 5.20 Màn hình dialog ghi nhạc file Midi 5.5.3 Màn hình hiển thị tệp Midi Hình 5.21 Màn hình hiển thị tệp Midi 60 5.5.4 Màn hình hiển thị thư mục chứa file Hình 5.22 Màn hình hiển thị thư mục chứa file 5.5.5 Màn hình hiển thị danh sách nhạc cụ Hình 5.23 Màn hình hiển thị danh sách nhạc cụ 61 5.5.6 Màn hình chơi file Midi Hình 5.24 Màn hình chơi file Midi 5.5.7 Màn hình hiển thị hợp âm Hình 5.25 Màn hình hiển thị hợp âm 62 5.5.8 Màn hình dialog chọn hợp âm Hình 5.26 Màn hình dialog chọn hợp âm 5.5.9 Màn hình hiển thị phím đàn lớn Hình 5.27 Màn hình hiển thị phím đàn lớn 63 5.5.10 Màn hình nhận biết hợp âm Hình 5.28 Màn hình nhận biết hợp âm 5.5.11.Màn hình lưu hợp âm Hình 5.29 Màn hình lưu hợp âm 64 Chương TRIỂN KHAI KIỂM THỬ 6.1 Cài đặt Ứng dụng tương thích tốt với Smartphone hệ điều hành Android từ phiên trở lên Quy trình cài đặt ứng dụng dễ dàng, Người dung chọn file apk lựa chọn cài đặt Các bước cài đặt diễn tự động đến cài đặt thành công 6.2 Kết nối Midi Controller Để kết nối thiết bị Midi Controller với điện thoại Android để sử dụng, người dung cần có thiệt bị cần thiết: − Midi cable connection − Usb adapter − Midi Controller Các bước cài đặt Midi Controller: Đầu tiên cần thiết reset thiết bị controller trạng thái bình thường Sau chuẩn bị thiệt bị cần thiết, kết nối Midi cable connection với Usb adaper (thường USB OTG) Sau kết nối dây Midi cắm vào Usb adapter với cổng USB Smartphone Có nhiều chuẩn khác cho cổng USB Có thể microUSB type C USB người dùng nên ý tới cổng tương thích tương ứng mà điện thoại trang bị Sau kết nối vào điện thoại, mở ứng dụng lên hộp thoại xuất hiện, chọn Yes để kết nối thiết bị Midi với ứng dụng Trong trường hợp không nhận thiết bị, người dùng nên tắt ứng dụng, rút dây Midi cắm lại Lỗi khơng nhận USB Midi xảy người dùng mở ứng dụng trước kết nối thiết bị Midi khơng tương thích (Phần mơ tả thiết bị Midi tương thích với ứng dụng có kiểm thử) 65 6.3 Các thiết bị Midi tương thích Dưới danh sách Midi Driver USB tương thích với ứng dụng Hãng sản xuất ID YAMAHA 1177 KORG 1410 ROLAND 2045 MOTU 5840 MCS 2372 CME 28932 Bảng 6.1 Danh sách thiết bị tương thích 6.4 Các thiết bị cài đặt kiểm thử Ứng dụng kiểm thử với số thiết bị sau: − Xiaomi Redmi Note − Xiaomi Redmi Note Pro − Mi SE − Samsung Galaxy M51 − Huawei Honor 8x 66 Chương KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 7.1 Thuận lợi Về bản, chức ứng dụng đạt yêu cầu đặt trước Việc phát triển ứng dụng có hỗ trợ thư viện bên thứ kshoijMidiDriver tích hợp số tính từ project khác nên phần code trở nên hiệu đỡ nặng nề hơn, triển khai nhanh chóng Bên cạnh nhóm có thành viên có kiến thức nhạc lý âm nhạc nên đảm bào tính đắn tính ứng dụng 7.2 Khó khăn Tuy hệ điều hành Android bước cải thiện ứng dụng địi hỏi có giao tiếp real-time với thiết bị khác vấn đề lớn tảng Android Android không thực hỗ trợ tốt cho tác vụ xử lý âm Midi Khơng có cách truy cập thẳng vào phần kernel Android hệ điều hành mở Các phiên Android từ trước tới giao tiếp làm việc với Midi Driver thơng qua hình thức gián tiếp JNI C/C++ điều làm cho việc tiếp cận phát triển ứng dụng dạng trở nên khó khăn thiết kế lẫn triển khai Gần Android 11 mắt, Android hỗ trợ tốt cho Midi, nhiên phiên Android 10 chưa sử dụng nhiều hạn chế định Khi sử dụng Midi Controller, thời gian từ nhấn phím đến thời gian âm phát đến loa gặp độ trễ l (khoảng 30ms), điều làm ảnh hưởng đến trải nghiệm người dùng chưa có cách khắc phục vấn đề thuộc hệ điều hành 67 Làm việc nhóm gặp khó khăn tình hình dịch bệnh căng thẳng phải làm việc trực tuyến tảng ứng dụng, khiến cho việc trao đổi gặp bất lợi 7.3 Kết đạt Kết đạt sau trình tìm hiểu làm việc với Midi dạng tương tự giúp chúng em trao dồi kiến thức quan trọng Tuy có nhiều hạn chế kiến thức công nghệ, việc phát triển ứng dụng mang tính thực tế giúp chúng em có nhiều ý tưởng hồn thiện Do giới hạn mặt thời gian, kiến thức nhiều lí chủ quan khác mà kết ứng dụng chưa đạt hết mong đợi, số chức khơng thể hồn thành Tuy ứng dụng hoạt động ổn định tính ứng dụng hồn thành Chúng em có dự định phát triển ứng dụng lên phiên hoàn thiện (được đề cập hướng mở rộng) đầu tư kĩ lưỡng mặt thời gian công sức 7.4 Hướng phát triển Về ứng đụng chạy ổn định, nhiên tương lai cần có nâng câp cải tiến như: Giảm độ trễ thực kết nối với Midi Controller (Đây điều trực tiếp ảnh hướng đến trải nghiệm người dùng) Xây dựng lại giao diện đẹp mắt hơn, thân thiện với người dùng Phát triển tính nhận biết hợp âm từ phím đàn, hay nhạc theo thời gian thực Deep Learning Phát triển tính dạy học hợp âm phím đàn cho người dùng Tối ưu, tăng tốc độ xử lý chức ứng dụng 68 TÀI LIỆU THAM KHẢO [1] "Kiến thức nhạc lý," [Online] Available: kiến thức nhạc lý cho người bắt đầu [2] "tài liệu Class SynthesizerManager," [Online] Available: Class SynthesizerManager [3] "Phần tương thích với MIDI MusicXML," [Online] Available: midicompatible-part [4] "Tài liệu java," [Online] Available: Learning java [5] "Tài liệu android cho developer," [Online] Available: Android developer [6] kshoji-USB-MIDI-Driver [Online] Available: USB-MIDI-Driver [7] "Thông số kỹ thuật MIDI," [Online] Available: Midi-specifications [8] "Bảng số nốt MIdi," [Online] Available: MIDI_Keyboards [9] "API Java cho lập trình âm nhạc," [Online] Available: Java API for Music Programming [10] AdobeXd [Online] Available: Trang chủ Adobe Xd [11] "Cách tạo wireframe Adobe XD," [Online] Available: How to wireframe [12] "Tài liệu javax.sound.midi," [Online] Available: Thư viên Javax.sound.midi [13] J Six, "TarsosDSP, a Real-Time Audio Processing," in AES 53RD INTERNATIONAL CONFERENCE, London, 2014 69 ... Mục tiêu - Tìm hiểu cơng nghệ liên quan đến trình xây dựng ứng dụng âm nhạc đồng thời áp dụng công nghệ vào ứng dụng thực tế - Xây dựng ứng dụng hỗ trợ tốt cho người (ở độ tuổi) tự học nhạc cụ... TÀI: (tiếng Việt): Tìm hiểu Midi xây dựng ứng dụng hỗ trợ học Piano tảng Android TÊN ĐỀ TÀI: (tiếng Anh): Research Midi and build an application supporting for learning Piano on Android platform... văn tốt nghiệp với đề tài “ Tìm hiểu Midi xây dựng ứng dụng hỗ trợ học Piano tảng Android - Research Midi and build an application supporting for learning Piano on Android platform ” bắt đầu thực