de remont » Mar 27 Avr 2010 12:04
Ca y est, tu m'as fait travailler ... ;-))
Bon je viens de potasser la doc avec Esound.
Je commence sur un point : c'est compatible jusqu'à FS2004 dans la doc. Pour FSX, je ne sais pas, mais je pense qu'au pire certaines fonctions ne sont pas accessible.
Tout les exemples si-dessous sont tirés de la doc.
Donc Esound, c'est un dll placé dans le dossier Module de FS. Son premier lancement (démarage de FS) va créer un fichier Esound.cfg dans le dossier racine de FS. Ce fichier de configuration est éditable comme tout fichier texte.
Un point interressant : chaque modification de ce fichier de configuration ne vous oblige pas à redemarer FS. Esound.dll se met à jour tout seul et vous testez en Live vos modifications. Un plus.
Esound vous permet de jour un fichier son de votre choix, en le dirigeant vers le haut parleur de votre choix, en décidant de son volume et de sa lecture en boucle si ça vous chante. Donc si vous avez trois cartes son avec chaqune 4 HP reliés (AvDt, AvG ArDt et ArG par exemple), Esound va vous permettre de jouer votre son sur l'une des 12 enceintes.
Pour jouer un son, plusieurs possibilités. Assumons le fait que nous ne programmons pas en C++, et regardons les possibilités qui s'offrent à nous :
- Déclencher le son en appuyant sur un bouton de joystick.
- Déclencher le son en lisant un OFFSET FSUIPC.
- Déclencher le son en lisant directement une variable interne de FS par le SDK de microsoft.
Le cerveau de Esound va être le fichier .cfg.
Au premier démarrage, il va s'auto créer et s'écrire en listant le matériel audio accessible :
[Devices]
1=Primary Sound Driver
2=SoundBlaster 16 Direct Sound Driver [220]
3=DirectSound (SB Live! Wave Out [E800])
4=Microsoft Digital Sound System 80
Donc impec, vous n'avez plus qu'à utiliser les n° donnés identifiants vos cartes son.
Vous créez ensuite plusieurs sections dans ce fichier cfg : [Settings], puis [Sounds], puis [Pooling], [triggers] .
Les deux premières sections permettent de déclarer et liers les sons à une sortie son. La troisième section est pour les utilisateurs de carte EPIC donc obsolète à l'heure actuel. La dernière section est celle sur laquelle vous passerez du temps ...
TRIGGERS = gachette -> Terme bien connu de nous autre programmateur de IOcard. Un évenement est un trigger, donc une gachette qui déclenche une instruction. Ici même principe.
Vous pouvez donc déclencher un son en lisant un offset FSUIPC et y mettre une ou des conditions. La syntaxe d'une ligne de la section trigger est expliquée dans la doc. La comprehension des valeur FSUIPC n'est pas aisée, mais est décrite dans la doc. A voir plus tard.
Quelques exemples de la doc :
1 = VB0238 > 10 & VB0238 < 11, 5, 1
says that sound 5 should be played with setting 1 whenever the Byte value in FS state variable 0x0238 is between 10 and 11. Byte value 0x238 is the local hour, so the sound would be played immediately after 10 am. The ‘end’ condition of 11 am is actually meaningless excepting that time can be reversed in FS. If the time elapsed till after 11 am, but was then reset (e.g. by reloading an FS situation) to, say, 10:30 am, then the sound would trigger again.
2 = VW0504.00F0 = X0070, 6, 3
says that sound 6 should be played with setting 3 whenever the 4 bits in the 0x00F0 position (i.e. 2^8–2^11) change to the value 7 (or 0x0070 for the whole word with those bits isolated). This particular example in the real world would actually apply to the case where the ALT section in Enrico Schiratti’s PFD annunciator changes to indicate the “TO/GA” mode.
2 = MACH > 0.80 & MACH <= 0.84, 6, 2
plays [Sounds] number 6 using [Settings] number 2 when the Mach speed goes from below or equal 0.80 to above, or from above 0.84 to below or equal.
Notez que dans ce dernier exemple, le mot MACH est utilisé. Ici FSUIPC n'est pas utilisé, mais il s'agit d'une instruction qui travaille directement FS (donc pas via FSUIPC). Vous trouverez dans la doc de ESOUND toutes ces instructions.
Ce trigger peut-être comme je l'ai dit FSUIPC, Un bouton de Joystick, donc compatibilité assurée avec FSX je pense, ou directement par FS, et là pour FSX, je ne sais pas.
Pour terminer, Esound se substitue à FS comme générateur de son. Il ne permet pas de splitter et mixer les sons de FS.
A mon sens, il faut garder les sons moteurs/vent ... dans FS. Par contre il faut programmer tout les sons de l'avionique dans Esound.
Si vous voulez entendre votre Outer Marker sur la carte son #2, haut parleur Arrière Gauche, vous programmerez Esound pour ça, et vous désactiverez dans FS les sons avioniques, ou retirerez le fichier son du dossier sound de votre Aircraft préféré.
A noter que la documentation ne parle pas de WIdeFs, et pour cause car il s'agit d'un dll. Donc tout votre système son doit être sur l'ordinateur qui fait marcher FS. Pas de configuration réseau envisageable.
Voilà ce que je peux dire sur Esound après lecture de la doc, sans l'avoir utilisé.