ZYH Studio.NET ACG专区
{dy}关同学们都学会了吗?没学会不要着急看这个哈,本章节是制作NSF最关键的阶段——调音。在上一章节调音部分我没有仔细讲,那么这一章节就好好来传授下FC的音色调整方法。
这一章比较长,希望同学们看完别晕了……
PART I 音量和音色
虽然说矩形波有它自己的魅力所在,但如果不进行任何处理FC就会发出极其刺耳的12.5%占空比的纯·矩形波,听那个是折磨耳朵。那么,商业FC游戏音乐为啥听起来像个样呢?
大家都知道FC的内藏音源(扩展音源的音色内容比较多,留到下一块专门讲好了)都是简单的波形发生器,由于各种乐器存在各不相同的泛音成分,所以不可能是简单波形或者相同的波形,这样在波形上是没办法模拟出各种乐器的音色了(其实也不是完败,等下一块我们召唤FDS,N106和VRC7芯片就有能力逆袭了)。
但是我们还没GAME OVER,为了使可怜的几种波形听起来尽可能接近某乐器(好象差蛮多的...)还有个办法就是在音量上模仿此乐器的ADSR,玩过合成器和一些比较完善的软音源的同学应该很熟悉才对,ADSR即Attack(起音)、Decay(衰减)、Sustain(持续)、Release(释音)。
参数描述
一个波封可以用4种参数来描述,分别是Attack(起音)、Decay(衰减)、Sustain(延持)、与Release(释音),这四者也就是一般称的“ADSR”。一般音源机或合成器,会提供Attack与Release的调整参数;而较专业的合成器,这4种参数则都会提供。
Attack (起音)参数
又分成Attack Time(起音时间)与Attack Level(起音音量)。若Attack Time的值越大,表示该音色从一弹奏(压下琴键)到音量{zd0}之间的时间会较长,声音听起来就好像慢慢起来的感觉;若Attack Time值越小,表示从弹奏(压下琴键)到音量{zd0}之间的时间会较短,声音听起来就比较铿锵。而Attack Level(起音音量)的调整参数。这是用来决定弹奏该音色所冲到的{zg}音量是多大。
Decay(衰减)参数
则有Decay Time(衰减时间)与Decay Level(衰减音量)。许多传统乐器的音色特性,是当一弹奏之初声音冲到{zd0}音量后,会立刻再往下掉一些,也就是衰减,直到音量稳定为止。Decay Time就是用来决定这个衰减会有多快。
Sustain (延持)参数
即Sustain Time(延持时间)。若您在电子键盘乐器上持续压住一个琴键,则声音在经过Attack与Decay之后,会进入一个音量较为稳定的状态,这个时候就称为Sustain。Sustain Time就是用来调整当您一直按住琴键的状况下,声音可以持续多久。像鼓的音色,即使您按住琴键,它的声音也只会出现一下子,因此它的Sustain Time比较短;像钢琴,当您按住琴键不放,它的声音就会缓慢变弱,因此钢琴音色的Sustain Time较长;而对于弦乐器音色而言,只要您一直按住琴键,声音就会一直维持固定音量而不会消失,因此它的Sustain Time是无限大。
Release(释音)参数
只有Release Time(释音时间)。它是指当您停止弹奏(放开琴键)后,声音还能维持多久。若Release Time较长,则即使您放开琴键了,还是可以听到声音慢慢变弱。
原理有了,现在需要想象力把这个过程转换为数字并用MML语言实现
嗨还朋友们大家好~还记得这个窗口吗?对了,我就是为FC配音的演员,音量包络编辑器!
在MCKTool中,按F2打开音量包络编辑器。
看到下面的那个文本框了吗,蓝色的那部分为这个音量包络的【编号】,用于演奏时调用。
记得自己改编号,千万别忘了!
右边的黑色部分是音量包络的描述。FC总共有16级别的音量,对应着数字0-15。
每个数字对应的是时间轴上每个时间点的当前音量,每个数值持续时间为16毫秒。竖线后的值会一直循环。
例:
编号0 右边填写 10 9 8 7 6 5 4 3 2 1
应用此包络的音符的音量将在160ms内 线性地从10降到1,{zh1}一个值成为音符剩下时值的音量,即这里的1。
编号1 右边填写 4 | 6 10 6 2
简单的tremolo效果。4 | 6 10 6 2 相当于
4
6 10 6 2
6 10 6 2
6 10 6 2
无限循环……
点击【绘制图形】按钮可以看下音量包络柱状图示意。
勾选下面的复选框可以让这些通道调用刚才写好的音量包络。
觉得没啥了,点击【插入】按钮,可以发现程序为我们生成了两条指令
@v<数字> = { <音量包络内容> }
<通道名(如A)> @v<编号> @<占空比> v<音量>
例如:
@v0 = {15 13 12 10 9 9 7 7 5 5 3} ;编号为0的音量包络,音量是一个持续衰减但不静音的过程
A @v0 v12 @1 ;通道A(矩形波1)应用编号0的包络,此后音量固定在12,占空比为25%
那啥,刚才又提到占空比这东西了,那么这到底是啥呢?
再次引用下百科
“在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。”
很抽象吧,那么请同学们理解为 FC输出的音色类型——是“嘀嘀”还是“当当”一类的……(好囧的描述)
矩形波按照中英文的习惯应该叫脉冲波(Pulse Wave),毕竟这FC还是人家泥轰国的玩意,我们就跟着他们叫矩形波吧。占空比(duty cycle)可以有12.5% 、25%、50%(方波)、75%(与25%反相)四种选择。
所以这里也纠正下很多FC硬件资料里的说法,FC内藏音源
不仅仅是方波
(Square Wave),而是包含了方波,实际上,作为旋律来使用得最多的还是更为明亮的
25%的矩形波
。这也是GM音色里的81号音色“Lead 1 (square)”找不到FC的感觉的原因。
◎音色亮度12.5% > 25% = 75% > 50%
(喂喂,太亮了容易刺耳啊,这点要注意)
OTZ...写的有点乱,咱是在谈音量包络对吧,那么说一点进阶的东西。
以下部分学会了,模拟乐器啥的肯定没问题!
我们其实可以通过手写的方式模拟乐器的ADSR。
软件没有提供这个指令的图形方案,那么我们可以在MML中加入这一条语句
@vr<数字>
<数字>(0 - 127) 之前定义的音量包络编号。
能起到类似“触后”的作用,即在一个音符播放的中途重新应用新的音量包络。
需要配合q<数字>来使用
,被q<数字>截取后剩下的时值不会静音而是使用@vr<数字>对应的@v<数字>。
活用这条指令,会发现它有很大的用处。如果只使用@v,在音量包络的Sustain(持续)部分需要用很多相同的数字填满,占空间不说,不同时值的音符还需要做单独的包络。
但是我们可以这样:
用@v做A、D、S,@vr做Release,通过改变q<数字>来做sustain的细微调整,就避免了上述的麻烦。
例:
@v0 = { 6 10 9 9 8} ;定义"起音"和"衰减",{zh1}一个值就是"持续"的音量
@v1 = { 7 7 7 7 6 6 6 6 5 5 5 5 4
4 4 4 4 3 3 3 3 3 2 2 2 2
2 2 1 1 1 1 1 1 1 1 1 1 0 } ;定义"释放"
@v2 = { 4 4 4 4 4 3 3 3 3 3 3 3 3
2 2 2 2 2 2 2 2 2 2 2 1 1
1 1 1 1 1 1 1 1 1 1 1 1 0 } ;来尝试下回音效果 > _
AB t130
A @v0@vr1 q5
B v4 @vr2 r32. q2 ;音符与A通道相同,音量略低,稍微滞后一定时间,
AB @2 l8 o5 ;@v0与@vr1的组合。@2表示50%的矩形波
AB d4a4 ef16e16dc q1 d1
@v<数字>适用场合与v<数字>相同,可以出现在乐谱的任意位置,当前包络以此通道{zh1}一次调用的编号为准。
除了这些,音量包络同样还可以用来模拟混响,延迟等。学长我能说的也就这么多了,chiptune靠的就是想象力,更奇妙的效果就请同学们自由发挥。
PART II 音高指令
这一部分需要一点音乐知识的理解,如果看不懂也可以暂时跳过,如果你对你作品质量要求不高,只想听个响的话……
弯音(Pitch Bend):
点击【插入-弯音】 在对话框中输入对应编号和弯音指令数字即可,程序会生成如下指令。
@EP<数字> = { ~ | ~ }
<数字>(0-127)包络编号。使用EP<数字>调用,使用“EPOF”关闭。
弯音包络定义,一般放在header之后。花括号内数字可用范围: -127至126,负值为向下滑,正值是向上滑,每个数值持续时间为16毫秒。适用场合同音量包络。
除DPCM通道外均可用。
需要注意的是,括号内的数字表示的是音高向上或向下滑的速度,而不是直接改变音高。比如:
{ 3 }表示从本来音高的以"3"的速度向上滑。
{ 3 0 }表示从本来音高的以"3"的速度向上滑16毫秒后停止。
资料里没写这个速度的单位,根据既存防御学长快废掉的耳朵测试(错了别赖他啊)
大概是 每16毫秒 1/12 ~ 1/11个半音,即是说{11.X 0 }会使一个音符在16ms内升高一个半音后停止滑音。
当然小数是不行的,1个半音时取12,2个半音时取23,3个半音时取34,4个半音时取44,其它的自己试验去...
另外,如果要调整速度,可以把希望改变的数值拆开。
如{ 12 0 } 、{ 3 9 0 } 、{ 6 6 0 }、{ 2 4 6 0 }都使音符升高大约一个半音,数字越多滑音越慢。
例:
@EP0 = {12 22 0}
@EP1 = {|3 2 1 0 -1 -2 -3 -2 -1 0 1 2 }
A @2 v9 o5
A EP0 c2 EPOF d+2 ;C5在32ms内升高3个半音,即滑向D#5,对比下后面的D#5吧
A EP1 c1 ;也可以大致模仿正弦形,写个不是很标准的颤音效果。
颤音(Vibrato):
点击【插入-颤音】 在对话框中输入对应编号和指令数字即可,程序会生成如下指令。
@MP<数字> = { <参数1> <参数2> <参数3> }
<数字> (0 - 63) 给此颤音类型编号。使用MP<数字>调用,使用“MPOF”关闭。
<参数1> (0 - 255) 延迟多少时间后开始颤音
<参数2> (1 - 255) 颤音速度,数字越大越慢
<参数3> (0 - 255) 颤音深度,数字越大深度越大
颤音定义,一般放在header之后。适用场合同弯音包络。除DPCM和N106通道外均可用。
例:
@MP0 = { 8 2 6 } ;模仿小提琴的颤音演奏.
A @2 v9 o5
A MP0 c1
琶音(Arpeggio):
点击【插入-琶音】 在对话框中输入对应编号和指令数字即可,程序会生成如下指令。
@EN<数字> = { ~ | ~ }
解释:
<数字>(0-127)编号。使用EN<数字>调用,使用“ENOF”关闭。
琶音包络定义,一般放在header之后。花括号内数字表示每单位时间(16ms)改变的音程,以半音为单位。
同弯音包络一样,如果不在后面加0,每单位时间都会按照{zh1}一个数字来改变一次音高。所以某些需要在音阶上的滑音,比如钢琴的滑奏,用它就对了。
在很多欧美同学的作品里,很多时候也用高速循环的琶音来模拟和弦效果,反正我听着跟电话铃声似的,xx体会不到和弦的音响效果,同学们自己看着办吧。
例:
@EN0 = { 0 0 | 4 0 3 0 -7 0 } ;模仿大三和弦的效果
A @2 v9 o5 q7
A EN0 c1 ;播放C5,32ms后上升4个半音到E5,再32ms后上升3个半音到G5,又32ms
STAGE 2 CLEAR!
数字>数字>
|
| |
郑重声明:资讯 【ZYH Studio.NET ACG专区】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【
在线投诉
】,我们审核后将会尽快处理。
——
相关资讯
——
福州网站建设 长乐网页制作 罗源网页开发(优质商家)_福州做微网站 闽清建微信网站 闽侯微信网页建设(欢迎进入
2019/5/11
醴陵钢带管
2018/2/14
风冷工业冷水机组
2018/2/14
衡阳钢制伸缩器
2018/8/18
尼龙轮和3M尼龙砂带精度哪个高?
2017/2/10
{jz}泛站群教程 Q5738538 陈默外推
2017/1/15
水厂的xxxx设备
2010/1/9
猪是如何成为房奴的_k0u_百度空间
2010/1/21
上海美标马桶.节能配件维修.静安区美标马桶维修51875596 - 雷辉的日志 ...
2010/4/21
痛心: 中国航空发动机总投入不及援朝零头! - 八一老黑的日志- 网易博客
2010/6/20
{zh0}的自来水净水器
2013/2/20
每天吃黑枸杞能xx吗
2015/3/17
改性沥青防水卷材厂家_哪里有高质量三元乙丙防水卷材
1900/1/1