# Assembler des fichiers MIDI ??



## Simon T. (8 Août 2004)

Bonjour à tous !

J'aimerais faire une petite application qui, à partir de plusieurs fichiers midi, en crée un seul en les assemblant (l'un après l'autre). Je ne sais pas trop comment m'y prendre... Ça m'aiderait bien si quelqu'un pouvait me donner une piste ou un-deux conseils. Le seul langage que je connaisse pas trop mal est le C, mais je suis prêt à me lancer dans un autre langage...
(Sinon, je pense qu'il doit etre possible de faire quelque chose comme ça avec applescript et quicktime pro.)

Merci d'avance pour vos réponses !

Simon


----------



## Didier Guillion (8 Août 2004)

Simon T. a dit:
			
		

> Bonjour à tous !
> 
> J'aimerais faire une petite application qui, à partir de plusieurs fichiers midi, en crée un seul en les assemblant (l'un après l'autre). Je ne sais pas trop comment m'y prendre... Ça m'aiderait bien si quelqu'un pouvait me donner une piste ou un-deux conseils. Le seul langage que je connaisse pas trop mal est le C, mais je suis prêt à me lancer dans un autre langage...
> (Sinon, je pense qu'il doit etre possible de faire quelque chose comme ça avec applescript et quicktime pro.)
> ...



Bonsoir,

Je n'ai jamais fait cela, mais voici quelques elements.
Deja il te faudra generer un MIDI type 1 (multi tracks)
Chaque fichier MIDI est compose d'une entete, décrivant l'ensemble des tracks presents dans le fichier.
Tu va donc, pour chaque fichier, extraire les tracks (pistes) et les mettre bout a bout.
Ensuite, tu va recreer une entete, qui va definir les nouveaux tracks avec le decalage temporel pour chacun d'eux afin qu'ils ne demarrent pas simultanement mais paquet par paquet, l'un apres l'autre.

Puis sauvegarder, nouvelle entete et paquets de tracks.

Autre piste:
Je sais que QuickTime permet de concatener des médias, je l'ai fait pour des images ou des video, jamais pour des MIDI. C'est peut etre également une piste a explorer, mais qui rendra ton appli "Quicktime dépendante".

Cordialement


----------



## tatouille (8 Août 2004)

http://jedi.ks.uiuc.edu/~johns/links/music/midifile.html

http://www.csw2.co.uk/tech/midi2.htm

http://kmt.hku.nl/~pieter/EDU/c/synth/

http://www.link.cs.cmu.edu/link/ftp-site/harmonic-analysis/utilities/

et ze ultimate GNU MIDI center  

http://linux-sound.org/midi.html


----------



## Simon T. (9 Août 2004)

Merci pour vos réponses !!!    

ça va me faire de la lecture !  :rateau:  :rateau:   

au moins, je vois vers quelles solutions me diriger. Je crois que j'abandonne l'idée d'un applescript se servant de quicktime, une petite appli en C devrait être faisable... C'est peut-être même l'occasion de me mettre à objective-c, si j'ai le courage   

Simon


----------



## maimounas (29 Avril 2014)

Bonjour,

Pour mon projet de fin d'année je dois assembler des fichiers midi. Là j'arrive à les concaténer mais le lecteur ne lit que le premier fichier de la concaténation. Avec mon assemblage je vois que le trio ( temps mesures tricks) ne change pas et je crois c'est de là que viens le problème. Si vous avez pu assembler vos fichiers pourriez vous me donner des solutions s'il vous plaît.

Merci


----------



## tatouille (2 Mai 2014)

Bonjour,

iter'ez le midi-tree, lisez par chunk de 32bits e.g 4 bytes;  le marqueur étant Mtrk.

http://midi.mathewvp.com/aboutMidi.htm

pensez bien aussi que le format est network-byteorder.

question idiote comment avez-vous assemblé chaque piste?
voulez-vous étendre la séquence bout à bout ou créer un fichier multi-piste et synchronisé? 

Bien à vous.


----------



## maimounas (3 Mai 2014)

Bonjour,

Merci de votre réponse. Avec les deux fonctions mid2text et text2mid que j'ai trouvé sur ce lien 
http://valentin.dasdeck.com/php/midi/ j'ai pu transformer les deux fichiers midi en texte. Et là j'ai just fait la concaténation des deux textes. Ce que je voudrai c'est étendre la séquence bout à bout.

Cordialement.


----------



## tatouille (3 Mai 2014)

Bonjour, 

donc vous ne comprenez point l'exercice qui vous est demandé? si j'ouvre deux fichiers PDF et les met bout à bout est-ce que j'obtiens un nouveau PDF avec deux pages? non.

Un fichier a des entêtes, des informations afin de trouver où sont les données et qu'elle en est la description, ceci en binaire.

De plus, le faite que vous soyez passée par un format texte montre quelques lacunes inquiétantes concernant les bases "programmatives", vous allez avoir du mal, [il semblerait que vous soyez plus touriste qu'étudiante, nous sommes le 3 Mai] ou bien alors vous copierez et n'aurez rien appris et cela se verra.

Quel langage de programmation "connaissez-vous"?

écrivez votre midi_reader.c puis midi_writer.c puis midi_cat.c, c'est un exercice complet qui vous est demandé, la première chose à comprendre c'est la structure du fichier avant de pouvoir entamer quelque manipulation.

L'exercice requiert savoir ouvrir un fichier binaire, en transcrire l'entête [selon le format pré-connu et compris] sous la forme d'une structure, puis dans le cas présent du midi, savoir byte-swapper en fonction du CPU. 

Et au-delà du format de stockage répondre à la question fondamentale, ça sert à quoi le MIDI? parce que cela expliquerait peut-être du pourquoi et du comment, l'agencement et l'organisation du dit fichier.

Et nous n'allons certainement pas le faire à votre place, bien que nous ayons déjà écrit plusieurs outils/logiciels  concernant ce domaine et d'autres.

http://www.sonicspot.com/guide/midifiles.html

j'attend votre midi_reader.c, vous avez 5 heures


----------



## tatouille (4 Mai 2014)

Bonjour,

l'heure tourne ou en êtes-vous?

Bien à vous.

---------- Nouveau message ajouté à 23h11 ---------- Le message précédent a été envoyé à 21h20 ----------

time-out j'attends votre copie


----------



## maimounas (7 Mai 2014)

Bonsoir,

! En fait j'avais des partiels depuis lundi et je n'ai pas eu le temps de voir les réponses que vous m'avez donné! je m'y mets dès ce soir et j'essaie de le terminer pour demain!

Merci pour votre aide.

---------- Nouveau message ajouté à 21h53 ---------- Le message précédent a été envoyé à 21h51 ----------

Je connais bien le langage c mais je dois le faire en php parce que c'est à intégrer sur drupal!


----------

