Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Limitations des instruments MIDI

19 réponses
Avatar
Yliur
Bonjour

On m'a dit que le format MIDI supportait mal plus de 3-4 instruments
simultan=E9s.

Est-ce vrai ?

Et dans ce cas, est-ce une limitation du format, des cartes sons
courantes, des biblioth=E8ques de gestion des fichiers MIDI ?

Merci

10 réponses

1 2
Avatar
SoudanPierre
Yliur a écrit :
Bonjour

On m'a dit que le format MIDI supportait mal plus de 3-4 instruments
simultanés.

Est-ce vrai ?

Et dans ce cas, est-ce une limitation du format, des cartes sons
courantes, des bibliothèques de gestion des fichiers MIDI ?

Merci



Bonjour
3-4... ou 3-4000 ?
º¿º
Avatar
Wykaaa
Yliur a écrit :
Bonjour

On m'a dit que le format MIDI supportait mal plus de 3-4 instruments
simultanés.



"On" : probablement quelqu'un qui n'y connaît rien...

Est-ce vrai ?



Il est vrai qu'il ne faut pas chaîner (donc "en série") plus de 4 ou 5
instrument MIDI via la prise "Thru" à cause des problèmes de latence
mais en parallèle, il n'y a aucun souci. Rien n'interdit d'utiliser
autant d'interfaces MIDI qu'on en a besoin, après, c'est une question de
budget. J'ai connu des "installations MIDI" avec 96 canaux MIDI en
parallèle. Il n'y avait aucun problème.

Et dans ce cas, est-ce une limitation du format, des cartes sons
courantes, des bibliothèques de gestion des fichiers MIDI ?



Ne parlons pas de "carte son" quand on parle du protocole MIDI qui ne
véhicule aucun son mais seulement des commandes aux instruments.
MIDI avant d'être un "format" est d'abord un protocole de communication.

Une bibliothèque de gestion de fichier MIDI, ça ne veut rien dire. C'est
de la gestion de fichiers, point, qu'ils soient MIDI ou non...
A moins que tu veuilles parler des fichiers de réglages MIDI qui sont
particuliers à chaque instrument MIDI ou fabricant (banque MIDI Roland
truc ou Yamaha bidule) et qui déterminent les paramètres d'un timbre
d'instrument MIDI pour un matériel MIDI donné.
Avatar
Gerald
Yliur wrote:

Bonjour

On m'a dit que le format MIDI supportait mal plus de 3-4 instruments
simultanés.

Est-ce vrai ?



Le titre de ta contrib et son texte sont ambigus : si j'y réponds de
manière courte avec précision (comme le fait Pierre-Alain d'ailleurs
:-)) tu ne vas sans doute pas comprendre. Si je réponds à la question
que tu ne poses PAS (qu'est-ce que le format MIDI ?), je vais peut-être
t'aider mais je te fais un procès d'intention de ne pas savoir de quoi
il s'agit. On fait quoi ? Tant pis, j'enfourche mon dada de pédago :

Un instrument MIDI, pour moi (et pas que !), c'est ça :
<http://dx7.roundsquare.net/> ou ça :
<http://www.vintagesynth.com/sci/p600.php>
L'un et l'autre ont été en 1983 les deux *premiers* instruments MIDI
commercialisés, c'est-à-dire compatibles avec ce format d'échange de
données, combinant une partie matérielle (format de prises,
opto-coupleur etc.) et une partie logicielle (le standard MIDI
<http://en.wikipedia.org/wiki/The_MIDI_1.0_Protocol>)

Note que pendant 8 ans, de 1983 à 1991, ce standard est totalement
*indépendant* du son joué. Il ne véhicule que des ordres de
télécommande, et l'envoi d'un appel de programme "01" par exemple ne
préjuge en aucun cas du type de son qui sera présent dans la banque "01"
du synthé relié par MIDI (et placé sur le même canal).

En 1991, sous la pression de la marque Roland et pour des raisons
commerciales qui n'ont rien de musicales, une standardisation de la
correspondance entre numéros de programmes et "types" de sonorités est
proposée, c'est le General MIDI :
<http://fr.wikipedia.org/wiki/General_MIDI>
C'est une norme stupide et anti-musicale selon moi, mais bon.

Jusqu'en 1996, les gens qui utilisent le MIDI pour faire de la musique
le font avec des ordinateurs Mac ou Atari essentiellement (je sais...
exceptions... les Vax aussi, d'accord :-)), dotés d'une *interface MIDI*
(branchée sur le port modem dans le premier cas because conflit avec
Apple Records... intégrée dans le deuxième cas) sur laquelle sont
branchés en série via des câbles MIDI, des *instruments MIDI* physiques
et bien réels : synthés, expandeurs ou échantillonneurs.

En 1996, Windows étant enfin devenu utilisable (si, si !) par imitation
de l'interface Apple, et l'industrie PC cherchant à se refaire la cerise
dans le domaine des jeux, les ordis grands public se mettent à
"incorporer" une "carte-son" qui, pour des raisons de commodité et de
moindre coût, propose pour la sonorisation de ces jeux des banques de
sons échantillonnés improprement appelés "sons MIDI" (soundfonts).
Latéralement, ils proposent aussi de les utiliser pour faire de la
musique rudimentaire, cachant le lien réel entre le séquenceur et le
générateur de sons (parce que ces constructeurs prennent leurs
utilisateurs pour des blaireaux, à tort ou à raison ?).

En gros, ta question se situe amha à peu près à ce stade, c'est-à-dire à
un état des lieux de plus de dix ans.

Depuis, la puissance accrue des ordinateurs leur permet de lire des
banques de son de grande qualité en temps réel, qu'ils soient Mac PC ou
autres d'ailleurs. Dans certains cas (le mode Logic Node de Logic Studio
sur mac), la possibilité de cascader les processeurs de plusieurs ordis
recule même la limite du possible à l'infini. Quand je parle de banques
de son de qualité, je pense à ça :
<http://www.univers-sons.com/sons/vienna-symphonic-library-symphonic-cub
e-extended-cubeext.html>
Bon ce n'est ni pour toi ni pour moi mais ça te donne une idée de la
plage étendue de prix :-)

À partir de là tu peux comprendre les réponses suivantes :

- le format MIDI ne contient *aucune* limite en matière de simultanéïté
de jeu d'instruments. Il est certes, par nature, limité à 16 voix/canaux
"par port de sortie physique", mais des interfaces existent pour
démultiplier ces ports si besoin.
<https://www.motu.com/products/midi/128>
<https://www.motu.com/products/midi/mtpav_usb>
Sa transmission série à 31 kbps pourrait parfois créer des problèmes,
mais plutôt face à un grand nombre d'informations de contrôles que
d'informations de notes, et plutôt dans des contextes extrêmes (qui
peuvent être involontaires d'ailleurs, autre sujet).

- l'ordinateur que tu utilises par contre, sa puissance processeur, sa
RAM, le type d'instrument MIDI que tu utilise (matériel ou virtuel ?
géré sur le même ordinateur ou sur un ordinateur séparé ?), le type de
logiciel de séquence audio-MIDI aussi (ses capacités propres, le nombre
de traitements temps réel que tu lui demandes, en particulier au niveau
des effets)... posent évidemment des limites claires mais qui n'ont
aucun lien avec le MIDI. Pour mémoire, mon SE30, sur l'étagère, avec son
processeur à 16 Mhz, son Mo de RAM et ses 20 Mo de DD, pilota jadis sans
problème 3 racks de TX816, soit 24 synthétiseurs avec une polyphonie
cumulée de 384 notes ! Les limites que tu évoques sont celles du
traitement de l'audio-numérique en temps réel, pas du MIDI.

Il resterait à éclaircir ce que tu appelles "bibliothèques de gestion
des fichiers MIDI". Je crains le pire. Et également à te décrire les
domaines d'action très larges du standard MIDI, qui dépassent sans doute
largement ce que tu en imagines. Mais procédons par ordre, digère déjà
ce qui précède, on poursuivra ensuite si tu le souhaites.

hth,

--
Gérald
Avatar
SoudanPierre
Gerald a écrit :

Le titre de ta contrib et son texte sont ambigus : si j'y réponds de
manière courte avec précision ...



Héhé, bonne explication Gérald !
j'ai fait une réponse très courte car je me doutais bien que tu allais
enchaîner.
Comme tu le dis, les domaines d'application sont infinis.
Je me suis mis dernièrement dans la tête de virer tous mes classeurs de
partitions sur scène:
j'ai donc pris un Mac et un Pc portables bourrés de VSTis de PDF et de
XLS, deux petits interfaces audio+MIDI et je pilote le tout en Sysex
avec des macros depuis EXCEL qui trie les listes suivant une multitude
de critère, appelle le score sur les écrans avec un simple shell ou un
hypertexte, recherche le .SYX (ou le .MID/.MIDI épuré avec uniquement
des données de règlages) et envoie tout ça à tout le matos du groupe,
entièrement connecté en MIDI sur 64 canaux (effets guitare, table de
mix, Voicelive, TD12, a90, JV etc etc !) et pour l'instant aucun
plantage. Le tout avec MIDI YOKE, SENDSX, MAPLE VMC etc....
Merci le MIDI, pour l'instant, je ne vois pas de limitations !
º¿º
Avatar
Achim Bombota
Yliur a écrit :
Bonjour

On m'a dit que le format MIDI supportait mal plus de 3-4 instruments
simultanés.

Est-ce vrai ?



Non.
En 1990 j'avais un Archimedes à 8 Mhz avec une interface pour 64 canaux
MIDI (4 In 4 Out).
20 ans plus tard, avec 3-4 instruments, ça devrait aller.

Merci à Gérald et Pierre pour leurs explications et leur enthousiasme.
Avatar
Yliur
Le Fri, 15 Jan 2010 09:45:31 +0100
(Gerald) a écrit :

Yliur wrote:

> Bonjour
>
> On m'a dit que le format MIDI supportait mal plus de 3-4 instruments
> simultanés.
>
> Est-ce vrai ?

Le titre de ta contrib et son texte sont ambigus



Oui. M... zut.
Le titre en particulier met vraiment sur la mauvaise piste. J'ai
complètement négligé ce qu'est le MIDI en général en écrivant ça, je
suis parti sur mon cas particulier. Désolé.

Je vais reprendre ce qui m'intéresse : je ne cherche pas à piloter de
vrais instruments mais simplement à "stocker de la musique au format
GeneralMIDI" (je sens qu'on va encore me dire que la formule est
incorrecte :) ). Disons qu'au lieu de stocker de la musique basée sur
un enregistrement (Ogg Vorbis par exemple) je veux simplement stocker
les notes associées à des instruments dans un fichier MIDI et pouvoir
les faire rejouer par un programme. Il n'y a pas de vrais instruments
dans le cycle, simplement un moyen de "stocker de la musique" de
manière très compacte.
Le résultat doit être largement distribué et marcher sur à peu pr ès
n'importe quoi (bon c'est un logiciel grand public, ça va être
plutôt sur PC/Mac). Donc pas d'achat de matériel particulier, juste
une carte son de monsieur-tout-le-monde.

J'espère que c'est plus clair comme ça. Je veux juste faire jouer de la
musique par un programme et stocker ça de manière compacte.


[...]
Tant pis, j'enfourche mon dada de pédago :
[...]


(Je saute un peu la description et l'histoire du MIDI. Ca rejoint ce
que j'avais lu. Mais bon ce n'est jamais perdu et ça permet de
remettre la discussion sur les rails :) )

En 1991, sous la pression de la marque Roland et pour des raisons
commerciales qui n'ont rien de musicales, une standardisation de la
correspondance entre numéros de programmes et "types" de sonorités est
proposée, c'est le General MIDI :
<http://fr.wikipedia.org/wiki/General_MIDI>
C'est une norme stupide et anti-musicale selon moi, mais bon.



Il me semble que ce n'est pas destiné aux musiciens mais plutôt
aux développeurs de jeux (ou autres programmes destinés à jouer de
la musique uniquement sur ordinateur), non ? Donc je ne vois pas en
quoi c'est stupide. Par contre anti-musicale pourquoi pas... :)


[...]

En 1996, Windows étant enfin devenu utilisable (si, si !)



Ouais enfin tout juste :) .


par
imitation de l'interface Apple, et l'industrie PC cherchant à se
refaire la cerise dans le domaine des jeux, les ordis grands public
se mettent à "incorporer" une "carte-son" qui, pour des raisons de
commodité et de moindre coût, propose pour la sonorisation de ces
jeux des banques de sons échantillonnés improprement appelés "sons
MIDI" (soundfonts). Latéralement, ils proposent aussi de les utiliser
pour faire de la musique rudimentaire, cachant le lien réel entre le
séquenceur et le générateur de sons (parce que ces constructeurs
prennent leurs utilisateurs pour des blaireaux, à tort ou à raison ?).



Euh... je ne saisis pas bien la différence entre le séquenceur et le
générateur de son :s . Enfin pour être précis le suppose que le
générateur de son est la partie qui fait du bruit, le séquenceur je
ne sais pas trop, et je ne vois pas bien ce qui est caché aux
utilisateurs ici.


[...]

À partir de là tu peux comprendre les réponses suivantes :

- le format MIDI ne contient *aucune* limite en matière de
simultanéïté de jeu d'instruments.



Ok. Donc je peux (dans le format) décrire le jeu d'autant d'instruments
simultanés que je veux.


Il est certes, par nature, limité
à 16 voix/canaux "par port de sortie physique", mais des interfaces
existent pour démultiplier ces ports si besoin.
<https://www.motu.com/products/midi/128>
<https://www.motu.com/products/midi/mtpav_usb>



Alors ce qui m'intéresse c'est de faire produire du son à une carte
son. Est-ce que ta limite de 16 voix par "port de sortie physique"
s'applique à ce cas ? Elle ne pourra jouer que 16 instruments
simultanés ? Ou est-ce que ça ne s'applique qu'aux connecteurs de
l'ordinateur vers des instruments ?


Sa transmission série à 31 kbps pourrait parfois créer des problè mes,
mais plutôt face à un grand nombre d'informations de contrôles que
d'informations de notes, et plutôt dans des contextes extrêmes (qui
peuvent être involontaires d'ailleurs, autre sujet).



Un peu la même question : je pense que ça ne concerne pas mon cas, si ?


- l'ordinateur que tu utilises par contre, sa puissance processeur, sa
RAM, le type d'instrument MIDI que tu utilise (matériel ou virtuel ?
géré sur le même ordinateur ou sur un ordinateur séparé ?), le type de
logiciel de séquence audio-MIDI aussi (ses capacités propres, le
nombre de traitements temps réel que tu lui demandes, en particulier
au niveau des effets)... posent évidemment des limites claires mais
qui n'ont aucun lien avec le MIDI. Pour mémoire, mon SE30, sur
l'étagère, avec son processeur à 16 Mhz, son Mo de RAM et ses 20 Mo
de DD, pilota jadis sans problème 3 racks de TX816, soit 24
synthétiseurs avec une polyphonie cumulée de 384 notes ! Les limites
que tu évoques sont celles du traitement de l'audio-numérique en
temps réel, pas du MIDI.



Euh... alors l'ordinateur ça peut être un peu n'importe quoi, c'est
pour distribuer. Mais sans doute rien qui dépasse 10 ans.
Les instruments "réels" ou "virtuels", je crois qu'il faut que je coche
"virtuels" (c'est la carte son qui se débrouille pour générer le so n).
Le type de logiciel de séquence audio-MIDI : euh... je sais pas. Mais
voir en dessous ma remarque sur l'API Java, je pense que c'est ça le
"logiciel de séquence audio-MIDI" en l'occurrence ?


Il resterait à éclaircir ce que tu appelles "bibliothèques de gesti on
des fichiers MIDI". Je crains le pire. Et également à te décrire les
domaines d'action très larges du standard MIDI, qui dépassent sans
doute largement ce que tu en imagines. Mais procédons par ordre,
digère déjà ce qui précède, on poursuivra ensuite si tu le souh aites.



Oui, là c'était carrément obscur... Désolé.
J'étais simplement sur les bibliothèques logicielles permettant de
"jouer de la musique enregistrée au format [General?]MIDI" (ne me
tapez pas) dans un programme. Par exemple il y a dans l'API Java des
classes permettant a priori de faire ça. Enfin à vérifier : il y a des
classes qui parlent de MIDI et j'ai supposé que ça servait à jouer
des sons comme dans les vieux jeux, mais je n'ai pas encore essayé.

Voilà, j'espère que ces explications éclairciront un peu la
discussion :) .
Avatar
Yliur
Le Fri, 15 Jan 2010 08:42:24 +0100
Wykaaa a écrit :

Yliur a écrit :
> Bonjour
>
> On m'a dit que le format MIDI supportait mal plus de 3-4 instruments
> simultanés.

"On" : probablement quelqu'un qui n'y connaît rien...
>
> Est-ce vrai ?

Il est vrai qu'il ne faut pas chaîner (donc "en série") plus de 4 ou
5 instrument MIDI via la prise "Thru" à cause des problèmes de
latence mais en parallèle, il n'y a aucun souci. Rien n'interdit
d'utiliser autant d'interfaces MIDI qu'on en a besoin, après, c'est
une question de budget. J'ai connu des "installations MIDI" avec 96
canaux MIDI en parallèle. Il n'y avait aucun problème.
>
> Et dans ce cas, est-ce une limitation du format, des cartes sons
> courantes, des bibliothèques de gestion des fichiers MIDI ?

Ne parlons pas de "carte son" quand on parle du protocole MIDI qui ne
véhicule aucun son mais seulement des commandes aux instruments.
MIDI avant d'être un "format" est d'abord un protocole de
communication.

Une bibliothèque de gestion de fichier MIDI, ça ne veut rien dire.
C'est de la gestion de fichiers, point, qu'ils soient MIDI ou non...
A moins que tu veuilles parler des fichiers de réglages MIDI qui sont
particuliers à chaque instrument MIDI ou fabricant (banque MIDI
Roland truc ou Yamaha bidule) et qui déterminent les paramètres d'un
timbre d'instrument MIDI pour un matériel MIDI donné.




Merci pour ta réponse :) .
Pour simplifier je vais répondre à tout dans le message de Gerald.
Avatar
Gerald
Yliur wrote:

Je vais reprendre ce qui m'intéresse : je ne cherche pas à piloter de
vrais instruments mais simplement à "stocker de la musique au format
GeneralMIDI" (je sens qu'on va encore me dire que la formule est
incorrecte :)



Correcte ou pas, en soi je m'en fiche, rassure-toi ! Si tu t'y retrouves
c'est bon. Si ça gêne ta compréhension, je propose une alternative. Sans
plus !

Disons qu'au lieu de stocker de la musique basée sur
un enregistrement (Ogg Vorbis par exemple) je veux simplement stocker
les notes associées à des instruments dans un fichier MIDI et pouvoir
les faire rejouer par un programme.



Pigé. Ce qui n'est pas clair c'est de savoir si tu *recherches* un tel
programme de lecture (multiplateforme et gratuit) ou si c'est un
programme que tu possèdes déjà et/ou que souhaites distribuer.

Il n'y a pas de vrais instruments
dans le cycle, simplement un moyen de "stocker de la musique" de
manière très compacte.



Ça t'a déjà été dit mais je renouvelle : le stockage de fichiers MIDI ne
dépend pas d'un programme mais de l'arborescence des dossiers dans ton
ordi. Ce seraient des fichiers texte ou d'images que la question serait
identique. Il reste une ambiguïté sur tes buts : la "solution" que tu
recherches concerne-t-elle ce stockage de fichiers ou leur utilisation
(un logiciel de lecture ?)

J'espère que c'est plus clair comme ça. Je veux juste faire jouer de la
musique par un programme et stocker ça de manière compacte.



Tu n'es pas bien clair non plus sur le but de l'opération ainsi décrite.
Pourquoi les "faire jouer" ? Dans un but de découverte de créations
personnelles ? Dans un but pédagogique ? Dans un but de loisirs de type
juke-box ?

Tu vas dépendre, avec des fichiers MIDI, de la qualité des sons de
l'ordinateur "client", et tu dois donc prévoir qu'elle *peut* être très
médiocre. Tu ne vas pas maîtriser du tout la nature de l'écoute de ce
que tu transmets. Au niveau musical, ça peut avoir un sens ou pas selon
le contexte.

Dit autrement, le MIDI est plus proche d'une "partition" que d'un
disque. Il serait idéal pour transmettre une partition de musique... qui
resterait à exécuter. L'ordi distant et la qualité de ses sons intégrés
représenterait alors... la qualité de l'interprète !

J'ajoute enfin que selon le contexte : nature de la musique, date de
décès de son créateur, son affiliation ou non à la Sacem, et la
destination d'écoute desdits fichiers (publique ou non, payante ou non,
même de manière indirecte), tu peux te retrouver à devoir envisager le
paiement de droits d'auteur dans ta démarche.

Euh... je ne saisis pas bien la différence entre le séquenceur et le
générateur de son :s . Enfin pour être précis le suppose que le
générateur de son est la partie qui fait du bruit, le séquenceur je
ne sais pas trop, et je ne vois pas bien ce qui est caché aux
utilisateurs ici.



Le séquenceur est le donneur d'ordre. Il accroche les différentes
"notes" MIDI sur une base de temps qui se déroule à un tempo donné.

Ce qui est caché c'est que ses commandes (marche/arrêt, avance-retour
rapide, enregistrement...) ressemblent beaucoup à celles d'un
magnétophone et laisseraient entendre que c'en serait un alors qu'à la
base il enregistre seulement les mouvements d'enfoncement des touches du
clavier en tant "qu'ordres de pilotage à distance" (du générateur de
son), plutôt comme le rouleau d'un piano mécanique. C'est créateur de
beaucoup de confusions. L'utilisateur blaireau-PC voit un "magnéto", on
lui cache l'existence d'un flux de données MIDI, leur nature et leurs
contraintes propres. Elles peuvent être déterminantes dans certains cas.

Alors ce qui m'intéresse c'est de faire produire du son à une carte
son. Est-ce que ta limite de 16 voix par "port de sortie physique"
s'applique à ce cas ? Elle ne pourra jouer que 16 instruments
simultanés ?



Ça ne dépend pas du MIDI mais du logiciel de séquence utilisé, ce qui
nous ramène aux questions précédentes. As-tu des liens permettant de
connaître ce que tu appelles "API Java" ?

------

J'anticipe légèrement une réponse/solution qui risque de te créer plus
de problème qu'elle ne va en résoudre mais tant pis :

À la fin des années 80, un chercheur talentueux, Miller Puckette, a
écrit un programme pour piloter les gros ordinateurs de l'Ircam en MIDI.
Ce programme peut, virtuellement, TOUT faire qui concerne le MIDI, la
musique (en particulier en temps réel, totalement immédiat !) et
également depuis peu l'audio et même la vidéo. Ce programme s'appelle
Max (en hommage à Max Mathews, un des premiers musiciens en informatique
musicale <http://en.wikipedia.org/wiki/Max_Mathews>).

Ce programme existe en version payante chez Cycling '74 :
<http://cycling74.com/products/maxmspjitter/> le prix étant variable
selon qu'on a besoin ou pas de l'audio et ou de la vidéo en plus
Il permet de créer des applis autonomes, compilées, à code source caché,
à interface personnalisée, librement distribuables gratuitement, et qui
pourraient inclure sans problème un *stockage* de fichiers MIDI et leur
mise en lecture sans aucune autre limite que les limites du MIDI. À ce
titre il pourrait représenter une réponse parfaite à ta demande MAIS :

C'est un programme très "prise de tête", on en a pour son argent !
Plutôt un méta-programme d'ailleurs ou progiciel, destiné à fabriquer
des logiciels. Ceci dit, si on ne veut pas investir sa propre énergie et
son intelligence, il y a toujours moyen d'aller "acheter" celles-ci
auprès d'un étudiant de l'Ircam par exemple, pour faire "développer" ce
dont on a besoin. À ce niveau débarque le duo inéluctable de n'importe
quel projet : capacité d'investissement - objectifs.

Miller Puckette a par ailleurs créé plus récemment une version "libre"
et totalement multiplateforme de Max qu'il a appelé "Pure Data" (PD en
abrégé !). Max est bi-plateforme Mac/PC, Pure Data existe pour Win32,
Irix, Gnu/Linux, BSD et Mac OS X. Attention : si Max est prise de tête,
PD est "prise de tête puissance 10". C'est du brutal, sans aucune des
améliorations cosmétiques qui justifient le caractère payant du travail
de David Zicarelli dans Max/MSP/Jitter.
<http://fr.wikipedia.org/wiki/Pure_Data>
<http://puredata.info/>

à suivre...

--
Gérald
Avatar
Yliur
Le Fri, 15 Jan 2010 18:39:05 +0100
Achim Bombota a écrit :

Yliur a écrit :

> voir en dessous ma remarque sur l'API Java, je pense que c'est ça
> le "logiciel de séquence audio-MIDI" en l'occurrence ?

Une API Java, ou autre, permet de *jouer* différents formats de
fichiers, dont des fichiers MIDI.
Un logiciel de séquence permet, lui, de *créer* ces fichiers MIDI.



Ok.


Tu veux les jouer, ou les créer ?



Je veux les jouer.
Avatar
Yliur
Merci à tous pour les réponses :) .

Je précise un peu l'objectif final dans lequel s'inscrit le
problème de la musique, ça permettra de préciser un peu les choses
avant de répondre aux points du message.

Le projet complet n'a rien à voir avec la composition musicale. Il
s'agit de l'écriture en java d'un jeu qui inclus de la musique (de
la musique d'ambiance).
Donc deux solutions pour stocker/représenter la musique à jouer :
- Un enregistrement compressé (Ogg Vorbis ou MP3 par exemple).
- Les fichiers MIDI.

Il s'agit d'une réécriture libre d'Heroquest, pour ceux qui
connaissent. Et j'ai besoin d'une musique de fond. Donc pas
forcément du son de fou furieux, juste quelque chose qui accompagne
un peu le jeu.

Une autre précision : ce n'est pas moi qui vais écrire les musiques, je
n'ai pas de compétences pour ça. Il me reste à trouver des musiques
libres qui vont bien ou des personnes intéressées pour participer et
écrire les musiques.

Les avantages et inconvénients du format MIDI (si je n'oublie rien) :
+ Il semble que java inclue en standard des classes de lecture des
fichiers MIDI (donc j'ai supposé que ça permettait de jouer la
musique "enregistrée" dans les fichiers MIDI, mais à vérifier).
+ Très compact (stockage d'une "partition" plutôt que d'un
enregistrement complet). Ça peut permettre d'avoir de longues
musiques sans prendre de place (enfin très peu).
+ Sans doute plus facile à réaliser qu'un enregistrement de bonne
qualité (?).
- Le rendu qui peut différer d'une machine à l'autre. En espérant q ue
sur des machines "pas trop vieilles" ce soit potable.
- Un son qui aura sans doute moins d'allure qu'un enregistrement avec
de vrais instruments (à voir, mais ce n'est pas forcément très
grave).

Voilà, donc les contraintes que je vois :
- Portabilité (du point de vue de l'exécution, ce sera fait en Java
donc le programme sera portable, a priori le rendu ne devrait
dépendre que de la carte son ? ou pas ?).
- Possibilités du format de fichier MIDI (les éventuelles
limitations du format). A nouveau ce n'est pas moi qui vais
composer les musiques, donc le "comment faire" ne me concerne pas
vraiment, à partir du moment où j'obtiens un ou plusieurs fichiers
que je peux faire jouer par mon programme java.

J'espère avoir été plus précis et avoir un peu éclairé la situa tion :) .

Maintenant les réponses aux points du message.


Le Sat, 16 Jan 2010 08:49:20 +0100
(Gerald) a écrit :

Yliur wrote:

> Je vais reprendre ce qui m'intéresse : je ne cherche pas à piloter
> de vrais instruments mais simplement à "stocker de la musique au
> format GeneralMIDI" (je sens qu'on va encore me dire que la formule
> est incorrecte :)

Correcte ou pas, en soi je m'en fiche, rassure-toi ! Si tu t'y
retrouves c'est bon. Si ça gêne ta compréhension, je propose une
alternative. Sans plus !



C'est juste que c'est mieux d'employer une expression qui convient un
peu à tout le monde, ça simplifie la discussion :) .


> Disons qu'au lieu de stocker de la musique basée sur
> un enregistrement (Ogg Vorbis par exemple) je veux simplement
> stocker les notes associées à des instruments dans un fichier MIDI
> et pouvoir les faire rejouer par un programme.

Pigé. Ce qui n'est pas clair c'est de savoir si tu *recherches* un tel
programme de lecture (multiplateforme et gratuit) ou si c'est un
programme que tu possèdes déjà et/ou que souhaites distribuer.



C'est un programme que je vais écrire et distribuer.


> Il n'y a pas de vrais instruments
> dans le cycle, simplement un moyen de "stocker de la musique" de
> manière très compacte.

Ça t'a déjà été dit mais je renouvelle : le stockage de fichier s MIDI
ne dépend pas d'un programme mais de l'arborescence des dossiers dans
ton ordi. Ce seraient des fichiers texte ou d'images que la question
serait identique. Il reste une ambiguïté sur tes buts : la "solution"
que tu recherches concerne-t-elle ce stockage de fichiers ou leur
utilisation (un logiciel de lecture ?)



Par "stockage", je voulais dire que ce qui m'intéresse c'est juste le
fait de pouvoir représenter de la musique sous la forme d'un fichier
au format MIDI. Donc en gros quelqu'un va écrire disons des
"partitions MIDI" et je vais écrire un programme qui va les jouer,
comme expliqué au début de ce message. Le programme ne devrait rien
avoir d'autre à faire que lire le ou les fichiers et faire jouer ça
par la carte son.


> J'espère que c'est plus clair comme ça. Je veux juste faire jouer
> de la musique par un programme et stocker ça de manière compacte.

Tu n'es pas bien clair non plus sur le but de l'opération ainsi
décrite. Pourquoi les "faire jouer" ? Dans un but de découverte de
créations personnelles ? Dans un but pédagogique ? Dans un but de
loisirs de type juke-box ?



Comme musique d'accompagnement d'un programme qui n'a rien à voir avec
de la musique.


Tu vas dépendre, avec des fichiers MIDI, de la qualité des sons de
l'ordinateur "client", et tu dois donc prévoir qu'elle *peut* être
très médiocre. Tu ne vas pas maîtriser du tout la nature de l'éco ute
de ce que tu transmets. Au niveau musical, ça peut avoir un sens ou
pas selon le contexte.

Dit autrement, le MIDI est plus proche d'une "partition" que d'un
disque. Il serait idéal pour transmettre une partition de musique...
qui resterait à exécuter. L'ordi distant et la qualité de ses sons
intégrés représenterait alors... la qualité de l'interprète !



Il n'y a pas besoin que ce soit d'une qualité géniale, c'est de la
musique de fond. A voir ensuite ce qu'on peut obtenir sur des
machines qui ne dépassent pas 10 ans par exemple.


J'ajoute enfin que selon le contexte : nature de la musique, date de
décès de son créateur, son affiliation ou non à la Sacem, et la
destination d'écoute desdits fichiers (publique ou non, payante ou
non, même de manière indirecte), tu peux te retrouver à devoir
envisager le paiement de droits d'auteur dans ta démarche.



Il n'y a pas d'argent pour le projet, c'est un logiciel libre écrit par
une pincée de glandus :) . Et il ne peut donc pas y avoir de
restrictions sur les possibilités de redistribution. Donc la musique
serait sous licence libre (autorisant au moins la libre
redistribution). Soit des musiques libres trouvées quelque part, soit
des musiques écrites pour l'occasion.


> Euh... je ne saisis pas bien la différence entre le séquenceur et le
> générateur de son :s . Enfin pour être précis le suppose que le
> générateur de son est la partie qui fait du bruit, le séquenceur
> je ne sais pas trop, et je ne vois pas bien ce qui est caché aux
> utilisateurs ici.

Le séquenceur est le donneur d'ordre. Il accroche les différentes
"notes" MIDI sur une base de temps qui se déroule à un tempo donné.

Ce qui est caché c'est que ses commandes (marche/arrêt, avance-retour
rapide, enregistrement...) ressemblent beaucoup à celles d'un
magnétophone et laisseraient entendre que c'en serait un alors qu'à la
base il enregistre seulement les mouvements d'enfoncement des touches
du clavier en tant "qu'ordres de pilotage à distance" (du générateur
de son), plutôt comme le rouleau d'un piano mécanique. C'est créate ur
de beaucoup de confusions. L'utilisateur blaireau-PC voit un
"magnéto", on lui cache l'existence d'un flux de données MIDI, leur
nature et leurs contraintes propres. Elles peuvent être déterminantes
dans certains cas.



C'est toujours un peu flou, désolé.

J'ai l'impression qu'il y a un découpage en plusieurs niveaux :
- Une "partition" qui contient des notes
- Le séquenceur qui indique dans quel ordre les jouer (? ; disons
qu'il permet de lire plusieurs fois une partie, ...) ; est-ce que
ça permet d'organiser la musique à jouer en lisant différents bou ts
d'une ou plusieurs "partition" ?
- Un point évoqué dans un autre message me semble-t-il : la
possibilité d'ajouter des effets au son, donc j'imagine de jouer
des sons moins plats pour simuler l'acoustique dans le monde réel
par exemple.

Est-ce que je dis des bêtises ?


> Alors ce qui m'intéresse c'est de faire produire du son à une carte
> son. Est-ce que ta limite de 16 voix par "port de sortie physique"
> s'applique à ce cas ? Elle ne pourra jouer que 16 instruments
> simultanés ?

Ça ne dépend pas du MIDI mais du logiciel de séquence utilisé, ce qui
nous ramène aux questions précédentes. As-tu des liens permettant de
connaître ce que tu appelles "API Java" ?



http://java.sun.com/javase/6/docs/api/javax/sound/midi/package-summary.html

En jetant un oeil à cette doc, je me demande si ça va bien me permettre
de jouer de la musique à partir de simples fichiers MIDI ou s'il va
falloir que je trouve des banques de sons Java par exemple.


------

J'anticipe légèrement une réponse/solution qui risque de te créer plus
de problème qu'elle ne va en résoudre mais tant pis :

À la fin des années 80, un chercheur talentueux, Miller Puckette, a
écrit un programme pour piloter les gros ordinateurs de l'Ircam en
MIDI. Ce programme peut, virtuellement, TOUT faire qui concerne le
MIDI, la musique (en particulier en temps réel, totalement
immédiat !) et également depuis peu l'audio et même la vidéo. Ce
programme s'appelle Max (en hommage à Max Mathews, un des premiers
musiciens en informatique musicale
<http://en.wikipedia.org/wiki/Max_Mathews>).

Ce programme existe en version payante chez Cycling '74 :
<http://cycling74.com/products/maxmspjitter/> le prix étant variable
selon qu'on a besoin ou pas de l'audio et ou de la vidéo en plus
Il permet de créer des applis autonomes, compilées, à code source
caché, à interface personnalisée, librement distribuables
gratuitement, et qui pourraient inclure sans problème un *stockage*
de fichiers MIDI et leur mise en lecture sans aucune autre limite que
les limites du MIDI. À ce titre il pourrait représenter une réponse
parfaite à ta demande MAIS :

C'est un programme très "prise de tête", on en a pour son argent !
Plutôt un méta-programme d'ailleurs ou progiciel, destiné à fabri quer
des logiciels. Ceci dit, si on ne veut pas investir sa propre énergie
et son intelligence, il y a toujours moyen d'aller "acheter" celles-ci
auprès d'un étudiant de l'Ircam par exemple, pour faire "développer"
ce dont on a besoin. À ce niveau débarque le duo inéluctable de
n'importe quel projet : capacité d'investissement - objectifs.

Miller Puckette a par ailleurs créé plus récemment une version "lib re"
et totalement multiplateforme de Max qu'il a appelé "Pure Data" (PD en
abrégé !). Max est bi-plateforme Mac/PC, Pure Data existe pour Win32,
Irix, Gnu/Linux, BSD et Mac OS X. Attention : si Max est prise de
tête, PD est "prise de tête puissance 10". C'est du brutal, sans
aucune des améliorations cosmétiques qui justifient le caractère
payant du travail de David Zicarelli dans Max/MSP/Jitter.
<http://fr.wikipedia.org/wiki/Pure_Data>
<http://puredata.info/>

à suivre...




Wouch, moi je veux juste jouer de la musique en Java ;) .
1 2