Hướng dẫn sử dụng SONiVOX JETCreator

Đơn đăng ký sáng tạo nội dung cho Công cụ âm nhạc tương tác JET

1 Giới thiệu

1.1 Tổng quan

Tài liệu này chứa các nguyên tắc dành cho người dùng dành cho SONiVOX JET Creator, một đơn đăng ký tác giả để tạo và kiểm tra tệp JET. JET là một trình phát nhạc tương tác dành cho các thiết bị nhúng nhỏ, bao gồm cả những thiết bị chạy nền tảng Android. API này cho phép các ứng dụng thêm bản nhạc tương tác ở định dạng MIDI để phản hồi các sự kiện chơi trò chơi và hoạt động tương tác của người dùng theo thời gian thực.

JET hoạt động cùng với Bộ tổng hợp âm thanh nhúng (EAS) của SONiVOX, một thiết bị phát MIDI cho Android. Cả công cụ JET và EAS đều được tích hợp vào nền tảng nhúng Android thông qua lớp JetPlayer, cũng như vốn có trong ứng dụng JET Creator. Do đó, tác giả nội dung JET có thể chắc chắn rằng nội dung phát sẽ giống hệt nhau trong cả ứng dụng JET Creator lẫn ứng dụng Android cuối cùng được phát trên thiết bị di động Android.

Ngoài giao diện người dùng đồ hoạ, JET Creator còn có hai chức năng chính. Bước đầu tiên bao gồm việc thu thập tất cả dữ liệu nguồn (tệp MIDI và tệp DLS), thêm các thuộc tính theo thời gian thực của JET và tạo tệp JET (.jet) mà ứng dụng Android sẽ sử dụng. Chức năng thứ hai bao gồm việc kiểm tra các thành phần phát tương tác như khi các thành phần này sẽ diễn ra trong ứng dụng Android.

Ứng dụng JET Creator được viết bằng ngôn ngữ lập trình Python, do đó, bạn cần cài đặt phiên bản Python và WXWidgets hiện tại. Có cả phiên bản Mac và Windows.

1.2 Từ viết tắt và thuật ngữ thông dụng

Bạn cần sử dụng bộ thuật ngữ phổ biến để giảm thiểu sự nhầm lẫn. Vì JET sử dụng MIDI theo một cách riêng, nên không phải lúc nào điều khoản thông thường trong ngành cũng là đủ. Dưới đây là định nghĩa về các thuật ngữ được sử dụng trên trang này và trong ứng dụng JET Creator:

Kênh: Dữ liệu MIDI liên kết với một kênh MIDI cụ thể. MIDI tiêu chuẩn cho phép 16 kênh dữ liệu MIDI, mỗi kênh thường liên kết với một nhạc cụ cụ thể.

Controller (Bộ điều khiển): Một sự kiện MIDI bao gồm số kênh, số tay điều khiển và giá trị tay điều khiển. Thông số MIDI liên kết nhiều số tay điều khiển với các chức năng cụ thể, chẳng hạn như âm lượng, biểu thức, bàn đạp duy trì, v.v. JET cũng sử dụng các sự kiện của bộ điều khiển như một phương tiện để nhúng thông tin điều khiển đặc biệt vào trình tự MIDI để cung cấp tính năng đồng bộ hoá âm thanh.

DAW: Máy trạm âm thanh kỹ thuật số. Một thuật ngữ thông dụng để chỉ các ứng dụng MIDI và sắp xếp trình tự âm thanh như Logic, SONAR, Cubase và các ứng dụng khác.

EAS (EAS): Bộ tổng hợp MIDI được nhúng. Tên của công cụ bộ tổng hợp MIDI SONiVOX.

JET: Công cụ tương tác Jet. Tên của công cụ phát nhạc tương tác SONiVOX JET.

M/B/T: Đo lường, nhịp và tích tắc

Phân đoạn: Một phần âm nhạc, chẳng hạn như đoạn điệp khúc hoặc câu, là một thành phần của bản sáng tác tổng thể. Trong JET, một phân đoạn có thể là toàn bộ tệp MIDI hoặc được lấy từ một phần của tệp MIDI.

SMF-0: Loại tệp MIDI tiêu chuẩn 0, một tệp MIDI chứa một bản nhạc duy nhất nhưng có thể được tạo thành từ nhiều kênh dữ liệu MIDI.

SMF-1: Loại tệp MIDI tiêu chuẩn 1, một tệp MIDI chứa thêm một bản nhạc và mỗi bản nhạc có thể được tạo thành từ một hoặc nhiều kênh dữ liệu MIDI. Theo quy ước, mỗi kênh được lưu trữ trên một kênh riêng trong tệp SMF-1. Tuy nhiên, bạn có thể có nhiều kênh MIDI trên một hoặc nhiều kênh chứa dữ liệu của cùng một kênh MIDI.

Kênh: Một bản nhạc trong DAW chứa chuỗi sự kiện theo thời gian. Hãy cẩn thận để tránh nhầm lẫn Tuyến đường với Kênh. Tệp MIDI có thể chứa nhiều bản nhạc trong đó có nhiều bản nhạc sử dụng cùng một kênh MIDI.

2 Khái niệm về âm nhạc tương tác của JET

Nhạc tương tác có thể được định nghĩa là nhạc thay đổi theo thời gian thực theo những sự kiện không dự đoán được, chẳng hạn như sự kiện tương tác của người dùng hoặc sự kiện chơi trò chơi. Bằng cách này, nhạc tương tác sẽ hấp dẫn hơn nhiều vì nó có khả năng hoà hợp với năng lượng và tâm trạng của trò chơi gần gũi hơn so với một bố cục soạn sẵn không bao giờ thay đổi. Trong một số ứng dụng và trò chơi, âm nhạc tương tác là trung tâm của lối chơi. Guitar Hero là một trò chơi rất nổi tiếng. Khi người dùng cuối ghi lại thành công các nốt nhạc trên bàn phím, bản nhạc đó sẽ tự điều chỉnh, đồng thời ghi nhận thành công và thất bại. JET cũng cho phép các loại trò chơi dựa trên âm nhạc này.

Có một số phương pháp để tạo và điều khiển nhạc tương tác và JET là một trong những phương pháp như vậy. Phần này mô tả các tính năng của JET và cách sử dụng trong ứng dụng trò chơi hoặc phần mềm. Tài liệu này cũng mô tả cách sử dụng JET để tiết kiệm bộ nhớ trong các thiết bị có kích thước nhỏ, chẳng hạn như điện thoại di động có hỗ trợ Android.

2.1.1 Nén dữ liệu

JET hỗ trợ một định dạng nhạc linh hoạt, có thể dùng để tạo các đoạn nhạc mở rộng với lượng dữ liệu tối thiểu. Bản sáng tác nhạc được chia thành các phân đoạn có thể sắp xếp theo trình tự để tạo ra một bản nhạc dài hơn. Bạn có thể sửa trình tự tại thời điểm tạo tệp nhạc hoặc có thể tự động tạo tệp âm nhạc trong phần kiểm soát của chương trình.

2.1.2 Ví dụ về nhạc tuyến tính


Hình 1: Đoạn nhạc truyền thống

Sơ đồ này cho thấy cách lưu trữ các phân đoạn nhạc. Mỗi phân đoạn được biên soạn dưới dạng một tệp MIDI riêng biệt. Công cụ xử lý hậu kỳ sẽ kết hợp các tệp thành một tệp vùng chứa duy nhất. Mỗi đoạn có thể chứa các bản nhạc thay thế mà người dùng có thể tắt tiếng hoặc bật tiếng để tạo thêm mối quan tâm. Một ví dụ có thể là giọng đồng trong đoạn điệp khúc chỉ được phát đến lần cuối. Ngoài ra, các phân đoạn có thể được hoán vị lên hoặc xuống.

Phần dưới cùng của biểu đồ cho thấy cách kết hợp lại các phân đoạn nhạc để tạo ra một đoạn nhạc tuyến tính. Trong ví dụ này, cầu có thể kết thúc bằng điều chế khoá nửa bước và các phân đoạn còn lại có thể được hoán vị một nửa bước để khớp.

2.1.3 Ví dụ về nhạc phi tuyến tính


Hình 2: Đoạn nhạc phi tuyến tính

Trong sơ đồ này, chúng ta thấy một mảng âm nhạc phi tuyến tính. Tình huống này là một trò chơi bắn súng góc nhìn thứ nhất (FPS) và JET sẽ cung cấp nhạc nền. Đoạn giới thiệu phát khi cấp đang tải, sau đó chuyển đổi theo quyền điều khiển chương trình sang phân đoạn Tìm kiếm. Phân đoạn này được lặp lại vô thời hạn, có thể với các biến thể nhỏ (sử dụng tính năng tắt tiếng/bật tiếng) cho đến khi hoạt động trong trò chơi quyết định một thay đổi.

Khi người chơi ở gần một hang ổ quái vật, chương trình sẽ bắt đầu chuyển đổi đồng bộ sang phân đoạn Nguy hiểm, tăng mức độ căng thẳng của âm thanh. Khi người chơi tiến đến gần hang ổ hơn, các bản nhạc bổ sung sẽ được bật tiếng để tăng độ căng thẳng.

Khi người chơi tham chiến với quái vật, chương trình sẽ bắt đầu chuyển đổi đồng bộ sang phân đoạn Chiến đấu. Phân đoạn này lặp lại vô thời hạn khi trận chiến tiếp tục. Lượt truy cập thưởng tạm thời bật tiếng một bản nhạc trang trí để thông báo cho người chơi về một cuộc tấn công thành công. Tương tự, một bản nhạc khác tạm thời được bật tiếng để biểu thị khi người chơi nhận được Sát thương đặc biệt.

Khi kết thúc trận chiến, nhạc chuyển sang phân đoạn chiến thắng hoặc thất bại dựa trên kết quả của trận chiến.

2.1.4 Đồng bộ hoá tắt tiếng/tắt tiếng

JET cũng có thể đồng bộ hoá chế độ tắt tiếng và tắt tiếng bản nhạc với các sự kiện trong bản nhạc. Ví dụ: trong trò chơi FPS, bạn nên đặt các sự kiện âm nhạc liên quan đến tiền thưởng và thiệt hại càng gần với sự kiện thực tế trong trò chơi càng tốt. Tuy nhiên, chỉ cần bật tiếng bản nhạc tại thời điểm sự kiện trò chơi diễn ra có thể dẫn đến việc một đoạn nhạc bắt đầu ở giữa. Ngoài ra, một đoạn video có thể được bắt đầu từ đầu nhưng sau đó sẽ không được đồng bộ hoá với các bản nhạc khác.

Tuy nhiên, với công cụ đồng bộ hoá JET, một đoạn video có thể bắt đầu vào thời điểm thích hợp tiếp theo và duy trì tính năng đồng bộ hoá. Bạn có thể thực hiện việc này bằng cách đặt một số đoạn nhạc ngắn trên một bản nhạc trang trí. Sự kiện MIDI trong luồng biểu thị điểm bắt đầu của một đoạn video và sự kiện thứ hai biểu thị điểm kết thúc của một đoạn video. Khi ứng dụng gọi hàm cắt JET, đoạn video tiếp theo trong kênh sẽ được phép phát đồng bộ hoá hoàn toàn với nhạc. Nếu muốn, bạn có thể tự động tắt tiếng bản nhạc bằng một sự kiện MIDI thứ hai.


Hình 3: Đã đồng bộ hoá tính năng Ẩn/Bật tiếng

2.2 Đồng bộ hoá âm thanh

JET cung cấp một API đồng bộ hoá âm thanh cho phép đồng bộ hoá việc chơi trò chơi với các sự kiện trong âm thanh. Cơ chế này dựa vào dữ liệu nhúng trong tệp MIDI tại thời điểm tác giả nội dung. Khi phát hiện một sự kiện trong quá trình phát, công cụ JET sẽ tạo một lệnh gọi lại vào chương trình ứng dụng. Bạn có thể điều chỉnh thời gian của lệnh gọi lại cho phù hợp với mọi độ trễ trong hệ thống phát âm thanh, nhờ đó có thể đồng bộ hoá âm thanh và video. Sơ đồ dưới đây cho thấy ví dụ về một trò chơi âm nhạc đơn giản bao gồm việc nhấn các mũi tên trái và phải cùng lúc với nhạc.


Hình 4: Trò chơi âm nhạc

Các mũi tên này biểu thị các sự kiện trong trình tự âm nhạc mà các sự kiện trong trò chơi cần được đồng bộ hoá. Trong trường hợp này, mũi tên màu xanh dương đại diện cho thời điểm người chơi cần nhấn nút bên trái và mũi tên màu đỏ đại diện cho nút bên phải. Mũi tên màu vàng sẽ cho công cụ phát triển trò chơi biết rằng trình tự đã hoàn tất. Người chơi được phép nhấn phím thích hợp trong một khoảng thời gian nhất định trước và sau sự kiện.

Nếu nhận được sự kiện và người chơi chưa nhấn nút, thì bộ tính giờ sẽ được đặt thành một nửa thời lượng của cửa sổ. Nếu người chơi nhấn nút trước khi hết thời gian hẹn giờ, thì trò chơi sẽ đăng ký thành công, còn nếu không, trò chơi sẽ đăng ký không thành công.

Nếu người chơi nhấn nút trước khi nhận được sự kiện, thì bộ tính giờ sẽ được đặt bằng một nửa thời lượng của cửa sổ. Nếu nhận được một sự kiện trước khi hết thời gian hẹn giờ, trò chơi sẽ đăng ký thành công, còn nếu không, trò chơi sẽ đăng ký lỗi. Việc chơi trò chơi cũng có thể bao gồm phần thưởng khi gần với thời gian diễn ra sự kiện thực tế.

3 Tổng quan về hoạt động soạn thảo nội dung JET

Để soạn thảo tệp JET và nghe chúng phát lại một cách tương tác, tác giả nội dung sẽ làm việc trong hai ứng dụng được thiết kế để hoạt động cùng nhau trơn tru. Đầu tiên là ứng dụng là bất kỳ ứng dụng sắp xếp MIDI có sẵn nào hỗ trợ các trình bổ trợ VST (dành cho máy tính) hoặc AU (dành cho máy Mac). Ở đây, tác giả sẽ soạn các tệp nhạc MIDI của họ bằng cách sử dụng trình bổ trợ làm thiết bị tổng hợp. Đơn đăng ký thứ hai là đơn đăng ký JET Creator. Ở đây, tác giả sẽ nhập các tệp nhạc MIDI của họ (và bộ âm thanh DLS2 (không bắt buộc)) và thiết lập các điều kiện để phát lại tương tác trong trò chơi có bật JET. Nếu muốn, tác giả nội dung có thể tạo một tập hợp tuỳ chỉnh các công cụ DLS bằng cách sử dụng trình chỉnh sửa công cụ hỗ trợ định dạng DLS cấp 2. Một trong những ứng dụng như vậy là Awave của MJSoft.

Vui lòng xem tài liệu về Nguyên tắc soạn thảo nội dung của JET để biết thêm thông tin chi tiết về việc tạo nội dung.

4 Cài đặt và khởi chạy JET Creator

JET Creator là một ứng dụng ngôn ngữ python, do đó, bạn phải cài đặt Python và wxPython trên máy của mình.

JetCreator được tạo và thử nghiệm bằng:

Python Phiên bản 2.5.4

wxPython Phiên bản 2.8.7.1

Bạn có thể tải các báo cáo này xuống tại đây:

Máy tính:

  • http://www.python.org/download/releases/2.5.4/
  • http://www.wxpython.org/download.php

MAC:

  • http://wiki.python.org/moin/MacPython/Leopard
  • http://www.wxpython.org/download.php

Sau khi cài đặt Python và wxPython, bạn chỉ cần giải nén hoặc sao chép tất cả các tệp trong thư mục ứng dụng JET Creator vào một thư mục trên ổ đĩa cứng của mình.

Để chạy JET Creator, hãy chuyển đến lời nhắc lệnh và đặt thư mục đến nơi bạn đã cài đặt Python. Tiếp theo, hãy chạy python bằng lệnh:

python jetcreator.py

5 Sử dụng JET Creator

5.1 Các loại tệp

Có một vài loại tệp khác nhau có liên kết với JET Creator.

Tệp dự án .jtc JET Creator. Tệp này chứa tất cả thông tin liên quan đến một dự án JET Creator. Khi bạn Lưu hoặc Lưu dưới dạng thông qua JET Creator, loại tệp này sẽ được lưu.

Tệp .jet JET. Tệp đầu ra này được tạo tự động từ JET Creator mỗi khi bạn lưu dự án JET Creator. Đây là tệp nhóm tất cả thành phần JET lại với nhau thành một tệp duy nhất mà ứng dụng Android sẽ sử dụng. Cung cấp tệp này cho nhà phát triển ứng dụng Android.

Tệp .mid. Đây là tệp MIDI loại 1 tiêu chuẩn mà JET Creator sẽ sử dụng để tạo phân đoạn.

Tệp phân đoạn .seg. Đây là tệp JET Segment. Giao diện này có cùng tên với tệp MIDI tham chiếu nhưng chứa thông tin bổ sung về Phân đoạn.

.zip Zip Lưu trữ tệp. Khi bạn xuất tệp lưu trữ JET, một tệp zip chứa tất cả tài sản (tệp) cần thiết cho JET Creator sẽ được tạo. Hãy sử dụng tính năng này để chuyển các dự án của nhà sáng tạo JET cho người khác.

5.2 Mở hộp thoại

Khi chạy JET Creator lần đầu tiên, bạn sẽ thấy một hộp thoại mở như sau.

<img <="" border="0" height="285" p="" src="/static/images/jet/jc_open_dlg.png" width="450" />

Thao tác Mở sẽ mở một tệp .jtc (tệp JET Creator) hiện có. Sử dụng nút trình duyệt để duyệt tới thư mục bạn đã lưu tệp .jtc.

Thao tác Mới sẽ tạo một tệp .jtc mới.

Thao tác Nhập sẽ nhập tệp JET Archive (.zip).

Thao tác Huỷ sẽ huỷ hộp thoại và thoát khỏi ứng dụng.

5 Cửa sổ chính

Cửa sổ chính của ứng dụng JET Creator sẽ có dạng như hình dưới đây. Có ba phần chính từ trên xuống dưới: chế độ xem phân đoạn, chế độ xem sự kiện và dòng thời gian.

Phần chế độ xem phân đoạn hiển thị một danh sách các phân đoạn hiện tại, là nguồn gốc của tệp MIDI và tệp DLS2 (không bắt buộc). Biểu đồ này cũng cho thấy thời gian bắt đầu và kết thúc của từng phân đoạn, cũng như thời gian mỗi phân đoạn đóng vai trò lượng tử hoá, hoán vị, lặp lại và tắt tiếng các chế độ cài đặt cờ.

Ngay bên dưới chế độ xem Phân đoạn là chế độ xem sự kiện. Phần chế độ xem sự kiện hiển thị tất cả các sự kiện liên kết với một phân khúc nhất định. Các sự kiện chỉ xuất hiện khi phân khúc mà các sự kiện đó được chỉ định được làm nổi bật. Mỗi sự kiện hiển thị loại sự kiện, điểm bắt đầu và điểm kết thúc, chỉ định theo dõi và kênh trung gian, cũng như mã sự kiện của sự kiện đó.

Ngay bên dưới Chế độ xem sự kiện là hiển thị tiến trình. Tiến trình cho biết số chỉ số đo lường của một phân đoạn nhất định cũng như mọi sự kiện liên quan đến phân đoạn đó. Dòng thời gian sẽ thay đổi để hiển thị đoạn hiện được chọn hoặc đang phát. Khi phân đoạn đang phát, bạn có thể kích hoạt một sự kiện trong cửa sổ này bằng cách nhấp vào sự kiện trên màn hình dòng thời gian.


JET Cửa sổ chính dành cho nhà sáng tạo

Các nút dọc theo phía bên trái của cửa sổ chính có chức năng như sau:

Thêm: Hiển thị phân đoạn hoặc cửa sổ sự kiện để thêm phân đoạn hoặc sự kiện mới

Sửa đổi: Hiển thị phân đoạn hoặc cửa sổ sự kiện để cập nhật một phân đoạn hoặc sự kiện hiện có

Xoá: Xoá phân đoạn hoặc sự kiện đã chọn (sẽ yêu cầu xác nhận)

Di chuyển: Hiển thị cửa sổ di chuyển cho phép bạn di chuyển kịp thời các phân đoạn hoặc sự kiện đã chọn

Xếp hàng tất cả: Hàng đợi (chọn) tất cả các phân đoạn để phát

Huỷ hàng đợi tất cả: Bỏ hàng đợi (bỏ chọn) tất cả các phân khúc

Phát: Bắt đầu phát tất cả các phân đoạn trong hàng đợi. Nút này sẽ chuyển thành Dừng nếu có đoạn nào đang phát

Thử giọng: Hiển thị cửa sổ Thử giọng (xem bên dưới)

5.1 Thời hạn phân đoạn

Cửa sổ phân đoạn là nơi các thuộc tính của một phân khúc nhất định được gán và kiểm tra, như minh hoạ trong hình ảnh dưới đây. Ở bên trái cửa sổ cho thấy các thuộc tính của các phân đoạn được lưu trữ trong tệp JET. Ở bên phải cửa sổ, tác giả có thể đặt cờ tắt tiếng, lặp lại và hoán đổi các chế độ cài đặt cũng như thử giọng phân đoạn khi phân đoạn sẽ chơi trong trò chơi JET.

Lưu ý: Các thuộc tính thử giọng (cờ tắt tiếng, lặp lại và hoán vị) không được lưu trữ trong tệp nội dung JET (.jet) mà do chính trò chơi hoặc ứng dụng xác định. Trong ngôn ngữ lập trình, các chế độ cài đặt này tương ứng trực tiếp với các lệnh gọi API đến công cụ JET. Bằng cách đưa các lệnh này vào đây, tác giả nội dung JET có thể mô phỏng cách phân khúc này phản hồi với các lệnh API của ứng dụng trong quá trình chơi trò chơi.

Các tham số phân đoạn có những chức năng sau:

  • Phân đoạn - Đặt tên của phân đoạn
  • Tệp MIDI – Tên và vị trí của tệp MIDI tạo ra phân đoạn. Nút ngay bên phải sẽ mở trình duyệt để xác định vị trí tệp midi trên ổ đĩa cứng.
  • Tệp DLS – Tên và vị trí của tệp DLS2 (nếu có) mà tệp MIDI sử dụng cho phân đoạn đó.
  • Bắt đầu M/B/T – Bắt đầu đo, nhịp và đánh dấu phân đoạn
  • M/B/T kết thúc - Đo lường, nhịp và đánh dấu kết thúc của phân đoạn
  • Lượng tử hoá – Đo lường giá trị để định lượng phân đoạn hiện tại trong khi phát lại

Sau đây là các trường của cuộc thử giọng:

  • Tắt tiếng theo dõi – Hiển thị các bản nhạc MIDI (không phải kênh) trong tệp MIDI. Khi bạn nhấp vào hộp đánh dấu của một bản nhạc, bản nhạc đó sẽ bị tắt tiếng.
  • Kênh – Hiển thị kênh MIDI được chỉ định cho mỗi bản nhạc
  • Tên – Hiển thị sự kiện meta tên bản nhạc (nếu có) cho từng bản nhạc
  • Lặp lại – Cho biết số lần một đoạn sẽ lặp lại trong quá trình phát
  • Hoán vị – Cho biết hoán vị ở nửa âm hoặc nửa bước mà một đoạn sẽ hoán vị trong khi phát
  • Ở bên phải cửa sổ Nghe thử có một vài nút bổ sung. Các chế độ cài đặt này hoạt động như sau:
  • OK – Chọn OK sẽ xác nhận tất cả chế độ cài đặt phân khúc và đóng cửa sổ phân khúc
  • Huỷ - Chọn Huỷ sẽ huỷ mọi thay đổi và đóng cửa sổ phân đoạn
  • Sao chép – Hiển thị cửa sổ Phân đoạn sao chép để nhập nhiều phân đoạn cùng một lúc. Hãy xem bên dưới.
  • Phát/Dừng phân đoạn – Bắt đầu hoặc Dừng phát đoạn bằng cách sử dụng các thuộc tính đoạn đã chỉ định.
  • Tệp MIDI Phát/Dừng – Bắt đầu hoặc Dừng phát tệp MIDI được chỉ định cho phân đoạn đó.
  • Tạm dừng/Tiếp tục – Tạm dừng hoặc Tiếp tục phát.

5.2 Cửa sổ sự kiện

Cửa sổ sự kiện là nơi các thuộc tính sự kiện của một phân đoạn nhất định được chỉ định và thử giọng, như trong hình dưới đây. Để thêm một sự kiện vào một phân đoạn, trước tiên, tác giả phải chọn phân đoạn sẽ chứa sự kiện đó, sau đó chọn nút Thêm. Thao tác này sẽ mở cửa sổ Sự kiện.

Có hai phần chính cho cửa sổ sự kiện. Phần phân đoạn ở bên trái cửa sổ sự kiện chỉ dành cho mục đích hiển thị. Thẻ này cho biết các thuộc tính của đoạn đường. Phần Sự kiện nằm ở bên phải, là nơi bạn có thể chỉ định các sự kiện. Có các tham số sau:

Tên sự kiện - Chỉ định tên cho một sự kiện

Loại sự kiện – Chọn loại sự kiện cần chỉ định.

Bắt đầu M/B/T – Đặt số đo bắt đầu, nhịp và kim đánh dấu nhịp độ khung hình cho sự kiện

M/B/T kết thúc – Đặt số đo kết thúc, nhịp và kim đánh dấu cho sự kiện, nếu có

Kênh âm thanh – Đặt kênh trong đoạn nhất định mà sự kiện sẽ áp dụng

Kênh – Thiết lập kênh MIDI sẽ áp dụng sự kiện. Kênh MIDI phải khớp với kênh MIDI của kênh

Mã sự kiện – Đặt mã sự kiện cho sự kiện. Bạn có thể chỉ định nhiều sự kiện cho cùng một phân khúc, do đó, Mã sự kiện sẽ được dùng để xác định các sự kiện đó

Ở bên phải cửa sổ Nghe thử có một vài nút bổ sung. Các chế độ cài đặt này hoạt động như sau:

OK – Chọn OK sẽ xác nhận tất cả các chế độ cài đặt sự kiện và đóng cửa sổ sự kiện

Huỷ - Chọn Huỷ sẽ huỷ mọi thay đổi và đóng cửa sổ sự kiện

Sao chép – Hiển thị cửa sổ Sự kiện sao chép để nhập nhiều sự kiện cùng lúc. Xem bên dưới.

Phát/Dừng – Bắt đầu hoặc Dừng phát đoạn bằng các thuộc tính của đoạn được chỉ định. Trong khi phân đoạn đang phát, các sự kiện có thể được kích hoạt và thử giọng.

Điều kiện kích hoạt – Kích hoạt sự kiện được chỉ định. Thao tác này sẽ sao chép lệnh API mà trò chơi JET sẽ sử dụng để kích hoạt sự kiện, do đó cung cấp cho tác giả nội dung một phương thức để kiểm tra hành vi của sự kiện.

Tắt tiếng/Bật tiếng – Tính năng Tắt tiếng/Bật tiếng sẽ tắt tiếng hoặc bật tiếng cho bản nhạc được chỉ định sự kiện

Tạm dừng/Tiếp tục – Tạm dừng hoặc Tiếp tục phát.

Để thử hành vi của một sự kiện, bạn có thể chọn nút Phát. Thao tác này sẽ bắt đầu phát. Nút kích hoạt sẽ gửi sự kiện kích hoạt khi được nhấn. Điều này tương đương với việc chọn sự kiện kích hoạt màu xanh lục trong tiến trình.

Lưu ý: Mục đích của sự kiện kích hoạt là bật tiếng một bản nhạc của một phân đoạn khi được kích hoạt, sau đó tắt tiếng bản nhạc đó ở cuối phân khúc của điều kiện kích hoạt. Do đó, hãy đảm bảo cờ tắt tiếng được đặt thành tắt tiếng theo dõi mà một sự kiện kích hoạt sẽ bật tiếng khi nhận được sự kiện kích hoạt.

Vui lòng đọc Phần 6 Nâng cao bên dưới để biết chi tiết về cách hoạt động và hoạt động của các sự kiện kích hoạt.

5.3 Sao chép cửa sổ

Thông thường, khi tạo tệp JET, bạn cần phải tạo hàng chục hoặc thậm chí hàng trăm sự kiện. Bạn cũng có thể cần di chuyển sự kiện. Các cửa sổ Sao chép và Di chuyển cho phép thực hiện việc này. Có 2 cửa sổ Sao chép để tạo nhiều phân đoạn hoặc sự kiện. Chúng có dạng như sau:

Sao chép cửa sổ phân đoạn

Sao chép cửa sổ sự kiện

Cả hai cửa sổ Sao chép đều hoạt động như nhau. Sau khi tạo một phân đoạn hoặc sự kiện ban đầu, bạn có thể chọn nút Sao chép. Các thông số như sau:

Tiền tố tên - Đặt tiền tố cho tên của từng phân đoạn hoặc sự kiện được tạo

Bắt đầu M/B/T - Đặt thời gian bắt đầu cho phân đoạn hoặc sự kiện đầu tiên

Tăng M/B/T – Đặt thời gian giữa các phân đoạn hoặc sự kiện được tạo.

Số – Đặt số lượng phân đoạn hoặc sự kiện bạn muốn tạo. Nếu số này vượt quá độ dài của tệp MIDI (đối với phân đoạn) hoặc phân đoạn (đối với sự kiện), thì các đối tượng đó sẽ không được tạo.

Xem trước – Bản xem trước cho phép bạn kiểm tra các đối tượng được tạo trước khi nói OK để chèn các đối tượng đó.

5.4 Di chuyển cửa sổ

Hàm Di chuyển hoạt động tương tự như hàm Nhân bản vì hàm này cho phép bạn chỉnh sửa nhiều phân đoạn hoặc sự kiện cùng một lúc. Trong trường hợp này, hãy di chuyển chúng kịp thời. Giống như Sao chép, có hai cửa sổ Di chuyển, một cho Phân đoạn và một cho Sự kiện. Các cửa sổ sẽ có dạng như sau:

Di chuyển cửa sổ sự kiện

Để sử dụng Di chuyển, trước tiên hãy chọn các phân đoạn hoặc sự kiện mà bạn muốn di chuyển kịp thời, sau đó nhấp vào nút Di chuyển. Các tham số như sau:

Bắt đầu M/B/T - Đặt thời gian bắt đầu cho phân đoạn hoặc sự kiện đầu tiên

Tăng M/B/T – Đặt thời gian theo M/B/T mà bạn muốn di chuyển đối tượng.

Xem trước – Bản xem trước cho phép bạn kiểm tra các đối tượng được tạo trước khi nói OK để di chuyển các đối tượng đó.

5.5 Thời hạn thử giọng

Khi bạn nhấp vào nút Thử giọng trong cửa sổ chính của ứng dụng JET Creator, cửa sổ Thử giọng sẽ mở ra. Đây là nơi tác giả nội dung hoặc lập trình viên ứng dụng có thể mô phỏng quá trình phát tương tác như có thể xảy ra trong chính ứng dụng hoặc trò chơi dành cho thiết bị di động.

Thời hạn thử giọng JET

Có 4 phần chính trong cửa sổ nghe thử. Phần bên trái hiển thị các phân khúc có sẵn và thời lượng tính bằng giây. Phần giữa hiển thị một danh sách đang chạy gồm các phân đoạn được đưa vào hàng đợi phát và trạng thái phát của các phân đoạn đó. Phần ngoài cùng bên phải hiển thị các cờ tắt tiếng cho phân đoạn đang phát. Mục tiến trình ở dưới cùng giống như trong cửa sổ chính. Bảng này cho thấy phân đoạn đang phát cũng như hình ảnh về mọi điều kiện kích hoạt sự kiện có liên quan đến phân đoạn đó.

Cửa sổ Thử giọng cho phép bạn thêm bất kỳ phân đoạn nào theo thứ tự bất kỳ để phát lại. Để làm điều này, chỉ cần chọn phân đoạn bạn muốn dừng và nhấn vào Hàng đợi. Phân đoạn đó sẽ xuất hiện trong cửa sổ hàng đợi và bắt đầu phát (nếu đó là phân đoạn đầu tiên). Sau đó, bạn có thể chọn bất kỳ phân đoạn hoặc phân đoạn nào khác và dừng chúng để phát lại. Khi các phân đoạn phát xong, phân đoạn tiếp theo trong hàng đợi sẽ bắt đầu phát. Tương tự như các cửa sổ khác của JET Creator, bạn có thể tắt tiếng, bật tiếng, kích hoạt các đoạn video sự kiện, v.v. theo thời gian thực khi mỗi phân đoạn đang phát lại.

Cụ thể, các nút hoạt động như sau:

Hàng đợi – tải phân đoạn đã chọn vào hàng đợi và bắt đầu phát lại

Huỷ và Hàng đợi – huỷ phân đoạn đang phát trước khi xếp phân đoạn đã chọn vào hàng đợi để phát lại

Huỷ hiện tại – huỷ phân đoạn đang phát trong hàng đợi và bắt đầu phát phân đoạn tiếp theo

Dừng - dừng phát lại tất cả phân đoạn trong hàng đợi

Tắt tiếng tất cả - tắt tiếng tất cả các bản nhạc trong đoạn hiện tại

Tắt tiếng Không có – bật tiếng tất cả các bản nhạc trong đoạn hiện tại

Tắt tiếng ban đầu – đặt cờ tắt tiếng ban đầu cho đoạn hiện tại

Việc kết hợp các tuỳ chọn phát này cho phép tác giả hoặc lập trình viên ứng dụng thử giọng bất kỳ hành vi nào mà ứng dụng âm nhạc tương tác có thể gặp phải.

5.6 Trình đơn dành cho nhà sáng tạo trong JET

Các trình đơn JET Creator cung cấp quyền truy cập vào nhiều tham số trong cửa sổ chính cùng với một vài tham số bổ sung.

5.6.1 Menu tệp

Trình đơn tệp chứa các phần tử sau:

Mới – Tạo tệp JET Creator mới (.jtc)

Mở – Mở một tệp JET Creator hiện có

Lưu – Lưu tệp JET Creator hiện đang mở

Lưu dưới dạng – Lưu tệp JET Creator hiện đang mở vào một tệp mới

Nhập dự án – Nhập tệp lưu trữ JET Creator (.zip)

Xuất dự án – Xuất tệp lưu trữ JET Creator (.zip)

Thoát - Thoát khỏi ứng dụng

5.6.2 Chỉnh sửa thực đơn

Trình đơn Chỉnh sửa chứa các phần tử sau:

Hoàn tác - Hoàn tác sẽ hoàn tác chỉnh sửa cuối cùng được thực hiện

Làm lại - Làm lại sẽ làm lại thao tác hoàn tác cuối cùng

Cắt – Sao chép tham số đã chọn vào bảng nhớ tạm rồi Xoá phần lựa chọn

Sao chép – Sao chép tham số đã chọn vào bảng nhớ tạm và giữ phần lựa chọn

Dán – Dán tham số đã chọn

5.6.3 Nhật Bản

Trình đơn Chỉnh sửa chứa các phần tử sau:

Thuộc tính – Hiển thị cửa sổ Mức độ ưu tiên của nhà sáng tạo JET. Cửa sổ này cho phép bạn đặt các điều kiện sau đây cho một tệp JET nhất định:

Thông tin bản quyền – Chứa thông tin bản quyền để chèn vào tệp JET

Bộ điều khiển Chase – Tuỳ chọn để đuổi bộ điều khiển (bật/tắt). Tính năng này thường sẽ ở trạng thái BẬT.

Xoá các bản nhạc trống – Xoá mọi bản nhạc MIDI trống

5.6.4 Phân đoạn

Trình đơn Phân đoạn chứa các phần tử sau:

Thêm Phân đoạn – Hiển thị cửa sổ Phân đoạn

Cập nhật phân khúc – Cập nhật các thuộc tính của phân khúc

Xóa phân đoạn – Xóa phân đoạn hiện tại khỏi Danh sách phân đoạn

5.6.5 Trợ giúp

Trình đơn trợ giúp sẽ chứa ít nhất các thành phần sau:

JET Creator Help (Trợ giúp nhà sáng tạo JET) sẽ ra mắt tài liệu trợ giúp dạng PDF hoặc chuyển đến phần trợ giúp trực tuyến

Giới thiệu – Số phiên bản của nhà sáng tạo JET, thông tin về SONiVOX

6 giải thích về sự kiện kích hoạt

Việc chia nhỏ tệp MIDI thành các phân đoạn riêng lẻ (phi tuyến tính) và xếp hàng các phân đoạn đó để phát trong trò chơi dựa trên các sự kiện trong trò chơi là một cách để tương tác với các tệp nhạc JET. Sự kiện kích hoạt là một phương thức bổ sung để phát lại tính tương tác. Bạn có thể kết hợp cả hai thành phần trong một trò chơi hoặc ứng dụng tương tác.

Sự kiện kích hoạt cho phép:

  1. Bạn có thể bật hoặc tắt các bản nhạc trong một phân đoạn MIDI dựa trên các sự kiện của trò chơi. Ví dụ: người soạn có thể sáng tác hai bản nhạc trống, một bản nhạc nhanh và một bản nhạc chậm. Nếu hành động trong một trò chơi diễn ra nhanh thì bản nhạc trống nhanh có thể phát. Nếu hành động trong trò chơi bị chậm, thì bản nhạc trống chậm có thể phát.
  2. Bạn có thể so sánh các hành động của người dùng với các sự kiện kích hoạt được chèn sẵn vào tệp nhạc ở những vị trí phù hợp với âm nhạc. Dựa trên kết quả, hoạt động tính điểm hoặc thực hiện các hành động khác trong trò chơi có thể diễn ra.
  3. Bạn có thể đồng bộ hoá các hiệu ứng chuyển đổi âm nhạc giữa các cấp độ hoặc chuỗi hành động sao cho liền mạch về mặt âm nhạc.

Trong trường hợp này, JET sử dụng các sự kiện MIDI CC tiêu chuẩn để thực hiện những thao tác này và đồng bộ hoá âm thanh. Bộ điều khiển mà JET sử dụng nằm trong số các tay điều khiển chưa được xác định để sử dụng cụ thể theo quy cách. Sau đây là định nghĩa cụ thể về tay điều khiển:

Bộ điều khiển 80-83 Dành riêng cho ứng dụng dùng

Điểm đánh dấu sự kiện của tay điều khiển 102 JET

Bộ điều khiển Điểm đánh dấu đoạn video 103 JET

Bộ điều khiển 104-119 Dành riêng để sử dụng trong tương lai

6.1 Bút đánh dấu kẹp JET (CC103)

Bộ điều khiển 103 được dành riêng để đánh dấu các đoạn video trong một bản nhạc MIDI có thể được kích hoạt bằng lệnh gọi API JET_TriggerClip. Mã đoạn video được mã hoá bằng 6 bit thấp của giá trị tay điều khiển. Bit 6 được đặt thành 1 để cho biết điểm bắt đầu của một đoạn video và được đặt thành 0 để cho biết điểm kết thúc của một đoạn video.

Ví dụ: để xác định một đoạn video có mã đoạn video là 1, tác giả sẽ chèn một sự kiện trên tay điều khiển MIDI với bộ điều khiển=103 và giá trị=65 ở đầu đoạn video và một sự kiện khác có bộ điều khiển=103 và giá trị=1 ở cuối đoạn video. Khi gọi hàm JET_TriggerClip() với mã nhận dạng đoạn video là 1, kênh sẽ bật tiếng khi gặp giá trị tay điều khiển 65 và tắt tiếng lần nữa khi gặp giá trị tay điều khiển 1.

Hình 5: Đoạn video đã đồng bộ hoá

Trong hình trên, nếu hàm JET_TriggerClip() được gọi trước sự kiện tay điều khiển đầu tiên, Kênh 3 sẽ được bật tiếng khi sự kiện đầu tiên của tay điều khiển xảy ra, đoạn video đầu tiên sẽ phát và kênh sẽ bị tắt tiếng khi sự kiện tay điều khiển thứ hai xảy ra. Nếu hàm JET_TriggerClip() được gọi sau khi sự kiện tay điều khiển đầu tiên xảy ra, thì Kênh 3 sẽ được bật tiếng khi sự kiện của tay điều khiển thứ ba xảy ra, đoạn video thứ hai sẽ phát và kênh sẽ bị tắt tiếng lần nữa khi sự kiện tay điều khiển thứ tư xảy ra.

Lưu ý: Thông thường, ứng dụng sẽ tắt tiếng bản nhạc chứa đoạn video khi đoạn đầu thuộc hàng đợi lệnh gọi đến JET_QueueSegment(). Nếu chưa tắt tiếng, đoạn video sẽ luôn phát cho đến khi Jet_TriggerClip() được gọi với mã đoạn video.

6.2 Điểm đánh dấu sự kiện JET (CC102)

Bộ điều khiển 102 dành riêng để đánh dấu các sự kiện trong luồng MIDI dành riêng cho chức năng JET. Hiện tại, giá trị duy nhất được xác định là 0, đánh dấu điểm kết thúc của một phân đoạn cho mục đích tính thời gian.

Thông thường, JET sẽ bắt đầu phát đoạn tiếp theo (hoặc lặp lại đoạn hiện tại) khi gặp sự kiện meta cuối bản nhạc MIDI. Một số công cụ tạo MIDI gây khó khăn cho việc đặt điểm đánh dấu cuối bản nhạc một cách chính xác, dẫn đến vấn đề đồng bộ hoá khi các phân đoạn được kết hợp với nhau.

Để tránh vấn đề này, tác giả có thể đặt một điểm đánh dấu cuối đoạn JET (controller=102, value=0) tại điểm mà đoạn sẽ được lặp lại. Khi gặp điểm đánh dấu cuối đoạn, đoạn tiếp theo sẽ được kích hoạt hoặc nếu đoạn hiện tại bị lặp lại, việc phát sẽ tiếp tục ở đầu đoạn.

Bạn cũng có thể sử dụng điểm đánh dấu cuối đoạn để cho phép hoàn tất một hình nhạc ngoài kết thúc đo lường đánh dấu sự bắt đầu của phân đoạn tiếp theo. Ví dụ: tác giả nội dung có thể tạo một phân đoạn 4 thanh với khoảng trống điền kết thúc ở nhịp 1 của thanh 5, một thanh nằm ngoài điểm kết thúc tự nhiên của phân đoạn. Bằng cách đặt một điểm đánh dấu cuối đoạn ở cuối thanh thứ 4, đoạn tiếp theo sẽ được kích hoạt nhưng việc điền trống sẽ tiếp tục song song với đoạn tiếp theo để đảm bảo tính liên tục của âm nhạc.

Hình 6: Điểm đánh dấu cuối đoạn

6.3 Bộ điều khiển ứng dụng (CC80-83)

Ứng dụng có thể dùng bộ điều khiển trong phạm vi này cho mục đích riêng của nó. Khi gặp một bộ điều khiển trong phạm vi này, sự kiện sẽ được nhập vào hàng đợi sự kiện mà ứng dụng có thể truy vấn. Một số trường hợp sử dụng có thể là đồng bộ hoá các sự kiện video có âm thanh và đánh dấu một điểm trong phân đoạn MIDI để đưa đoạn tiếp theo vào hàng đợi. Ứng dụng có thể sửa đổi phạm vi bộ điều khiển mà ứng dụng giám sát trong quá trình khởi chạy.

7 Nguyên tắc dành cho nhà sáng tạo JET

7.1 Thứ tự tác vụ

Giống như mọi dự án khác, tốt nhất bạn nên thảo luận và thiết kế lược đồ âm nhạc tương tác với nhà thiết kế và lập trình viên trò chơi trước khi bắt đầu quá trình sáng tác. Đường viền và/hoặc thông số kỹ thuật có thể giúp bạn không phải làm lại mọi thứ sau khi trò chơi hoàn tất.

Nhìn chung, trước tiên bạn nên viết nhạc trong DAW theo cách bạn quen để sáng tác, sau đó chia nhỏ tệp MIDI cuối cùng nếu cần cho ứng dụng. Tiếp theo, hãy chuyển đến trang JET Creator và tạo tất cả các phân đoạn nhạc theo thứ tự dễ dàng xem trước nhất khi phát theo thứ tự. Cuối cùng, hãy thêm Sự kiện JET để kiểm soát các phân đoạn thông qua trò chơi Android và Nghe thử các sự kiện đó nếu cần trong JET Creator. Cuối cùng, hãy lưu dự án trong JET Creator và chuyển tệp .jet cho lập trình viên để tích hợp vào trò chơi. Sau khi xem trước, có thể sẽ có những thay đổi đối với(các) tệp MIDI và thuộc tính JET Creator.

7.2 Bảo toàn bộ nhớ

Nếu bạn đang cố gắng tiết kiệm bộ nhớ, hãy soạn càng ít tệp MIDI càng tốt và tạo một số đoạn từ tệp MIDI đó. Ví dụ: một tệp MIDI 12 bar có ba phần của 4 thanh A, B, C có thể tạo một bài hát dài hơn nhiều. Bạn chỉ cần tạo nhiều đoạn tham chiếu đến một tệp MIDI, sau đó sắp xếp các đoạn đó theo ý muốn. Ví dụ: A, A, B, A, C, A, B, A, A sẽ tạo ra một bài hát có thanh dài 36. Hãy dùng JET để thêm đoạn video lặp lại, chuyển đoạn video cũng như tắt tiếng và bật tiếng mang tính tương tác để video trở nên thú vị hơn nữa.

7.3 Sao chép

Để thêm phân đoạn hoặc sự kiện nhanh hơn, hãy sử dụng lệnh Sao chép. Tính năng sao chép có thể thêm nhiều phân đoạn hoặc sự kiện cùng một lúc, đồng thời sử dụng thông số chênh lệch và quy ước đặt tên tiền tố để đảm bảo mọi thứ dễ đọc. Lệnh MOVE cũng hữu ích khi di chuyển nhiều sự kiện theo một số lượng đo lường, nhịp hoặc kim đánh dấu nhịp độ khung hình đã đặt.

7.4 Tuỳ chọn tương tác

Có một số khái niệm âm thanh tương tác có thể có trong JET. Dưới đây là một vài ví dụ, mặc dù chúng tôi hy vọng nhà phát triển sẽ nghĩ ra những tính năng khác mà chúng tôi chưa nghĩ đến! Đó là:

7.4.1 Kích hoạt nhiều phân đoạn

Trong phương thức này, ứng dụng đang kích hoạt các phân khúc cụ thể dựa trên các sự kiện trong trò chơi. Ví dụ: Hành lang có nhiều giao tranh có thể kích hoạt phân đoạn 1 và hành lang không có giao tranh có thể kích hoạt phân đoạn 2. Việc sử dụng JET TriggerClips cùng với phương thức này giúp tăng tính đa dạng hơn nữa.

7.4.2 Mảng Ẩn

Trong phương thức này, ứng dụng sẽ kích hoạt các sự kiện tắt tiếng và bật tiếng cho các bản nhạc cụ thể trong một trình tự MIDI duy nhất. Ví dụ: một hành lang có nhiều người đánh nhau có thể phát các bản MIDI 1-16 và một hành lang không có giao đấu có thể phát cùng một tệp midi nhưng tắt các bản nhạc 9-16. Việc sử dụng JET TriggerClips cùng với phương thức này giúp tăng tính đa dạng hơn nữa.

7.4.3 Lối chơi theo hướng âm nhạc

Nội dung âm nhạc sẽ quyết định cách hiển thị phản cảm của các sự kiện phản cảm tương tự như những gì mà Guitar Hero và JETBOY làm được. Sau đó, ứng dụng truy vấn phản hồi của người dùng đối với các sự kiện đồ hoạ và sửa đổi bản nhạc theo cách tương tác. Trong phương pháp này, trò chơi sử dụng Sự kiện ứng dụng JET, bộ điều khiển MIDI được nhúng vào tệp MIDI và được trò chơi đọc theo thời gian thực. Dựa trên phản hồi của người dùng, bạn có thể đặt nhiều mảng tắt tiếng và/hoặc kích hoạt phân đoạn.