OVH Cloud OVH Cloud

Structure d'un fichier midi

21 réponses
Avatar
Moi
Bonjour,

J'aimerais savoir comment est fait un fichier midi, quel est le format d'un
tel fichier.

Ceci afin de pouvoir en créer par programmation.

Quelqu'un connaît un lien internet à ce sujet ?

Merci !

10 réponses

1 2 3
Avatar
Moi
En fait, je cherche à créer des fichiers midi par programmation. Non pas
dans le but de réinvinter le fil à couper le beurre comme on dit mais par
simple curiosité. Nous utilisons des outils très puissant, il peut venir à
n'importe qui l'envie de découvrir comment les choses sont faîtes
"derrière".

Je ne me suis peut-être pas adressé où il faut. Je vais plutôt rechercher du
code sources qui réalise ce que je souhaite faire et l'étudier.

Merci pour vos liens, et merci aux habitués qui participent toujours aussi
généreusement.

"Moi" a écrit dans le message de news:
4364dd35$0$18845$
Bonjour,

J'aimerais savoir comment est fait un fichier midi, quel est le format


d'un
tel fichier.

Ceci afin de pouvoir en créer par programmation.

Quelqu'un connaît un lien internet à ce sujet ?

Merci !




Avatar
Gerald
Moi wrote:

En fait, je cherche à créer des fichiers midi par programmation.



Si on part de l'idée que pour toi fichier MIDI (en majuscules stp, ça a
son importance sémantique) = SMF (Standard MIDI File) - ce qui est en
fait très réducteur - je reste très perplexe et très curieux de ce que
tu entends dans "par programmation".

En première *approximation*, un fichier SMF est une partition de
musique. Ce qui peut présider à sa "programmation" (son écriture ?) est
donc l'ensemble des règles de la *composition* musicale, pour lesquelles
on a, certes, quelques aides si on veut dans certains domaines musicaux
(Open Music par ex.), mais ça reste encore majoritairement du boulot
"humain" ! Si c'est de simple saisie de note qu'il s'agit, et s'il faut
absolument que ça soit abstrait et chiffré, je pense que MIDI-Lisp
aurait pu faire sérieusement l'affaire !

Tu peux nous en dire plus ?

Non pas
dans le but de réinvinter le fil à couper le beurre comme on dit mais par
simple curiosité. Nous utilisons des outils très puissant, il peut venir à
n'importe qui l'envie de découvrir comment les choses sont faîtes
"derrière".



Justement, moi je ne vois rien "derrière", et je fais pourtant partie de
ceux qui pourraient encore bâtir une séquence en hexadécimal voire en
binaire s'il le fallait ! Mais tout est désormais "à disposition", le
moindre séquenceur de base offre tous les modes d'affichage et d'édition
possibles : partitions, piano-roll, liste de noms de notes, hexa etc.

Qu'y vois-tu que je ne voie pas ?

Par contre je vois plein de choses à chercher "devant" le MIDI :
utiliser ces données pour leur faire exprimer (de préférence
musicalement :-)) PLUS que ce qu'elles sont au départ... démultiplier le
geste de l'instrumentiste dont elles sont issues...

Je ne me suis peut-être pas adressé où il faut. Je vais plutôt rechercher du
code sources qui réalise ce que je souhaite faire et l'étudier.



"ce que tu souhaites faire", donc, c'est quoi ?

curieusement impatient d'en savoir plus, cordialement,

--
Gérald
Avatar
Alain Naigeon
[J'ai tout mélangé par accident, mais c'est Gérald qui causait]


Justement, moi je ne vois rien "derrière", et je fais pourtant partie de
ceux qui pourraient encore bâtir une séquence en hexadécimal voire en
binaire s'il le fallait !



On n'en est plus là du tout, il existe des librairies C ou même C++ pour
créer des structures de données MIDI.

Mais tout est désormais "à disposition", le
moindre séquenceur de base offre tous les modes d'affichage et d'édition
possibles : partitions, piano-roll, liste de noms de notes, hexa etc.



Et les gens qui les écrivent, ils apprennent le boulot comment ?

Si on part de l'idée que pour toi fichier MIDI (en majuscules stp, ça a
son importance sémantique) = SMF (Standard MIDI File) - ce qui est en
fait très réducteur - je reste très perplexe et très curieux de ce que
tu entends dans "par programmation".



Je crois qu'il cherche à connaître la syntaxe exacte pour construire
une structure de données "fichier mid", quel que soit le but poursuivi
par son contenu.
Par ailleurs des milliers de gens réinventent la lune tous les jours,
cela s'appelle "apprendre". Non seulement ce n'est pas idiot de
refaire soi-même, dans un but pédagogique, quelque chose d'utile (*),
mais il arrive même qu'on apprenne quelque chose en faisant un
truc tout à fait inutile. Comme "Hello World", qui est la drosophile
des manuels de compilation dans n'importe quel langage !

(*) "Le vrai sens d'un théorème, c'est sa preuve". Ludwig Wittgenstein

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France
Avatar
Thierry Boudet
On 2005-11-03, Moi wrote:

En fait, je cherche à créer des fichiers midi par programmation. Non pas
dans le but de réinvinter le fil à couper le beurre comme on dit mais par
simple curiosité.



Ah, un batisseur de rêves, ça fait plaisir :)

Nous utilisons des outils très puissant, il peut venir à
n'importe qui l'envie de découvrir comment les choses sont faîtes
"derrière".



Exactement. Découvrir ce qui se cache en dessous, dans la cave,
ou les petits octets de code font bouger les petits octets de
données, c'est aussi faire de la comp.musique :)

Je ne me suis peut-être pas adressé où il faut. Je vais plutôt rechercher du
code sources qui réalise ce que je souhaite faire et l'étudier.



Si, je pense que tu es vraiment au bon endroit. Ne te laisse pas
malmener par les gens d'ici. Reste zen, et laisse glisser les
tentatives de troll. Et si tu es du coté de Toulouse, je vais
bientôt organiser une rencontre informelle de codeurz de softs
à faire du son/bruit/musique avec des systèmes Unix.

Merci pour vos liens, et merci aux habitués qui participent toujours aussi
généreusement.



Quand tu auras construit un machin-truc qui génère des midifiles,
je serais assez content de pouvoir y jeter un coup d'oeil.

"Moi" a écrit dans le message de news:
Bonjour,





Par contre, il serait bon que tu lises Giromini, répondre, toussa.

--
7h 5415 p3 dh'1| g3 q17 |3 p0jo0lM ?
Avatar
Gerald
Alain Naigeon wrote:

Je crois qu'il cherche à connaître la syntaxe exacte pour construire
une structure de données "fichier mid", quel que soit le but poursuivi
par son contenu.



D'accord, je comprends enfin. C'et tellement loin de mes préoccupations
que je ne voyais pas quoi.

Par ailleurs des milliers de gens réinventent la lune tous les jours,
cela s'appelle "apprendre". Non seulement ce n'est pas idiot de
refaire soi-même, dans un but pédagogique, quelque chose d'utile (*),



Certes. Il reste que bâtir quelque chose sur des prémices fausses peut
mener plutôt dans des impasses. L'apprentissage de la raison d'être du
standard MIDI et de sa nature ne devrait-il pas être préalable à une
telle démarche ? Ne voir le MIDI qu'à travers la syntaxe d'un fichier
SMF n'est-il pas immensément réducteur ?

Plus généralement n'est-ce pas s'intéresser à la bouteille plutôt qu'à
son contenu ?

Concernant "les gens qui écrivent les programmes" dont tu parles,
n'es-tu pas toi-même confronté quotidiennement à de l'informatique
réalisée par des gens qui n'avaient aucune idée du but poursuivi et qui
créent des *enfers* permanents pour les pauvres gens souvent *obligés*
de les manipuler ? Ça va de la réservation de billets de trains aux
standards vocaux informatisés en passant *aussi* par la musique et le
son... et amha par certains systèmes d'exploitation... (persister à
obliger les gens à chercher "éteindre" dans le menu "démarrer", plus de
huit ans après sa création n'est-il pas du sadisme pur et simple ?
Rappelons qu'il s'agit d'un bug de traduction en français qui ne met pas
aucunement en cause le système original : Startup aurait dû être traduit
par "Accès rapide" ou quelque chose comme ça, mais pas par Démarrer !).

--
Gérald
Avatar
Gerald
Jean-Yves Bernier wrote:

On trouve d'ailleurs une foule de renseignements utiles sous forme
concise depuis la racine : http://www.borg.com/~jglatt/

en particulier des résumés MTC et MMC qui m'ont énormément servi (pour
faire des machins cochons avec ProTools et Max). Ce sont des sites comme
ça qui rendent le www utile. Bookmarquez-le d'urgence.



Il est certainement utile. Mais il me rend bien perplexe sur un ou deux
points sur lequel tu vas peut-être m'éclairer :

Il donne un exemple de montage de clavier de contrôle qui se termine...
par un connecteur DB-15 fournissant l'alimentation (port joystick PC).
Le caractère non alimenté de ce clavier et le passage direct de courant
entre lui et l'ordinateur (et la non utilisation de prises normalisées)
devraient interdire d'appeler ce clavier "MIDI". Quel crédit peut-on
accorder à un document qui n'utilise pas les mots pour ce qu'ils veulent
dire ? (il pouvait utiliser le même montage pédagogique en utilisant les
vrais mots pour le décrire, je ne vois pas ce que ça lui coûtait !).

Plus généralement, il est très orienté vers la vision "PC" du MIDI que
je combats à longueur de temps parce que je la trouve réductrice dans
ses applications et dénaturant le standard en le vidant de ses capacités
originales et créatrices, sans parler du non-respect permanent de la
norme.

J'en veux pour exemple la description qu'il fait du General MIDI : lui
trouve insupportable d'envoyer un program change 15 à un DX7 et
d'obtenir un "son" de trompette au lieu du son de violon qui correspond
à ce numéro sur son instrument-source. Moi je trouve au contraire ça
infiniment salutaire : ça met en évidence immédiatement pour le néophyte
ce qu'est *réellement* un program change et la nature même du MIDI, qui
n'est PAS du son. Lui trouve génial d'avoir un son de violon (pseudo-son
de pseudo-violon en fait) dans sa liste face au numéro qui lui va bien.
Moi je trouve ça terrible ! Ça évite de se poser plein de question sur
ce qui "fait" qu'un son de violon en est un ou pas et sur quoi il faut
faire porter son attention dans son utilisation.

Je maintiens que s'intéresser au MIDI et à sa programmation sans avoir
comme préalable une perspective musicale ne peut qu'accoucher de bébés
difformes comme on n'en voit que trop malheureusement dans le monde de
l'informatique.

C'est mon avis et je le partage ! :-)
--
Gérald (dans mon parti y'a qu'moi et c'est déjà l'merdier ! H.T.)
Avatar
Gerald
Jean-Yves Bernier wrote:

[snip] les "nibbles" et autres joyeusetés pour lesquelles je ne peux
qu'être d'accord avec toi, naturellement.

Quand à la configuration studio, bonjour la galère. Crapahuter à 4
pattes pour aller mettre le TG77 en mode table [...]



sur ce point précis par contre j'ai pitié de ton dos, de tes genoux et
de ton grand âge :-) et je t'apporte une soluce un peu baroque mais pour
laquelle tu vas peut-être me bénir, qui sait... :

Depuis le DX7 *tous* les boutons et contrôles de la face avant de *tous*
les synthés Yam (incluant les expandeurs) peuvent être "simulés" par une
fonction dite "Switch Remote". Cette fonction peut être utilisée dans
ton cas de deux manières triviales :

- envoyer des program change "en SysEx" par simulation de l'appui sur
les bonnes touches (et ça peut, éventuellement, gagner du temps pour la
gestion des banks ou des accès card etc.)

- opérer un certain nombre de manips genre "exit-exit-exit..."
permettant de revenir à coup sur dans un état basique à partir de
n'importe où (et en faire une petite routine que tu colles comme tu
veux, dans un applet max ou autre). Je m'en servais beaucoup dans les
séminaires sur le SY-77 pour sortir les "élèves" d'états baroques et
improbables où ils s'étaient mis et reprendre le suivi de l'exercice...

J'imagine que tu as le MIDI DATA FORMAT du TG-77. Je n'ai sous la main
que celui du SY-77 mais il y a du cousinage : pour le SY ça se trouve
page 12 dans les MIDI Parameter Change table (Switch Remote), c'est la
<Table 1-13> et la syntaxe est de la forme :

F0 43 1n 34 0D 00 00 N2 00 V2 F7 avec
n : device number
N2 : parameter number
V2 : parameter value data range : off (00~3F), on (40~7F)

Suit la table des N2, de OOH à 45H pour tous les boutons de la face
avant du SY, commençant par VOICE, MULTI, SONG, PATTERN... etc. (à la
limite tu peux presque tester en aveugle !).

Noter une conséquence évidente : dans Max tu mets en fond une photo de
ta face avant, tu colles sur les boutons un bouton envoyant le code
remote de chacun, et plus jamais tu ne bouges ! tu cliques ! (à l'époque
je l'avais fait avec HyperMIDI).

De mémoire il me semble même qu'il y avait un moyen de lever ainsi le
Memory Protect et peut-être même l'accès au SysEx (au moins en scannant
les device numbers).

hth,

--
Gérald
Avatar
Alain Naigeon
"Gerald" a écrit dans le message news:
1h5hjb4.1azfgz8gcwfswN%


Plus généralement n'est-ce pas s'intéresser à la bouteille plutôt qu'à
son contenu ?



Mais enfin, il veut savoir-comment-c'est fait-du-point-de-vue-informatique !
Si tu attends d'un comptable l'écriture d'un programme de comptabilité,
il te faudra pas mal de comptables par derrière pour réparer les dégâts ;-)
Mets-toi bien dans la tête que, oui, ton contenu sans bouteille, il n'a
aucun
avenir.


Concernant "les gens qui écrivent les programmes" dont tu parles,
n'es-tu pas toi-même confronté quotidiennement à de l'informatique
réalisée par des gens qui n'avaient aucune idée du but poursuivi



Mais comment *sais-tu* qu'il n'en a aucune idée. Et comment sais-tu
qu'il a forcément le même but que toi ?

et qui
créent des *enfers* permanents pour les pauvres gens souvent *obligés*
de les manipuler ?



Il veut programmer pour lui, pour apprendre. Ce que tu dis est bien
vraià, à tel point que sa méthode est la bonne : s'il utilise ses propres
programmes, il sera le premier à pester contre leurs défauts (cela
m'est arrivé), et ça aide à s'améliorer.

Ça va de la réservation de billets de trains aux
standards vocaux informatisés en passant *aussi* par la musique et le
son... et amha par certains systèmes d'exploitation... (persister à
obliger les gens à chercher "éteindre" dans le menu "démarrer",



T'as jamais vu une touche connexion/fin, du temps du minitel ?

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France
Avatar
Gerald
Jean-Yves Bernier wrote:

T'en a marre de voir tes sysex hexa transformées en décimal par Max?
Ecris F0h 43h $1 34h 0Dh 00h 00h $2 00h $3 F7h dans une message box que
tu enquilles dans Llong (Peter Elsea). Evidemment, $1, $2, $3 c'est un
pack iii d'un bondo 3.



C'est vu, j'archive pour réutilisation, merci.

--
Gérald
Avatar
Moi
Oui ! Je veux juste savoir comment on écrit dans un fichier Midi
informatiquement, étudier un code source type (sachant que je programme
depuis plusieurs années), découvrir les API/fonctions systèmes qui
permettent de fabriquer un fichier MIDI par programmation. J'ai posé ma
requête dans le ng fr.comp.developpement car finalement, je pense que
l'endroit des développeurs est l'endroit le plus propice.

Merci quand-même à tous pour votre disponibilité, votre réactivité, votre
générosité et même votre critique (que je trouve souvent intéressante à
lire).

"Alain Naigeon" a écrit dans le message de news:
436bc6a8$0$11253$
"Gerald" a écrit dans le message news:
1h5hjb4.1azfgz8gcwfswN%

>
> Plus généralement n'est-ce pas s'intéresser à la bouteille plutôt qu'à
> son contenu ?

Mais enfin, il veut savoir-comment-c'est fait-du-point-de-vue-informatique


!
Si tu attends d'un comptable l'écriture d'un programme de comptabilité,
il te faudra pas mal de comptables par derrière pour réparer les dégâts


;-)
Mets-toi bien dans la tête que, oui, ton contenu sans bouteille, il n'a
aucun
avenir.

>
> Concernant "les gens qui écrivent les programmes" dont tu parles,
> n'es-tu pas toi-même confronté quotidiennement à de l'informatique
> réalisée par des gens qui n'avaient aucune idée du but poursuivi

Mais comment *sais-tu* qu'il n'en a aucune idée. Et comment sais-tu
qu'il a forcément le même but que toi ?

et qui
> créent des *enfers* permanents pour les pauvres gens souvent *obligés*
> de les manipuler ?

Il veut programmer pour lui, pour apprendre. Ce que tu dis est bien
vraià, à tel point que sa méthode est la bonne : s'il utilise ses propres
programmes, il sera le premier à pester contre leurs défauts (cela
m'est arrivé), et ça aide à s'améliorer.

Ça va de la réservation de billets de trains aux
> standards vocaux informatisés en passant *aussi* par la musique et le
> son... et amha par certains systèmes d'exploitation... (persister à
> obliger les gens à chercher "éteindre" dans le menu "démarrer",

T'as jamais vu une touche connexion/fin, du temps du minitel ?

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France




1 2 3