elephant 发表于 2020-3-4 01:44:08

(轉載+原创),自製音色庫-用sfz打造自己的vst音色

自製音色庫-用sfz打造自己的vst音色
轉載自糖漿音樂製作成音團隊
市面上商業音源多有開發自己的sampler,例如說Eastwest公司開發play,Native Instrument開發kontakt,其他有名的取樣器像是uviworkstation、或是Motu machfive、Steinberg halion等等。但是一般來說這些商業取樣器可能不支援外來wav或aif聲音檔,再不然就是正版商業音色庫所費不貲,我們有沒有辦法自己用現有的wav檔案,免費製作自己的音色庫呢?答案是有的。
我們可以使用sfz的格式製作一個自己的音色庫,所需的東西有:
1.如果你是用windows,那你需要使用記事本,若是mac則你要使用文字編輯。我們要用它來寫一些類似「程式語言」的東西。
2.找到要做成音色庫的wav檔案,注意這些音色有沒有版權,勿將音色作為非法使用。
接下來說明sfz中,Region、Group、comment等基本語法。
語法Region作用在特定某波形sample的特徵,語法Group則作用在多個sample上,comment則告訴sfz這些東西是輔助說明不做任何影響。
我們實際以一些sample實作一個sfz檔案,先在資料夾裡準備好你要的wav檔,以這幾個木箱鼓的sample為例。
第一步
首先開啓一個記事本/文字編輯,副檔名請改成sfz,建議開在同一個資料夾,比較方便。開頭數行我們打上//並加上後面註解,這樣電腦sfz就會知道這是comment而不會理會。
第二步
我們打下<region>指令告訴電腦這個sfz幾個片段的詳細資料
<region>
sample=
lokey=
hikey=
pitch_keycenter=
sample= 指的是你wav檔的路徑
pitch_keycenter指的是你這個sample用在哪個特定音鍵上
lokey=與hikey=指的是你這個sample要涵蓋哪些音域
意思就是說某個sample用在pitch_keycenter上的音,就是原波型原汁原味的音,而lokey=與hikey=是這個範圍中,電腦會用音律數學計算的方式修改pitch_keycenter上的sample。
通常lokey與hikey這個概念會用在陽春的音色上,例如Reason內建的factory soundbank,當鋼琴我們只取樣PianoF33.wav檔的時候,會設定成用該sample用電腦計算發出E2~G#2的音色。
但是如果你只需要單一琴鍵發出單一聲音的話,可以將lokey hikey pitch_keycenter設為一樣,或直接在sample=下一行打key=
第三步
重複以上<region>指令使每個wav檔都成功被指定到,打完後先存檔。別忘了如果是midi keyboard上的黑鍵要指定的話,
音名要打成c#6而不是#c6。
理論上做到這一步,已經可以讓sfz player發出聲音了。
我們可以看到下面的琴鍵出現了亮暗的顏色區別,表示哪幾個琴鍵可以發聲。
我們還可以玩更多東西。
第四步,我們加上<group>,可以一次調整全部的sample。

舉例來說我們可以在sfz裡面設定pan=、filter=、tune=、等等
pan=就是左右相位,你從sfz player發出來的聲音就會有相位調整,其值為-100~100
tune=就是增減多少音分
fil_type= 為濾頻器 可以設定 lpf(low pass filter)hpf(hi pass filter)
cutoff= 為filter頻率點

elephant 发表于 2020-3-12 15:03:46

我们制作好了的 sfz 音色库可以用什么加载呢?
有几个工具可以加载,
首先出厂的是 SONAR 自带的 SFZ 插件,为什么先介绍他出厂呢?
只因他有辅助工具,哈哈,多谢若飛的風老师提供,点此下载sfz辅助工具_sfz-Access。
闲话休提,回归正传,
SONAR 自带的 SFZ 插件存放的位置在
C:\Program Files\Cakewalk\Vstplugins\SFZ
REAPER 可以刷得到
接下来有请 Plogue sforzando,
特别感谢若飛的風老师,这个工具是他推荐的,再一次说声谢谢,点此下载sforzando主程序_WIN_sforzando_v1.916。
这个工具需要另外安装,
安装的时候用 tab 键可以操作的,安装界面是英文
一样有辅助工具,也是若飛的風老师提供的,谢谢,点此下载Sforzando辅助工具_Sforzando-Access。
接下来有请DropZone,SONAR 自带的音源插件,他可以支持载入的文件类型有 Sample Files (*.sfz, *.wav, *.aif, *.aiff, *.ogg, *.rcy, *.rex, *.rx2),
暂时没有辅助工具,据说可以用 OCR 玩,
SONAR 自带的 DropZone 存放位置是,
C:\Program Files\Cakewalk\Vstplugins\DropZone
REAPER 如果刷不到就尝试将 DropZone.dll 复制一份,就地粘贴
,然后把新复制出来的 DropZone - 副本.dll 改成 DropZone x64.dll,
然后就往 REAPER 里面添加,然后就刷!
接下来轮也轮到 RXP出场了!
SONAR 自带的音源插件,
支持加载的文件类型(T): 组合框 Sample Files (*.sfz, *.wav, *.aif, *.aiff, *.ogg, *.rx2, *.rex, *.rcy, *.prog)
暂时没有辅助工具,据说OCR也能玩,
SONAR 自带 rxp 存放位置是
C:\Program Files\Cakewalk\Vstplugins\RXP
REAPER 如果刷不到就尝试将 RXP.dll 复制一份,就地粘贴
,然后把新复制出来的 RXP - 副本.dll 改成 RXP x64.dll,
然后就往 REAPER 里面添加,然后就刷!
好了,各位同学诸君如果有什么疑问在跟帖哈。

嗷嗷叫 发表于 2020-3-9 07:25:24

回楼主elephant

来个简单的例子:
力度在86到88之间,
音域在收割机的C4到E5
<group>
sample=1.wav
lovel=86
hivel=86
<region>
lokey=d4
hikey=e5

<group>
sample=2.wav
lovel=87
hivel=87
<region>
lokey=d4
hikey=e5

<group>
sample=3.wav
lovel=88
hivel=88
<region>
lokey=d4
hikey=e5

棍棍糖 发表于 2020-3-10 16:57:49

回楼主elephant

这个怎样把写好的代码变成vst插件加载到宿主里啊?

elephant 发表于 2020-3-12 15:08:51

我见这个帖子刚发表那段时间没有人回帖,所以我就没有跟进了,今天上来见到有回帖了才促使我有回帖的动力,谢谢大家关注!

elephant 发表于 2020-3-12 15:11:32

希望网站的有关人员也能到此关注一下,最好能想办法把我所提到的工具上传到本网站来,这样同学诸君就可以直接在本网站下载了!

琴韵晓波 发表于 2020-3-12 18:33:44

回6楼elephant

感谢大象的分享!已经放到咱们网站服务器上去了,并把对应的楼层给置顶了。

elephant 发表于 2020-3-12 22:39:07

晓波老师辛苦了。

elephant 发表于 2020-3-13 22:20:37

各位同学诸君,Kontakt 有些音源也有附带了.sfz档在内的哦,敬请留意!

琴韵晓波 发表于 2020-8-24 10:11:58

再来补充一篇文章,供大家研究参考

自编程SFZ采样文件
文:Craig Anderton
编译:musiXboy
出处:Sound On Sound
2008年4月
了解如何对SFZ采样进行编程,会让我们更好的使用SONAR自带的软件乐器。别害怕,其实对采样进行编程并不像你想象的那么困难。
SONAR7内置了大量基于波表和采样的软件乐器,包括DropZone、RXP、SFZ、Session Drummer 2、Dimension LE和Rapture LE,它们有一个可能你并不知道的共同点,那就是都可以读取SFZ格式的采样。
SFZ采样格式:
SFZ的概念与Sound Font有所不同,它能够通过一个文件一次性读取多重采样,而非单一的采样文件。我在之前的第14期杂志的《Sonar 小贴士:用好 Session Drummer 2 鼓音源》一文里提到过如何在Session Drummer 2里用多重采样创建自己的鼓组,实际上就用到了SFZ采样格式。实际上SFZ还能做更多的事情。
一个SFZ格式的采样文件其实包含了两个部分:一组多重采样,以及一个告诉采样器如何应用这些多重采样的text文本文件,这个text文件里会写出采样的根音、采样范围、力度范围、滤波、包络、默认的控制器号、loop点、音量、声像、效果等等参数,告诉采样器如何回放这些多重采样。
需要说明的是虽然SONAR里内置了大量基于SFZ采样的音源,但SFZ标准是开放的,而且是免费的,正是因为这个原因我们才可以自定义SFZ采样,才有现在这篇文章。如果你看完这篇文章,自己制作SFZ采样拿去卖钱,也不必交纳任何的授权费。
为什么要如此费劲的学习对SFZ采样进行编程呢?主要有三点原因:
* 你可以创造自己的音色,而且可以被所有支持SFZ的音源读取使用
* Dimension LE和Rapture LE对采样的编辑功能很有限,但如果你会自己对SFZ编程,一切问题都可迎刃而解
* SFZ格式可以被SFZ Player读取,而它是免费的VSTi插件,你可以把需要的音色转移到其它任何宿主里使用,而不限于SONAR 7带效果器,支持硬盘直读
创建你的第一个SFZ文件:
创建SFZ采样并不会像软件编程那么恐怖,甚至比你写音符还简单。你不必从头写起,而只是在已经做好的SFZ文件基础上进行修改就好了。SFZ文件编程需要用到的代码可以在这里找到:http://www.cakewalk.com/DevXchange/sfz.asp。
我们来举个例子,比如我对吉他D和弦做了采样,叫GuitWavetable_D1.WAV,我应该如何把它制作成SFZ采样通过采样器正确的回放出来呢?
1. 创建一个叫做GuitarWavetables的文件夹,好把所有相关文件都存放在一起
2. 把录好的吉他D和弦采样GuitWavetable_D1.WAV拖到这个文件夹里
3. 新建一个文本文件,比如叫GuitarWavetables.txt
4. 写入说明语句:
// SFZ 定义文件
// 一个简单的吉他D和弦
你可以随意的写,省得以后txt文件太多了你不知道是做什么用的了。只要语句前加“//”的都是说明语句,不起任何作用
5. 写入采样文件区域定义语句:
<region>
pitch_keycenter=D1
lokey=C0
hikey=C8
sample=GuitWavetable_D1.WAV
这里pitch_keycenter表示根音,lokey表示采样区域的最低音符,hikey表示采样区域的最高音符,sample表示采样文件名称,因为采样文件和txt文件在同一目录,所以直接写wav名称即可,如果txt文件放在采样文件夹以外,那么就要写sample=文件夹名称\GuitWavetable_D1.WAV。Lokey到hikey之间的音符都将按照根音来做重采样,使得音高平均分配到每个琴键上。
6. 在记事本中点“文件-另存为”,保存文件为“所有类型”,文件名写GuitWavetable.sfz。这样就可以把txt文件另存为sfz文件了。
7. 在SONAR里打开一个可读取SFZ的软音源,比如Dimension LE,点击Load Multisample按钮,找到刚刚保存的GuitWavetable.sfz,读取它。现在你就可以在Dimension LE里演奏你自制作的采样了。
深入SFZ:
现在我们已经可以回放简单的单一采样了,这是成功的第一步。下面我们深入一点,读取两个一样的采样,将它们稍微做一下detune,一个减5个音分,另外一个加5个音分,做出饱满的和声感,<region>区域要加入tune参数。为了再做出立体声场的感觉,再加入pan参数(要在-100到100之间)。我们还想采样的音色突出低频,那么就再加一个声像在中间并降低一个八度的采样吧,用transpose=-12就可以,所以就这么写:
<region>
pitch_keycenter=D1
lokey=C0
hikey=C8
tune=-5
pan=-100
sample=GuitWavetable_D1.WAV
<region>
pitch_keycenter=D1
lokey=C0
hikey=C8
tune=5
pan=100
sample=GuitWavetable_D1.WAV
<region>
pitch_keycenter=D1
lokey=C0
hikey=C8
pan=0
transpose=-12
sample=GuitWavetable_D1.WAV
保存之后再用Dimension LE读取,演奏一下,恩,感觉有些浑浊,加点滤波,调节一下包络吧。
因为滤波和包络是同时作用于三个采样的,所以我们不必再分别在三个<region>里写参数了,只用一个<group>就可以同时搞定三个采样,前提是要写在所有<region>标签之前,就是这么写:
<group>
fil_type=lpf_2p
cutoff=300
ampeg_decay=5
ampeg_sustain=0
fileg_decay=.5
ileg_sustain=0
ileg_depth=3600
按照顺序,表示增加一个两磁极的低通滤波,截止频率300Hz,音量decay为5秒,音量sustain为0%(也就是无),滤波decay为0.5秒,滤波sustain为0%,滤波包络的调制深度为3600分(也就是三个八度)。
突破LE的限制:
SONAR 7内置的Rapture LE和Dimension LE都是很棒的软音源,但很显然它们是简化版有很多限制。比如Dimension LE只有两个包络,一个滤波,没有tuning和transpose音高调节,包络也没有attack。如果你在SFZ采样被Rapture LE和Dimension LE读取之间,自己改写了.sfz文件,你就可以突破LE版本的限制,获得所有功能了。
比如一个Dimension LE内置的音色Hammond Jazz3,我们可以在“C:\ProgramFiles\Cakewalk\Dimension LE\Multisamples\Organs”目录里找到Hammond jazz.sfz文件,这就是该音色所属的SFZ文件。在Dimension LE里我无法让这个音色增加两个声部变成三个八度的管风琴,那么我们自己手动编辑SFZ文件不仅可以让它增加两个八度,还可以分配新增八度的声像,修改attack、release音量包络,增加EQ等等。
首先打开“C:\Program Files\Cakewalk\Dimension LE\Multisamples\Organs”目录里的Hammond jazz.sfz文件,看到它里面有如下的语句
<region>
sample=Hammond Jazz\HBj1slC_2H-S.wav
key=c3
hikey=f3
<region>
sample=Hammond Jazz\HBj1slC_3H-S.wav
key=c4
hikey=f4
<region>
sample=Hammond Jazz\HBj1slC_4H-S.wav
key=c5
hikey=f5
<region>
sample=Hammond Jazz\HBj1slD_5H-S.wav
key=d6
hikey=f6
<region>
sample=Hammond Jazz\HBj1slC_6H-S.wav
key=c7
hikey=f7
<region>
sample=Hammond Jazz\HBj1slF#1H-S.wav
key=f#2
hikey=b2
lokey=c1
<region>
sample=Hammond Jazz\HBj1slF#2H-S.wav
key=f#3
hikey=b3
<region>
sample=Hammond Jazz\HBj1slF#3H-S.wav
key=f#4
hikey=b4
<region>
sample=Hammond Jazz\HBj1slF#4H-S.wav
key=f#5
hikey=c#6
<region>
sample=Hammond Jazz\HBj1slF#5H-S.wav
key=f#6
hikey=b6
这里显示出Hammond Jazz 3音色由10个不同的采样组成。在这里它用了key标签,而非我们之前定义根音的pitch_keycenter标签。首先因为Dimension LE不认pitch_keycenter,第二因为key标签可以让根音、lokey、hikey都定义成同一个音,而不必分开来写。比如第一个HBj1slC_2H-S.wav采样,它写了key=c3 hikey=f3,没有写lokey,因为lokey默认跟key是同一个音符了。
那么我们就在这10个<region>标签前,加上<group>标签,先集体定义10个采样的音量包络,再加一个EQ,这么写:
<group>
ampeg_attack=0.2
ampeg_release=2
pan=-100
eq1_freq=4000
eq1_bw=2
eq1_gain=20
按顺序分别表示:音量包络attack为0.2秒,音量包络release为2秒,声像为-100最左边,并增加一个EQ,中心频率为4000Hz,带宽为2个八度,增益为20dB。
好了,下面我们加入一个低八度的新声部,依然先用<group>定义包络、音高和EQ,再用<region>引用采样,这么写:
<group>
ampeg_attack=0.2
ampeg_release=1
transpose=-12
eq1_freq=2000
eq1_bw=4
eq1_gain=20
<region>
sample=Hammond Jazz\HBj1slC_4H-S.wav
key=c5
lokey=c0
hikey=c8
<group>定义与之前写的一样,只不过加了一个transpose=-12让采样降低一个八度,去掉了pan标签的定义,那么默认声像就是在正中了。<region>定义借用Hammond Jazz 3音色本身的HBj1slC_4H-S.wav采样,根音为c5,区域为c0到c8。
最后我们再以同样的方法加入高八度的声部,这么写:
<group>
ampeg_attack=0.2
ampeg_release=1
transpose=12
pan=100
<region>
sample=Hammond Jazz\HBj1slC_4H-S.wav
key=c5
lokey=c0
hikey=c8
这样都保存后,再读取Hammond Jazz 3音色,就跟以前大不同了。

elephant 发表于 2020-8-24 15:07:39

晓波老师好样的,终于可以上来了。

elephant 发表于 2020-8-24 15:09:00

啊不是,应该是 elephant 可以上来了才对,哈哈!
页: [1]
查看完整版本: (轉載+原创),自製音色庫-用sfz打造自己的vst音色