请输入您要查询的百科知识:

 

词条 riff
释义

简介

riff:即兴重复段

在金属乐中用得及其之多。换句话说,金属音乐最主要的特点就是riff段,没有riff也就没有metal。

具体解释

关于riff具体的解释,暂时没有找到任何官方的正式的解释,字面意思是即兴重复段。就是由几个和弦组成的反复演奏的一段音乐。

riff的含义很广。

不仅仅是指在金属音乐中有riff,在早期的爵士乐中就有了riff,甚至有的说法是在古典音乐中就有riff了。在不同的音乐风格中,riff也有着些微的不同,大体是指重复的排比段。也不只是吉他可以riff。

riff也不完全是即兴的,很多也是预先编排好的。但riff一定是重复的。重复,就是riff最大的特征。

RIFF文件格式

1. 简介RIFF全称为资源互换文件格式ResourcesInterchange FileFormat),RIFF文件是windows环境下大部分多媒体文件遵循的一种文件结构,RIFF文件所包含的数据类型由该文件的扩展名来标识,能以RIFF文件存储的数据包括:音频视频交错格式数据(.AVI) 波形格式数据(.WAV) 位图格式数据(.RDI) MIDI格式数据(.RMI)调色板格式(.PAL)多媒体电影(.RMN)动画光标(.ANI)其它RIFF文件(.BND)

2. CHUNK

chunk是组成RIFF文件的基本单元,它的基本结构如下:

struct chunk{

u32 id; /* 块标志 */

u32 size; /* 块大小 */

u8 dat[size]; /* 块内容 */

};

id 由4个ASCII字符组成,用以识别块中所包含的数据。如:'RIFF','LIST','fmt','data','WAV','AVI'等等,由于这种文件结构最初是由Microsoft和IBM为PC机所定义,RIFF文件是按照little-endian字节顺序写入的。

size(块大小) 是存储在data域中数据的长度,id与size域的大小则不包括在该值内。

dat(块内容) 中所包含的数据是以字(WORD)为单位排列的,如果该数据结构长度是奇数,则在最后添加一个空(NULL)字节。

chunk块中有且仅有两种类型块:'RIFF'和'LIST'类型可以包含其他块,而其它块仅能含有数据。

'RIFF'和'LIST'类型的chunk结构如下

structchunk{

u32 id; /* 块标志 */

u32 size; /* 块大小 */

/*此时的dat = type + restdat */

u32 type ; /* 类型 */

u8 restdat[size] /* dat中除type4个字节后剩余的数据*/

};

可以看出,'RIFF'和'LIST'也是chunk,只是它的dat由两部分组成type和restdat。

type,由4个ASCII字符组成,代表RIFF文件的类型,如'WAV','AVI ';或者'LIST'块的类型,如avi文件中的列表'hdrl','movi'。

restdat,dat中除type4个字节后剩余的数据,包括块内容,包含若干chunk和'LIST'

2.1 FOURCC 一个FOURCC(fourcharacter code)是一个占4个字节的数据,一般表示4个ASCII字符。在RIFF文件格式中,FOURCC非常普遍,structchunk 中的id成员,'LIST','RIFF'的type成员,起始标识等信息都是用FOURCC表示的。FOURCC一般是四个字符,如'abcd'这样的形式,也可以三个字符包含一个空格,如'abc'这样的形式。

2.2 RIFF文件块

RIFF文件块的数据结构如下:

'RIFF' FileSize FileType FileData

'RIFF' 是一个FOURCC,用于标识该文件是一个RIFF格式的文件。FileSize 是一个4字节的数据,给出文件的大小,但仅包括FileType和FileData两部分。FileType是一个FOURCC,用来说明文件类型,如"WAV","AVI"等。FileData部分表示文件的具体内容,可以是LIST也可以是CHUNK.

2.3 LIST

一个LIST数据块的数据结构如下:

'LIST' ListSize ListType ListData

'LIST' 是一个FOURCC,而且是固定的,每个LIST都是以'LIST'为开头。

ListSize 占用4个字节,表示ListType和ListData两部分加在一起的大小。

ListType 是一个FOURCC,是对LIST具体包含的数据内容的标识。

ListData 是该LIST的数据内容区,由CHUNK和子LIST组成,它们的个数和组成次序可以是不确定的。

3. 举例

4. 总结

RIFF文件的FileData部分由若干个'LIST'和chunk组成,而'LIST'的ListData又可以由若干个'LIST'和chunk组成,即'LIST'是可以嵌套的。

'RIFF',FileType,'LIST',ListType,ChunkID都是FOURCC,即使用4字节的ASIIC字符标识类型。

FileSize,ListSize,ChunkSize为little-endian32-bit正整数,表示Type(只有'RIFF','LIST'chunk有Type)+Data一起的大小,注意它是little-endian表示,如:0x00123456,存储地址由低到高,在little-endian系统中的存储表示为0x56341200(字节由低位到高位存储),而在big-endian为0x00123456(字节由高位到低位存储)。32bit整数0x00123456 存储地址低--------->;高little-endian(字节由低位到高位存储)56341200big-endian(字节由高位到低位存储)00123456

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/4 4:23:42