2008-08-29 9 views
1

Je fais un jeu simple pour apprendre une nouvelle langue. Je suis en train de collecter de la musique pour le jeu et je voudrais utiliser le format MIDI pour pouvoir contrôler le flux de la piste (ie, je voudrais avoir une introduction qui ne joue qu'une seule fois et ne joue plus quand les boucles de la chanson.)Comment incorporer des commandes de changement de contrôle à l'intérieur d'un fichier MIDI

J'ai du mal à trouver des informations sur la façon de modifier les fichiers MIDI existants afin qu'ils puissent envoyer un signal de changement de contrôle au synthétiseur. Est-ce que quelqu'un a de l'expérience dans le domaine?


Je pense que j'aurais dû être plus clair avec ma question originale. J'utilise un moteur de jeu existant qui prend soin de jouer de la musique. Je suis sous l'impression que cette valeur de changement de contrôle doit être intégrée directement dans le fichier MIDI lui-même car je n'ai aucun contrôle sur le synthétiseur. Du manuel:

Les fichiers MIDI sont joués via le synthétiseur DirectMusic . Si un fichier BGM MIDI contient la valeur de changement de contrôle 111, cette valeur est reconnue comme si le morceau recommence à se répéter après que a atteint la fin.

J'aimerais pouvoir le faire par programmation. Je suppose que ce que je suis après ici est une sorte d'éditeur qui me permettra de modifier le fichier MIDI que j'ai déjà.

Répondre

2

DirectMusicProducer est probablement votre meilleure option gratuite si vous jouez en utilisant DirectMusic. Je ne crois pas que la fonctionnalité d'enregistrement MIDI inclura des changements de contrôle, mais votre moteur peut supporter des fichiers de segments de lecture beaucoup plus flexibles. Le seul séquenceur MIDI que j'utilise a coûté environ 300 $ (USD) il y a environ 10 ans (et ne semble plus exister), mais je ne connais aucun séquenceur de fichiers MIDI de bonne qualité. (Notez que "MIDI editor" est probablement différent de "MIDI file editor" ou "MIDI sequencer")

3

essayer de regarder dans le Midi 1.0 spec

Voici un tableau de la control change messages si on dirait que vous êtes à la recherche d'une façon de le faire dans le logiciel. Oui?

vous pouvez essayer simplement d'envoyer sous forme de données de midi cru (ie. Les messages sur cette table)

recherche sur votre question ... ma réponse est pas utile ...

ce que je ferait si j'étais vous est séparé de l'introduction dans son propre fichier, puis vous avez un fichier contenant juste ce que vous voulez faire une boucle.

vous pouvez aussi regarder les spécifications pour la Standard Midi File format (SMF)