VQF

From MultimediaWiki
Revision as of 05:35, 8 November 2007 by Ivo (talk | contribs) (fix overal file layout; rename chunks to subchunks)
Jump to navigation Jump to search
  • Extensions: .vqf
  • Company: Nippon TT

VQF files are used to store a stream of TwinVQ encoded audio data.

General Layout

typedef struct vqf_file_s {
 char magic[4];                       /* "TWIN" */
 char version[8];                     /* e.g. "97012000" */
 int32 subchunks_size;
 int8 subchunks[subchunks_size];
 char datamarker[4];                  /* "DATA" */
 int8 data[data_size];                /* from DSIZ subchunk */
}
  • All (u)intxx fields are stored in big-endian order.
  • Sub-chunks are stored as subchunk_size (uint32) and subchunk_id (char[4]).
  • subchunk_size includes the ID and the size field itself.

Standard Sub-chunks

Chunk ID Contents Field Description
COMM Mandatory information int32 channel_mode 0: mono, 1: stereo
int32 bitrate kbit/s
int32 samplerate 44: 44100 Hz, 22: 22050 Hz, 11: 11025 Hz
int32 security_level always 0
NAME Song title char name[]
COMT Comment char comment[]
AUTH Author char author[]
(c)<space> Copyright char copyright[]
FILE Filename char filename[]
DSIZ Data size uint32 data_size size of compressed audio data

Extension Sub-chunks

Chunk ID Contents Field Description
ALBM Album title char album_title[]
YEAR Recording date int16 year 0 means unspecified
char month idem
ENCD Compression date int16 year 0 means unspecified
char month idem
char day idem
char hour idem
char minute idem
char timeZone idem
TRAC Track number int16 track_number
LYRC Lyrics char lyrics[]
GUID Globally Unique Identifier uchar guid[16]
ISRC International Standard Record Code char isrc[] Identifier of CD
WORD Words char words[]
MUSC Composer char composer[]
ARNG Arranger char arranger[]
PROD Producer char producer[]
REMX Remixer char remixer[]
CDCT Conductor char conductor[]
SING Singer char singer[]
BAND Band name char band_name[]
PRSN Personnel char personnel[]
LABL Record label char record_label[]
NOTE Liner notes char liner_notes[]
SCND Auxiliary information char aux_info[]
EXTR reserved
_ID3 Reserved for ID3v2 tags char id3v2_data[] Not sure if such files exist;
priority for tags conflicting with
previous chunks is undefined
_YMH Reserved chunk
_NTT Reserved chunk