SONiVOX JETCreator Manuale dell'utente

Applicazione di creazione di contenuti per JET Interactive Music Engine

1 Introduzione

1.1 Panoramica

Questo documento contiene le linee guida per l'utente per SONiVOX JET Creator, un'applicazione di authoring per la creazione e l'audizione di file JET. JET è un music player interattivo per piccoli dispositivi incorporati, compresi quelli su cui è installata la piattaforma Android. Consente alle applicazioni di includere colonne sonore musicali interattive, in formato MIDI, che rispondono in tempo reale agli eventi di gameplay e all'interazione degli utenti.

JET funziona in combinazione con il sintetizzatore audio incorporato (EAS) di SONiVOX, il dispositivo di riproduzione MIDI per Android. Entrambi i motori JET ed EAS sono integrati nella piattaforma Android incorporata tramite la classe JetPlayer, oltre a essere integrati nell'applicazione JET Creator. Pertanto, l'autore dei contenuti JET può essere certo che la riproduzione riproduca lo stesso suono sia in JET Creator che nell'ultima applicazione per Android riprodotta sui dispositivi mobili Android.

Oltre alla Graphic User Interface, JET Creator offre due funzionalità principali. Il primo prevede la raccolta di tutti i dati di origine (file MIDI e file DLS), l'aggiunta degli attributi in tempo reale di JET e la creazione di un file JET (.jet) che verrà utilizzato dall'applicazione Android. La seconda funzionalità prevede l'audizione degli elementi di riproduzione interattivi così come verranno eseguiti nell'applicazione Android.

L'applicazione JET Creator è scritta nel linguaggio di programmazione Python, pertanto è necessario installare la versione corrente di Python e WXWidgets. È disponibile sia una versione per Mac che una per Windows.

1.2 Abbreviazioni e termini comuni

È importante usare un insieme di termini comuni per ridurre al minimo la confusione. Poiché JET utilizza MIDI in un modo unico, i normali termini del settore potrebbero non essere sempre sufficienti. Di seguito è riportata la definizione dei termini utilizzati in questa pagina e nell'applicazione JET Creator:

Canale: dati MIDI associati a un canale MIDI specifico. Lo standard MIDI consente 16 canali di dati MIDI, ognuno dei quali è generalmente associato a uno strumento specifico.

Controller: un evento MIDI costituito da un numero di canale, un numero di controller e un valore di controller. La specifica MIDI associa molti numeri di controller a funzioni specifiche, come volume, espressione, pedale sustain e così via. JET utilizza anche gli eventi controller come mezzo per incorporare informazioni di controllo speciali in una sequenza MIDI per fornire la sincronizzazione dell'audio.

DAW: workstation audio digitale. Termine comune per applicazioni di sequenziamento MIDI e audio come Logic, SONAR, Cubase e altre.

EAS:sintetizzatore MIDI incorporato. Il nome del motore di sintetizzatore MIDI SONiVOX.

JET: Jet Interactive Engine. Il nome del motore musicale interattivo SONiVOX JET.

M/B/T: misure, beat e tic

Segmento: una sezione musicale, come un ritornello o una strofa, che costituisce un componente della composizione complessiva. In JET, un segmento può essere un intero file MIDI o derivato da una parte di un file MIDI.

SMF-0: Standard MIDI File Type 0, un file MIDI che contiene una sola traccia, ma può essere formato da più canali di dati MIDI.

SMF-1: Standard MIDI File Type 1, un file MIDI che contiene una o più tracce, ciascuna delle quali a sua volta può essere costituita da uno o più canali di dati MIDI. Per convenzione, ogni canale è archiviato in una traccia separata in un file SMF-1. Tuttavia, è possibile avere più canali MIDI su una singola traccia o più tracce contenenti dati per lo stesso canale MIDI.

Traccia: una singola traccia in una DAW contenente una sequenza di eventi a tempo. Fai attenzione a non confondere le tracce con i canali. Un file MIDI può contenere molte tracce con diverse tracce che utilizzano lo stesso canale MIDI.

2 Il concetto della musica interattiva JET

Per musica interattiva si intende una musica che cambia in tempo reale in base a eventi non prevedibili, come l'interazione dell'utente o gli eventi di gameplay. In questo modo, la musica interattiva è molto più coinvolgente in quanto è in grado di soddisfare l'energia e l'atmosfera di un gioco molto più vicino di una composizione precomposta che non cambia mai. In alcune applicazioni e giochi, la musica interattiva è fondamentale per il gameplay. Guitar Hero è un gioco molto popolare. Quando l'utente finale acquisisce correttamente le note musicali che arrivano sulla tastiera, la musica si adatta da sola e allo stesso tempo registra i successi e gli insuccessi. JET consente anche questo tipo di giochi musicali.

Esistono diversi metodi per creare e controllare la musica interattiva e JET è uno di questi. Questa sezione descrive le funzionalità di JET e come potrebbero essere utilizzate in un gioco o in un'applicazione software. Descrive inoltre come JET può essere utilizzato per risparmiare memoria in dispositivi con dimensioni ridotte, come i telefoni cellulari abilitati per Android.

2.1.1 Compressione dei dati

JET supporta un formato musicale flessibile che consente di creare sequenze musicali estese con una quantità minima di dati. Una composizione musicale viene suddivisa in segmenti che possono essere messi in sequenza per creare un brano più lungo. La sequenza può essere fissata al momento della creazione del file musicale oppure può essere creata dinamicamente sotto il controllo del programma.

2.1.2 Esempio di musica lineare


Figura 1: brano musicale lineare

Questo diagramma mostra come vengono memorizzati i segmenti musicali. Ogni segmento viene creato come file MIDI distinto. Uno strumento di post-elaborazione combina i file in un unico file container. Ogni segmento può contenere tracce musicali alternative che possono essere disattivate o riattivate per creare ulteriore interesse. Un esempio potrebbe essere un accento ottone nel ritornello che viene suonato solo l'ultima volta. Inoltre, i segmenti possono essere trasposti verso l'alto o verso il basso.

La parte inferiore del diagramma mostra come i segmenti musicali possono essere ricombinati per creare un brano musicale lineare. In questo esempio, il bridge potrebbe terminare con una modulazione chiave a metà passo e i restanti segmenti potrebbero essere trasposti più di un semitono per farli corrispondere.

2.1.3 Esempio di musica non lineare


Figura 2: brano musicale non lineare

In questo diagramma, vediamo un brano musicale non lineare. Lo scenario è uno sparatutto in prima persona (f/s) e JET sta fornendo la musica di sottofondo. L'introduzione viene riprodotta durante il caricamento del livello, quindi passa sotto il controllo del programma al segmento Ricerca. Questo segmento viene ripetuto a tempo indeterminato, magari con piccole variazioni (utilizzando la funzionalità di disattivazione/attivazione dell'audio), finché l'attività nel gioco determina una modifica.

Mentre il giocatore si avvicina a un covo di mostri, il programma avvia una transizione sincronizzata al segmento Pericolo, aumentando il livello di tensione nell'audio. Man mano che il giocatore si avvicina al covo, l'audio delle tracce aggiuntive viene riattivato per aumentare la tensione.

Quando il giocatore entra in combattimento con il mostro, il programma avvia una transizione sincronizzata al segmento Combattimento. Il segmento si ripete a tempo indeterminato durante il combattimento. Un colpo bonus riattiva temporaneamente l'audio di una traccia decorativa che avvisa il giocatore di un attacco riuscito e, in modo simile, l'audio di un'altra traccia viene temporaneamente riattivato per indicare quando il giocatore riceve un danno speciale.

Alla fine del combattimento, la musica passa a una sezione di vittoria o sconfitta in base all'esito della battaglia.

2.1.4 Sincronizzazione di disattivazione/attivazione dell'audio

JET può anche sincronizzare la disattivazione e la riattivazione di un brano con gli eventi musicali. Ad esempio, nel gioco FPS, sarebbe opportuno posizionare gli eventi musicali relativi a bonus e danni il più vicino possibile all'evento di gioco effettivo. Tuttavia, se disattivi semplicemente l'audio di una traccia nel momento in cui si verifica l'evento del gioco, il clip musicale potrebbe avviarsi al centro. In alternativa, un clip può essere avviato dall'inizio, ma non può essere sincronizzato con le altre tracce musicali.

Tuttavia, con il motore di sincronizzazione JET, è possibile avviare un clip al momento opportuno e mantenere la sincronizzazione. A questo scopo, posiziona una serie di brevi clip musicali su una traccia decorativa. Un evento MIDI nello stream indica l'inizio di un clip, mentre un secondo evento indica la fine del clip. Quando l'applicazione chiama la funzione JET clip, il clip successivo della traccia può essere riprodotto in modo completamente sincronizzato con la musica. Facoltativamente, la traccia può essere disattivata automaticamente da un secondo evento MIDI.


Figura 3: attivazione/disattivazione audio sincronizzati

2.2 Sincronizzazione audio

JET offre un'API di sincronizzazione audio che consente di sincronizzare il gameplay con gli eventi nell'audio. Il meccanismo si basa sui dati incorporati nel file MIDI al momento della creazione del contenuto. Quando il motore JET rileva un evento durante la riproduzione, genera un callback nel programma di applicazione. La tempistica della callback può essere regolata per compensare l'eventuale latenza nel sistema di riproduzione audio, in modo che audio e video possano essere sincronizzati. Lo schema riportato di seguito mostra un esempio di un semplice gioco musicale che prevede la pressione della freccia sinistra e destra insieme alla musica.


Figura 4: gioco musicale

Le frecce rappresentano gli eventi nella sequenza musicale in cui gli eventi di gioco devono essere sincronizzati. In questo caso, la freccia blu indica il momento in cui il player dovrebbe premere il pulsante sinistro, mentre la freccia rossa indica il pulsante destro. La freccia gialla indica al motore di videogiochi che la sequenza è stata completata. Al player è consentito premere il tasto appropriato prima e dopo l'evento una determinata finestra.

Se viene ricevuto un evento e il player non ha premuto alcun pulsante, viene impostato un timer pari a metà della durata della finestra. Se il giocatore preme il pulsante prima della scadenza del timer, il gioco registra un esito positivo; in caso contrario, viene registrato un errore.

Se il player preme il pulsante prima che l'evento venga ricevuto, un timer viene impostato a metà della durata della finestra. Se un evento viene ricevuto prima della scadenza del timer, il gioco registra un esito positivo; in caso contrario, il gioco registra un errore. Il gameplay potrebbe includere anche dei bonus per avvicinarsi alla tempistica dell'evento effettivo.

3 Panoramica sulla creazione di contenuti JET

Per creare file JET e ascoltarli riprodurli in modo interattivo, l'autore dei contenuti lavorerà in due applicazioni che sono progettate per funzionare insieme senza problemi. La prima è qualsiasi applicazione di sequenziamento MIDI standard che supporti i plug-in VST (per PC) o AU (per Mac). Qui l'autore compone i propri file musicali MIDI utilizzando il plug-in come dispositivo di sintesi. La seconda applicazione è quella di JET Creator. Qui l'autore importerà i propri file musicali MIDI (e facoltativamente un set di suoni DLS2) e configurerà le condizioni per la riproduzione interattiva del gioco abilitato a JET. Facoltativamente, l'autore dei contenuti può creare un set personalizzato di strumenti DLS utilizzando un editor di strumenti che supporti il formato DLS di livello 2. Una di queste applicazioni è Awave di MJSoft.

Consulta la documentazione relativa alle linee guida per la creazione di contenuti JET per ulteriori dettagli sulla creazione di contenuti.

4 Installazione e avvio di JET Creator

JET Creator è un'applicazione di linguaggio Python, perciò è necessario che sulla macchina siano installati Python e wxPython.

JetCreator è stato creato e testato con:

Versione Python 2.5.4

wxPython versione 2.8.7.1

Puoi scaricarli qui:

PC:

  • 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

Dopo aver installato Python e wxPython, devi semplicemente decomprimere o copiare tutti i file della directory dell'applicazione JET Creator in una cartella sul tuo disco rigido.

Per avviare JET Creator, vai al prompt di comando e imposta la directory in cui hai installato Python. Quindi esegui python con il comando:

python jetcreator.py

5 Utilizzo di JET Creator

5.1 Tipi di file

Esistono alcuni tipi di file diversi associati a JET Creator.

.jtc JET File di progetto dell'autore. Questo file contiene tutte le informazioni associate a un progetto JET Creator. Quando fai clic su Salva con nome o Salva con nome da JET Creator, questo tipo di file viene salvato.

.jet JET File. Questo file di output viene generato automaticamente da JET Creator ogni volta che salvi il progetto JET Creator. Si tratta del file che raggruppa tutte le risorse JET in un unico file che verrà utilizzato dall'applicazione Android. Fornisci questo file allo sviluppatore dell'applicazione Android.

File .mid. Questo è il file MIDI di tipo 1 standard che JET Creator utilizzerà per creare i segmenti.

.seg. Questo è un file JET Segment. Ha lo stesso nome del file MIDI a cui fa riferimento, ma contiene informazioni aggiuntive sul segmento.

.zip, Zip File di archivio. Quando esporti un archivio JET, viene creato un file ZIP che contiene tutti gli asset (file) necessari per JET Creator. Usala per trasferire i progetti JET Creator ad altre persone.

5.2 Apri la finestra di dialogo

Quando avvii per la prima volta JET Creator, viene visualizzata una finestra di dialogo aperta come la seguente.

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

Apri aprirà un file .jtc (file creatore JET) esistente. Utilizza il pulsante del browser per accedere alla directory in cui hai salvato il file .jtc.

Nuovo crea un nuovo file .jtc.

L'opzione Importa importerà un file di archivio JET (.zip).

Annulla annulla la finestra di dialogo e chiude l'applicazione.

5 Finestra principale

La finestra principale dell'applicazione JET Creator è simile a quella riportata di seguito. Ci sono tre sezioni principali dall'alto verso il basso: visualizzazione segmenti, visualizzazione evento e sequenza temporale.

La sezione della visualizzazione dei segmenti mostra un elenco dei segmenti correnti, da cui deriva il file MIDI e (facoltativamente) il file DLS2 da cui deriva ogni segmento. Mostra inoltre l'ora di inizio e di fine di ogni segmento e le impostazioni dei flag di ogni segmento, trasposizione, ripetizione e disattivazione.

Appena sotto la vista Segmento si trova la vista Evento. La sezione della visualizzazione degli eventi mostra tutti gli eventi associati a un determinato segmento. Gli eventi vengono visualizzati solo quando il segmento a cui sono assegnati è evidenziato. Ogni evento mostra il tipo, i punti di inizio e fine, l'assegnazione della traccia e del canale MIDI e il relativo ID evento.

Subito sotto la vista Evento c'è la sequenza temporale. La cronologia mostra il numero di misure corrispondenti a un determinato segmento ed eventuali eventi associati a quel segmento. La sequenza temporale cambia per visualizzare il segmento attualmente selezionato o in riproduzione. Puoi attivare un evento in questa finestra mentre il segmento è in riproduzione facendo clic sull'evento nella visualizzazione della sequenza temporale.


JET Finestra principale dei creator

I pulsanti sul lato sinistro della finestra principale:

Aggiungi: visualizza la finestra del segmento o dell'evento per aggiungere un nuovo segmento o evento.

Rivedi: visualizza la finestra del segmento o dell'evento per l'aggiornamento di un segmento o evento esistente

Elimina: elimina il segmento o l'evento selezionato (ti verrà chiesto di confermare)

Sposta: visualizza la finestra di spostamento che ti consente di spostare nel tempo i segmenti o gli eventi selezionati

Metti in coda: seleziona tutti i segmenti della coda per la riproduzione

Rimuovi dalla coda tutti i segmenti: deseleziona (deseleziona) tutti i segmenti

Riproduci: avvia la riproduzione di tutti i segmenti in coda. Questo pulsante diventa Interrompi se sono in riproduzione segmenti

Audizione: Visualizza la finestra Audition (vedi sotto)

5.1 Finestra dei segmenti

La finestra del segmento consente di assegnare e provare gli attributi di un determinato segmento, come mostrato nell'immagine di seguito. Sul lato sinistro della finestra vengono visualizzati gli attributi dei segmenti memorizzati nel file JET. Il lato destro della finestra consente all'autore di impostare i flag di disattivazione dell'audio, ripetere e trasporre le impostazioni e provare il segmento durante la riproduzione nel gioco JET.

Nota: gli attributi per l'audizione (contrassegni di disattivazione audio, ripetizione e trasposizione) non sono memorizzati nel file dei contenuti JET (.jet), ma sono definiti dal gioco o dall'applicazione stessi. Nel linguaggio di programmazione, queste impostazioni corrispondono direttamente alle chiamate API al motore JET. Includendole qui, l'autore dei contenuti JET può simulare come il segmento risponderà ai comandi dell'API delle applicazioni durante il gameplay.

I parametri del segmento:

  • Nome segmento: imposta il nome del segmento
  • File MIDI: il nome e la posizione del file MIDI da cui è derivato il segmento. Il pulsante immediatamente a destra aprirà un browser per trovare un file MIDI sul disco rigido.
  • File DLS: il nome e la posizione dell'eventuale file DLS2 utilizzato dal file MIDI per il segmento in questione.
  • M/B/T iniziale: misurazione iniziale, battito e graduazione del segmento
  • M/B/T finale: Misura finale, battito e graduazione del segmento
  • Quantizza - Quantizza il valore per la quantizzazione del segmento corrente durante la riproduzione

I campi per l'audizione sono i seguenti:

  • Disattivazioni delle tracce: mostra le tracce MIDI (non i canali) nel file MIDI. Fai clic sulla casella di controllo di una traccia per disattivare l'audio della traccia.
  • Canale: visualizza il canale MIDI assegnato a ciascuna traccia.
  • Nome: visualizza il meta evento del nome della traccia (se presente) per ogni traccia
  • Ripetizione: indica il numero di volte in cui un segmento deve ripetersi durante la riproduzione
  • Trasposizione: indica la trasposizione in semitoni o semitoni che un segmento deve trasporre durante la riproduzione
  • A destra della finestra Audition ci sono alcuni pulsanti aggiuntivi. come indicato di seguito:
  • OK - Selezionando OK si confermano tutte le impostazioni del segmento e si chiude la finestra del segmento
  • Annulla: selezionando Annulla, le modifiche vengono annullate e la finestra del segmento viene chiusa
  • Replica: visualizza la finestra Replica segmento per inserire più segmenti contemporaneamente. Continua a leggere per ulteriori informazioni.
  • Riproduci/Interrompi segmento: avvia o interrompe la riproduzione del segmento utilizzando gli attributi del segmento assegnati.
  • Play/Stop MIDI File - Avvia o interrompe la riproduzione del file MIDI a cui è assegnato il segmento.
  • Metti in pausa/Riprendi: mette in pausa o riprende la riproduzione.

5.2 Finestra degli eventi

La finestra dell'evento è il luogo in cui gli attributi evento di un determinato segmento vengono assegnati e sottoposti a prove, come mostrato nell'immagine di seguito. Per aggiungere un evento a un segmento, l'autore deve prima selezionare il segmento che conterrà l'evento, quindi selezionare il pulsante Aggiungi. Viene visualizzata la finestra Evento.

La finestra dell'evento contiene due sezioni principali. La sezione del segmento sul lato sinistro della finestra dell'evento è riservata alla visualizzazione. Mostra gli attributi di quel determinato segmento. La sezione Evento, sul lato destro, è la sezione in cui possono essere assegnati gli eventi. Sono disponibili i seguenti parametri:

Nome evento: assegna un nome a un evento

Tipo di evento: consente di selezionare il tipo di evento da assegnare.

M/B/T iniziale: imposta la misura, il battito e il segno di graduazione iniziali per l'evento

M/B/T finale: imposta la misura, il battito e il segno di graduazione finale per l'evento, se applicabile

Traccia: imposta la traccia nel segmento in questione a cui verrà applicato l'evento.

Canale: consente di impostare il canale MIDI a cui applicare l'evento. Il canale MIDI deve corrispondere al canale MIDI della traccia

ID evento: imposta l'ID evento per l'evento. Allo stesso segmento possono essere assegnati più eventi, quindi viene utilizzato l'ID evento per identificarli

A destra della finestra Audition ci sono alcuni pulsanti aggiuntivi. come indicato di seguito:

OK - Se selezioni OK, vengono confermate tutte le impostazioni relative all'evento e viene chiusa la finestra dell'evento

Annulla: selezionando Annulla, le modifiche vengono annullate e la finestra dell'evento viene chiusa

Replica: visualizza la finestra Evento di replica per inserire più eventi contemporaneamente. Consulta quanto riportato di seguito.

Play/Stop: avvia o interrompe la riproduzione del segmento utilizzando gli attributi del segmento assegnati. Durante la riproduzione del segmento, è possibile attivare gli eventi e fare un'audizione.

Trigger: attiva l'evento assegnato. Questo replica il comando API che il gioco JET utilizzerà per attivare l'evento, offrendo quindi all'autore dei contenuti un metodo per provare il comportamento dell'evento.

Disattiva/riattiva audio: disattiva/riattiva l'audio della traccia a cui è assegnato l'evento.

Metti in pausa/Riprendi: mette in pausa o riprende la riproduzione.

Per controllare il comportamento di un evento, seleziona il pulsante Riproduci. Verrà avviata la riproduzione. Quando viene premuto, il pulsante di attivazione invia l'evento di attivazione. Equivale a selezionare l'evento di trigger verde nella sequenza temporale.

Nota: gli eventi di attivazione hanno lo scopo di riattivare l'audio di una singola traccia di un segmento quando vengono attivati, per poi disattivarne l'audio alla fine del segmento di attivazione. Pertanto, devi assicurarti che il flag di disattivazione sia impostato in modo da disattivare l'audio della traccia per cui verrà riattivato un evento di attivazione quando lo ricevi.

Leggi la Sezione 6 Roba da smanettoni di seguito per informazioni dettagliate sul funzionamento e sul comportamento degli eventi di attivazione.

5.3 Replica di Windows

Spesso, durante la creazione di file JET, devi creare decine o persino centinaia di eventi. Potrebbe anche essere necessario spostare gli eventi. Le finestre Replica e Sposta consentono questa operazione. Esistono due finestre di replica per la creazione di più segmenti o eventi. Hanno il seguente aspetto:

Finestra Replica segmento

Finestra evento di replica

Entrambe le finestre di replica funzionano allo stesso modo. Dopo aver creato un segmento o un evento iniziale, puoi selezionare il pulsante Replica. I parametri sono i seguenti:

Prefisso nome: imposta il prefisso per il nome di ogni segmento o evento creato

M/B/T a partire: imposta l'ora di inizio del primo segmento o evento

Aumenta M/B/T: imposta il tempo tra segmenti o eventi creati.

Numero: imposta il numero di segmenti o eventi che vuoi creare. Se il numero supera la lunghezza del file MIDI (per i segmenti) o del segmento (per gli eventi), gli oggetti non verranno creati.

Anteprima: l'anteprima consente di esaminare gli oggetti creati prima di selezionare OK per inserirli.

5.4 Spostare le finestre

La funzione Sposta si comporta in modo simile alla funzione di replica, in quanto consente di modificare più segmenti o eventi contemporaneamente, in questo caso di spostarli nel tempo. Come nel caso dell'opzione Replica, ci sono due finestre di spostamento, una per i segmenti e l'altra per gli eventi. Le finestre hanno il seguente aspetto:

Sposta finestra evento

Per utilizzare Sposta, seleziona prima i segmenti o gli eventi che vuoi spostare, poi fai clic sul pulsante Sposta. I parametri sono i seguenti:

M/B/T a partire: imposta l'ora di inizio del primo segmento o evento

Aumenta M/B/T: imposta l'ora, in M/B/T, in base alla quale vuoi spostare gli oggetti.

Anteprima: l'anteprima consente di esaminare gli oggetti creati prima di scegliere di spostarli.

5.5 Finestra delle audizioni

Facendo clic sul pulsante Audition nella finestra principale dell'applicazione JET Creator, si aprirà la finestra Audition. In questo caso, l'autore dei contenuti o il programmatore dell'applicazione può simulare la riproduzione interattiva che potrebbe verificarsi nell'applicazione mobile o nel gioco.

Finestra dell'audizione JET

La finestra dell'audizione è composta da quattro sezioni principali. La sezione più a sinistra mostra i segmenti disponibili e la loro durata in secondi. La sezione centrale mostra un elenco corrente dei segmenti in coda per la riproduzione e del relativo stato di riproduzione. Nella sezione all'estrema destra vengono visualizzati gli indicatori di disattivazione audio del segmento attualmente in riproduzione. La sezione della sequenza temporale in basso è la stessa della finestra principale. Mostra il segmento attualmente in riproduzione e una rappresentazione visiva di eventuali attivatori di eventi associati a quel segmento.

La finestra Audizione ti permette di aggiungere alla coda qualsiasi segmento per la riproduzione. Per farlo, basta selezionare il segmento che vuoi mettere in coda e fare clic su Coda. Il segmento verrà visualizzato nella finestra della coda e inizierà la riproduzione (se è il primo segmento). Successivamente puoi selezionare qualsiasi altro segmento o segmenti e metterli in coda per la riproduzione. Quando i segmenti completano la riproduzione, inizierà la riproduzione del segmento successivo in coda. Come per le altre finestre di JET Creator, puoi disattivare e riattivare l'audio, attivare clip di eventi e così via in tempo reale durante la riproduzione di ogni segmento.

In particolare, i pulsanti si comportano come segue:

Coda: carica il segmento selezionato nella coda e avvia la riproduzione

Annulla e metti in coda: annulla il segmento attualmente in riproduzione prima di mettere in coda il segmento selezionato per la riproduzione

Annulla corrente: annulla il segmento attualmente in riproduzione nella coda e avvia la riproduzione del segmento successivo

Stop: interrompe la riproduzione di tutti i segmenti in coda

Disattiva l'audio di tutto: disattiva tutte le tracce nel segmento corrente

Nessuna notifica: riattiva l'audio di tutte le tracce nel segmento corrente

Disattiva audio originale: imposta i flag originali di disattivazione audio per il segmento corrente

La combinazione di queste opzioni di riproduzione consente a un autore o a un programmatore di sperimentare qualsiasi comportamento in cui potrebbe trovarsi un'applicazione musicale interattiva.

5.6 Menu JET Creator

I menu JET Creator consentono di accedere a molti parametri nella finestra principale, oltre ad alcuni parametri aggiuntivi.

5.6.1 Menu File

Il menu File contiene i seguenti elementi:

Nuovo - Crea un nuovo file JET Creator (.jtc)

Apri - Apre un file JET Creator esistente

Salva: salva il file dell'autore JET attualmente aperto

Salva con nome: salva il file dell'autore JET attualmente aperto in un nuovo file

Importa progetto: importa un archivio JET Creator (.zip)

Esporta progetto - Esporta un archivio JET Creator (.zip)

Esci: esce dall'applicazione

5.6.2 Menu Modifica

Il menu Modifica contiene i seguenti elementi:

Annulla: Annulla annullerà l'ultima modifica apportata

Ripeti - Ripeti l'ultimo annullamento

Taglia: copia il parametro selezionato negli appunti ed elimina la selezione

Copia - Copia il parametro selezionato negli appunti e mantieni la selezione

Incolla - Incolla il parametro selezionato

5.6.3 JET

Il menu Modifica contiene i seguenti elementi:

Proprietà - Apre la finestra delle priorità dei creator JET. Questa finestra ti consente di impostare le seguenti condizioni per un determinato file JET:

Informazioni sul copyright: contiene informazioni sul copyright da inserire nel file JET

Controller Chase: opzione per chase controller (on/off). In genere questa opzione dovrebbe essere attivata.

Elimina tracce MIDI: elimina tutte le tracce MIDI vuote

5.6.4 Segmenti

Il menu Segmenti contiene i seguenti elementi:

Aggiungi segmento: apre la finestra Segmento

Aggiorna segmento - Aggiorna attributi del segmento

Elimina segmento: elimina il segmento corrente dall'elenco dei segmenti

5.6.5 Aiuto

Il menu Guida conterrà almeno i seguenti elementi:

Guida per i creator di JET: lancerà il documento di aiuto in formato PDF o andrà alla guida online

Informazioni - Numero di versione di JET Creator, informazioni SONiVOX

Spiegazione di 6 eventi di trigger

Suddividere un file MIDI in segmenti singoli (non lineari) e metterli in coda per la riproduzione in un gioco in base agli eventi del gioco è uno dei modi in cui i file musicali JET sono interattivi. Gli eventi di attivazione sono un metodo aggiuntivo per la riproduzione interattiva. Vengono utilizzati insieme in un gioco o in un'applicazione interattivi.

Gli eventi di trigger consentono quanto segue:

  1. Le tracce all'interno di un segmento MIDI possono essere attivate o disattivate in base agli eventi del gioco. Ad esempio, il compositore potrebbe scrivere due tracce di batteria, una veloce e una lenta. Se l'azione in un gioco è veloce, può suonare la fast drum track. Se l'azione nel gioco è lenta, può essere suonata la traccia di batteria lenta.
  2. Le azioni dell'utente possono essere confrontate con eventi di attivazione che vengono pre-inseriti in un file musicale in punti musicalmente corretti. In base ai risultati, possono verificarsi punteggi o altre azioni di gioco.
  3. Le transizioni musicali tra livelli o sequenze di azioni possono essere sincronizzate per ottenere musicalmente senza interruzioni.

In background, JET utilizza eventi MIDI CC standard per svolgere queste azioni e sincronizzare l'audio. I controller utilizzati da JET sono tra quelli non definiti per un uso specifico dalla specifica. Le definizioni specifiche dei controller sono le seguenti:

Controller 80-83 Riservato per l'utilizzo da parte dell'applicazione

Controller 102 Indicatore evento JET

Controller 103 indicatore di clip JET

Controller 104-119 Riservato per uso futuro

6.1 Indicatore a clip JET (CC103)

Il controller 103 è riservato per contrassegnare i clip in una traccia MIDI che può essere attivata dalla chiamata API JET_TriggerClip. L'ID clip è codificato nei 6 bit più bassi del valore del controller. Il bit 6 è impostato su uno per indicare l'inizio di un clip e su zero per indicare la fine di un clip.

Ad esempio, per identificare un clip con ID clip pari a 1, l'autore inserisce un evento controller MIDI con controller=103 e value=65 all'inizio del clip e un altro evento con controller=103 e value=1 alla fine del clip. Quando la funzione JET_TriggerClip() viene richiamata con un ID clip pari a 1, l'audio della traccia viene riattivato quando viene rilevato il valore 65 del controller e l'audio viene nuovamente disattivato quando viene rilevato il valore 1 del controller.

Figura 5: clip sincronizzato

Nella figura precedente, se la funzione JET_TriggerClip() viene richiamata prima del primo evento del controller, l'audio della traccia 3 verrà riattivato quando si verifica il primo evento del controller, verrà riprodotto il primo clip e l'audio della traccia verrà disattivato quando si verifica il secondo evento del controller. Se la funzione JET_TriggerClip() viene richiamata dopo che si è verificato il primo evento del controller, l'audio della traccia 3 verrà riattivato al verificarsi del terzo evento del controller, verrà riprodotto il secondo clip e l'audio della traccia verrà nuovamente disattivato quando si verifica il quarto evento del controller.

Nota: di norma, l'audio della traccia contenente il clip viene disattivato dall'applicazione quando il segmento viene inizialmente inserito nella coda dalla chiamata a JET_QueueSegment(). Se l'audio non è disattivato, il clip verrà sempre riprodotto fino a quando Jet_TriggerClip() non viene richiamato con l'ID del clip.

6.2 Indicatore di evento JET (CC102)

Il controller 102 è riservato per contrassegnare gli eventi negli stream MIDI specifici della funzionalità JET. Attualmente, l'unico valore definito è 0, che indica la fine di un segmento ai fini della tempistica.

Normalmente, JET avvia la riproduzione del segmento successivo (o ripete il segmento corrente) quando si verifica il meta-evento di fine traccia MIDI. Alcuni strumenti di creazione MIDI rendono difficile posizionare l'indicatore di fine traccia in modo preciso, causando problemi di sincronizzazione quando i segmenti sono uniti.

Per evitare questo problema, l'autore può posizionare un indicatore di fine segmento JET (controller=102, valore=0) nel punto in cui deve essere eseguito il loop del segmento. Quando viene rilevato l'indicatore di fine del segmento, viene attivato il segmento successivo oppure, se il segmento corrente è in loop, la riproduzione riprende dall'inizio del segmento.

L'indicatore di fine segmento può essere utilizzato anche per consentire il completamento di una figura musicale oltre la fine della misura che segna l'inizio del segmento successivo. Ad esempio, l'autore dei contenuti potrebbe creare un segmento di 4 misure con un riempimento di batteria che termina al 1° della 5a barra, una barra oltre l'estremità naturale del segmento. Se posizioni un indicatore di fine segmento alla fine della 4a barra, verrà attivato il segmento successivo, ma il riempimento della batteria continuerà in parallelo con il segmento successivo, garantendo la continuità musicale.

Figura 6: indicatore di fine segmento

6.3 Controller applicativi (CC80-83)

L'applicazione può usare i controller in questo intervallo per scopi propri. Quando viene rilevato un controller in questo intervallo, l'evento viene inserito in una coda di eventi su cui l'applicazione può eseguire query. Alcuni possibili utilizzi includono la sincronizzazione degli eventi video con l'audio e il contrassegno di un punto in un segmento MIDI per inserire in coda il segmento successivo. La gamma di controller monitorati dall'applicazione può essere modificata da quest'ultima durante l'inizializzazione.

7 Linee guida JET per i creator

7.1 Ordine delle attività

Come per tutti i progetti, è meglio discutere e progettare lo schema musicale interattivo con il game designer e il programmatore prima di iniziare la composizione. Una struttura e/o una specifica possono essere molto utili per evitare di dover ripetere le operazioni dopo l'inizio del gioco.

In generale, ti consigliamo di scrivere prima la musica nella tua DAW scelta nel modo in cui sei abituato a comporre, quindi suddividere il file MIDI finale in base alle esigenze dell'applicazione. Dopodiché, passa a JET Creator e crea tutti i tuoi segmenti musicali nell'ordine più semplice per visualizzarne l'anteprima quando vengono riprodotti in ordine. Infine, aggiungi gli eventi JET per controllare i segmenti tramite il gioco Android e verificali in base alle esigenze in JET Creator. Infine, salva il progetto in JET Creator e passa il file .jet al programmatore affinché possa integrarlo nel gioco. Dopo aver visualizzato l'anteprima, probabilmente ci saranno modifiche ai file MIDI e agli attributi JET Creator.

7.2 Conservare la memoria

Se vuoi risparmiare memoria, componi il minor numero possibile di file MIDI e crea diversi segmenti da tale file. Ad esempio, un file MIDI di 12 misure con tre sezioni di 4 misure, A, B e C, può creare un brano molto più lungo. È sufficiente creare più segmenti che facciano riferimento al singolo file MIDI e ordinare i file come preferisci. Ad esempio, A, A, B, A, C, A, B, A, A creerebbe un brano di 36 battute. Usa JET per aggiungere ripetizioni, trasporre segmenti e tracce interattive con audio e audio, che rendono l'evento ancora più interessante.

7.3 Replica

Per velocizzare l'aggiunta di segmenti o eventi, utilizza il comando Replica. Gli utenti replicati possono aggiungere più segmenti o eventi contemporaneamente e utilizzano un parametro di offset e una convenzione di denominazione dei prefissi per semplificare la lettura. Il comando MOVE è utile anche per spostare più eventi in base a un determinato numero di misure, battiti o segni di graduazione.

7.4 Opzioni interattive

JET offre diversi concetti di audio interattivi. Di seguito sono riportati alcuni esempi, anche se ci auguriamo che gli sviluppatori ne trovino altri a cui non abbiamo pensato. Gli URL in questione sono:

7.4.1 Attivazione di più segmenti

In questo metodo l'applicazione attiva segmenti specifici in base agli eventi del gioco. Ad esempio, un corridoio con molti combattimenti potrebbe attivare il segmento 1, mentre un corridoio senza combattimenti potrebbe attivare il segmento 2. L'utilizzo di TriggerClip JET in combinazione con questo metodo crea ancora più diversità.

7.4.2 Disattivazione dell'opzione Array

Con questo metodo, l'applicazione attiva eventi di disattivazione e riattivazione dell'audio per tracce specifiche in un'unica sequenza MIDI. Ad esempio, un corridoio con un sacco di combattimenti potrebbe riprodurre tracce MIDI 1-16 e un corridoio senza combattimento potrebbe riprodurre lo stesso file MIDI ma tracce mute 9-16. L'utilizzo di TriggerClip JET in combinazione con questo metodo crea ancora più diversità.

7.4.3 Gameplay basato sulla musica

I giochi basati sulla musica sono simili a quelli di Guitar Hero e JETBOY, in quanto sono i contenuti musicali a determinare il modo in cui vengono visualizzati gli eventi crudi. L'applicazione quindi interroga la risposta dell'utente agli eventi grafici e modifica interattiva la musica in risposta. Con questo metodo il gioco utilizza gli eventi applicazione JET, ovvero controller MIDI incorporati nel file MIDI e letti dal gioco in tempo reale. In base alla risposta dell'utente, è possibile impostare l'attivazione di più segmenti e/o l'audio di array.