先介绍一下十六进制数字。今天的计算机中的内存位置与软件,使用了十六进制(hexadecimal:hex)的数字系统,包含了十六种不同的符号,数字0-9,字母A、B、C、D、E、F(或a-f),其中字母表示数字10-15.更多的关于十六进制的细节,你可以访问维基百科条目:
http://en.wikipedia.org/wiki/Hexadecimal
十六进制数字的例子,以及其十进制(dec:decimal)等值:
00 = 0;
01 = 1;
…
09 = 9;
0A = 10;
0B = 11;
0C = 12;
0D = 13;
0E = 14;
0F = 15;
10 = 16;
11 = 17;
…
FF = 255
模板
模板是同时演奏音轨(表示SunVox工程(乐谱)上的一些段落)上的一种编组。它被分为水平线(horizontal lines)。演奏(播放)方向从上至下。
SunVox中的任何模板,如下所示:
事件 - 一些音乐事件(诸如迷笛命令类的玩意)。
事件范例:
诚如你看到的额那样,一个事件,包含了几个文本/数字栏(域,fields)。所有模板上的数字,都是以十六进制表示的格式。
事件格式:NN VV MM CCEE XXYY
让我们研究一下事件中每个栏(域)的细节描述。
·NN - 一些特别的命令编码或是音符:
1)SP - 设置音高(Set Pitch)XXYY(快捷键K),在这里,0000 - 最高可能音高,7800 - 最低音高(音符C0);一个半音 = 100(256,十六进制)。
公式:
从音高XXYY到频率:
分别为:{
从频率到音高XXYY:
2)<< - 之前音轨(快捷键SHIFT + K),用来给前一轨适用效果,不够接下来的第二个效果并不被允许:2x,40..5F,1D;
3)== - 音符关(快捷键CAPSLOCK或~);
4)C0 - C-0(最低八度中的第一个音符);
5)c0 - C#0;
6)D0 - D-0;
7)d0 - D#0;
8)E0 - E-0;
9)F0 - F-0;
10)f0 - F#0;
11)G0 - G-0;
12)g0 - G#0;
13)A0 - A-0;
14)a0 - A#0;
15)B0 - B-0;
16)C1 - C-1(第一个八度范围内的第一个音符);
17)……
18)B9 - B-9(最高八度范围内的最后一个音符)。
·VV - 力度(00..80);
·MM - 模块号(module number:00,01,02,03.04,05,06,07,08,09,……,FF);
·CC - 控制号(controller number:01,02,03,……,7F)或是迷笛控制器号(80,81,82,……,FF);
·EE - 将给在当前音轨上激活的最后一个音符适用的效果;一些效果(以粗体标记)当XXYY = 0 时可以用在最后一个非零的参数上。
1)01(粗体) - 向上滑动(滑音上portamento up;滑动速度 = XXYY);
2)02(粗体) - 向下滑动(滑音下;滑动速度 = XXYY);
3)03(粗体) - 滑动到音符(滑动速度 = XXYY);
4)04(粗体) - 振音(vibrato,XX - 频率;YY - 振幅);
5)07 - 设置相位(或是采样偏移sample offset)XXYY以百分比(从0000(0%)到8000(100%));
6)08 - 琶音(XX - 第二个音符增加,YY - 第三个音符增加);
7)09 - 设置相位(或是采样偏移)XXYY以采样*256(十进制)
8)0A(粗体) - 上下滑动力度(XX - 向上速度;YY - 向下速度);
9)0F - 设置播放速度(XXYY:0001..001F - 每个线的滴答数;0020..00FF - BPM)或是时间区格(time grids,XXYY:F0001..F020以及F100..F120);
10)11(粗体) - 向上微滑(fineslide up);
11)12(粗体) - 向下微滑(finesolide down);
12)13 - 设置旁通/独奏/静音(BSM(Bypass/Solo/Mute) - XYY)标志,静音的例子:13 0001;独奏的例子:13 0010;
13)14 - 重设旁通/独奏/静音(BSM = XYY)标志;旁通重设的例子:14 0100;
14)19 - 在当前线下载XXYY滴答之后重触发音符;
15)1C - 在当前线中XXYY滴答之后剪切音符;
16)1D - 在当前线中延迟音符起点直到滴答XXYY;
17)1F - 设置BPM(每分钟拍数,Beats percent Minute);
18)20 - 音符可能性(probability);
19)21 - 带随机力度的音符可能性;
20)22 - 给从0000到XXYY之间随机数设置控制器值;
21)23 - 给从XX(00..FF)到YY(00..FF)之间的范围的随机数设置控制器值;
22)24 - 从相同轨的线XXYY处拿取一个音符;
23)25 - 从相同轨的线XX..YY(包含XX/YY,inclusive)范围中拿取一个随机音符;
24)26 - 从相同线的音轨XXYY处拿取一个音符;
25)27 - 从相同线的音轨XX..YY(包含XX/YY)范围中拿取一个随机音符;
26)28 - 从音轨0的线XXYY处拿取一个音符;
27)29 - 从音轨0的线XX..YY(包含XX/YY)的范围拿取一个随机音符;
28)30 - 停止播放歌曲;
29)40...5F - 给线(从40(0%)到5F(96.875%))的选定部分延迟一个事件;
·XXYY - 选定效果/控制器(0000 - 最低;8000 - 最大)的参数。
力度可以动态变化,例如:
在本例中,力度从10到60变化。
改变滤波器的截止频率(总体控制器),从最小到最大值:
“截止频率”控制器在滤波器中有一个数字2。
有些模块有本地控制器(local controllers)。本地控制可以针对特定轨上的特定音符(声音)而改变,与同一个模块的其他声音独立开来。
例子,改变模块1中的控制器2。