Bonjour à tous
@ SPH
On ne peut réaliser un fichier ou une zone son en tirant les caractères au hasard.
Structure d'un fichier son suivant WIKIPEDIA
Généralités [modifier]
Le format WAV est une extension de fichiers audio, il s'agit d'un conteneur capable de recevoir des formats aussi variés que le MP3, le WMA, l'ATRAC3, l'ADPCM, le PCM. C'est ce dernier qui est cependant le plus courant, et c'est pour cela que l'extension .wav est souvent — et donc à tort — considérée comme correspondant à des fichiers « sans pertes » (communément désignés par le mot anglais lossless). Le format WAV est standardisé sous Windows ; son pendant sous la plate-forme Macintosh est l'AIFF/AIFC.
* Le conteneur WAV est désormais ancien, et peu pratique.
* Son système d'étiquettes est des plus rudimentaires, ce qui ne permet pas de décemment s'en servir pour l'organisation d'une large bibliothèque de fichiers. Des logiciels tels que foobar2000 et Winamp permettent bien d'ajouter des étiquettes au format APEv2[1], mais cette solution n'est pas standardisée et pourrait poser des difficultés à d'autres logiciels.
* En outre, et à l'instar de l'AIFF, ce format ne permet pas de créer des fichiers de grande taille (maximum 2 Gio), ce qui le rend inapte au travail moderne sur des fichiers haute-définition. En effet, la limite de 2 Gio est atteinte avec à peine 20 minutes d'informations au format 5.1 en 24 bit/96 kHz. C'est une des raisons ayant incité Apple à développer un nouveau conteneur nommé Core Audio Format (CAF).
* Enfin, le format WAV ne contient aucune information sur le niveau absolu du son qu'il contient, ce qui le rend inutilisable pour des applications du domaine de la mesure.
* Néanmoins, le format WAV reste incontournable sous plate-forme Windows. Enfin, le format est supporté par plusieurs baladeurs (lorsqu'un flux PCM ou parfois ADPCM est présent), bien que la taille de ces fichiers soit par conséquent très volumineuse.
* Chez les professionnels, le BWF lui succède.
Structure des fichiers WAV [modifier]
Les fichiers au format WAV (portant l'extension .wav) ont le format suivant (dans la majorité des cas). Ils se composent d'un en-tête de fichier, suivi des données.
En-tête de fichier WAV [modifier]
L'en-tête d'un fichier WAV commence dès le premier octet (offset 0). Il a une taille de 44 octets, et est constitué des champs suivants (listés dans l'ordre) :
[Bloc de déclaration d'un fichier au format WAVE]
FileTypeBlocID (4 octets) : Constante «RIFF» (0x52,0x49,0x46,0x46)
FileSize (4 octets) : Taille du fichier moins 8 octets
FileFormatID (4 octets) : Format = «WAVE» (0x57,0x41,0x56,0x45)
[Bloc décrivant le format audio]
FormatBlocID (4 octets) : Identifiant «fmt » (0x66,0x6D, 0x74,0x20)
BlocSize (4 octets) : Nombre d'octets du bloc - 8 (0x10)
AudioFormat (2 octets) : Format du stockage dans le fichier (1: PCM, ...)
NbrCanaux (2 octets) : Nombre de canaux (de 1 à 6, cf. ci-dessous)
Frequence (4 octets) : Fréquence d'échantillonnage (en Hertz) [Valeurs standardisées : 11025, 22050, 44100 et éventuellement 48000 et 96000]
BytePerSec (4 octets) : Nombre d'octets à lire par seconde (i.e., Frequence * BytePerBloc).
BytePerBloc (2 octets) : Nombre d'octets par bloc d'échantillonnage (i.e., tous canaux confondus : NbrCanaux * BitsPerSample/8).
BitsPerSample (2 octets) : Nombre de bits utilisées pour le codage de chaque échantillon (8, 16, 24)
[Bloc des données]
DataBlocID (4 octets) : Constante «data» (0x64,0x61,0x74,0x61)
DataSize (4 octets) : Nombre d'octets des données (i.e. "Data[]", i.e. taille_du_fichier - taille_de_l'entête (qui fait 44 octets normalement).
DATAS[] : [Octets du Sample 1 du Canal 1] [Octets du Sample 1 du Canal 2] [Octets du Sample 2 du Canal 1] [Octets du Sample 2 du Canal 2]
* Les Canaux :
1 pour mono,
2 pour stéréo
3 pour gauche, droit et centre
4 pour face gauche, face droit, arrière gauche, arrière droit
5 pour gauche, centre, droit, surround (ambiant)
6 pour centre gauche, gauche, centre, centre droit, droit, surround (ambiant)
NOTES IMPORTANTES : Les octets des mots sont stockés sous la forme (i.e., en "little endian")
[87654321][16..9][24..17] [8..1][16..9][24..17] [...
en reprenant l'exemple sur PB
Code : Tout sélectionner
If InitSound()=0
MessageRequester("Erreur","Le sytème son n'est pas valable",0)
End
EndIf
SoundFileName$ = OpenFileRequester("Choisir un fichier *.wav", "", "Fichier wav|*.wav",0)
Debug SoundFileName$
If SoundFileName$
If LoadSound(0, SoundFileName$)
PlaySound(0, #PB_Sound_Loop)
MessageRequester("Sound", "Joue le son en boucle..."+#LF$+"Cliquer pour quitter..", 0)
Else
MessageRequester("Error", "Ne peut charger le fichier son", 0)
EndIf
EndIf
End
A+