Manuel utilisateur SONiVOX JETCreator

Application de création de contenu pour le moteur de musique interactif JET

1 Introduction

1.1 Présentation

Ce document contient les consignes destinées aux utilisateurs de SONiVOX JET Creator, une application de création permettant de créer et d'auditionner des fichiers JET. JET est un lecteur de musique interactif destiné aux petits appareils embarqués, y compris ceux exécutant la plate-forme Android. Il permet aux applications d'inclure des bandes-son musicales interactives, au format MIDI, qui répondent en temps réel aux événements de jeu et aux interactions des utilisateurs.

JET fonctionne avec le synthétiseur audio intégré (EAS) de SONiVOX, l'appareil de lecture MIDI pour Android. Les moteurs JET et EAS sont intégrés à la plate-forme intégrée Android via la classe JetPlayer, et inhérents à l'application JET Creator. Ainsi, l'auteur du contenu JET peut s'assurer que la lecture sera exactement la même dans JET Creator et dans l'application Android finale lue sur les appareils mobiles Android.

En plus de l'interface utilisateur graphique, JET Creator propose deux fonctionnalités principales. La première consiste à rassembler toutes les données sources (fichiers MIDI et DLS), à ajouter les attributs en temps réel de JET et à créer un fichier JET (.jet) que l'application Android utilisera. La deuxième fonctionnalité consiste à auditionner les éléments de lecture interactifs tels qu'ils se dérouleront dans l'application Android.

L'application JET Creator est écrite en langage de programmation Python. Vous devez donc disposer de la version actuelle de Python et WXWidgets. Il existe à la fois une version Mac et une version Windows.

1.2 Abréviations et termes communs

Il est important d'utiliser un ensemble commun de termes afin de minimiser la confusion. Étant donné que JET utilise MIDI de manière unique, les termes standards du secteur ne suffisent pas toujours. Voici la définition des termes tels qu'ils sont utilisés sur cette page et dans l'application JET Creator:

Canal: données MIDI associées à un canal MIDI spécifique. Le MIDI standard autorise 16 canaux de données MIDI, chacun étant généralement associé à un instrument spécifique.

Contrôleur: événement MIDI constitué d'un numéro de canal, d'un numéro de manette et d'une valeur de contrôleur. La spécification MIDI associe de nombreux numéros de contrôleur à des fonctions spécifiques, telles que le volume, l'expression, la pédale de maintien, etc. JET utilise également des événements de contrôleur pour intégrer des informations de commande spéciales dans une séquence MIDI afin de fournir une synchronisation audio.

DAW (Digital Audio Workstation) : station de travail audio numérique Terme couramment utilisé pour désigner les applications de séquençage audio et MIDI telles que Logic, SONAR, Cubase, etc.

EAS:synthétiseur MIDI intégré. Nom du moteur de synthétiseur MIDI SONiVOX.

JET: Jet Interactive Engine. Nom du moteur de musique interactive SONiVOX JET.

M/B/T: mesures, battements et tics

Segment: section musicale, telle qu'un refrain ou un vers, qui fait partie de la composition globale. Dans JET, un segment peut être un fichier MIDI entier ou un segment dérivé d'un fichier MIDI.

SMF-0: fichier MIDI standard de type 0 contenant une seule piste, mais pouvant être composé de plusieurs canaux de données MIDI.

SMF-1: fichier MIDI standard de type 1. Il s'agit d'un fichier MIDI contenant une ou plusieurs pistes, chacune d'entre elles pouvant être à son tour constituée d'un ou de plusieurs canaux de données MIDI. Par convention, chaque canal est stocké sur une piste distincte dans un fichier SMF-1. Cependant, il est possible d'avoir plusieurs canaux MIDI sur une seule piste ou de plusieurs pistes contenant des données pour le même canal MIDI.

Piste: piste unique dans une DAW contenant une séquence d'événements chronométrés. Veillez à ne pas confondre les pistes et les canaux. Un fichier MIDI peut contenir plusieurs pistes avec plusieurs pistes utilisant le même canal MIDI.

2 Le concept musical interactif de JET

La musique interactive peut être définie comme de la musique qui change en temps réel en fonction d'événements imprévisibles, tels que les interactions de l'utilisateur ou les événements de jeu. De cette manière, la musique interactive est beaucoup plus stimulante, car elle permet de s'adapter à l'énergie et à l'humeur d'un jeu bien plus près qu'une composition précomposée qui ne change jamais. Dans certains jeux et applications, la musique interactive est au cœur du jeu. Guitar Hero est un jeu très populaire. Lorsque l'utilisateur final capture avec succès les notes de musique qui arrivent sur le manche, la musique s'adapte et conserve en même temps une note de succès et d'échecs. JET permet également d'utiliser ce type de jeux musicaux.

Il existe plusieurs méthodes pour créer et contrôler de la musique interactive. JET fait partie de ces méthodes. Cette section décrit les fonctionnalités de JET et leur utilisation dans un jeu ou une application logicielle. Il décrit également comment JET peut être utilisé pour économiser de la mémoire dans les appareils à petite encombrement tels que les téléphones mobiles compatibles Android.

2.1.1 Compression des données

JET accepte un format musical flexible qui peut être utilisé pour créer des séquences musicales étendues avec un minimum de données. Une composition musicale est divisée en segments qui peuvent être séquencés pour créer un morceau plus long. Le séquençage peut être corrigé au moment de la création du fichier musical ou créé de manière dynamique sous le contrôle d'un programme.

2.1.2 Exemple de musique linéaire


Figure 1: morceau de musique linéaire

Ce schéma montre comment les segments musicaux sont stockés. Chaque segment est créé sous la forme d'un fichier MIDI distinct. Un outil de post-traitement combine les fichiers en un seul fichier de conteneur. Chaque segment peut contenir d'autres pistes musicales qui peuvent être coupées ou réactivées pour susciter davantage d'intérêt. Il peut s'agir, par exemple, d'un accent cuivré dans le refrain qui n'est joué que la dernière fois. Les segments peuvent également être transposés vers le haut ou vers le bas.

La partie inférieure du diagramme montre comment recombiner les segments musicaux pour créer un morceau de musique linéaire. Dans cet exemple, le pont peut se terminer par une modulation de clé en demi-pas et les segments restants peuvent être transposés d'un demi-pas pour correspondre.

2.1.3 Exemple de musique non linéaire


Figure 2: Élément musical non linéaire

Dans ce diagramme, nous voyons un morceau de musique non linéaire. Le scénario est un jeu de tir à la première personne (FPS), et JET fournit la musique de fond. L'introduction s'exécute pendant le chargement du niveau, puis passe sous le contrôle du programme au segment "Recherche". Ce segment est répété indéfiniment, peut-être avec de petites variations (à l'aide de la fonctionnalité de coupure/réactivation du son) jusqu'à ce que l'activité dans le jeu impose un changement.

Lorsque le joueur s'approche d'un repaire de monstres, le programme lance une transition synchronisée vers le segment "Danger", augmentant ainsi le niveau de tension dans l'audio. À mesure que le joueur se rapproche du repaire, le son des titres supplémentaires est réactivé pour accroître la tension.

Lorsque le joueur entre au combat avec le monstre, le programme lance une transition synchronisée vers le segment de combat. Le segment se répète indéfiniment à mesure que le combat se poursuit. Un coup bonus réactive temporairement le son d'une piste décorative qui avertit le joueur qu'une attaque a réussi. De même, une autre piste est réactivée temporairement pour indiquer que le joueur subit des dégâts spéciaux.

À la fin du combat, la musique passe à un segment de victoire ou de défaite en fonction du résultat de la bataille.

2.1.4 Activer/Désactiver la synchronisation

JET peut également synchroniser la désactivation et la réactivation du son des pistes avec les événements de la musique. Par exemple, dans le jeu FPS, il serait probablement souhaitable de placer les événements musicaux liés aux bonus et aux dégâts aussi près que possible de l'événement de jeu réel. Toutefois, le simple fait de réactiver le son d'un titre au moment de l'événement de jeu peut déclencher l'affichage d'un clip musical au milieu. Un extrait peut également être lancé depuis le début, mais il ne sera alors pas synchronisé avec les autres pistes musicales.

Cependant, avec le moteur de synchronisation JET, un extrait peut être démarré au moment opportun et maintenir la synchronisation. Pour ce faire, il suffit de placer un certain nombre de courts extraits musicaux sur une piste décorative. Un événement MIDI dans le flux indique le début d'un extrait et un deuxième événement indique la fin d'un extrait. Lorsque l'application appelle la fonction d'extrait JET, le clip suivant dans la piste peut être lu entièrement de manière synchronisée avec la musique. Le son de la piste peut être automatiquement coupé par un deuxième événement MIDI.


Figure 3: activation/désactivation du son synchronisés

2.2 Synchronisation audio

JET fournit une API de synchronisation audio qui permet de synchroniser le jeu avec des événements dans l'audio. Ce mécanisme repose sur les données intégrées dans le fichier MIDI au moment de la création du contenu. Lorsque le moteur JET détecte un événement pendant la lecture, il génère un rappel dans le programme d'application. La chronologie du rappel peut être ajustée pour compenser toute latence dans le système de lecture audio, afin de synchroniser l'audio et la vidéo. Le schéma ci-dessous montre un exemple de jeu musical simple impliquant d'appuyer sur les flèches vers la gauche et vers la droite en même temps que la musique.


Figure 4: Jeu musical

Les flèches représentent les événements de la séquence musicale où les événements de jeu doivent être synchronisés. Dans ce cas, la flèche bleue représente le moment où le joueur est censé appuyer sur le bouton de gauche, tandis que la flèche rouge correspond au bouton de droite. La flèche jaune indique au moteur de jeu que la séquence est complète. Le lecteur dispose d'un certain délai avant et après l'événement pour appuyer sur la touche appropriée.

Si un événement est reçu et que le joueur n'a pas appuyé sur un bouton, un minuteur est défini sur la moitié de la durée de la fenêtre. Si le joueur appuie sur le bouton avant l'expiration du minuteur, le jeu enregistre un succès et, si ce n'est pas le cas, un échec.

Si le joueur appuie sur le bouton avant la réception de l'événement, un minuteur est défini sur la moitié de la durée de la fenêtre. Si un événement est reçu avant l'expiration du minuteur, le jeu enregistre un succès et, si ce n'est pas le cas, un échec. L'expérience de jeu peut également inclure des bonus pour vous approcher de la date de l'événement proprement dit.

3 Présentation de la création de contenu JET

Pour créer des fichiers JET et les écouter de manière interactive, l'auteur de contenu travaille dans deux applications conçues pour fonctionner ensemble de manière fluide. La première est une application de séquençage MIDI prête à l'emploi compatible avec les plug-ins VST (pour PC) ou AU (pour Mac). Ici, l'auteur composera ses fichiers musicaux MIDI à l'aide du plug-in comme appareil de synthèse. La seconde application est JET Creator. Ici, l'auteur importera ses fichiers musicaux MIDI (et éventuellement un ensemble de sons DLS2) et configurera les conditions de lecture interactive dans le jeu compatible avec JET. L'auteur du contenu peut éventuellement créer un ensemble personnalisé d'instruments DLS à l'aide d'un éditeur d'instruments compatible avec le format DDL de niveau 2. C'est le cas, par exemple, d'Awave de MJSoft.

Veuillez consulter la documentation sur les consignes de création de contenu JET pour en savoir plus sur la création de contenu.

4 Installer et lancer JET Creator

JET Creator est une application en langage Python. Par conséquent, Python et wxPython doivent être installés sur votre ordinateur.

JetCreator a été créé et testé avec:

Python version 2.5.4

wxPython version 2.8.7.1

Vous pouvez les télécharger ici:

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

Après avoir installé Python et wxPython, il vous suffit de décompresser ou de copier tous les fichiers du répertoire de l'application JET Creator dans un dossier de votre disque dur.

Pour lancer JET Creator, accédez à une invite de commande et définissez le répertoire sur l'emplacement où vous avez installé Python. Exécutez ensuite Python à l'aide de la commande suivante:

python jetcreator.py

5 Utiliser JET Creator

5.1 Types de fichiers

Plusieurs types de fichiers sont associés à JET Creator.

fichier de projet du créateur JET .jtc. Ce fichier contient toutes les informations associées à un projet JET Creator. Lorsque vous cliquez sur "Enregistrer" ou "Enregistrer sous JET Creator", ce type de fichier est enregistré.

.jet JET. Ce fichier de sortie est automatiquement généré à partir de JET Creator chaque fois que vous enregistrez votre projet JET Creator. Il s'agit du fichier qui regroupe tous les éléments JET dans un seul fichier que l'application Android utilisera. Transmettez ce fichier au développeur de l'application Android.

.mid. Il s'agit du fichier MIDI standard de type 1 que JET Creator utilisera pour créer des segments.

.seg. Il s'agit d'un fichier de segment JET. Il porte le même nom que le fichier MIDI auquel il fait référence, mais contient des informations de segment supplémentaires.

.zip, .zip, ou fichier d'archive ZIP. Lorsque vous exportez une archive JET, un fichier ZIP contenant tous les éléments (fichiers) nécessaires à JET Creator est créé. Utilisez-le pour transférer les projets JET Creator à d'autres personnes.

5.2 Ouvrir une boîte de dialogue

Lorsque vous lancez JET Creator pour la première fois, une boîte de dialogue s'affiche comme suit.

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

La commande Open (Ouvrir) permet d'ouvrir un fichier .jtc (fichier JET Creator) existant. Utilisez le bouton du navigateur pour accéder au répertoire dans lequel vous avez enregistré votre fichier .jtc.

L'option New (Nouveau) crée un fichier .jtc.

Import (Importer) permet d'importer un fichier d'archive JET (.zip).

Cancel (Annuler) pour fermer la boîte de dialogue et quitter l'application.

5 Fenêtre principale

La fenêtre principale de l'application JET Creator ressemble à l'image ci-dessous. Il y a trois sections principales de haut en bas: la vue en segment, la vue des événements et la chronologie.

La section "Vue en segments" affiche la liste des segments actuels, dont le fichier MIDI et (éventuellement) le fichier DLS2 sont dérivés. Il affiche également les heures de début et de fin de chaque segment, ainsi que les paramètres des indicateurs de quantification, de transposition, de répétition et de désactivation du son.

La vue des événements se trouve juste en dessous de la vue "Segment". La section "Vue des événements" affiche tous les événements associés à un segment donné. Les événements ne s'affichent que lorsque le segment auquel ils sont attribués est mis en surbrillance. Chaque événement affiche son type, ses points de départ et d'arrivée, l'attribution de canaux et de canaux MIDI, et l'ID de l'événement.

La chronologie est affichée juste en dessous de la vue "Event" (Événement). La chronologie indique le nombre de mesures dans un segment donné, ainsi que tous les événements associés à ce segment. La chronologie change pour afficher le segment actuellement sélectionné ou en cours de lecture. Vous pouvez déclencher un événement dans cette fenêtre pendant la lecture du segment. Pour ce faire, il vous suffit de cliquer sur l'événement dans la chronologie.


Fenêtre principale de JET pour les créateurs

Les boutons situés sur le côté gauche de la fenêtre principale effectuent les opérations suivantes:

Ajouter : affiche la fenêtre du segment ou de l'événement permettant d'ajouter un segment ou un événement.

Réviser : affiche la fenêtre du segment ou de l'événement permettant de mettre à jour un segment ou un événement existants.

Supprimer : supprime le segment ou l'événement sélectionné (demande de confirmation).

Déplacer : affiche la fenêtre de déplacement, qui vous permet de déplacer les segments ou les événements sélectionnés dans le temps.

Mettre tout en file d'attente: permet de sélectionner tous les segments de la file d'attente pour la lecture.

Tout retirer de la file d'attente: supprime (désélectionne) tous les segments de la file d'attente.

Lecture : lance la lecture de tous les segments en file d'attente. Ce bouton est remplacé par "Arrêter" si des segments sont en cours de lecture

Audition : affiche la fenêtre "Audition" (voir ci-dessous).

5.1 Fenêtre Segmenter

La fenêtre de segment est l'endroit où les attributs d'un segment donné sont attribués et auditionnés, comme illustré dans l'image ci-dessous. La partie gauche de la fenêtre affiche les attributs de segment stockés dans le fichier JET. Le côté droit de la fenêtre permet à l'auteur de définir des indicateurs de coupure du son, de répéter et de transposer les paramètres, et d'auditionner le segment tel qu'il sera lu dans le jeu JET.

Remarque: Les attributs d'audition (indicateurs de son, répétition et transpose) ne sont pas stockés dans le fichier de contenu JET (.jet), mais sont définis par le jeu ou l'application eux-mêmes. Dans le langage de programmation, ces paramètres correspondent directement aux appels d'API au moteur JET. En les incluant ici, l'auteur de contenu JET peut simuler la manière dont le segment répondra aux commandes de l'API des applications pendant le jeu.

Les paramètres de segment permettent d'effectuer les opérations suivantes:

  • Segment Name (Nom du segment) : définit le nom du segment
  • Fichier MIDI : nom et emplacement du fichier MIDI dont le segment est dérivé. Le bouton situé à droite ouvre un navigateur permettant de localiser un fichier MIDI sur le disque dur.
  • Fichier DLS : nom et emplacement du fichier DLS2, le cas échéant, que le fichier MIDI utilise pour ce segment.
  • M/B/T de départ : Début de la mesure, du battement et du tick du segment
  • Fin M/B/T : mesure de fin, battement et tick du segment
  • Quantize : Quantifier la valeur pour quantifier le segment actuel pendant la lecture

Les auditions sont les suivantes:

  • Coupures du son de la piste : affiche les pistes MIDI (et non les canaux) dans le fichier MIDI. Cliquer sur la case à cocher d'une piste permet de couper le son de cette piste.
  • Channel (Canal) : affiche le canal MIDI attribué à chaque piste.
  • Nom : affiche le méta-événement correspondant au nom du titre (le cas échéant) pour chaque titre.
  • Répéter Indique le nombre de fois qu'un segment doit être répété pendant la lecture.
  • Transposer : indique la transposition en demi-tons ou en demi-tons qu'un segment doit transposer lors de la lecture.
  • D'autres boutons se trouvent à droite de la fenêtre "Audition". La procédure est la suivante:
  • OK. Si vous sélectionnez "OK", tous les paramètres du segment sont confirmés et la fenêtre du segment est fermée.
  • Annuler : L'option "Annuler" permet d'annuler toutes les modifications et de fermer la fenêtre du segment.
  • Répliquer : affiche la fenêtre "Répliquer le segment" pour saisir plusieurs segments à la fois. (voir ci-dessous).
  • Lecture/Arrêt du segment : démarre ou arrête la lecture du segment à l'aide des attributs de segment attribués.
  • Lecture/Arrêt du fichier MIDI : démarre ou arrête la lecture du fichier MIDI auquel le segment est attribué.
  • Pause/Reprendre - Permet de mettre en pause ou de reprendre la lecture.

5.2 Fenêtre d'événement

La fenêtre d'événement est l'endroit où les attributs d'événement d'un segment donné sont attribués et auditionnés, comme illustré dans l'image ci-dessous. Pour ajouter un événement à un segment, l'auteur doit d'abord sélectionner le segment qui contiendra l'événement, puis cliquer sur le bouton "Ajouter". La fenêtre "Event" (Événement) s'affiche.

La fenêtre d'événement comporte deux sections principales. La section des segments sur le côté gauche de la fenêtre d'événement ne sert qu'à afficher les données. Il indique les attributs du segment en question. Les événements peuvent être attribués dans la section "Événements" située à droite. Les paramètres suivants sont disponibles:

Nom de l'événement : attribue un nom à un événement

Type d'événement : sélectionne le type d'événement à attribuer.

Start M/B/T : définit la mesure, le temps et le tick de départ pour l'événement.

Fin M/B/T : définit la mesure, le rythme et le tick de fin de l'événement, le cas échéant.

Piste : Définit la piste du segment donné à laquelle l'événement s'appliquera.

Canal : définit le canal MIDI auquel l'événement s'appliquera. Le canal MIDI doit correspondre au canal MIDI de la piste

ID de l'événement : définit l'ID de l'événement. Plusieurs événements peuvent être attribués au même segment. L'ID d'événement permet donc de les identifier.

D'autres boutons se trouvent à droite de la fenêtre "Audition". La procédure est la suivante:

OK. Si vous sélectionnez "OK", tous les paramètres des événements sont confirmés et la fenêtre des événements se ferme.

Annuler : L'option "Annuler" permet d'annuler toutes les modifications et de fermer la fenêtre de l'événement.

Répliquer : affiche la fenêtre "Répliquer des événements" pour saisir plusieurs événements à la fois. Voir ci-dessous.

Lecture/Arrêt : lance ou arrête la lecture d'un segment à l'aide des attributs de segment attribués. Pendant la lecture du segment, des événements peuvent être déclenchés et auditionnés.

Déclencheur : déclenche l'événement attribué. Cette opération réplique la commande d'API que le jeu JET utilisera pour déclencher l'événement, offrant ainsi à l'auteur du contenu une méthode pour auditionner le comportement de l'événement.

Couper/Réactiver le son : Couper/Réactiver le son permet de couper ou de réactiver le son du titre auquel l'événement est attribué.

Pause/Reprendre - Permet de mettre en pause ou de reprendre la lecture.

Pour auditionner le comportement d'un événement, vous pouvez sélectionner le bouton de lecture. La lecture est alors lancée. Le bouton de déclenchement envoie l'événement de déclenchement lorsqu'il est enfoncé. Cela équivaut à sélectionner l'événement déclencheur vert dans la chronologie.

Remarque: Les événements déclencheurs sont destinés à réactiver le son d'une seule piste d'un segment lorsqu'ils sont déclenchés, puis à couper le son de cette piste à la fin du segment déclencheur. Par conséquent, vous devez vous assurer que l'indicateur de coupure du son est configuré pour couper le son de la piste qu'un événement déclencheur réactivera lors de la réception d'un événement déclencheur.

Pour en savoir plus sur le fonctionnement et le comportement des événements déclencheurs, consultez la section 6 Options avancées ci-dessous.

5.3 Répliquer des fenêtres

Souvent, la création de fichiers JET nécessite des dizaines, voire des centaines d'événements. Vous devrez peut-être également déplacer des événements. Les fenêtres Répliquer et Déplacer le permettent. Il existe deux fenêtres de réplication pour créer plusieurs segments ou événements. Celles-ci se présentent comme suit:

Répliquer la fenêtre du segment

Répliquer la fenêtre de l'événement

Les deux fenêtres dupliquées fonctionnent de la même manière. Après avoir créé un segment ou un événement initial, vous pouvez sélectionner le bouton "Répliquer". Les paramètres sont les suivants:

Name Prefix (Préfixe du nom) Définit le préfixe du nom de chaque segment ou événement créé

M/B/T de début : définit l'heure de début du premier segment ou événement.

Incrémenter M/B/T : définit le délai entre la création de segments ou d'événements.

Nombre : définit le nombre de segments ou d'événements que vous souhaitez créer. Si ce nombre dépasse la longueur du fichier MIDI (pour les segments) ou du segment (pour les événements), ces objets ne sont pas créés.

Aperçu : l'aperçu vous permet d'examiner les objets créés avant de cliquer sur "OK" pour les insérer.

5.4 Déplacer des fenêtres

La fonction Déplacer se comporte de la même manière que la fonction Répliquer, dans la mesure où elle vous permet de modifier plusieurs segments ou événements à la fois, dans ce cas, les déplacer dans le temps. Comme pour l'option "Répliquer", il existe deux fenêtres de déplacement, une pour les segments et une pour les événements. Les fenêtres se présentent comme suit:

Déplacer la fenêtre d'événement

Pour utiliser "Déplacer", sélectionnez d'abord les segments ou les événements que vous souhaitez déplacer dans le temps, puis cliquez sur le bouton "Déplacer". Les paramètres sont les suivants:

M/B/T de début : définit l'heure de début du premier segment ou événement.

Incrément M/B/T : définit l'heure en M/B/T à partir de laquelle vous souhaitez déplacer les objets.

Aperçu : l'aperçu vous permet d'examiner les objets créés avant de cliquer sur "OK" pour les déplacer.

5.5 Fenêtre d'audit

Cliquez sur le bouton "Audition" dans la fenêtre principale de l'application JET Creator pour ouvrir la fenêtre "Audition". C'est là que l'auteur du contenu ou le programmeur de l'application peut simuler la lecture interactive, telle qu'elle peut se produire dans l'application mobile ou le jeu lui-même.

Audition JET

L'audition comporte quatre sections principales. La section la plus à gauche affiche les segments disponibles et leur durée en secondes. La section du milieu affiche une liste des segments mis en file d'attente pour la lecture, ainsi que leur état de lecture. La section tout à droite affiche les indicateurs de coupure du son du segment en cours de lecture. La section de chronologie en bas est la même que dans la fenêtre principale. Il affiche le segment en cours de lecture, ainsi qu'une représentation visuelle des déclencheurs d'événements associés à ce segment.

La fenêtre "Audition" vous permet de mettre en file d'attente n'importe quel segment en vue de sa lecture. Pour cela, il suffit de sélectionner le segment que vous souhaitez ajouter au repère et d'appuyer sur "File d'attente". Ce segment apparaît dans la fenêtre de la file d'attente et démarre la lecture (s'il s'agit du premier segment). Vous pouvez ensuite sélectionner un ou plusieurs autres segments et les placer en file d'attente pour la lecture. Lorsque la lecture des segments est terminée, la lecture du segment suivant dans la file d'attente commence. Comme dans les autres fenêtres de JET Creator, vous pouvez couper le son, le réactiver, déclencher des extraits d'événements, etc. en temps réel pendant la lecture de chaque segment.

Plus précisément, les boutons se comportent comme suit:

File d'attente : charge le segment sélectionné dans la file d'attente et lance la lecture.

Annuler et mettre en file d'attente : annule le segment en cours de lecture avant de mettre en file d'attente le segment sélectionné pour la lecture.

Annuler la connexion actuelle : annule le segment en cours de lecture dans la file d'attente et démarre la lecture du segment suivant.

Stop (Arrêt) : arrête la lecture de tous les segments en file d'attente.

Couper le son de tous : couper le son de toutes les pistes du segment actuel

Couper le son : réactive le son de toutes les pistes du segment actuel

Coupures du son d'origine : définit les indicateurs de désactivation d'origine pour le segment actuel.

La combinaison de ces options de lecture permet à un auteur ou à un programmeur d'application d'auditionner tout comportement susceptible d'être rencontré par une application musicale interactive.

5.6 Menus JET Creator

Les menus de JET Creator permettent d'accéder à de nombreux paramètres de la fenêtre principale, ainsi qu'à quelques paramètres supplémentaires.

5.6.1 Menu "Fichier"

Le menu Fichier contient les éléments suivants:

Nouveau : permet de créer un fichier JET Creator (.jtc).

Ouvrir : ouvre un fichier JET Creator existant

Enregistrer : enregistre le fichier JET Creator ouvert.

"Save As" (Enregistrer sous) : enregistre le fichier JET Creator actuellement ouvert dans un nouveau fichier.

Importer un projet : importe une archive JET Creator (.zip)

Exporter le projet : exporte une archive JET Creator (.zip)

Quitter : quitte l'application.

5.6.2 Menu "Édition"

Le menu "Édition" contient les éléments suivants:

Annuler : permet d'annuler la dernière modification effectuée.

Rétablir : permet de rétablir la dernière annulation.

Couper : copier le paramètre sélectionné dans le presse-papiers et supprimer la sélection.

Copier : Copier le paramètre sélectionné dans le presse-papiers et conserver la sélection

Coller : Coller le paramètre sélectionné

5.6.3 JET

Le menu "Édition" contient les éléments suivants:

Propriétés : affiche la fenêtre des priorités JET Creator. Cette fenêtre vous permet de définir les conditions suivantes pour un fichier JET donné:

Informations sur les droits d'auteur : contient les informations sur les droits d'auteur à insérer dans le fichier JET

Manettes de poursuite – Possibilité de courir après les manettes (activé/désactivé). Elle doit généralement être activée.

Supprimer les titres vides : supprime tous les titres MIDI vides.

5.6.4 Segments

Le menu "Segments" contient les éléments suivants:

Ajouter un segment : affiche la fenêtre "Segment".

Mettre à jour le segment – Mettre à jour les attributs du segment

Supprimer le segment : supprime le segment actuel de la liste des segments.

5.6.5 Aide

Ce menu contient au moins les éléments suivants:

Aide JET pour les créateurs : lancera le document d'aide PDF ou accédera à l'aide en ligne

À propos – Numéro de version JET Creator, infos SONiVOX

Six événements déclencheurs expliqués

Diviser un fichier MIDI en segments individuels (non linéaires) et mettre ces segments en file d'attente pour la lecture dans un jeu en fonction des événements du jeu est une façon d'interagir avec les fichiers musicaux JET. Les événements déclencheurs constituent une méthode supplémentaire pour la lecture interactive. Les deux seraient utilisés ensemble dans un jeu ou une application interactifs.

Les événements déclencheurs permettent:

  1. Les pistes au sein d'un segment MIDI peuvent être activées ou désactivées en fonction des événements de jeu. Par exemple, le compositeur peut créer deux pistes de batterie, l'une rapide et l'autre lente. Si l'action d'un jeu est rapide, vous pouvez utiliser la piste de batterie rapide. Si l'action est lente, le morceau de batterie lent peut être joué.
  2. Les actions de l'utilisateur peuvent être comparées aux événements déclencheurs qui sont pré-insérés dans un fichier musical à des emplacements musicaux corrects. En fonction des résultats, il est possible d'obtenir des scores ou d'effectuer d'autres actions dans le jeu.
  3. Les transitions musicales entre les niveaux ou les séquences d'action peuvent être synchronisées pour une harmonie parfaite.

En arrière-plan, JET utilise des événements MIDI CC standards pour effectuer ces actions et synchroniser l'audio. Les contrôleurs utilisés par JET font partie de ceux qui ne sont pas définis pour une utilisation spécifique par la spécification. Voici les définitions spécifiques du contrôleur:

Contrôleurs 80-83 réservés pour une utilisation par l'application

Contrôleur 102 Repère d'événement JET

Contrôleur 103 Repères de clip JET

Contrôleurs 104-119 Réservé pour une utilisation ultérieure

6.1 Marqueur de clip JET (CC103)

Le contrôleur 103 est réservé au marquage de clips dans une piste MIDI pouvant être déclenchés par l'appel d'API JET_TriggerClip. L'ID d'extrait est encodé dans les six bits inférieurs de la valeur de la manette. Le bit 6 est défini sur 1 pour indiquer le début d'un bornement et sur 0 pour indiquer la fin d'un bornement.

Par exemple, pour identifier un extrait dont l'ID est 1, l'auteur insère un événement de contrôleur MIDI avec les valeurs "controller=103" et "value=65" au début de l'extrait, et un autre événement avec "controller=103" et "value=1" à la fin. Lorsque la fonction JET_TriggerClip() est appelée avec l'ID d'extrait 1, le son de la piste est réactivé lorsque la valeur de contrôleur 65 est détectée et le son est de nouveau coupé lorsque la valeur de contrôleur 1 est détectée.

Figure 5: clip synchronisé

Dans la figure ci-dessus, si la fonction JET_TriggerClip() est appelée avant le premier événement de manette, le son de la piste 3 est réactivé lorsque le premier événement de manette se produit, du premier extrait est lu et du son de la piste est coupé lorsque le deuxième événement de manette se produit. Si la fonction JET_TriggerClip() est appelée après que le premier événement de manette s'est produit, le son de la piste 3 est réactivé lorsque le troisième événement de manette se produit, du deuxième clip est lu et le son de la piste est réactivé lorsque le quatrième événement de contrôleur se produit.

Remarque:Normalement, la piste contenant l'extrait est coupée par l'application lorsque le segment est initialement mis en file d'attente par l'appel à JET_QueueSegment(). Si le son n'est pas coupé, l'extrait est toujours lu jusqu'à ce que Jet_TriggerClip() ait été appelé avec l'ID d'extrait.

6.2 Repère d'événement JET (CC102)

Le contrôleur 102 est réservé au marquage d'événements spécifiques à la fonctionnalité JET dans les flux MIDI. Actuellement, la seule valeur définie est 0, qui indique la fin d'un segment à des fins de durée.

Normalement, JET lance la lecture du segment suivant (ou répète le segment actuel) lorsque le méta-événement MIDI de fin de piste est rencontré. Certains outils de création MIDI compliquent le positionnement précis du repère de fin de piste, ce qui entraîne des problèmes de synchronisation lorsque les segments sont joints.

Pour éviter ce problème, l'auteur peut placer un repère de fin de segment JET (controller=102, value=0) au point où le segment doit être lu en boucle. Lorsque le repère de fin de segment est détecté, le segment suivant est déclenché. Si le segment actuel est lu en boucle, la lecture reprend au début du segment.

Le repère de fin de segment peut également être utilisé pour permettre l'achèvement d'une figure musicale au-delà de la fin de la mesure indiquant le début du segment suivant. Par exemple, l'auteur du contenu peut créer un segment de quatre mesures avec un remplissage de tambour qui se termine au battement 1 de la 5e mesure, une barre située au-delà de la fin naturelle du segment. En plaçant un repère de fin de segment à la fin de la 4e mesure, le segment suivant sera déclenché, mais le remplissage de la batterie se poursuivra en parallèle avec le segment suivant offrant une continuité musicale.

Figure 6: Repère de fin de segment

6.3 Contrôleurs d'applications (CC80-83)

L'application peut utiliser des contrôleurs de cette plage pour ses propres besoins. Lorsqu'un contrôleur de cette plage est rencontré, l'événement est placé dans une file d'attente d'événements pouvant être interrogée par l'application. Certaines utilisations possibles incluent la synchronisation des événements vidéo avec l'audio et le marquage d'un point dans un segment MIDI pour mettre en file d'attente le segment suivant. La plage de contrôleurs surveillé(e) par l'application peut être modifiée par l'application lors de l'initialisation.

7 Consignes à l'intention des créateurs JET

7.1 Ordre des tâches

Comme pour tous les projets, il est préférable de discuter et de concevoir le schéma musical interactif avec le concepteur de jeux et le programmeur avant de commencer la composition. Un plan et/ou des spécifications peuvent vous éviter de devoir refaire des choses une fois le jeu en place.

En règle générale, vous devez commencer par écrire votre musique dans l'outil DAW que vous avez l'habitude d'écrire, puis diviser le fichier MIDI final en fonction des besoins de l'application. Ensuite, accédez à JET Creator et créez tous vos segments musicaux dans l'ordre le plus simple pour qu'ils soient lus dans l'ordre. Enfin, ajoutez les événements JET pour contrôler les segments via le jeu Android et les auditez si nécessaire dans JET Creator. Enfin, enregistrez le projet dans JET Creator et transmettez le fichier .jet au programmeur pour l'intégrer dans le jeu. Après l'aperçu, il est probable que des modifications soient apportées aux fichiers MIDI et aux attributs JET Creator.

7.2 Conserver la mémoire

Pour économiser de la mémoire, rédigez le moins de fichiers MIDI possible et créez plusieurs segments à partir de ce fichier. Par exemple, un fichier MIDI de 12 mesures avec trois sections de 4 mesures (A, B et C) peut créer un titre beaucoup plus long. Il vous suffit de créer plusieurs segments faisant référence au fichier MIDI, puis de les organiser comme bon vous semble. Par exemple, A, A, B, A, C, A, B, A, A créeraient un titre de 36 mesures. Utilisez JET pour ajouter des répétitions, transposer des segments, et couper et réactiver le son des pistes de manière interactive pour rendre l'expérience encore plus intéressante.

7.3 Reproduire

Pour ajouter des segments ou des événements plus rapidement, utilisez la commande "Répliquer". La réplication peut ajouter plusieurs segments ou événements à la fois, et utilise un paramètre de décalage et une convention d'attribution de noms de préfixe pour faciliter la lecture. La commande MOVE est également utile pour déplacer plusieurs événements selon un nombre défini de mesures, de battements ou de graduations.

7.4 Options interactives

Plusieurs concepts audio interactifs sont possibles dans JET. Vous trouverez ci-dessous quelques exemples. Nous espérons que les développeurs en proposeront d'autres auxquels nous n'avons pas pensé. Ce sont les méthodes suivantes :

7.4.1 Déclenchement de plusieurs segments

Avec cette méthode, l'application déclenche des segments spécifiques en fonction des événements dans le jeu. Par exemple, un couloir accueillant beaucoup de combats peut déclencher le segment 1, tandis qu'un couloir sans combats peut déclencher le segment 2. L'utilisation de TriggerClips JET avec cette méthode crée encore plus de diversité.

7.4.2 Ignorer des tableaux

Avec cette méthode, l'application déclenche des événements de coupure et de réactivation du son sur des pistes spécifiques en une seule séquence MIDI. Par exemple, un couloir avec beaucoup de combats peut lire les pistes MIDI 1 à 16, et un couloir sans combats peut lire le même fichier MIDI, mais couper le son des pistes 9 à 16. L'utilisation de TriggerClips JET avec cette méthode crée encore plus de diversité.

7.4.3 Expérience de jeu musicale

Les jeux axés sur la musique sont similaires à ceux de Guitar Hero et JETBOY dans la mesure où le contenu musical détermine la façon dont les événements graphiques sont affichés. L'application interroge ensuite la réponse de l'utilisateur aux événements graphiques et modifie la musique de manière interactive en réponse. Avec cette méthode, le jeu utilise des événements d'application JET, des contrôleurs MIDI intégrés au fichier MIDI et lus par le jeu en temps réel. En fonction de la réponse de l'utilisateur, vous pouvez définir plusieurs tableaux de déclenchement et/ou de désactivation de segment.