SONiVOX JETCreator 使用者手冊

JET 互動式音樂引擎的內容創作應用程式

1 簡介

1.1 總覽

本文件包含使用者指南 SONiVOX JET Creator 可以設計及建構 我們對於 JET 檔案試奏的曲目JET 是一款適用於小型嵌入式音樂的互動式音樂播放器 包括執行 Android 平台的裝置可讓應用程式 包括互動式音樂配樂,位於 MIDI 格式,可即時回應遊戲事件和使用者互動。

JET 可與 SONiVOX 的 嵌入式音訊合成器 (EAS),也就是 MIDI 播放裝置。兩者 JET 和 EAS 引擎透過 JetPlayer 類別,和 格式與內容相同因此,JET 內容作者可以 請確定兩個 JET 創作者的播放音效都相同 最終的 Android 應用程式則是在 Android 行動裝置上播放

除了圖形使用者介面 介面上,JET Creator 有兩個主要功能。 第一步是收集所有來源資料 (MIDI) 檔案和 DLS 檔案),新增 JET 的即時屬性,並建構 JET (.jet) 檔案。第二項功能是 包括在播放互動式播放元素時 進行試奏 。

JET Creator 應用程式是以 Python 程式設計語言,因此需要最新版本的 的 Python 和 WXWidgets。電腦都有 Mac 和 Windows 版本。

1.2 縮寫與常見詞彙

請務必使用一組 盡可能減少混淆自 JET 使用 MIDI 之後 ,因為一般行業的詞彙不一定盡如預期。接著來介紹 定義該頁面和 JET 創作者使用的字詞 應用程式:

通道:與特定 MIDI 相關聯的 MIDI 資料 頻道。標準 MIDI 支援 16 個 MIDI 管道 這些資料通常與特定工具相關聯。

控制器:這個 MIDI 事件是由 頻道編號、控制器編號和控制器值MIDI 規格會將許多控制器編號與 例如音量、運算式、永續踏板等 利用控制器事件做為將特殊控制資訊嵌入 用於音訊同步處理的 MIDI 序列。

DAW:數位音訊工作站。MIDI 的常見詞彙 和音訊序列應用程式,例如 Logic、SONAR、Cubase 等。

EAS:嵌入式 MIDI 合成器。 SONiVOX MIDI 合成器引擎的名稱。

JET:Jet Interactive Engine。SONiVOX JET 互動的名稱 音樂引擎

M/B/T:度量、節拍和滴答聲

片段:音樂版面,例如副歌或逆元素 整體組成在 JET 中,區隔可以是整個 MIDI 檔案,也可以是 衍生自 MIDI 檔案中的部分

SMF-0:標準 MIDI 檔案類型 0 (包含單一 MIDI 檔案) ,但可能是由 MIDI 的多個頻道組成 資料。

SMF-1:標準 MIDI 檔案類型 1,這個 MIDI 檔案內含一個 曲目,每首曲目也可以包含一或多個 MIDI 頻道 資料。按照慣例,每個管道都會儲存在 儲存在 SMF-1 檔案中的不同音軌。不過,您可以使用多個 MIDI 單一音軌的多個頻道,或是包含相同 MIDI 資料的多個測試群組 頻道。

追蹤:DAW 中的單一音軌,內含定時事件。請小心不要將曲目與 頻道。MIDI 檔案可能包含許多音軌,並使用 相同 MIDI 版本

2 JET 互動式音樂概念

互動式音樂可定義為音樂 根據非預測性事件 (例如使用者) 即時變動 或是遊戲過程中的活動如此一來,互動性音樂將帶給你更多樂趣 因為這類遊戲可以充分反映遊戲的能量和心情 比從未變更的預先組合組合更接近在部分應用程式中 和遊戲等,互動音樂是遊戲的核心要素。《吉他英雄》一應俱全 因為大家都知道使用者成功擷取音樂音 音樂會適時調適,同時保持在 代表作業成功與失敗分數JET 支援以音樂為主軸的 遊戲。

您可以透過幾種方法製作及 控制互動式音樂,而 JET 就是不錯的做法。這個區段 說明 JET 的功能,以及在遊戲或軟體中可能會如何運用 應用程式。同時說明如何使用 JET 佔用空間的裝置,例如支援 Android 的手機手機。

2.1.1 資料壓縮

JET 支援靈活彈性的音樂格式, 可用來創作具有極少資料的額外音樂序列。 音樂作品分為可序列的片段 建議你拉長一點影片檔案出現順序可以修正 編寫這個程式碼,或者可以透過程式控制措施動態建立。

2.1.2 線性音樂範例


圖 1:線性音樂素材

此圖表顯示音樂片段 儲存。每個片段都會以個別 MIDI 的形式編寫 檔案。後置處理工具會將這些檔案合併為單一容器檔案。 每個片段都可能含有可靜音或取消靜音的替代音樂曲目 即可建立其他興趣例如副副詞的黃銅重音 這次只播放了一次此外,也可以將區隔 或向下

圖表底部的部分 音樂片段可以重組,以形成線性音樂作品。在本 例如,橋接器的結尾可能是半步驟金鑰,而剩下的 可能會轉化成半步驟來建立比對

2.1.3 非線性音樂範例


圖 2:非線性音樂作品

在這個圖表中,我們可以看到 片段這個情境是第一人稱射擊遊戲 (FPS),而 JET 則是提供 背景音樂。在載入關卡後接著播放簡介影片 歸入「搜尋」區隔這個區隔會無限期重複 然後對追蹤活動進行小幅調整 (使用靜音/取消靜音功能),直到活動結束為止 改變了遊戲規則

當玩家靠近怪獸離子時, 系統就會開始同步轉到「危險」區塊,使 的強度。玩家必須靠近較短的樓梯 將軌道取消靜音以增加緊張感。

隨著玩家加入 怪獸,程式會開始同步轉換至「戰鬥」區塊。 隨著戰鬥繼續進行,這個區段就會無限期重複。驚喜強賽 暫時將可通知玩家的裝飾曲目取消靜音 再也不過同樣地,另一首曲目暫時不靜音 標示。

戰鬥結束時,音樂會變換 根據戰鬥結果決定勝利或擊敗特定片段

2.1.4 靜音/取消靜音同步處理

JET 也可以同步處理 取消音樂活動的靜音音軌。以 FPS 遊戲為例 他們可能偏好舉辦獎金和獎金相關的音樂活動 盡可能接近實際遊戲事件。不過,請直接取消忽略 遊戲事件發生當下的曲目可能會導致音樂片段 從中間開始你也可以從 然後再與其他音樂曲目同步

不過在使用 JET 同步引擎的情況下 並在下一個機會開始作業,並保持同步。這個 可以在裝飾用的多部短音樂片段上 軌道。串流中的 MIDI 事件表示 片段的開頭和第二個事件,代表短片結束。當 應用程式會呼叫 JET 裁剪函式,可以播放音軌中的下一個片段 才能完全同步音樂您可以視需要選擇曲目 發生第二個 MIDI 事件自動設為靜音。


圖 3:已同步處理的靜音/取消靜音

2.2 音訊同步

JET 提供音訊同步處理 API 可讓遊戲與音訊中的活動保持同步。機制 您需要參考位於 時間。JET 引擎在轉換期間偵測到事件 播放時會產生回呼到應用程式程式中。發生時機 回呼,以彌補音訊延遲的問題 才能同步處理音訊和視訊下圖 顯示有個簡單的音樂遊戲範例 按下左側和 在音樂時加上向右箭頭


圖 4:音樂遊戲

箭頭代表音樂序列中的活動 。在這個例子中 代表播放器必須按下左側按鈕的時間, 紅色箭頭代表向右按鈕黃色箭頭代表遊戲引擎 序列完成允許玩家在特定時間範圍內 在事件前後按下適當的鍵。

如果系統接收到事件,但播放器 未按下按鈕,計時器設為視窗長度的一半。如果 玩家在計時器到期前按下按鈕,遊戲便會登錄 如果失敗,遊戲便會登錄失敗。

若玩家按下按鈕 事件時,計時器設為回溯期的一半。如果事件 遊戲會在計時到期前收到,但遊戲仍會登錄成功,如果沒有, 就會註冊失敗遊戲過程也可能包括取得 接近實際事件的時間

3 JET 內容編寫總覽

編寫 JET 檔案並聆聽播放內容 內容作者將應用到 完美搭配運作的設計首先是應用程式 現成的 MIDI 定序應用程式 支援 VST (PC) 或 AU (Mac) 外掛程式。作者會在此處撰寫 這個外掛程式能將 MIDI 音樂檔案 合成器裝置。第二個應用程式是 JET Creator 應用程式。這裡 作者將匯入 MIDI 音樂檔案 (選用 DLS2 音效集) 並設定互動條件 並在支援 JET 的遊戲中播放。內容作者可自行選擇是否建立 一套自訂 DLS 檢測工具,並使用支援 DLS Level 2 格式。其中一個應用程式是來自 MJSoft 的 Awave。

如需其他資訊,請參閱 JET 內容編寫指南說明文件 取得有關內容的詳細說明

4 安裝及啟動 JET Creator

JET Creator 是一種 Python 語言 因此,您必須在您的 這類機制更為快速

JetCreator 是透過以下工具打造與測試:

Python 2.5.4 版

wxPython 2.8.7.1 版

您可以前往下列網址下載:

電腦:

  • 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

安裝 Python 和 wxPython 之後 只要將 JET Creator 應用程式目錄中的所有檔案解壓縮或複製到 硬碟上的資料夾

如要啟動 JET Creator,請前往指令 提示,並將目錄設為安裝 Python 的位置。下次執行 Python 執行下列指令:

python jetcreator.py

5 使用 JET Creator

5.1 檔案類型

幾種不同檔案類型 。

.jtc JET 建立者專案檔案。這個檔案包含 JET Creator 專案。透過 JET Creator 儲存或另存新檔時,這個檔案 已儲存類型。

.jet JET 檔案。每當您執行 儲存您的 JET 建立者專案。這個檔案內含所有 JET 素材資源 整合成一個檔案,供 Android 應用程式使用交給我 檔案提供給 Android 應用程式開發人員

.mid 檔案。這是標準的 MIDI 輸入 1 檔案,讓 JET 建立者建立區隔

.seg 區隔 檔案。這是 JET 區隔檔案。名稱與 MIDI 相同 檔案,但其中包含其他「區隔」資訊。

.zip 封存檔案。匯出 JET 封存檔案時,系統會建立 ZIP 檔案 包含 JET 建立者需要的所有素材資源 (檔案)。使用這個項目轉移 跟其他人一起玩 JET 建立者專案。

5.2 開啟對話方塊

時間 您初次啟動 JET Creator 時,畫面上會出現一個開啟的對話方塊,例如 追蹤。

<img <=""邊框="0"高度="285"p=""src="/static/images/jet/jc_open_dlg.png"width="450"/>

開啟:開啟現有的 .jtc (JET Creator 檔案)。使用瀏覽器 按鈕即可瀏覽您已儲存 .jtc 檔案的目錄。

新增:建立新的 .jtc 檔案。

匯入:匯入 JET 封存 (.zip) 檔案。

「Cancel」(取消) 將取消對話方塊並結束應用程式。

5 間主要視窗

JET 創作者的主視窗 應用程式如下所示。這個專區的三個主要部分 由上而下:區隔檢視、事件檢視和時間軸。

「區隔檢視」部分會列出 目前的區隔,也就是 MIDI 檔案 (選用) 每個區隔衍生的 DLS2 檔案。它還會顯示 片段的開始和停止時間,以及每個片段的量化、轉置、重複及 忽略標記設定

事件會顯示在「區隔」檢視的正下方 檢視畫面。「事件檢視」部分會顯示與特定指定指標相關的所有事件 區隔只有在使用者目前指定的區隔處於以下狀態時,事件才會顯示 醒目顯示。每個事件都會顯示其類型、起點和終點、軌跡和 MII 頻道分配和活動 ID

「事件」檢視畫面正下方會顯示時間軸 螢幕。時間軸會顯示特定區隔的測量結果數量 取得與該區隔相關的事件時間軸會改為顯示 播放特定片段您可以在這個視窗中觸發事件 播放時,只要按一下時間軸上的事件即可 螢幕。


JET 創作者主要視窗

主要位於主要容器左側的按鈕 視窗執行下列操作:

新增: 顯示新增區隔或事件的區隔或事件視窗

修改: 顯示更新現有區隔或事件的區隔或事件視窗

刪除以下項目: 刪除選取的區隔或事件 (會請您確認)

移動: 顯示移動視窗,方便你移動所選區隔或事件 及時

全部佇列:佇列的 (選取) 所有播放片段

全部移除佇列:移除佇列 (取消選取) 所有區隔

播放: 開始播放所有已排入佇列的片段。如果有,這個按鈕會變更為「停止」 正在播放的片段

試奏: 顯示「試奏」視窗 (請見下方)

5.1 區隔視窗

區隔視窗是 路段屬性經過指派及稽核,如圖所示 。視窗左側會顯示 儲存在 JET 檔案中您可在視窗右側設定作者 將片段靜音、重複並轉置設定和試奏 比如說 JET 遊戲

注意:試奏屬性 (忽略標記、重複和轉置) 不會儲存在 JET 內容檔案中 (.jet),但是由遊戲或應用程式本身定義。在程式設計中 語言,這些設定會直接對應給 JET 的 API 呼叫 。在這裡加入這些內容後,JET 內容作者就能模擬 區隔,就能在遊戲期間回應應用程式 API 指令。

區隔參數會執行下列操作:

  • 區隔名稱 - 組合 區隔的名稱
  • MIDI 檔案: MIDI 檔案的名稱和位置 所產生的區隔右側的按鈕會顯示 瀏覽器,在硬碟尋找 Midi 檔案。
  • DLS 檔案 - MIDI 的 DLS2 檔案名稱和位置 (如有) 針對該區隔使用的檔案
  • 自 M/B/T 開始 - 開始測量、擊敗並按節拍
  • 即將結束的 M/B/T - 路段的結束測量、擊敗和刻度
  • 量化 - 量化值,在播放期間量化目前的片段

試奏欄位如下:

  • 追蹤靜音次數 - 顯示 MIDI 曲目 (而非頻道) 檔案。點選音軌 核取方塊,即可將該曲目設為靜音。
  • 頻道 - 顯示指派給各個 MIDI 通道 曲目
  • 姓名: 顯示每個音軌的軌跡名稱中繼事件 (如果有的話)
  • 重複 - 表示特定片段在播放期間應重複播放的次數
  • 轉置 - 以半調或半階的音階表示轉場位置 播放期間轉置
  • 「Audition」(稽核) 視窗的右側還有幾個按鈕。 方法如下:
  • 確定 - 選取 [確定] 即可確認所有路段設定,並關閉區隔視窗
  • 取消 - 選取「取消」後,系統會取消所有變更並關閉區隔視窗
  • 複製 - 顯示「複製區隔」視窗,讓您一次輸入多個區隔。 詳情請參閱下文。
  • 播放/停止區隔 - 開始 或使用指派的分眾屬性來停止播放片段。
  • 播放/停止 MIDI 檔案 - 開始或停止播放 MIDI 檔案 區隔的受指派對象。
  • 暫停/繼續 - 暫停或繼續播放。

5.2 事件回溯期

「事件視窗」是特定區隔的 事件屬性為指派和稽核,如下圖所示。目的地: 在區隔中新增事件時,作者必須先選取區隔 包含活動,然後選取 [新增] 按鈕。這樣就能 視窗。

活動分成兩個主要區塊 視窗。事件視窗左側的區隔部分會顯示 。即可顯示特定區隔的區隔屬性。事件 部分是指派事件的地方。下列 可以使用下列參數:

事件名稱 - 為事件指派名稱

事件類型 - 選取要指派的事件類型。

自 M/B/T 開始 - 設定事件的起始測量、節奏和滴答聲

即將結束的 M/B/T - 設定事件的結束度量、節奏和滴答聲 (如適用)

音軌 - 設定事件會套用於指定區段的哪個音軌

頻道 - 設定事件要套用的 MIDI 通道 。MIDI 版本應與 MIDI 相符 曲目頻道

事件 ID - 設定事件的事件 ID。多個活動可指派給同一個 因此事件 ID 可用來找出這些區隔

「Audition」(稽核) 視窗的右側還有幾個按鈕。 方法如下:

確定 - 選取 [確定] 即可確認所有活動設定,並關閉活動視窗

取消 - 選取 [取消] 後,系統會取消所有變更並關閉活動視窗

複製 - 顯示用於一次輸入多個事件的「Replicate Event」視窗。詳情請見 。

播放/停止 - 使用指派的區隔屬性,開始或停止播放片段。 在你播放影片時,系統可能會觸發並稽核事件。

觸發條件 - 觸發指派的事件。這會複製 JET 遊戲的 API 指令 會使用 觸發事件,因此可為內容作者提供 本次活動的行為

靜音/取消靜音 - 開啟/取消靜音功能,可忽略或取消忽略指定活動的音軌

暫停/繼續 - 暫停或繼續播放。

如要試奏事件行為 就能點選「播放」按鈕這麼做會啟動播放程序。觸發按鈕 會在按下時傳送觸發事件。這等同於選取 綠色觸發事件

注意:觸發事件的用途是取消靜音 這時一首曲目觸發,但在結尾播放該音軌時, 觸發事件區隔因此,您應該確保 將觸發事件在收到觸發事件時取消靜音的音軌靜音。

請參閱「6 深入解析」 。

5.3 複製視窗

建立 JET 檔案時,您需要 建立成數十或數百個事件您可能也需要移動活動。 你可以利用複製和移動視窗來達成這個目的。有兩個複製視窗 例如建立多個區隔或事件如下所示:

複製區隔視窗

複製事件期間

兩個複製視窗的作用相同。 建立初始區隔或事件後,您可以選取「複製」 按鈕。參數如下:

名稱前置字串 - 為每個建立區隔或事件的名稱設定前置字元

自 M/B/T 開始 - 設定第一個區隔或事件的開始時間

增量 M/B/T - 設定區隔或已建立事件之間的時間。

數字 - 設定您想建立的區隔或事件數量。如果號碼 超出 MIDI 檔案的長度 (適用於 區隔) 或區隔 (用於事件),系統不會建立這些物件。

預覽 - 「預覽」功能可讓您先查看已建立的物件,再點選「確定」插入 具體做法是指示 Kubernetes 建立並維護 一或多個代表這些 Pod 的物件

5.4 移動視窗

「移動」功能的作用類似 複製函式,以便在 一次移動這些物件就像《Replicate》在 YouTube 上 一個用於區隔,另一個用於「事件」。這些視窗看起來像 包括:

移動事件視窗

如要使用「移動」功能,請先選取區隔,或是 然後按一下 [移動] 按鈕,參數如下: 如下所示:

自 M/B/T 開始 - 設定第一個區隔或事件的開始時間

增量 M/B/T - 設定您要移動物件的 M/B/T 時間。

預覽 - 「預覽」功能可讓您先查看已建立的物件,再點選「確定」移動 具體做法是指示 Kubernetes 建立並維護 一或多個代表這些 Pod 的物件

5.5 稽核期間

按一下主要導覽選單的 JET Creator 應用程式的視窗,即可開啟「Audition」(稽核) 視窗。這是 內容作者或應用程式程式設計師可模擬 以便於行動應用程式或遊戲中即時播放。

JET 試奏期間

在「廣告空間」分頁中 試奏窗口。最左側的區段會顯示可用的區隔 以秒為單位中間的區段顯示執行中清單 歌曲加入待播清單,以及各區段的播放狀態。遙遠 右側部分則顯示目前正在播放的片段的靜音旗標。 底部的時間軸部分與主視窗相同。顯示 目前播放的片段,以及任何事件觸發條件的視覺呈現 與該區隔相關的資料

您可以透過「稽核」視窗 長度不限。方法很簡單 提示並按下「佇列」該片段會顯示在佇列視窗中, 開始播放 (如果這是第一個片段)。接著就能選取 然後再加入播放。做為區隔 播放清單中的下一個片段會開始播放。如同 JET Creator 的其他視窗,你可以將靜音、取消靜音、觸發事件片段等。 即時播放。

具體來說,按鈕的運作方式如下:

待播清單 - 將所選片段載入佇列並開始播放

取消和待播清單 - 系統會取消目前正在播放的片段,再將所選片段排入佇列 播放

取消目前的要求 - 取消佇列中目前正在播放的區段,並開始播放 下一個區段

停止 - 停止播放所有已排入佇列的片段

全部設為靜音 - 將目前片段中的所有音軌靜音

不設為靜音 - 將目前片段中的所有音軌取消靜音

原始靜音次數 - 為目前片段設定原始忽略標記

這些播放選項的組合 可讓作者或應用程式程式設計人員稽核 可能會遇到困難

5.6 JET 創作者選單

你可以透過 JET 建立者選單存取 主要視窗中的許多參數加上幾個其他參數

5.6.1 檔案選單

「檔案」選單包含下列項目 元素:

最新 - 建立新的 JET 建立者檔案 (.jtc)

開啟 - 開啟現有的 JET Creator 檔案

儲存 - 儲存目前開啟的 JET Creator 檔案

另存新檔 - 將目前開啟的 JET Creator 檔案儲存至新檔案

匯入專案 - 匯入 JET Creator 封存檔 (.zip)

匯出專案 - 匯出 JET Creator 封存檔 (.zip)

離開 - 結束應用程式

5.6.2 編輯選單

「編輯」功能表包含下列內容: 元素:

復原 - 復原將會復原上次編輯的內容

重做 - 重做將會重做前一次的復原

剪下 - 將所選參數複製到剪貼簿,並刪除選取的項目

複製 - 將所選參數複製到剪貼簿並保留選取項目

貼上 - 貼上所選參數

5.6.3 JET

「編輯」功能表包含下列內容: 元素:

資源 - 開啟 JET 創作者優先事項視窗。這個視窗可讓您 特定 JET 檔案的條件:

版權資訊 - 包含要插入 JET 檔案的版權資訊

Chase Controller - 追逐控制器的選項 (開啟/關閉)。這應該通常 設為「開啟」。

刪除空白曲目:刪除所有空白的 MIDI 曲目

5.6.4 區隔

「區隔」選單包含下列內容: 元素:

新增區隔 - 開啟「區隔」視窗

更新區隔 - 更新區隔屬性

刪除區隔 - 刪除目前的區隔 區隔清單

5.6.5 說明

[說明] 功能表至少包含 下列元素:

JET Creator Help:發布 PDF 說明文件或撥打線上說明

關於 - JET 建立者版本號碼、SONiVOX 資訊

6 觸發事件說明

打破 MIDI 然後將這些區隔排入個別 (非線性) 區隔中 根據遊戲中的事件在遊戲中播放內容,是 JET 音樂檔案的一種方式 互動。觸發事件是互動式播放的另一種方法, 兩者在互動式遊戲或應用程式中會一起使用。

觸發事件包括:

  1. MIDI 段「內部」的曲目可根據球賽開啟或關閉 事件。例如,作曲家可以編寫兩首快速鼓曲目 還有 1 個慢速如果遊戲中的動作很快 如果遊戲中的動作速度緩慢,就可以加入緩慢的爵士鼓。
  2. 您可將使用者動作與觸發事件的觸發事件進行比較 預先插入音樂檔案中正確的音樂位置。根據 有時則不例外。,瞭解如何調查及移除這項存取權。
  3. 關卡或動作序列之間的音樂轉場效果可以 完成同步,才能順暢播放音樂

實際上,JET 使用標準 MIDI CC 事件來完成這些動作並同步音訊。控制器 並未定義具體用途。具體控制器定義 如下:

控制器 80-83 預留給 應用程式

控制器 102 JET 事件標記

控制器 103 JET 夾扣標記

控制器 104-119 已保留供日後使用

6.1 JET 夾扣 (CC103)

控制器 103 已預留以便用於標示 固定在 MIDI 音軌中的片段 JET_TriggerClip API 呼叫。片段 ID 是以 控制器值將 Bit 6 設為 1,表示短片的開頭。 設為零表示片段的結尾。

例如,找出含有片段的片段 ID 為 1,作者會插入 MIDI 控制器 兩個事件 ,當 呼叫 JET_TriggerClip() 函式,剪輯 ID 為 1,則軌跡 ID 將會 並在遇到控制器值 65 時取消靜音,當偵測到控制器值時再次設為靜音 且邊出現控制器值 1。

圖 5:同步夾扣

上圖中, 系統會在第一個控制器事件之前,呼叫 JET_TriggerClip() 函式 發生第一個控制器事件時,系統會取消靜音 3,第一個片段 並在系統發出第二個控制器事件時,將軌道靜音。如果 系統會在第一個控制器事件發生後呼叫 JET_TriggerClip() 函式 發生時,播放 3 將會取消靜音。第三個控制器事件發生時, 播放第二個片段後,當第 4 次播放時,音軌將再次靜音 控制器事件

注意:一般來說,應用程式會將包含該片段的音軌設為靜音 區隔一開始由呼叫 JET_QueueSegment() 排入佇列。如果是 未靜音,片段一律會播放,直到呼叫 Jet_TriggerClip() 換成短片 ID

6.2 JET 事件標記 (CC102)

控制器 102 已預留以便用於標示 是專門針對 MIDI 串流中的事件 以及 JET 功能目前唯一定義的值為 0,表示 做為計算時間參考之用

通常,JET 會開始播放下一個 區隔現有片段 (或重複播放目前片段) 遇到追蹤結尾中繼事件時,部分 MIDI 編寫工具會使地圖結尾標記不準確 導致合併區隔出現同步處理問題。

如要避免這個問題,作者可以 片段結束位置標記 (controller=102, value=0), 循環遇到區段結尾標記時, 觸發下一個區段,或者如果循環播放目前的區段 會在區隔開始時繼續。

您也可以使用區段結尾標記 隨著音樂界的結尾之外 標示下一個區段的起點舉例來說,內容作者可能會 建立 4 個長條區隔,並在其中拍到 5 拍的節奏 長條的自然結束位置加入片段結尾 第一個區隔是 但鼓填效果會與下一個分段平行 維持音樂不間斷

圖 6:片段末端標記

6.3 應用程式控管者 (CC80-83)

應用程式可在 用於自己的用途當遇到這個範圍內的控制器時, 事件就會進入事件佇列,應用程式可以查詢這些事件。 可能的用途包括同步影片事件與音訊,以及加上 點進 MIDI 區段內 區隔您可以修改應用程式監控的控制器範圍 都會由應用程式存取

7 JET 創作者規範

7.1 工作順序

如同所有專案,在開始樂曲前,最好先與遊戲設計人員和程式設計師討論及設計互動式音樂計畫。大綱和/或規範可有效減少玩家在遊戲推出後必須採取的復原動作。

一般來說,建議您先以選擇的 DAW 語言撰寫音樂,然後再視需要為應用程式來細分最終的 MIDI 檔案。接著,使用 JET Creator 建立所有音樂片段,最容易按順序播放。最後,新增 JET 事件,以便透過 Android 遊戲控制區隔,並視需求在 JET Creator 中進行 Audition。最後,請在 JET Creator 中儲存專案,然後將 .jet 檔案傳送給程式設計師,在遊戲中整合。預覽後,MIDI 檔案和 JET Creator 屬性可能會有異動。

7.2 保留記憶體

如果您正試圖節省記憶體,請盡量減少撰寫 MIDI 檔案,然後從該 MIDI 檔案建立多個區段。舉例來說,一個含有 4 塊 A、B、C 這三個部分的 12 長條 MIDI 檔案,可以產生更長的歌曲。只要建立多個區隔參照這個 MIDI 檔案,然後視需要排列順序即可。舉例來說,A、A、B、A、C、A、B、A、A 都會生成 36 號酒吧歌曲。使用 JET 新增重複播放片段、轉置片段,以及透過互動方式將音軌靜音和取消靜音,讓歌曲更有趣。

7.3 複製

如要加快新增區隔或事件的速度,請使用 Replicate 指令。複製功能可以一次新增多個區隔或事件,並使用偏移參數和前置字元命名慣例,讓資料更容易閱讀。MOVE 指令在移動多個事件時,會以固定的測量值、節拍或刻點移動,

7.4 互動選項

JET 也提供幾種互動式音訊概念。以下提供幾個範例,不過我們希望開發人員能提出未曾想過的其他項目。這兩種網址格式分別如下:

7.4.1 多個區隔觸發

使用這個方法時,應用程式會根據遊戲中的事件觸發特定區隔。舉例來說,如果走廊有許多格鬥,可能會觸發第 1 段,而未打鬥的走廊也可能觸發第 2 段。搭配這個方法使用 JET TriggerClips ,即可創造更多樣化。

7.4.2 靜音陣列

在這個方法中,應用程式會在單一 MIDI 序列中,觸發特定音軌的靜音或取消靜音事件。舉例來說,在多場戰鬥的走廊可能會玩 1 到 16 首位打鬥的走廊,而沒有打鬥的走廊可能會播放相同的中音檔案,但將 9-16 首曲目設為靜音。搭配這個方法使用 JET TriggerClips ,即可創造更多樣化。

7.4.3 導向音樂遊戲

以音樂為導向的遊戲就像吉他英雄和 JETBOY 一樣,音樂內容決定了血腥事件的顯示方式。接著,應用程式會查詢使用者對圖像事件的回應,並以互動方式修改音樂來回應。在這個做法中,遊戲會使用 JET 應用程式事件 (JET 應用程式事件),也就是嵌入 MIDI 檔案中的 MIDI 控制器,遊戲會即時讀取。根據使用者回應,您可以設定多個觸發和/或忽略陣列。