$wav

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 464 fois - Téléchargée 30 fois

Contenu du snippet

Retourne les informations d'un fichier audio wav.

Source / Exemple :


;usage: $wav(fichier).channels|format|frequency|bps|bpsample|length
alias wav {
  var %size = $file($1-).size
  if (!%size) return 0
  bread  " $+ $1- $+ " 0 2048 &wav
  ;Un fichier WAV qui se respecte, commence toujours par RIFF
  if ($bvar(&wav,1,4).text != RIFF) return
  ;chunck format
  var %pos = $bfind(&wav,5,fmt)
  if (!%pos) return
  ;chunck data
  var %pos2 = $bfind(&wav,%pos,data)
  ;on 'enlève' la taille des headers
  dec %size $calc(%pos2 + 8 + $bvar(&wav,%pos2,$calc(%pos2 + 4)).long)
  if ($prop == channels)  return $bvar(&wav,$calc(%pos + 10)).word
  if ($prop == format) {
    var %name = G723_ADPCM ANTEX_ADPCME G721_ADPCM APTX AUDIOFILE_AF36 AUDIOFILE_AF10 CONTROL_RES_VQLPC CONTROL_RES_CR10 CREATIVE_ADPCM DOLBY_AC2 DSPGROUP_TRUESPEECH DIGISTD DIGIFIX DIGIREAL DIGIADPCM ECHOSC1 FM_TOWNS_SND IBM_CVSD OLIGSM OLIADPCM OLICELP OLISBC OLIOPR IMA_ADPCM DVI_ADPCM UNKNOWN PCM ADPCM ALAW MULAW GSM610 MPEG NMS_VBXADPCM OKI_ADPCM SIERRA_ADPCM SONARC MEDIASPACE_ADPCM YAMAHA_ADPCM
    var %num = 20 51 64 37 36 38 52 55 512 48 34 21 22 53 54 35 768 5 4096 4097 4098 4099 4100 17 0 1 2 6 7 49 80 56 16 19 33 18 32
    return $gettok(%name,$findtok(%num,$bvar(&wav,$calc(%pos + 8)).word,32),32)
  }
  if ($prop == frequency) return $bvar(&wav,$calc(%pos + 12)).long
  if ($prop == bps) return $bvar(&wav,$calc(%pos + 16)).long
  if ($prop == bpsample) return $bvar(&wav,$calc(%pos + 22)).word
  ;taille divisée par le taux bits par seconde
  if ($prop == length) return $int($calc(%size / $bvar(&wav,$calc(%pos + 16)).long))
  return $1-
}

A voir également

Ajouter un commentaire

Commentaires

Messages postés
7
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
14 août 2005

Très bon code, bravo ;)
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2
non c'est très bien comme ca. D'ailleurs je vois pas beaucoup d'addons utilisant l'identifieur $prop en tout cas j'ai appris a m'en servir :p
et puis j'ai vu aussi $ogg sur sdb
$wma $ogg et $wav que demande le peuple :D
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009

Je sais pas, j'ai hésité entre les deux, et je l'ai mis dans le niveau où il y a le moins de codes, à savoir: expert.

Si ça gène du monde, je pourrais le mettre au niveau Initié.
Messages postés
129
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
30 juin 2012

Dans le niveau initié, ca aurait pas été mieux ? Quoique ...
Bien vu quand même, cela prouve encore que le domaine du mIRC est assez vaste :)
Pas mal programmé, code commenté, 9/10 :)
Continue comme ca !

Giustino, Admin VegaGames
Messages postés
246
Date d'inscription
samedi 1 novembre 2003
Statut
Membre
Dernière intervention
9 janvier 2006

Bravo ! :)
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.