1. Trang chủ
  2. » Cao đẳng - Đại học

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

33 37 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 1,12 MB

Cấu trú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 (0)
    • 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)
  • 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)

Nội dung

GIỚI THIỆU

Giới thiệu đề tài

Ngày nay, sự phát triển mạnh mẽ của công nghệ đã ảnh hưởng sâu rộng đến mọi lĩnh vực trong cuộc sống Nhiều ứng dụng mới được ra đời, phục vụ cho nhu cầu ngày càng đa dạng của người dùng, giúp giảm bớt gánh nặng về thời gian và chi phí.

Trong lĩnh vực âm nhạc, có nhiều ứng dụng hỗ trợ người dùng như nghe nhạc, hát karaoke và chơi nhạc cụ Một trong số đó là ứng dụng chơi piano trên điện thoại, giúp người dùng học và chơi piano một cách dễ dàng mà không tốn nhiều thời gian và chi phí Nhận thấy tiềm năng này cùng với niềm đam mê âm nhạc, tôi đã quyết định phát triển ứng dụng EzMidiPiano.

EzMidiPiano là ứng dụng lý tưởng cho những ai đam mê Piano, cho phép người dùng tạo ra âm thanh Piano chân thực thông qua âm sắc chất lượng cao và kết nối Midi Với một thiết bị Midi Controller, người dùng có thể chơi Piano trên bàn phím Midi và tạo ra bản nhạc Midi để sử dụng trên bất kỳ thiết bị nào, bao gồm cả smartphone Android Ứng dụng cũng hỗ trợ việc lưu giữ ý tưởng sáng tác với các thiết bị hiện có.

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)

Chức năng chính

1.3.1 Chức năng Kết nối với Midi Controller

Midi Controller là thiết bị điện tử kết nối qua giao thức Midi, bao gồm bàn phím Midi và các thiết bị khác Nó cho phép người dùng kết nối với các ứng dụng âm nhạc, sử dụng âm sắc của ứng dụng để sáng tạo bản nhạc theo ý thích.

Khi kết nối ứng dụng với Midi Controller, người dùng có thể trải nghiệm việc chơi nhạc giống như trên một cây piano thực thụ, nhờ vào sự hỗ trợ của âm sắc từ các nhạc cụ ảo.

1.3.3 Chức năng thu âm ra file midi

Chức năng này cho phép người dùng thu âm lại bản nhạc mà họ vừa chơi, đồng thời mở file hoặc xử lý chúng bằng các ứ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 việc chơi nhạc, ứng dụng còn cho phép người dùng thay đổi âm sắc của nhiều loại nhạc cụ, không chỉ riêng Piano, mà còn bao gồm các â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 sử dụng.

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 …

CÔNG NGHỆ ỨNG DỤNG LIÊN QUAN

Android Studio

2.1.1 Giới thiệu hệ điều hành Android

Hệ điều hành Android, được phát triển trên nền tảng Linux phiên bản 2.6, là một hệ điều hành di động mã nguồn mở, miễn phí và mạnh mẽ, ra đời vào năm 2005 bởi công ty Android và sau đó được Google mua lại Android hỗ trợ nhiều công nghệ tiên tiến như 3G, GPS, EDGE và Wifi, tương thích với nhiều phần cứng và thiết bị nhập liệu như bàn phím, cảm ứng và trackball Khả năng kết nối cao với mạng không dây cùng với hỗ trợ công nghệ OpenGL giúp Android phát triển các ứng dụng đa phương tiện và đồ họa phức tạp, đặc biệt là trò chơi Năm 2008, Android chính thức mở mã nguồn, cho phép các hãng điện thoại tùy chỉnh và thiết kế lại hệ điều hành, tiết kiệm chi phí phát triển Mặc dù Google không thu phí từ các nhà sản xuất điện thoại, nhưng nhờ vào sự phổ biến của Android, các dịch vụ như Google Search và Google Maps dễ dàng tiếp cận thị trường di động, tạo ra doanh thu chủ yếu từ quảng cáo.

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

Android Studio, dựa trên IntelliJ IDEA, là một trong những IDE tốt nhất hiện nay cho phát triển ứng dụng Java, và do đó, nó trở thành môi trường lý tưởng cho việc phát triển ứng dụng Android.

2.1.3 Cài đặt môi trường lập trình Android

Bước 1: Tải file cài đặt từ đường dẫn: http://www.oracle.com/technetwork/java/javase/downloads/index.html

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 là một bước quan trọng, đặc biệt khi máy tính của bạn cài đặt nhiều phiên bản Java Mặc dù không bắt buộc, việc cấu hình này giúp xác định phiên bản Java mặc định được sử dụng, đảm bảo các ứng dụng hoạt động đúng cách.

Midi

MIDI, which stands for Musical Instrument Digital Interface, refers to a digital communication protocol for musical instruments It enables real-time transmission of musical information, facilitating seamless interaction between devices.

MIDI, được phát triển vào đầu những năm 1980 bởi một liên hợp các nhà sản xuất synthesizer quốc tế, nhằm giải quyết hai nhiệm vụ chính: đầu tiên là khả năng điều khiển cao độ, rung, bend và pedal vang giữa các bàn phím khác nhau; thứ hai là đồng bộ hóa các thiết bị có tempo như sequencer và máy trống, đảm bảo chúng hoạt động cùng tốc độ.

Major manufacturers like Roland, Sequential Circuits, and Oberheim developed a versatile standard interface, which later evolved into MIDI.

MIDI là một giao thức truyền thông giữa các thiết bị, cho phép chúng trao đổi thông tin một cách hiệu quả Tương tự như máy tính và các hình thức giao tiếp khác, MIDI bao gồm các thông điệp mà các thiết bị đầu cuối có thể hiểu và xử lý Có thể hình dung rằng mỗi thiết bị giống như một người trong cuộc trò chuyện, tương tác và giao tiếp với nhau thông qua MIDI.

Các thiết bị điện tử được trang bị giao thức MIDI có khả năng giao tiếp với nhau, bất kể thương hiệu, giúp chúng tương thích hoàn hảo Ví dụ, một đàn Keyboard Yamaha có thể gửi thông điệp đến một máy trống Roland, nhờ vào sự tương thích của giao thức MIDI giữa các thiết bị.

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

Các phần của bản nhạc có thể được gán cho bất kỳ nhạc cụ nào mà bạn chọn, và việc chỉnh sửa midi trở nên dễ dàng nhờ các phần mềm chuyên dụng.

Midi lưu trữ đầy đủ thông tin âm nhạc như nốt nhạc, tốc độ và hóa biểu, cho phép hiển thị và chỉnh sửa dễ dàng qua các phần mềm khác nhau.

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

Để kết nối một thiết bị MIDI với máy tính hoặc thiết bị khác, bạn cần sử dụng cáp MIDI Để gửi thông điệp từ đàn keyboard đến máy tính, hãy nối cổng MIDI OUT của đàn keyboard với cổng MIDI IN của máy tính Ngược lại, để gửi thông điệp từ máy tính về đàn keyboard, bạn cần kết nối cáp MIDI từ cổng MIDI OUT của máy tính đến cổng MIDI IN của đàn keyboard.

Cổng OUT Port là nơi gửi thông điệp MIDI từ thiết bị ra ngoài Khi bạn chơi nốt C4 trên bàn phím, thông điệp "chơi nốt C4" sẽ được truyền đi qua cổng này.

IN Port - Thông điệp MIDI được nhận vào một thiết bị đều qua cổng này

Cổng Thru trên thiết bị MIDI cho phép thông điệp MIDI nhận từ cổng IN được chuyển tiếp đến thiết bị thứ ba mà không làm thay đổi thông tin Cổng này rất hữu ích khi có một thiết bị MIDI gửi dữ liệu và nhiều thiết bị MIDI nhận cùng lúc.

Để kết nối máy tính với keyboard, bạn cần một cáp MIDI với một đầu 5 chân cắm vào đàn và đầu còn lại là 15 chân kết nối với sound card qua cổng MIDI/Gameport Hai đầu 5 chân IN và OUT được nối tương ứng với hai đầu OUT và IN của keyboard (IN vào OUT và OUT vào IN).

Hiện nay, Midi đã có những thay đổi quan trọng, cho phép người dùng kết nối bằng cáp USB 2.0 thay vì chỉ sử dụng cổng kết nối 5 chân Điều này mở rộng khả năng kết nối của Midi Controller với nhiều thiết bị khác, bao gồm cả smartphone.

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)

MIDI cho phép truyền tải dữ liệu qua nhiều kênh riêng biệt đồng thời, với mỗi kênh được xác định bằng một số định danh riêng.

Khi một nốt nhạc được phát trên thiết bị A, nó sẽ được gửi kèm với một định danh kênh MIDI Nếu thiết bị B được cấu hình cùng kênh với thiết bị A, nó sẽ phản hồi và phát lại nốt đó Tuy nhiên, nếu thiết bị B nằm ở một kênh khác, nó sẽ không nhận được thông điệp, mặc dù hai thiết bị vẫn được kết nối bằng cáp MIDI.

MIDI có 16 kênh riêng biệt, mỗi kênh có khả năng chứa tất cả các loại thông điệp MIDI Tuy nhiên, các thông điệp này được tách biệt để đảm bảo sự độc lập giữa các kênh.

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

THIẾT KẾ USECASE

Danh sách các usecase

STT Tên Use-case Ý 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

Đặc tả usecase

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 chính

1.Chọn chức năng chơi nhạc và chơi tùy ý

1 Nếu người dùng đã kết nối thành công Midi Controller vào 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 trước

Không có Điều kiện sau Không có

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 chính

2 Chọn chức năng Select Sound

4 User chọn bất kì sound yêu thích nào

5 Hệ thống sẽ kích hoạt sound

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

1.Người dung đã mở ứng dụng Điều kiện sau Không có

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 chính

1 Người dùng chọn button Recording trên Menu

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 phụ

1 Khi người dùng chọn Cancel, dialog Recording Midi File sẽ tắt đi Điều kiện trước

Không có Điều kiện sau Không có

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 chính

1 Chọn tệp midi sẽ được mở

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

1 Người dùng có thể chọn tất hoặc hiện bàn phím ảo Điều kiện trước

Không có Điều kiện sau 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 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ị

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) Điều kiện sau Không có

CƠ SỞ DỮ LIỆU

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

Các cấu trúc dữ liệu sẽ được lưu trữ trong từng file, với mục đích mô tả các dữ liệu cần thiết để chạy ứng dụng Bài viết này sẽ giải thích cách thức lưu trữ dữ liệu trong mỗi file được tạo ra.

4.1.1 Các sound có trong ứng dụng

STT Tên Sound Tiếng Kiểu Ý nghĩa/ghi chú

1 Accoustic guitar sf2 Sound Tiếng

3 Live String sf2 Sound Tiếng

4 Cool Orgran sf2 Sound Tiếng

5 Electronic Piano sf2 Sound Tiếng

6 Session Brass sf2 Sound Tiếng

7 Finger Bass sf2 Sound Tiếng

8 Saw Lead sf2 Sound Tiếng

9 Warm Pad sf2 Sound Tiếng

10 Bright Pad sf2 Sound Tiếng

11 Rock Guitar sf2 Sound Tiếng

12 Sweet Fulte sf2 Sound Tiếng

13 Live Choir sf2 Sound Tiếng

15 Studio Kit 1 sf2 Sound Tiếng

16 Studio Kit 2 sf2 Sound Tiếng

17 Synth Lead sf2 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.

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

File MIDI sử dụng định dạng Chunky, tương tự như định dạng IFF của Electronic Arts và RIFF của Microsoft/IBM Các tập tin này bao gồm nhiều khoang, mỗi khoang chứa các loại dữ liệu mà chương trình có thể đọc MIDI File được cấu tạo từ hai loại khoang: khoang tiêu đề, chứa thông tin về trật tự tracks và độ phân giải thời gian, và khoang tracks, chứa dữ liệu MIDI cùng các thông tin 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

Message Type Message Name Binary

Pitch Bend 1110xxxx Bend LSB4 Bend MSB

111100005 Numerous data bytes depending on device and function System

Tune Request 11110110 Status byte only

Sequence Start 11111010 Status byte only System Real-

11111011 Status byte only System Real-

Sequence Stop 11111100 Status byte only System Real-

Active Sensing 11111110 Status byte only System Real-

Các thiết bị Midi giao tiếp thông qua các thông điệp, cho phép chúng nhận biết khi nào người dùng nhấn phím đàn xuống và khi nào người dùng thả phím lên.

Các thiết bị sẽ truyền các thông điệp như Note on và Note off đến các Synthesizers, có nhiệm vụ xử lý những thông điệp này Dưới đây là bảng các thông điệp thông dụng trong MIDI.

Cấu trúc các note trong Midi ứng với Keyboard Midi Controller

Các thiết bị Midi sử dụng các con số để biểu diễn nốt nhạc và cao độ trong âm thanh tự nhiên Mỗi nốt nhạc sẽ được gán với một số tương ứng đã được sắp xếp, giúp cho việc xử lý và tạo ra âm thanh trở nên dễ dàng và chính xác hơn.

24 | 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

Các phím số trên bàn phím tương ứng với các nốt nhạc mà người dùng chạm vào Khi nhấn phím C4 (phím số 40), một thông điệp (msg) sẽ được gửi đến Synthesizers cùng với các thông số như độ lớn và các điều khiển khác như Pedal, Sustain, và Pitch Bend Nhờ vào những thông số này, Synthesizers sẽ tái tạo âm thanh dựa trên dữ liệu MIDI và biến chúng thành âm thanh Analog mà chúng ta có thể nghe được.

THIẾT KẾ GIAO DIỆN

Danh sách các màn hình chính

STT Tên màn hình Ý nghĩa/Ghi chú

1 Màn hình Midi Piano Màn hình chơi nhạc tự do

Màn hình chọn nhạc cụ

3 Màn hình Recording Màn hình thu âm file Midi

4 Màn hình Select File Màn hình chọn file Midi

Màn hình chọn thiết bị Midi

Giao diện màn hình

5.2.4 Màn hình Midi Score (With key)

5.2.5 Màn hình Midi Score (without key)

5.2.6 Màn hình Select Midi Device Dialog

5.2.7 Màn hình Select Midi File

TRIỂN KHAI KIỂM THỬ

Cài đặt

Ứng dụng tương thích tốt với các Smartphone hệ điều hành Android từ phiên bản

Để cài đặt ứng dụng, người dùng chỉ cần chọn file apk và thực hiện theo các bước cài đặt tự động Quy trình này rất đơn giản và sẽ hoàn tất khi cài đặt thành công Ứng dụng yêu cầu hệ điều hành từ 6 trở lên.

Kết nối Midi Controller

Để kết nối được thiết bị Midi Controller với điện thoại Android để sử dụng, người dung cần có những thiệt bị cần thiết:

Các bước cài đặt Midi Controller:

• Đầu tiên nếu cần thiết hãy reset thiết bị controller về trạng thái bình thường

• Sau khi chuẩn bị các thiệt bị cần thiết, kết nối Midi cable connection với Usb adaper (thường là USB OTG)

• Sau đó kết nối dây Midi đã cắm vào Usb adapter với cổng USB của Smartphone

Có nhiều chuẩn khác nhau cho cổng USB, bao gồm microUSB và type C USB Người dùng nên chú ý đến cổng tương thích mà điện thoại được trang bị để đảm bảo kết nối chính xác.

• Sau khi kết nối vào điện thoại, mở ứng dụng lên và hộp thoại xuất hiện, chọn Yes để kết nối thiết bị Midi với ứng dụng

Nếu không nhận được thiết bị, người dùng nên tắt ứng dụng, rút dây Midi ra và cắm lại Lỗi không nhận USB Midi có thể do mở ứng dụng trước khi kết nối hoặc thiết bị Midi không tương thích Dưới đây là danh sách các thiết bị Midi tương thích với ứng dụng đã được kiểm thử.

Các thiết bị Midi tương thích

Dưới đây là danh sách các Midi Driver USB tương thích với ứng dụng

Lưu ý: Đây là danh sách các thiết bị đã được kiểm thử và thành công cao

Các thiết bị đã cài đặt kiểm thử

Ứng dụng đã được kiểm thử với một số các thiết bị sau:

Ngày đăng: 05/09/2021, 20:49

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w