home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / WINRE139.LZH / WINREC / DEUTSCH / DVS.TXT < prev    next >
Text File  |  1994-01-25  |  5KB  |  150 lines

  1. DVSM Samples
  2. ------------
  3.  
  4. Jedes DVS Sample beginnt mit folgendem Header:
  5.  
  6. typedef struct
  7. {
  8.     char magic[6];     
  9.     int headlen;       
  10.     unsigned int freq;          
  11.     char pack;        
  12.     char mode;        
  13.     long blocklen;     
  14. } DVSMHEAD;
  15.  
  16. Bedeutung der Einträge:
  17. -----------------------
  18.  
  19. magic:
  20.     "DVSM\0\0"
  21. headlen:
  22.     Headerlänge, d.h. Abstand der Sounddaten vom Dateibeginn
  23.     Unbedingt auswerten, wegen den Erweiterungsblöcken (siehe unten)!!
  24.     Die komplette Headerlänge mu₧ gerade sein!
  25. freq:
  26.     Samplingfrequenz:
  27.             0-7 : Erlaubte CODEC Vorteiler (0: 8kHz ...  7: 49kHz)
  28.             >256: Samplingfrequenz in Hz
  29. pack:
  30.     0: Ungepackt
  31.     2: DVS Packmethode
  32.     4: DVS Voicepackmethode (auf WinRec Pro)
  33.     In Zukunft sind auch andere Werte denkbar! Also nicht nur auf 'pack>0' sondern auf
  34.     'pack==2' oder 'pack==4' abfragen!
  35. mode:
  36.     Bit 0: 8/16 Bit
  37.     Bit 1: Stereo/Mono
  38. blocklen (im Moment nur gültig falls 'pack'==2 oder 'pack'==4):
  39.     Länge eines gepackten Blocks (= Abstand der Stützwerte). Bei gepackten Samples
  40.     unbedingt auswerten. Ist kein fester Wert! WinRec schreibt (je nach Buffer)
  41.     verschiedene Blocklängen! Die Blocklänge mu₧ gerade sein!
  42.     
  43. Erweiterungsblöcke
  44. ------------------
  45.  
  46. DVS ist ein modulares Format. Nach dem oben beschriebenen Header können noch (fast)
  47. beliebig viele Erweiterungsblöcke folgen. Die Blöcke gehören zum Header, d.h. der
  48. Eintrag 'headlen' umfa₧t auch die Erweiterungen! So können (z.B. ältere) Programme
  49. die zusätzlichen Informationen Überspringen. Der "Minimalheader" ist immer 16 Bytes lang,
  50. nämlich die oben beschriebenen Einträge.
  51.  
  52. Ein Block hat folgende Form:
  53.  
  54.      4 Byte (cookie)   Kennung des Blocks
  55.      2 Byte (len)      Länge des Blocks
  56.  len-6 Bytes Daten
  57.  
  58. WinRec versteht ab der Version V1.38 folgende Erweiterungen:
  59.  
  60. Kennung            Länge der Daten        Bedeutung
  61. -----------------------------------------------------------------------------------------
  62. 'CLCK'            1 Word                0: Interner Takt, 1: Extern CD, 2: Extern DAT
  63.  
  64. 'PEAK'            4 Byte                je ein Word für linken und rechten Kanal mit dem höchsten
  65.                                     auftretenden Samplewert
  66.                                     
  67. 'DSPE'            x Bytes                DSP Programm (Soundeffekt !!) im Binary Format
  68.  
  69. 'PARA'            x Bytes                x Parameter für den Soundeffekt. Darf nicht vor dem 'DSPE'
  70.                                     Block stehen!
  71.  
  72. 'PACK'            128 bzw. 8 Bytes    Deltapacktabelle für Distanzwerte. Wird (falls vorhanden)
  73.                                     anstelle der Standardtabelle (s.u.) verwendet.
  74.                                     
  75. 'INFO'            x Bytes                Infotext (z.B. voller Titel)
  76.  
  77. Weiterhin ist definiert, wird aber (im Moment) noch nicht von WinRec genutzt:
  78.  
  79. 'KARA'            x Bytes                Karaoketext (Beschreibung siehe unten)
  80.  
  81.  
  82. Die gesamte Headerlänge kann und darf 65535 Bytes nicht überschreiten. Ein Programm sollte
  83. wenn möglich alle Erweiterungsblöcke durchgehen und anhand der Kennung entscheiden, ob
  84. es die Information nutzen kann.
  85.  
  86. Karaoketextformat
  87. -----------------
  88.     long cookie='KARA'
  89.     int len
  90.     int textlen
  91.  
  92. danach folgt der Text, der im ASCII Format zeilenweise abgelegt ist. Eine
  93. Textzeile darf nicht länger als 40 Zeichen sein. Nach dem Text folgt die
  94. Takttabelle. Sie enthält für jedes Wort des Textes ein 4-Bytewert der den
  95. zeitlichen Abstand zum vorherigen Wort angibt. Die Angabe erfolgt in der Einheit
  96. 1/Samplingfrequenz
  97.  
  98.  
  99. Packformat
  100. ----------
  101.  (im Moment nur für 16 Bit Stereo oder Mono Samples!!!!)
  102.  
  103. Ein Block ist wie folgt aufgebaut (Länge siehe 'blocklen'):
  104.  
  105.  1. Soundword Links    (16 Bit)
  106.  1. Soundword Rechts   (16 Bit)
  107.  1. Distanzwert Links  (8 Bit)
  108.  1. Distanzwert Rechts (8 Bit)
  109.                  .
  110.                  .
  111.                  .
  112.  n. Distanzwert Links  (8 Bit)
  113.  n. Distanzwert Rechts (8 Bit)
  114.  
  115.  
  116. Distanzwerte sind Zeiger auf eine Tabelle mit den 'echten'
  117. 16 Bit Distanzwerten. Die Tabelle enthält Funktionwerte der
  118. Funktion
  119.                    / -1.084618362^-x  für x<0  (-128 bis -1)
  120.             f(x)= {   0               für x=0  (0)
  121.                    \  1.084618362^x   für x>0  (1 bis 127)
  122.                    
  123. Die Tabelle ist (logischerweise) 256 Bytes lang!
  124.  
  125. Voicepackformat
  126. ---------------
  127.  (im Moment nur für 16 Bit Stereo oder Mono Samples!!!!)
  128.  
  129. Ein Block ist wie folgt aufgebaut (Länge siehe 'blocklen'):
  130.  
  131.  1. Soundword Links    (16 Bit)
  132.  1. Soundword Rechts   (16 Bit)
  133.  1. Distanzwert Links  (4 Bit)
  134.  1. Distanzwert Rechts (4 Bit)
  135.                  .
  136.                  .
  137.                  .
  138.  n. Distanzwert Links  (4 Bit)
  139.  n. Distanzwert Rechts (4 Bit)
  140.  
  141.  
  142. Distanzwerte sind Zeiger auf eine Tabelle mit den 'echten'
  143. 16 Bit Distanzwerten:
  144.  
  145. -8192,-4096,-2048,-1024,-512,-256,-64,0,64,256,512,1024,2048,4096,8192
  146.  
  147.  
  148.  
  149. Andreas Binner
  150.