SampleRate von .wav-Dateien ermittlen

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

BIG BUG

Betreff: SampleRate von .wav-Dateien ermittlen

BeitragDo, März 04, 2004 0:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal ein kleines Stückchen Code, mit dem man die SampleRate aus Wave-Dateien auslesen kann. Ist nützlich wenn man z.B. mit ChannelPitch arbeitet, aber "User-Sounds" zulassen möchte.

Es werden nur '.wav'-Dateien unterstützt. Habe es mit vielen verschiedenen Dateien ausprobiert und hat überall funktioniert. Da das WAVE-Format aber sehr "breit" definiert ist, kann ich nicht garantieren, dass es immer funktioniert(Wenn euch auffällt, dass was nicht geht bitte gleich hier reinschreiben oder PM. Danke)

Code: [AUSKLAPPEN]

;SampleRate einer .wav-Datei bestimmen
;03.03.2004 Robert Hierl(BIG BUG)

 Datei$ = CommandLine$()

 While FileType(Datei$) <> 1
    Datei$ = Input("Datei: ")
 Wend
 Print GetSampleRate(datei$)

 WaitKey()


Function GetSampleRate(file$)

   ;Kennzeichnung für Formatinfo 
   Local search$ = "fmt "

   Local fhandle
   Local fbyte
   Local hcounter
   Local ret

   ;Datei öffnen
   fhandle = ReadFile(file$)
   If Not fhandle Return 0
   
   ;Dateizeiger auf Formatinfo setzen
   While Not Eof(fhandle)
      fbyte = ReadByte(fhandle)       
   
      If Chr$(fbyte) = Mid$(search$,hcounter+1,1)
         hcounter = hcounter + 1
      Else
         hcounter = 0
      EndIf
      If hcounter => Len(search$) Then Exit
   Wend

   ;Formatinfos auslesen
   If Not Eof(fhandle)
      ReadInt(fhandle)          ;ID chunkID
      ReadInt(fhandle)           ;long chunkSize     
      ret=ReadShort(fhandle)    ;short wFormatTag
      ;ReadShort(fhandle)       ;unsigned short wChannels
      ;ReadInt(fhandle)         ;unsigned long dwSamplesPerSec
      ;ReadInt(fhandle)         ;unsigned long dwAvgBytesPerSec
      ;ReadShort(fhandle)       ;unsigned short wBlockAlign
      ;ReadShort(fhandle)       ;unsigned short wBitsPerSample;
   EndIf

   CloseFile fhandle
   Return ret

End Function
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group