Un son MIDI de qualité : rêve ou réalité ?

Salut tous, salut toutes !

Depuis toujours, j’ai été un grand amateur des jeux qui ont bercé la jeunesse d’une génération dont je ne fais pas partie…
Je viens de m’y replonger, et DOSBox comme ScummVM tournent à plein régime !

Si je trouve un certain charme à tous ces tas de pixels, j’ai par contre plus de mal avec le son MIDI (qui utilise probablement les banques de sons par défaut de Debian).
Il me semble pourtant que du temps des PCs avec de vraies cartes sons, les musiques en MIDI ressemblaient plus à des sons instrumentaux qu’à cette purée de bips à laquelle j’ai droit…

Malheureusement, mes connaissances à ce niveau ne vont pas beaucoup plus loin qu’un “apt-get install timidity”…

Je cherche donc à la fois un banque de sons MIDI de qualité, et une méthode pour l’utiliser sur ma Squeeze.

Plus globalement, je suis intéressé par de la documentation accessible par un néophtye sur le système MIDI : comment ça marche ? pourquoi n’est-il plus aussi utilisé qu’il l’a été ? quelles sont les limites de l’émulation MIDI telle qu’elle est présente actuellement sur nos systèmes ? etc.

Yo!
Je crois que tu peux rajouter des banques de sons à timidity. pc51f, fluidr3 gm par exemple. Tu noteras une différence dans le rendu… Si c’est pour des vieux jeux ça peut être une bonne solution.
J’utilise fluidsynth avec jack. j’ai à peine fouille mais je pense qu’il y a moyen de mélanger des banques de sons en fonction des canaux utilisés. Peut être même des voix. Ca voudrait dire que tu peux prendre des banques de sons specialisées (percu, basse, clavier) et les coupler. Il faudrait essayer.

Si tu veux faire un peu de zik, tu peux essayer hydrogen, sampler batterie. Il y a plusieurs banques de sons. Le rendu est chouette.
J’ai trouvé une banque de sons basse/contrebasse, ça le fait à peu près. Manque le piano et on y est.

Le midi déclinant? Oula! malheureux! Une info midi de base contient: le pitch-> la note et la vélocité d’enfoncement de la touche/pad/machin -> intensité sonore du son. Tu peux ajouter l’aftertouch (force exercé sur la touche après l’enfoncement), le sustain (pédale de piano), la modulation, les faders, etc… j’en oublie surement. Ces parametre permettent de piloter un expandeur/synthétiseur (ou les lumières de chez toi pourquoi pas), tu les agences comme tu veux. Le pitch peut servir à autre chose que donner la hauteur tonale etc…
Mon colloc utilise une batterie electronique: MIDI.
Dès que tu vois un mec avec un clavier qui n’est pas un piano acoustique: MIDI inside.
Dans un de mes groupes, le clavieriste utilise des machines (ordi,synthé,bandes,etc…). L’ordi peut envoyer des infos midi aux claviers pour utiliser leur synthétiseur integrés. Le son produit ressort en analogique vers la table de mix. Ca marche aussi à l’envers (clavier qui se sert du synthé logiciel sur le mac).
Du coup le son final est parfois un subtil mélange produit par le synthé logiciel du mac et les synthés des claviers. Tout ça grace au midi.
etc…
En ce qui me concerne, j’ecris mes partitions et je fais jouer le resultat par un piano pour verifier. Ca va pas très loin.

Mais…
gizmag.com/go/5091/
crackle.org/TheHands.htm

J’ai piqué un bouquin à mon prof: Le système MIDI (cahiers de l’ACME). Ca peut te plaire, ça part du début.

Il me semble que les chercheurs voulaient pouvoir créer des sons en fonctions de l’environnement. Application: jeux vidéos! Par exemple, le personnage tape avec un truc en métal sur un truc en bois dans une cave, le son est généré en live. Ce n’est plus vraiment du MIDI mais le principe reste le même: piloter un synthétiseur avec des paramètres variables. Reste plus qu’à pondre le synthé…

Euh… Je parlais juste du domaine bien ciblé des musiques de jeux…

En tous cas, merci pour tes liens dans lesquels je vais me plonger avec avidité, un filet de bave au coin des lèvres (comme cette fameuse blague sur les batteurs) !
Et pour tes exemples de banques de sons que je vais tester dès demain.

Pour ce qui est de FluidSynth, je crois que je vais aussi l’essayer : Timidity est réputé lourd, et le PC que j’utilise est loin d’être une bête de course !
Suffit-il de l’installer et de désinstaller Timidity, où vais-je devoir l’ajouter à la liste d’applications lancées au démarrage de ma session ?

Bon, procédons par ordre…
Pour commencer, par curiosité plus que par nécessité, je me lance dans l’installation et la configuration de JACK.

Évidemment, je ne sais pas quoi faire passé le classique “apt-get install jackd jack-tools meterbridge” !

JACK remplace-t-il ALSA ou s’ajoute-t-il à celui-ci ?
Fonctionne-t-il « out-of-ze-box » ou vais-je avoir à éditer quelques fichiers de configuration ?


Pour le moment, voici la façon dont je lance JACK, et ce que lui-même en dit :

legoth@Janus:~$ jackd -rd alsa -X seq jackdmp 1.9.6 Copyright 2001-2005 Paul Davis and others. Copyright 2004-2010 Grame. jackdmp comes with ABSOLUTELY NO WARRANTY This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details Cannot create thread 1 Operation not permitted Cannot create thread 1 Operation not permitted JACK server starting in non-realtime mode Cannot lock down memory area (Cannot allocate memory) audio_reservation_init Acquire audio card Audio0 creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit Using ALSA driver ICH running on card 0 - SiS SI7012 with ALC655 at irq 18 configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods ALSA: final selected sample format for capture: 16bit little-endian ALSA: use 2 periods for capture ALSA: final selected sample format for playback: 16bit little-endian ALSA: use 2 periods for playback port created: Midi-Through:midi/playback_1 port created: Midi-Through:midi/capture_1


Ce n’est clairement pas une réussite pour le moment !
FluidSynth ne veut plus rien entendre dpuis que JACK a débarqué :

[code]legoth@Janus:~$ fluidsynth -ilsa alsa /usr/share/sounds/sf2/FluidR3_GM.sf2
FluidSynth version 1.1.1
Copyright © 2000-2009 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont® is a registered trademark of E-mu Systems, Inc.

fluidsynth: warning: Failed to pin the sample data to RAM; swapping is possible.
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
fluidsynth: error: The “default” audio device is used by another application
Failed to create the audio driver[/code]

[quote=“vv222”]Depuis toujours, j’ai été un grand amateur des jeux qui ont bercé la jeunesse d’une génération dont je ne fais pas partie…
Je viens de m’y replonger, et DOSBox comme ScummVM tournent à plein régime ![/quote]
Coïncidence, le week-end dernier je me suis enfin décidé à installer dosbox et scummvm et à ressortir mes vieilles boîtes de jeux DOS de la poussière ! J’ai aussi installé timidity pour avoir les musiques MIDI. A l’époque où je jouais sous DOS sur un 486, les musiques étaient jouées par le clavier-synthétiseur de mon paternel, connecté au port MIDI de la carte son, parce que la synthèse FM des Sound Blaster, c’était pas terrible…

[quote=“vv222”]Si je trouve un certain charme à tous ces tas de pixels, j’ai par contre plus de mal avec le son MIDI (qui utilise probablement les banques de sons par défaut de Debian).
Il me semble pourtant que du temps des PCs avec de vraies cartes sons, les musiques en MIDI ressemblaient plus à des sons instrumentaux qu’à cette purée de bips à laquelle j’ai droit…[/quote]
Tu es sûr que dosbox et scummvm utilisent la synthèse MIDI et pas la synthèse FM Sound Blaster ? J’ai dû configurer dosbox pour utiliser le périphérique MIDI créé par timidity (et les jeux pour utiliser le MIDI), je ne sais plus pour scummvm. Tous les instruments ne sont pas fabuleux, mais c’est mieux que la synthèse Sound Blaster. D’autre part visiblement timidity demande pas mal de puissance de calcul, et si le jeu est exigeant aussi, cela peut occasionner un son “haché”.

Le MIDI c’est l’équivalent d’une partition de musique. L’avantage à l’époque, c’est qu’il s’agit d’un format de données très compact, qui permettait de fournir des morceaux élaborés avec des jeux sur disquettes. L’inconvénient, c’est qu’il faut un “orchestre” (synthétiseur MIDI) avec tous les instruments nécessaires pour jouer la partition, et que l’interprétation peut varier d’un orchestre à l’autre. Les capacités de stockage augmentant, il est devenu plus simple aujourd’hui de stocker des musiques échantillonnées commes les voix et autres sons, dont l’exécution demande très peu de puissance de calcul. C’est l’équivalent d’un CD avec un lecteur. D’où la raréfaction de la synthèse MIDI sur les ordinateurs et dans les jeux.

linuxmao.org/tikiwiki/tiki-i … ?page=midi

fonce tu va etre surpris par la capacité du midi

J’en étais sûr, jusqu’à ce que tu poses la question !
Comment le savoir ?

Pour cette raison, je suis en train de tester FluidSynth.
Pour le moment mes problèmes de performances débarquent surtout dès qu’un jeu lance une cinématique… Mais ma Radeon 9200 m’a habitué a être très peu exigeant au niveau des performances ! Je suis certain qu’elle pourrait faire beaucoup mieux que ce qu’elle daigne me présenter, mais j’ai déjà tenté tout ce qui est en mon pouvoir pour la motiver, sans réel succès…

Salut,
j’utilise qjackctl pour l’interface. C’est plus pratique. Si je comprends bien, jack est une alternative à alsa. J’avais essayé un synthétiseur d’orgue (brisol) qui ne fnctionnait qu’avec alsa. J’avais fait une sorte de redirection de port pour pouvoir connecter mon clavier à jack puis à alsa pour aller dans le synthé. Pulseaudio semble plus out of the box mais serait un peu plus lourd.
Pour fluidsynth pareil: j’utilise qSynth qui permet d’avoir une interface graphique.
Si tu compte te passer d’alsa, j’imagine qu’l faut lancer jack en démon au démarrage. Personnellement, je me sers d’alsa pour une utlsation de tout les jours mais dès que je veux faire du son, je lance jack PUIS toutes mes applis derrière. ENsuite, je les raccorde grâce à jack et je laisse alsa faire sa vie.

Chez moi, jack fonctionne out of the box pour ce que je veux faire. Si tu veux te debarrasser totalement de alsa je pense que ça va etre un peu plus compliqué. Certaines applis n’ont pas de sorties “jack”. Vlc propose un plugin pour ça: vlc-plugin-jack. Pour Bristol par exemple, je sais psa si tu peux te passer d’alsa. A voir…

Avec qjackctl et qsynth, je note une nette amélioration : FluidSynth accepte de se lancer une fois JACK démarré !
Il va falloir que j’épluche un peu plus le fonctionnement de ces deux-là pour pouvoir repasser à un lancement automatique à la connexion.

Pendant ce temps, je continue à me documenter sur le MIDI plus généralement, et je vogue de surprise en surprise !
C’est vraiment une invention géniale ce système !

[quote=“vv222”]J’en étais sûr, jusqu’à ce que tu poses la question !
Comment le savoir ?[/quote]
Pour dosbox, j’ai mis ceci dans ~/.dosbox/dosbox-0.74.conf sous la section [midi] :

mpu401=uart mididevice=alsa midiconfig=128:0
128:0 est le premier “port” rapporté par aplaymidi pour timidity.
Et bien sûr, il faut configurer les jeux pour utiliser le MPU-401.

Pour scummvm, j’ai sélectionné “alsa” dans les options audio et ajouté l’option “alsa_port=128:0” dans le fichier de configuration ~/scummvmrc.

Ouais, il faut lancer jack en premier sinon les applis se connecte à alsa. Tu relances les applis chez moi ça suffit.
Tu as essayé d’autres banques de sons avec fluidsynth? de les melanger?

Jack fait de l’audio en général. Il connecte juste les entrées/sorties de l’ordi et des applis. Tu dois pouvoir t’en passer en connectant fluidsynth à alsa. N’empeche Jack, c’est de la bombe…
fluidsynth ne fait que generer du son pour le MIDI. Il faudrait pouvoir le lancer automatiquement quand tu as besoin de jouer du midi.

Merci PascalHambourg, ça marche enfin !
Et, nom de Zeus, sacrée différence dans la qualité des musiques !

Je pense laisser JACK de côté pour le moment par contre : je pense que FluidSynth va suffire à m’occuper un moment…

Maintenant, je suis curieux : amateurs de MIDI de debian-fr.org, quelle(s) banque(s) de sons utilisez-vous ?
Pour ma part j’utilise la renommée FluidR3_GM.sf2, la meilleure de celles que j’ai eu l’occasion de tester ! (la seule en fait)

En ce qui me concerne je me suis contenté d’installer les trois banques “suggérées” par le paquet timidity, qui incluent des fichiers de conf pour lui.

Jack c’est pour la MAO normalement, pas pour jouer à des jeux, on doit pouvoir s’en passer !

Sinon pour une bonne banque (peut-être le meilleur), il y a la crisis 3, mais elle est très grosse, donc prend pas mal de RAM. Pour la télécharger il faut s’inscrire sur le forum et y chercher le mdp de l’archive.

bismutnetwork.com/

Flo

Bah, de toutes façons je pense que je vais devoir offrir une barrette de RAM à cette machine : une fois FluidSynth lancé, la moindre action flirte avec le swap…

Pour JACK et la MAO, ça attendra que j’ai acheté une carte son et un jeu de cordes neuves pour ma basse !