home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Vectronix 2
/
VECTRONIX2.iso
/
FILES_01
/
WINRE139.LZH
/
WINREC
/
DEUTSCH
/
DVS.TXT
< prev
next >
Wrap
Text File
|
1994-01-25
|
5KB
|
150 lines
DVSM Samples
------------
Jedes DVS Sample beginnt mit folgendem Header:
typedef struct
{
char magic[6];
int headlen;
unsigned int freq;
char pack;
char mode;
long blocklen;
} DVSMHEAD;
Bedeutung der Einträge:
-----------------------
magic:
"DVSM\0\0"
headlen:
Headerlänge, d.h. Abstand der Sounddaten vom Dateibeginn
Unbedingt auswerten, wegen den Erweiterungsblöcken (siehe unten)!!
Die komplette Headerlänge mu₧ gerade sein!
freq:
Samplingfrequenz:
0-7 : Erlaubte CODEC Vorteiler (0: 8kHz ... 7: 49kHz)
>256: Samplingfrequenz in Hz
pack:
0: Ungepackt
2: DVS Packmethode
4: DVS Voicepackmethode (auf WinRec Pro)
In Zukunft sind auch andere Werte denkbar! Also nicht nur auf 'pack>0' sondern auf
'pack==2' oder 'pack==4' abfragen!
mode:
Bit 0: 8/16 Bit
Bit 1: Stereo/Mono
blocklen (im Moment nur gültig falls 'pack'==2 oder 'pack'==4):
Länge eines gepackten Blocks (= Abstand der Stützwerte). Bei gepackten Samples
unbedingt auswerten. Ist kein fester Wert! WinRec schreibt (je nach Buffer)
verschiedene Blocklängen! Die Blocklänge mu₧ gerade sein!
Erweiterungsblöcke
------------------
DVS ist ein modulares Format. Nach dem oben beschriebenen Header können noch (fast)
beliebig viele Erweiterungsblöcke folgen. Die Blöcke gehören zum Header, d.h. der
Eintrag 'headlen' umfa₧t auch die Erweiterungen! So können (z.B. ältere) Programme
die zusätzlichen Informationen Überspringen. Der "Minimalheader" ist immer 16 Bytes lang,
nämlich die oben beschriebenen Einträge.
Ein Block hat folgende Form:
4 Byte (cookie) Kennung des Blocks
2 Byte (len) Länge des Blocks
len-6 Bytes Daten
WinRec versteht ab der Version V1.38 folgende Erweiterungen:
Kennung Länge der Daten Bedeutung
-----------------------------------------------------------------------------------------
'CLCK' 1 Word 0: Interner Takt, 1: Extern CD, 2: Extern DAT
'PEAK' 4 Byte je ein Word für linken und rechten Kanal mit dem höchsten
auftretenden Samplewert
'DSPE' x Bytes DSP Programm (Soundeffekt !!) im Binary Format
'PARA' x Bytes x Parameter für den Soundeffekt. Darf nicht vor dem 'DSPE'
Block stehen!
'PACK' 128 bzw. 8 Bytes Deltapacktabelle für Distanzwerte. Wird (falls vorhanden)
anstelle der Standardtabelle (s.u.) verwendet.
'INFO' x Bytes Infotext (z.B. voller Titel)
Weiterhin ist definiert, wird aber (im Moment) noch nicht von WinRec genutzt:
'KARA' x Bytes Karaoketext (Beschreibung siehe unten)
Die gesamte Headerlänge kann und darf 65535 Bytes nicht überschreiten. Ein Programm sollte
wenn möglich alle Erweiterungsblöcke durchgehen und anhand der Kennung entscheiden, ob
es die Information nutzen kann.
Karaoketextformat
-----------------
long cookie='KARA'
int len
int textlen
danach folgt der Text, der im ASCII Format zeilenweise abgelegt ist. Eine
Textzeile darf nicht länger als 40 Zeichen sein. Nach dem Text folgt die
Takttabelle. Sie enthält für jedes Wort des Textes ein 4-Bytewert der den
zeitlichen Abstand zum vorherigen Wort angibt. Die Angabe erfolgt in der Einheit
1/Samplingfrequenz
Packformat
----------
(im Moment nur für 16 Bit Stereo oder Mono Samples!!!!)
Ein Block ist wie folgt aufgebaut (Länge siehe 'blocklen'):
1. Soundword Links (16 Bit)
1. Soundword Rechts (16 Bit)
1. Distanzwert Links (8 Bit)
1. Distanzwert Rechts (8 Bit)
.
.
.
n. Distanzwert Links (8 Bit)
n. Distanzwert Rechts (8 Bit)
Distanzwerte sind Zeiger auf eine Tabelle mit den 'echten'
16 Bit Distanzwerten. Die Tabelle enthält Funktionwerte der
Funktion
/ -1.084618362^-x für x<0 (-128 bis -1)
f(x)= { 0 für x=0 (0)
\ 1.084618362^x für x>0 (1 bis 127)
Die Tabelle ist (logischerweise) 256 Bytes lang!
Voicepackformat
---------------
(im Moment nur für 16 Bit Stereo oder Mono Samples!!!!)
Ein Block ist wie folgt aufgebaut (Länge siehe 'blocklen'):
1. Soundword Links (16 Bit)
1. Soundword Rechts (16 Bit)
1. Distanzwert Links (4 Bit)
1. Distanzwert Rechts (4 Bit)
.
.
.
n. Distanzwert Links (4 Bit)
n. Distanzwert Rechts (4 Bit)
Distanzwerte sind Zeiger auf eine Tabelle mit den 'echten'
16 Bit Distanzwerten:
-8192,-4096,-2048,-1024,-512,-256,-64,0,64,256,512,1024,2048,4096,8192
Andreas Binner