CN1619642A - 合成器中的多维矢量合成技术 - Google Patents
合成器中的多维矢量合成技术 Download PDFInfo
- Publication number
- CN1619642A CN1619642A CN 200410091405 CN200410091405A CN1619642A CN 1619642 A CN1619642 A CN 1619642A CN 200410091405 CN200410091405 CN 200410091405 CN 200410091405 A CN200410091405 A CN 200410091405A CN 1619642 A CN1619642 A CN 1619642A
- Authority
- CN
- China
- Prior art keywords
- sound
- dynamics
- sampling
- dimension
- frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
多维矢量合成是应用在合成器、电子/电脑音乐领域中的,以电子方式模拟真实乐器发声的一种合成方法。多维矢量合成认为乐器的声音在现实中会受到多方面因素的影响,包括乐器本身特征(特殊的演奏技巧,乐器的状态等),声音本身特征(演奏的力度、频率和相位等等)和外部环境特征(混响时间、距离等)。目前流行的声音合成方法,并没有将这些因素考虑进去。而多维矢量合成,力图尽可能的全面表达各个方面的声音信息,并且能够通过确定的数学公式或者算法将这些信息联系起来。当一方面信息出现变化的时候,相关联的信息也发生相应的变化。这些和声音相关的信息在多维矢量合成中称之为维,并且这些维通过数学模型联系起来后和原始声音采样绑定,最后通过计算机处理数据输出结果。这就是整个多维矢量合成的大致体系。
Description
技术领域
多维矢量合成是应用在合成器、电子/电脑音乐领域中的,以电子方式模拟真实乐器发声的一种合成方法。能够实施该技术方案的人员应该具有合成器、电脑音乐的相关知识,并且了解编程的基础知识。
技术背景
从目前的情况来看,普遍被采用的主要有3种合成技术,即FM合成,采样合成以及物理建模合成。下面我们需要回顾一下这三种技术的优缺点,从而得出一些有益的结论。
FM合成:根据傅立叶定理,一个任意形状的波形,都可以被分解成为N个正弦波的叠加。而FM合成的原理,就是应用特定的算法,来计算出需要几个波形来合成这个声音,并产生这些波形,从而达到真实的效果。FM合成的算法在于质量取决于运算器的多少,而且FM比较死,只能够合成特定乐器的声音,种类较少。
采样合成:这是目前普遍应用的合成方式,也就是以单个的声音作为采样信号,录制后以数字的形式保存,然后通过升降调、音量和ADSR包络等处理合成声音,使得可以在不同的音高上,直接以键盘演奏。以前曾经普遍采用的波表合成,从严格意义上说也应该归为采样合成。采样合成的缺点在于声音比较死板,也就是从听感上不太活,很多音听起来非常类似。
物理建模合成:就是通过建立一个真实乐器的声学模型来模拟真实乐器发声。由于采用的大量的数学和物理模型,因此不需要采样,但是需要极为强大的运算能力。物理建模合成的缺陷在于模型没有个性,不能表现出乐器的个性来,其次物理建模合成需要强大的运算能力提供保证。
综合以上的合成方式,各种优点就不必在指出了。而他们共同的缺点在于“死”,也死包括了采样合成的声音死板,缺乏变化,也包括了表面上看起来很活的物理建模合成的“死”——模型的死。要发展一种新的效果更好的合成方式,就一定要从解决“死”的方面入手。
发明内容
前期数据的采集:采样的录制
传统的采样合成在制作采样的同时,缺少前期数据采集、后期建模的步骤。而多维矢量合成在前期就同时采集了乐器的本身信息(新旧,状态,特殊作用等)以及外部环境信息(房间的大小,混响条件等)。这些信息将为后期确定维度之间的关系以及建立维度模型提供充分的数据支持,而传统的采样合成由于缺乏相关的前期数据,无法在后期建立起有效的数学模型。在这个环节中,采集足够的相关信息能够为后期建模、处理提供大量并且真实的数据。
如图1:
比如传统的采样合成在录制的时候流行的做法就是每个健都进行单独的采样,并且每个健还要进行不同力度下的采样。但是这种方法带来的缺陷也是很明显的——即便是记忆最精湛的乐器演奏家也不能精确确定每个音的力度是一样的,同理其他信息也不可能达到计算机般的精确度。而如果在录制采样的时候同时采集力度、环境等相关声学信息,则可以为后期提供重要的参考,就可以知道什么地方的力度不同,我们知道这些,就可以在建立模型的考虑相应的应对措施,而不是不顾一切运用在力度相同的假设分析下建立的模型。
我们下面拿钢琴的采样作为例子来说明具体如何操作。众所周知,钢琴的声音受到击键力度、踏板状态和钢琴背板的角度等影响。根据相关的研究,钢琴背板和琴弦的夹角对于钢琴音色的高频有着不同的影响,因此我们需要记录下钢琴背板的角度。如果缺失这个相关数据,那么在后期的时候我们将缺乏一个初始数据——因为我们无法知道该音色是在钢琴背板什么夹角下采集的,从而导致合成出的声音与真实情况有差异。此外还有踏板音,如果不提前注明踏板的状态,声音也是不对的。录音的环境对于钢琴声音的影响也很重要,譬如不同体积的录音室的混响时间并不相同,如果我们能够纪录下这些情况,则我们能够在后期为相应的算法提供初始数据。根据钢琴的特点,力度也对钢琴的声音有着很大的影响。因此我们需要记录采集了几种不同的力度,各个键的力度分配是否比较均匀等。如果出现在采集个别键的时候力度没有控制好,最好记录下力度是过大还是过小了。除了以外还要确定力度分层,也就是每种力度的范围以及采样的力度值。确定力度值的标准在于这个值能够使得该力度所在范围和相邻范围的交界处的波动并不大。比如一个力度值为65的采样代表了0~79这个力度范围,那么当力度达到79时,其音量不能明显强过或者弱于力度为80的采样,否则将会造成听感上的断层存在。综合来看,我们在采样钢琴的时候,录制采样的时候至少应该记录以下的数据:
力度 | 力度分几层?个别的击键力度不均匀情况一定要记录 |
踏板状态 | 踩下去没有? |
钢琴背板的角度 | 角度是多少? |
录音室的大小 | 房间的混响时间?IR(反射率)值是多少? |
逻辑结构:维度和维度桥
与原始声音相关的信息,就是通常如人们所说的音色、音量、音调、声音的相位和以混响等在这里统称为声音的维度。正如我们所说的3维、4维空间一样,这代表了声音应该同时传达出这几方面的信息,如图2:
如图2就是一个典型的多维矢量合成应用在钢琴上的例子,包括了力度、音色、音高、相位等信息元素,并且这些信息一起构成了8个维。
由于一个声音同时具有多个维度,所以我们需要一种快捷的联系方式——能够在维度和外界之间传递信息,并且每个维度到达外界的“距离”是相等的。这样的结果显示了维度之间平行的关系,能够在各种情况下快速、准确地传递信息。因此,我们可以认为比较理想的方案就是通过维度桥——在逻辑上是一种类似星型分布的结构。如图3:
在图3中,维度桥联系着六个维度(A、B、C、D、E和F),维度只有通过维度桥才可以和外界联系,同理外界只有通过维度桥才能够和各个维度联系。
以维度桥作为与外界联系的通道,可以保证任何维度的信息只通过维度桥就可以送到外界,这样的路径是最短的。同时所有维度在初始状态下都是“平等”的——和外界的通讯距离都是相同的。
如图4所示,在这个例子中,有A、B、C和D四个维。外界输入的信息首先到达维度桥,经过维度桥分配后传送到各个维。数据通过各个维反馈后传回到维度桥,此后维度桥将这些反馈信息传送到外界。
维度之间的关系、数学模型
维度之间的关系是多维矢量合成的重要特性以及相比传统合成方式的优胜之处。具体表现就是当一个维度发生变化时,其他维度也可能会随之发生变化。当然,具体如何变化需要依据乐器的声学特性来变。比如钢琴的音色对于力度的变化就相当敏感,而一些打击乐器就不是这样。我们的目的是通过分析前期采样录制的阶段采集的数据,建立特定的数学模型,并且这个模型可以使用一个确定的数学公式或者算法来表达,从而通过软硬件的途径来实现。
分析前期录制的采样,主要的工具是波形图和频谱仪。目前许多专业音频软件,譬如Cooledit、Cubase SX、Nuendo和Samplitude等都提供了这方面的功能,基本上可以做到得出精确结果的程度。从波形图中,我们可以得到振幅随着时间变化的信息。振幅很大程度上决定了声音能量的大小,主要表现为音量或者响度的变化上。因此当我们需要分析音量或者响度的大小,就需要察看波形振幅。这时候就可以直接使用软件来查看该波形文件的波形图,从而得到声音振幅变化的信息,如图5:
声音的频率关系到声音的音色表现,对听觉的影响非常大。分析声音频率的工具就是频谱仪了,目前专业的音频处理软件譬如Cooledit、Cubase SX、Nuendo和Samplitude等都提供了详细并且专业的频谱仪。这些频谱仪拥有不同的参数,并且参数和分析精度都可以有丰富的选择。我们研究声音频率的变化,频谱仪就是最好的选择,如图6:
我们建立相关数学模型的分析工具,主要就是波形图和频谱仪这两种了。
下面我们举例说明具体分析数据、然后建模的方法
一、ADSR和音高的关系
下面的例子是关于ADSR音量包络(简称ADSR)和音高关系的模型建立过程,我们需要做的,是分析随着音高的变化,ADSR音量包络会呈现什么样的变化。ADSR代表了声音的振幅或者频率随时间变化的过程,如图7:
一般情况下,ADSR多被用来反映音量的变化,即振幅。在某些古老的模拟合成器,我们也能够看到ADSR用来表示频率的变化,在下面的几个例子中,我们所说的ADSR,指的是ADSR音量包络,也就是ADSR对声音的振幅起到作用。而对于ADSR频率包络,在这里我们不做考虑。
ADSR音量包络的作用在于影响声音的振幅和频率,因此ADSR改变的是声音本身的特征,而音高的决定因素是频率,频率也是声音本身特征之一。因此研究ADSR和音高的关系,实质上研究的是声音本身特征的2个维度之间的关系。对于音高的变化,我们可以知道钢琴一般有88个键,因此就有88个音高,同时这些音高是固定的。我们分析各个音高采样的ADSR,就能够得到各种音高下ADSR的情况。
A:attack,指的是声音从开始发音到达到最大振幅的阶段,在波形图中就是从开始到达波形最高点的阶段。如果在某些时候没有最高点,则需要以第一次出现最大振幅的时间为准(虽然这种情况非常少见)。找到对应的振幅最高点,记录下其对应的横轴时间。这个时间就是起始时间(attack time)。
Attack time=相应点的横坐标时间
D:Decay,指的是声音从最大振幅衰减到稳定状态的阶段,最大振幅的时间已经在attack阶段显示出来了,我们需要的则是稳定状态的阶段时间。在这里,稳定状态的衡量是个问题。在很多时候,采样中的稳定状态只是相对而言,也就是和其他区域相比振幅变化比较小。因此,我们这里需要使用一个统一的标准,这里我们规定从最大振幅到振幅达到3000(samplevalue值)阶段为衰减阶段,记录下达到3000的横轴时间。减去刚才记录下的attack time,我们就可以得到Decay time。
Decay time=相应点的横坐标时间减去Attack time
S:Sustain,指的是声音在稳定状态下的阶段,这里我们规定从振幅3000达到振幅2000(samplevalue值)的阶段就是Sustain time了。读出达到2000的横轴时间,减去attack time和Decaytime,就得到Sustain time。
Sustain time=相应点的横坐标时间-(减去)Attack time-Decay time
R:Release,指的是声音从稳定状态衰减后消失的阶段,也就是从振幅达到2000到采样的电平接近0的阶段。读出采样振幅达到0的横轴时间(不少时候就是采样波形结束的地方,这时候就是采样的总时间),减去刚才纪录下的Attack time、Decay time和Sustain time,就是Release time了。
Release time=相应点的横坐标时间-Attack time-Decay time-Sustain time
采用统一的ADSR记录标准(也就是如何界定A,D,S和R这4个阶段的范围)能够带来2点好处。其一由于标准是一样的,因此得出的相互关系具有客观真实性。而如果标准不同,则得出的结果不具备可比性。其次统一的标准能够使得统计数据的过程更加快速。
将数据汇总,在Excel中列出。横轴坐标为音高,纵轴坐标为时间。这样我们就可以得到A,D,S和R分别对应音高的4条曲线了。如图8(a)和(b)列出了2种曲线:
我们可以使用Excel分析曲线,得出ADSR和音高的函数关系。在这里我们可以使用在Excel中使用添加趋势线的方法来得出该曲线的近似曲线,从而总结出算法函数。需要注意的是,举例中的趋势线都是整体趋势线,这样就造成了精确度不够。如果需要更高的精确度,就要使用分段趋势线,将分析数据划分为几个区间,每个区间中有相应的趋势线,这样可以使得精确度获得较大的提高。而下面的例子中为了简单起见,并没有使用分段的趋势线。
二、ADSR和力度的关系
对于乐器的音量,很大程度上是由演奏的力度决定的。一般情况下,都采用3种不同力度进行采样——强、中、弱。就拿小提琴做例子,其发声的音量大小是靠琴弓对琴弦的压力决定的。力度越大,则声音中的泛音成分越丰富。因此,对于小提琴来说多重力度采样是非常重要的。力度的表现在于声音振幅的变化,所以研究ADSR和力度的关系实质上是研究声音本身特征之一——振幅的2个维度之间的关系。我们这里的比较对象也就是同一个音在不同力度下的表现。分析ADSR的方法同上,仍然将数据统计后输入Excel。如图9:
但是这里面有一个问题——那就是也许在采样录制的时候,力度的分配并不是固定的,也就是演奏者演奏的力度并不固定——演奏者永远无法像电脑那样精确。这样,单个的结果就无法代表普遍情况。如果需要总结出一种普遍算法,则必须追加更多的采样来分析,并且要参考录制采样时记录下来的前期信息。如果你想要保持这件乐器的声音个性,则你需要将所有音的采样都进行分析,从而得出乐器在某个音上真实的ADSR特性。因此,你在这里可以根据具体情况判断并作出决定:
1.如果你不打算所有音的不同力度都进行采样,则你可以通过参考录制采样时记录下来的前期信息(影响到力度的相关信息)、然后分析某些音的不同力度采样来得出该乐器ADSR和音量大小的普遍性规律。这样的结果使得你能够在有限容量的采样下达到最佳效果。
2.如果你拥有该乐器所有音的不同力度下的采样,并且采样的容量不是问题。则你可以通过分析每个音的不同力度采样,按照真实情况设定ADSR和音量的关系,做到保持该乐器的原始个性。这样你就能在不顾及采样容量的条件下达到最接近真实的效果。
三、乐器本身状态:钢琴踏板对于ADSR的影响
作为乐器本身,其本身特征——某些特殊功能和状态对于声音的影响也是不容忽视的。踏板是钢琴本身具有的特殊功能之一,在演奏中可以看作是一种演奏技法。下面的例子是关于钢琴踏板对ADSR影响,实质上研究的是乐器本身特征的一个维度和声音本身特征的一个维度相互间的关系。我们需要做的,就是通过数据分析,找出普遍性规律或者乐器自身的个性规律。并且将这个规律运用数学模型描述,通过算法实现真实情况。
我们取出同一音高、同样力度的2个采样,分别是没有踩踏板和踩下踏板的两种情况,利用上述ADSR的方法进行分析,得出结果并且使用Excel列出表格,如图10:
需要注意的是,不同力度的采样也需要分析。因为不同力度下踏板对于ADSR音色包络的影响未必相同。因此也要将不同力度下的情况在excel中列出,如图11:
图11中显示了踏板在6种力度下对于Release time的影响,可以看到不同力度下的增益程度并非平均变化的。然后我们可以通过添加趋势线的方法来得出数学公式。
四、乐器本身状态:盖子对于频率响应的影响
钢琴的琴盖代表的是钢琴本身的一种状态,属于钢琴的乐器本身特征。研究钢琴琴盖对声音频率的影响,实质上是研究乐器本身状态的一个维度和声音本身状态的一个维度之间的关系。
在这里我们使用三角钢琴的琴盖作为例子来研究琴盖对于音色的影响。琴盖对音色的影响表现在频率上。根据乐器声学的研究成果,当琴盖闭合时。高频成分有明显的衰减,钢琴的声音冷淡,没有光彩,缺乏亮度;而打开琴盖,琴弦上方的高频成分会有明显的增加;如果琴盖半开启,则人们就会听到一部分来自琴盖的反射声,所以,钢琴的声学特性是较为复杂的。
因此,研究钢琴琴盖和音色的关系,我们需要研究当其他条件固定的时候,琴盖不同状态的采样在频率上的区别。固定条件主要包括同一个音、同样的力度、踏板和其他乐器状态相同的条件下采集的样本,也就是说这些采样仅仅是琴盖的状态不同。
我们在这里只考虑最简单的情况——琴盖只有关闭和打开两种状态。将它们的采样文件分别用频谱图进行分析,如图12(a)和(b):
这里我们可以得出结论,从4000Hz开始,琴盖关闭的采样有了严重的衰减。而中低频则没有什么明显的变化。根据分析结果,我们需要将EQ(均衡)和琴盖的状态相关联,从而达到拟真的效果。当然,如果你有足够的容量承载所有情况下琴盖不同状态的采样——这至少要耗费2倍以上的空间,你可以直接采用这些采样,但是2倍以上容量的代价确实太过高昂,甚至超过采样软件的能力。
通过分析比较上面的2种不同的频响曲线,我们可以很清楚得到琴盖关闭时候的EQ衰减程度曲线。将鼠标挪到频响曲线上的一点,就显示出该点的横坐标以及纵坐标的读数来。记录下特定频率上(比如1Khz,2Khz等等)的几个点,输入到Excel中可以重建频响曲线。重建曲线后,我们需要的是相对于初始曲线的变化量,将新曲线的函数减去初始曲线的函数,得出的新函数就是我们最后需要的。将这个函数作为算法,利用EQ(均衡)来实现。将当琴盖关闭的时候,我们就可以使用一个高频衰减的EQ处理琴盖开启状态的采样,从而达到模拟出真实的效果。当琴盖开启的时候,我们就直接使用采样。
需要注意的是,在这里如果使用纪录下来的前期信息——比如琴盖的角度,就可以得到更精确的效果。由此也可以看出前期信息对于分析后期采样和建模的重要性。
五、外部环境特征:房间面积带来的混响以及对ADSR、频率的影响
乐器发出的声音,主要通过两种方式到达听众的耳朵,一种是声音直接进入人耳,这些声音被称之为直达声,另一种声音是通过环境反射后到达人耳,这些声音被称之为反射声。根据到达人耳的时间先后,又可以分为早期反射声和后期反射声。而根据声学上的研究,人对于声音的定位,音色感觉等等和直达声和反射声的比例有很大关系,因此不同房间就可以为声音带来不同的混响效果。混响是由房间大小、材料等环境因素决定的,因此研究混响和ADSR、频率的关系,实质上是研究外部环境因素的一个维度(混响)和声音本身特征的两个维度(振幅和频率)之间的关系。混响对于声音的影响也是不容忽视的,任何人都能够很明显地区分不同混响条件下声音的差别。从混响影响到ADSR音色包络和频率。一个比较明显的现象就是在混响较大的地方,声音的尾音比较长,也就是Release time有所增加。在混响时间大的地方,声音感觉丰满,比较温暖。
在混响中,最关键的一项参数被称为混响时间。在一间空房子里,混响时间是与房间体积表面积的比值成比例的。通常定义混响时间为声音减少到60dB所需要的时间(ReverberationTime),缩写为RT60。1922年房间声学研究的先驱Wallace Sabine得出了计算公式:RT60=k*(V/Sa)
k值是一个恒量,当使用米制做单位时k等于0.161,当使用英尺制时k等于0.049。
Sa(sabins的缩写)是房间内各个吸收表面的吸收系数总和,不同的材料有他们不同的吸收频率,这些都是可以通过实验计算的。
V是房间的体积。
需要注意的是,RT60在不同频率的表现并不一样,不同频率的Sa值并不相同,具体结果可以从一些专业音响书籍中查到,从而得到相应的RT60值。针对不同的频率段确定RT60值后,我们就可以根据RT60的关系确定各频段增益情况,RT60较大的频段的增益必然较大,反之亦然。如果能够有条件直接使用RT60,不需要建模过程就可以直接确定相应的算法,但是在很多情况下,并不能快速并且准确地获得RT60值。
除了借助RT60之外,我们仍然可以借助分析建模的方法确定我们的算法。这里我们仍是研究混响和ADSR的关系,仍是将其他条件固定,只研究不同混响条件下的采样的ADSR有什么区别,在这里仍然是如同第一个例子中那样分别整理出ADSR数据,将它们在Excel中列出,画出相应的曲线。其中Attack受到混响条件的影响很小,可以排除;而受到混响条件影响最大的是Release,需要重点分析,如图13:
分析频率变化的步骤也和上面例子基本相似,使用频谱图分析不同采样间频率的差异。每个数据应该拥有一个自己的频响曲线,我们需要的是得出2条频响曲线之间的相对关系来,而这个相对关系,就是曲线1函数减去曲线2函数。得出来的新函数就是它们之间的关系,在已知一条曲线函数的情况下,我们就可以应用这个函数来计算出另一条曲线。
两维变化到多维变化的推广
上述的建模例子,都是研究两个维度之间的关系。而多维矢量合成的一个特性就是当声音从一种状态变化到另外一个状态时(比如音高、力度的变化),允许多个维度发生变化,从而能够比较精确的模拟现实中的情况。那么,如何从两个维度之间的关系推导到多个维度之间的关系就是一个必要的步骤了。根据逻辑关系,如果A发生变化时,B也变化,即A->B。如果A发生变化时,C也变化,即A->C。那么综合起来,则A发生变化时,B和C也变化,即A->B&C。因此当A的状态变化时,B和C的状态也产生变化,这实质上就是一种多个维度变化了。此外还有A->B,B->C,从而得到A->B->C的变化。因此虽然多维度的变化方式有许多种类,但是都可以通过几个两个维度之间的变化组合而得到。在下面的实施过程的小提琴模型中,该模型具有力度、ADSR音量包络和频率3个维度。当力度改变时,ADSR发生相应的变化,同时频率也随力度发生变化。也就是当力度一个维度发生变化的时候,另外2个维度(ADSR和频率)也发生变化,整个过程就是从A->B,A->C,从而得到A->B&C的结果。
技术效果:多维矢量合成的优势
1.无限种类的音色变化
多维矢量合成中,将多个维度参数绑定在原始采样信息上。因此音色的可能性将会很多,维度越多,能够合成音色的数量就越多。数量的增多,使得音色听起来变化多,显得真实、活泼,从而达到良好真实的效果。
2.将“音频处理”引入音色合成
一直以来,合成出来的声音都要录制成音频,然后进行后期处理,这样就会有两道工序。许多专业音乐人,非常希望能够使得合成出来的声音直接使用或者更易进行后期处理。目前的合成器一般采用内置效果器的办法来达到这一点。多维矢量合成中的外部环境特征可以为外界的效果提供单独的维度,使得外界的效果能够和合成声音更加紧密的结合起来。
3.对于缺失相关采样的情况,仍然能够取得逼真的效果。
在传统的采样合成中,尽量会对每个音进行采样。而某些时候由于采样的容量限制,无法做到全部音采样(钢琴有88个键,全部采样需要的容量很大,一般要在500MB以上)或是不能采集到各种力度下的采样,这个时候的操作方法是采用升降调的方法使用最近音的采样进行模拟。但是这样单纯的升降调操作对于再现复杂的声音来说是不够的。而在多维矢量合成体系中,音高可以作为一个单独的维与其他维相关联,因此我们可以通过维度间的关系模型推断出缺失采样的相关维度信息,在多种信息的共同作用下,我们将能够得到一个非常接近真实的效果。
4.能够达到相当接近真实的合成效果
由于相对于传统的采样合成,多维矢量合成的声音是基于准确的数学模型,因此合成的声音更加接近于真实情况下的声音。并且声音变化的过程,也与实际情况非常吻合。而传统的采样合成,声音的合成和变化没有数学模型支撑,可能是无数种的变化结果,距离真实情况就比较远了。
附图说明
图1显示了前期采样录制过程中的步骤和大体结构
图2展示了一个具有8个维度的模型,揭示了该模型的逻辑结构。
图3显示了维度和维度桥之间的逻辑关系,维度桥起到了连接维度到外界的途径,并且维度桥和维度间的通信是双向的。
图4说明了维度桥处理维度信息的步骤,是维度桥具体的工作流程。
图5显示的是一个波形图,其中纵轴坐标为采样值(Sample Value)——可以折算成为dB值,横坐标为时间。波形的能量越大,振幅就越大,而Sample Value的值就越大。
图6显示的是一个波形的频谱图,纵坐标代表了波形的振幅大小,使用的单位为dB。紫色部分越高则说明波形的能量越大,横坐标为频率。该图反映了各个频率下波形能量的大小。将鼠标移动到图上某一点。在图左下方将会显示出横纵坐标的读数。FFT(Fast Fourier Transform)Size能有影响到处理数据的精度和速度。这个值越大,处理数据就越精确,一般推荐在1024到8196之间。
图7是ADSR音量包络的示意图
图8(a)显示了Decay time和音高的数学关系,其中纵轴坐标为时间,横轴为音高(音高采用MIDI中音符的数值表示,0-127),下面有3个不同的趋势线表示公式。
图8(b)显示了Release time和音高之间的数学关系,其中纵轴坐标为时间,横轴为音高(音高采用MIDI中音符的数值表示,0-127),下面有3个不同的趋势线表示公式。
图9中显示了G7音符的3种不同力度下release time的不同,并使用了图表。图表的纵坐标为时间,横坐标中的1代表P(弱),2代表M(中),3代表F(强)3种不同的力度
图10显示了各个音符踏板开启和关闭的Release time的差异
图11显示了6种不同力度下踏板开启相对踏板关闭的增益程度。其中纵坐标代表了增益百分比(增益百分比=踏板开启/踏板关-1),横坐标代表了力度大小(力度值为MIDI中的Velocity值,取值范围0-127),每种力度对应了一个力度值,比如P对应的值为33,F对应的值为110。
图12(a)显示的是踏板没有踩下的频谱情况(MIDI数据中的踏板控制器为关闭状态)
图12(b)显示的是踏板踩下的频谱情况(MIDI数据中的踏板控制器为开启状态)可以看到4000-11000Hz之间有严重的塌陷。
图13显示的是混响时间和release time的关系,横轴坐标代表了混响时间,纵轴坐标代表了Release time,下方是该曲线趋势线的多项式。
图14(a)是软件实现过程的结构流程图
图14(b)是用来前期建模的基础数据
图15为Synthedit的主界面,已经新建了一个文件。
图16是Wave player的属性画面。
图17是伏特和频率的关系示意图
图18中Wave Player负责回放采样文件,Sound Out负责输出,Wave Player上的的两个声道(Left Out和Right Out)输出已经连接到Sound Out上的1号输出口。
图19是MIDI Filter的属性画面,Note Lo代表了允许通过的音符最低值,Note Hi是允许通过的音符最高值。Velocity Lo代表了允许通过的力度最低值,Velocity Hi代表了允许通过的力度最高值。
图20中其他组件已经连接完毕,MIDI In模块负责MIDI数据的输入,Midi to CV是MIDI中央控制器,实际上起到了维度桥的作用。ADSR是音色包络,VCA是音量控制器。
图21是Attack算法模块的内部结构,力度数据经过维度桥(MIDI to CV)发送到算法模块进行相应的运算后将结果反馈给ADSR模块的Attack。Divide代表除法运算,将计算结果和Attack(这里代表了A0)叠加输出给ADSR模块中的Attack代表了最后加法运算。
图22是EQ算法的属性图,Expression后面的是数学表达式,只需要输入表达式该模块就可以很快做出相应的结果来。
图23是最后的大体结构,是多个采样的情况下的示意图,图中已经拥有了C4和D3两个采样模块
图24是多维矢量合成的流程图
具体实施方式
多维矢量合成最终是靠回放采样发出声音的。通过建立模型,得出相应的算法后,我们需要考虑的是如何将模型中维度的变化反映到采样的回放上,从而实现多维矢量合成。在以前,这需要相当的编程知识和技术。随着技术的发展,目前出现了一批模块化的音频软件编程工具,他们提供了一些非常基础的模块——滤波器和振荡器等等。即使你不懂编程,只要了解音频的相关基础知识,就可以制造出合适的合成器。
实现多维矢量合成除了可以单独使之成为软件之外,还可以使用具有ASIO接口的VSTi格式插件,这样做的好处在于可以尽快获得良好的支持和兼容性,对于软件的普及很有好处。ASIO的全称是Audio Stream Input Output,直接翻译过来就是音频流输入输出接口的意思。通常这是专业声卡或高档音频工作站才会具备的性能。采用ASIO技术可以减少系统对音频流信号的延迟,增强声卡硬件的处理能力。同样一块声卡,假设使用MME驱动时的延迟时间为750毫秒,那么当换成ASIO驱动后延迟量就有可能会降低到40毫秒以下。VSTi是VSTInstruments的缩写。众所周知,VST是Steinberg公司开发的一套插件标准,矛头直指微软的DX插件。由于在低延时方面的巨大优势,VST插件标准俨然已成为音频插件的业界标准。源于VST插件技术的VSTi,一般是指一些软件合成器\软件音源类插件,而由于这一类软件在工作方式和功能上已超越了一般的音频\MIDI插件的范畴,因此,通常便称之为VSTi,中文翻译为VST设备。
目前比较常用的模块化合成器制作软件有Synthedit、Reakor等软件,这里我们使用比较简单易用的Synthedit。Synthedit被广泛用来设计各种的VSTi插件
下面我们使用一个简单的例子来说明如何使用Synthedit实现我们的构想。首先我们使用一个小提琴声音的合成器,其具有3个维度——力度、ADSR和均衡。通过记录前期数据,分析数据然后建立模型。该模型拥有以下几点特征:
1.声音采样具有3种不同的力度,力度数值分别为79(弱),95(中)和119(强)。其中力度为0~79的使用力度为79的采样;力度80~105的使用力度为95的采样;力度106~127的使用力度为119的采样。
2.随着力度的增强,ADSR中的Attack time和Sustain time逐渐增强,其他没有明显的变化。为了简化实施过程,我们只选择Attack time和Sustain time作实施说明,而Decay和Release的实施过程与它们原理相同,就简化不再说明了。公式为:A=A0+(1/4000)x,其中A代表Attack time,A0代表初始的Attack time系数(在这里是0.15),x代表力度。S=S0+(1/3600)x,其中S代表Sustain time,S0代表初始的Sustain time系数(这里是0.095),x代表力度。
3.随着力度的增强,频率开始发生变化。从力度达到79以后,随着音量级别的增加,高频(12000Hz以上,建模时取12010Kz的读数)就要增加。公式为:y=(x-79)/40其中x代表了力度(范围从79到127),y代表了高频(12000Hz以上)的增加dB值。
需要说明的是,该模型的结果是根据真实情况按照上述建模步骤分析而来的,但是由于其中的数学公式为复杂的多次函数,在实施过程中算法复杂。为了简化实施过程,我们采用了一次函数来简化复杂的多次函数,譬如分析力度和ADSR关系的时候,我们只采用C4和D3两个音符采样在弱和强两种力度下的取值,这样关系函数就是一次函数了。采用一次函数,虽然影响了准确性,但是基本的变化方向并没有发生错误,并且一次函数和多次函数在实施过程中的差异,仅仅是程序算法方面的差异,属于编程人员所熟知的内容,因此不做具体说明。实施过程的基本流程和基础数据如图14(a)和(b):
打开Synthedit,点击菜单上File->New,就建立好一个空文件,如图15:
这里需要注意的是,我们需要把所有采样文件拷贝到Synthedit安装目录下的Audio目录中,这样可以避免采样存放路径不同造成丢失采样的情况。
在空白地方点击鼠标右键,出现菜单后选择Insert->Input/Output,选择插入一个waveplayer模块,点击右键,出现菜单后选择Properties,就会出现属性菜单,如图16
在这里我们可以载入相应的采样文件,然后确定音高的升降(Pitch Shift),需要注意的是,Pitch Shift的值采用的是伏特值,我们需要将不同音高的频率值转化为伏特值,如图17:
图17中的公式显示了伏特值和频率的关系,而默认的5V代表对采样的音高不做变化,由原先的音高决定。因此我们选择5V就可以了。
选择好相应的采样文件,然后连接上Sound output就可以回放采样发出声音了,如图18:
这就是最简单了的采样回放了,现在我们插入MIDI In,负责MIDI数据的输入,MIDI toCV是中央控制器,实际上起到了维度桥的作用。在MIDI In和MIDI to CV中间,还要插入一个MIDI Filter,这是MIDI滤波器,用来过滤MIDI in输入的数据。我们需要的是,是将数据分配给合适的采样(比如将不同音符的数据分配给对应的音符采样,力度值在0-79的分配给力度值为79的采样),MIDI滤波器最重要的作用在于将数据按照条件分配给不同的采样,点击右键,选择properties(属性),出现如图19:
MIDI滤波器的过滤对象有通道、音符和力度,我们需要的是按照不同的音符分配不同的采样,所以只改动音符,比如我们要将数据分给C4的采样,就需要将音符值为60的数据方过来,因此我们选择的区间就是60到60,也就是只有音符值为60的数据能够通过MIDI滤波器,并且我们这里还限制了力度在0~79范围内的数据才能够通过。
接下来插入一个“ADSR(包络)模块”——选择Insert->Waveform->ADSR,这样也就拥有了对于音量变化的控制能力。为控制总音量的大小我们需要一个“电压控制放大器”(即Voltage Controlled Amplifier-VCA)。通过“Insert->Modifiers->VCA”,我们便插入了一个电压控制放大器。这样基本器件齐全了,如图20:
其中ADSR的attack已经连接了算法的Container,这样就可以通过算法直接控制Attack的值。Container在Synthedit中的含义是细微的结构,你可以选择好几个模块,点击菜单上的Edit->Containerise Selection,就做成了一个Container。Container的意义在于可以重重嵌套,从而组成复杂的结构,同时又保持了结构的鲜明,在Container上点击右键,选择Structure,就可以看到这个Container的内部结构了,如图21:
当MIDI数据输入后,力度数据被分配进来,通过计算后生成新的attack值然后输出。
另外一种方式是通过一个synthedit的扩展插件U-MathEv来实现,该插件专门为各种数学计算设计,使用简便,只需要在Expression(表达式)一栏中直接输入我们的EQ公式就可以了,对于比较复杂的算法公式也能够轻松处理。在这里一次函数和多次函数的区别仅仅在于输入的公式不同。因此可以看到一次函数和多次函数在程序中仅仅是算法不同。具体方法还可以参考U-MathEv的说明,如图22:
同理,将EQ算法连接到EQ组件,该组件也为Synthedit的扩展插件,可以使用insert->Effects插入,再连接上VCA,就可以控制不同力度下各频段的增益/衰减了,这是最后的大体结构。
到了这一步,我们就做好一个采样的结构了,下面我们需要的,只是将MIDI Filter、MIDItoCV和Wave Player这三个组件复制,然后对应好相对的采样。有多少个采样,就需要多少个这三种组件,比如共有84个采样文件,就需要84个MIDI Filter、84个MIDI to CV和84个Wave Player。而其他组件,如ADSR和VCA等,可以被全部采样多共用,就不要复制了。复制完成后,不要忘记按照图一样接上相应的连线。同时由于主界面上只允许一个MIDI toCV存在,因此我们需要使用Container来代替这些MIDI to CV,将MIDI to CV、MIDI Filter和Wave player放入同一个Container中,取好名字,如图23。
到了这一步,只需要选择输出成为VSTi格式的插件就可以了,点击Save as VST,然后选择第一项Plug in Synth(也就是VST合成器的意思,生成后的VST插件将被音频软件认作VST合成器)。然后Synthedit软件将会自动生成以.dll为后缀的VSTi插件,我们的大功就此告成。可能读者仍然会对具体连接口的含义(比如将MIDI to CV的gate和ADSR、Wave player的gate相连的含义)有不明白的地方,Synthedit提供了详细的帮助说明文件,如果不明白可以参考。由于篇幅所限,上面的例子只说主要内容,就不再多说各种接口的用法,具体的详细解释可以参考帮助说明文件。
Claims (7)
1.一种利用回放声音采样来发声的声音合成方式,其特征是声音具有声音本身特征、乐器本身特征以及外部环境特征多个相关联信息(维度),并且这些信息之间的关系可以使用数学公式来表达。
2.根据权利要求1的声音合成方式,其特征是当一个维度发生变化时,引起多个维度信息的同时变化。
3.根据权利要求1的声音合成方式,其特征是具有频率、响度等声音本身特征。
4.根据权利要求1的声音合成方式,其特征是具有演奏技法,踏板,共振方式等乐器本身特征。
5.根据权利要求1的声音合成方式,其特征是具有房间大小、湿度、材料等外部环境特征。
6.根据权利要求4的特征,其特征是具有不同乐器自己所独有的演奏技法。
7.根据权利要求5的特征,其特征是以混响、延时效果为代表的外部环境特征。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100914057A CN100437748C (zh) | 2004-11-24 | 2004-11-24 | 合成器中的多维矢量合成技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100914057A CN100437748C (zh) | 2004-11-24 | 2004-11-24 | 合成器中的多维矢量合成技术 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1619642A true CN1619642A (zh) | 2005-05-25 |
CN100437748C CN100437748C (zh) | 2008-11-26 |
Family
ID=34766284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100914057A Expired - Fee Related CN100437748C (zh) | 2004-11-24 | 2004-11-24 | 合成器中的多维矢量合成技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100437748C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473368B (zh) * | 2006-07-28 | 2013-08-07 | 莫达特公司 | 用于产生代表具有键盘和弦的乐器的声音的信号的设备 |
CN105374343A (zh) * | 2015-10-13 | 2016-03-02 | 许昌义 | 万能音乐效果器 |
CN107818796A (zh) * | 2017-11-16 | 2018-03-20 | 重庆师范大学 | 一种音乐考试评定方法及系统 |
CN110767225A (zh) * | 2019-10-24 | 2020-02-07 | 北京声智科技有限公司 | 一种语音交互方法、装置及系统 |
CN112543971A (zh) * | 2018-08-13 | 2021-03-23 | 威斯康国际股份有限公司 | 乐器合成声音的生成系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748355B1 (en) * | 1998-01-28 | 2004-06-08 | Sandia Corporation | Method of sound synthesis |
JP3806263B2 (ja) * | 1998-07-16 | 2006-08-09 | ヤマハ株式会社 | 楽音合成装置および記憶媒体 |
CN1211778C (zh) * | 2003-08-13 | 2005-07-20 | 复旦大学 | 基于乐器数字接口算法的汉语语音合成方法 |
CN1251175C (zh) * | 2003-11-28 | 2006-04-12 | 北京中星微电子有限公司 | 一种声音合成方法 |
-
2004
- 2004-11-24 CN CNB2004100914057A patent/CN100437748C/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101473368B (zh) * | 2006-07-28 | 2013-08-07 | 莫达特公司 | 用于产生代表具有键盘和弦的乐器的声音的信号的设备 |
CN105374343A (zh) * | 2015-10-13 | 2016-03-02 | 许昌义 | 万能音乐效果器 |
CN107818796A (zh) * | 2017-11-16 | 2018-03-20 | 重庆师范大学 | 一种音乐考试评定方法及系统 |
CN112543971A (zh) * | 2018-08-13 | 2021-03-23 | 威斯康国际股份有限公司 | 乐器合成声音的生成系统 |
CN112543971B (zh) * | 2018-08-13 | 2023-10-20 | 威斯康国际股份有限公司 | 乐器合成声音的生成系统和生成方法 |
CN110767225A (zh) * | 2019-10-24 | 2020-02-07 | 北京声智科技有限公司 | 一种语音交互方法、装置及系统 |
CN110767225B (zh) * | 2019-10-24 | 2022-05-24 | 北京声智科技有限公司 | 一种语音交互方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100437748C (zh) | 2008-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9508330B2 (en) | System and method for generating a rhythmic accompaniment for a musical performance | |
CN1174368C (zh) | 修改复合波形的泛音含量的方法 | |
US9263018B2 (en) | System and method for modifying musical data | |
US9251773B2 (en) | System and method for determining an accent pattern for a musical performance | |
WO2008101130A2 (en) | Music-based search engine | |
CN1750116A (zh) | 自动表演风格确定设备和方法 | |
Bernardes et al. | A hierarchical harmonic mixing method | |
Hasegawa | Gérard Grisey and the ‘nature’of harmony | |
Herbst et al. | Guitar profiling technology in metal music production: public reception, capability, consequences and perspectives | |
Cannon et al. | The Investment of Play: expression and affordances in Digital Musical Instrument Design. | |
Yee-King | Automatic sound synthesizer programming: techniques and applications | |
CN1619642A (zh) | 合成器中的多维矢量合成技术 | |
Brent | Physical and perceptual aspects of percussive timbre | |
Kell et al. | A quantitative review of mappings in musical iOS applications | |
Barthet et al. | On the effect of reverberation on musical instrument automatic recognition | |
Mounir et al. | Musical note onset detection based on a spectral sparsity measure | |
Siswanto et al. | A platform for digital reproduction sound of traditional musical instrument Kompang | |
Antoine et al. | Towards intelligent orchestration systems | |
Miranda et al. | i-Berlioz: Interactive Computer-Aided Orchestration with Temporal Control | |
Fabiani | Interactive computer-aided expressive music performance: Analysis, control, modification and synthesis | |
Fasciani | Interactive computation of timbre spaces for sound synthesis control | |
Wu | SuperSampler: A new polyphonic concatenative sampler synthesizer in supercollider for sound motive creating, live coding, and improvisation | |
Lavastre et al. | Mixed writing with Karlax and acoustic instruments: interaction strategies from computer music | |
Antunes et al. | A psychoacoustic-based methodology for sound mass music analysis | |
Hayden et al. | Towards musical interaction: Sam Hayden’s Schismatics for e-violin and computer (2007, rev. 2010) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
DD01 | Delivery of document by public notice |
Addressee: Wang Yichi Document name: Notification of Termination of Patent Right |
|
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081126 Termination date: 20121124 |