2015年2月27日 星期五

自製音色庫-用sfz打造自己的vst音色

市面上商業音源多有開發自己的sampler,例如說Eastwest公司開發play,Native Instrument開發kontakt,其他有名的取樣器像是uviworkstation、或是Motu machfive、Steinberg halion等等。但是一般來說這些商業取樣器可能不支援外來wav或aif聲音檔,再不然就是正版商業音色庫所費不貲,我們有沒有辦法自己用現有的wav檔案,免費製作自己的音色庫呢?答案是有的。

我們可以使用sfz的格式製作一個自己的音色庫,所需的東西有:

1.如果你是用windows,那你需要使用記事本,若是mac則你要使用文字編輯。我們要用它來寫一些類似「程式語言」的東西。

2.找到要做成音色庫的wav檔案,注意這些音色有沒有版權,勿將音色作為非法使用。

3.sfz player,網路上很多免費的,本文以cubase + sforzando示範


下載網址http://www.plogue.com/products/sforzando/


接下來說明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




第四步

開啓cubase(或其他DAW),讓DAW抓到sfz player的VST,並且在sequencer中載入它,並import剛剛存檔的sfz。





















理論上做到這一步,已經可以讓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頻率點

fileg_depth=

其它還有調整ADSR語法像是ampeg=,或是移調語法transpose=,內容繁雜不及一一解釋,有興趣的人請自行尋找「sfz opcode」相關資訊,例如下面這個。
https://www.linuxsampler.org/sfz/

Cakewalk Synthesizers: From Presets to Power User這本書第13章,專門討論sfz格式。
https://www.youtube.com/watch?v=kqVepfS9AVY

以下連結,也是sfz入門的介紹文
http://www.soundonsound.com/sos/apr08/articles/sonartech_0408.htm

最後為了符合Creative Commons規範,這邊提供音色來源連結 ( http://www.freesound.org/people/OldBassMan/  )

2015年2月16日 星期一

用midi cc參數做出bass slide


Bass與電吉他的slide是一個過門很常用的酷技巧,然而少有音源特地取樣slide演奏手法,這篇文圖解教大家怎樣使用midi cc參數做出slide技巧


如果是一些高級的音色庫,它本身應該就有調整pitchbend移動範圍,例如Spectrasonics trilian,或者eastwest play,以下圖解。








































如果本身是比較陽春的音源,沒有內建pitchbend敏感度調整的話,我們必須用別的方法。


首先我們知道,pitch bend就是我們最常用來快速滑音的效果,然而內定的pitch bend只能滑動兩個半音以內。我們必須透過幾個midi cc設定來調整pitch bend的敏感度,達到可以滑動一、兩個八度。

Logic Pro X設定上比cubase方便,所以本文先以Logic做示範。要做到這個我們首先要知道兩個cc參數cc101 MSB、cc100 LSB,這兩個同稱作RPN(Registered Parameter Number登錄參數),是用作高階midi功能用的,

我們開啓新的midi cc軌道,在音樂進來前,時間上較前面的某時間點指定cc101 MSB為0、在較後面的時間點指定cc100 LSB為0,做這一步可以告訴電腦我要調整pitchbend的敏感度。

接下來我們開啓新的cc6軌道,這時調整他的數值可以告訴電腦你的pitchbend想要控制多少個半音數目,預設是2,當我們選擇12時pitchbend就可以滑動一個八度的範圍。

當我們不要pitchbend控制那麼大的範圍,而要回復原來的2個半音時,有兩個方法,

一、將controller101與100數值指定到127,cc6就會失效,pitchbend就會回復正常了。

二、打開cc38,數值給0

以下是logic pro x中方法,附上圖解,還有一個較誇張的示範音檔。




2015年2月13日 星期五

purge...將記憶體佔用量減到最小

在使用Eastwest PLay或Native instrument kontakt等商業聲音取樣器中,記憶體使用量一直是編曲者提心弔膽的問題,深怕記憶體用盡導致編曲時系統不穩、當機,編到一半的心血毀於一旦。我們可以使用purge這個技巧讓電腦節省使用記憶體。

首先,purge從字面上來看的意思是淨化、清洗的意思,引申到數位編曲的意思就是省下不用到的sample空出記憶體。



我們看一下play 4.2.2,它的purge在哪邊

首先我們按一下play左上角的main menu下拉式選單,

選advanced instrument properties























我們看到兩個分頁,選sample purge就可以看到它的purge的頁面了。




如果是kontakt,它的purge在這

2015年2月6日 星期五

Cubase的Real-time Export 的意義何在?音質有比較好嗎?

在做audio mixdown的時候,常看到一個選項,於cubase中有一個方塊寫著real-time export問你要不要打勾。打勾的話cubase就會花費等同曲子長度的時間來運算輸出wav檔,不打勾的話cubase便會花費較少的時間運算出曲子的wav檔。






















在logic pro x中這個稱為real time or offline




















究竟這兩種有什麼不一樣??同樣都是輸出成wav檔啊?

在logic說明書裡寫道

Realtime: Performs the bounce in real time. Use this setting when you want to bounce audio and software instrument tracks, or external MIDI sound sources that are routed to the Mixer via aux channels.
Offline: Bouncing offline can be faster than real time for more complex projects, and can perform bounces not possible in real time (because they might exceed the processing power of your computer).


我們先來看看cubase說明書裏寫到


Some VST plug-ins, external instruments and effects require this in order to have enough time to update correctly during the mixdown – consult the plug-in manufacturers if uncertain. 

所以到底怎樣時候會需要real-time?或者real-time與offline究竟差異在哪?

關於VST的部分,我們先提一個名詞叫做"vst bridge"。
簡言之,vst bridge就是讓64位元電腦使用32位元vst的協定,或是早期PowerPC蘋果的vst用在英特爾蘋果的協定。

想知道詳細的文章可以看這個連結。
https://www.steinberg.net/nc/en/support/knowledgebase_new/show_details/kb_show/what-is-the-vst-bridge.html

如果你的vst前面有一個兩槓記號,表示你正在使用這個"bridged vst"。因為這樣透過vst bridge的協定運作的vst,運算時可能會比較不穩定,常會發生延遲或是遺漏,透過real-time export較為正確。

不只是vst bridge,又或者你用rewire協定,連接其他軟體,也可能出現細節不對的情況。但基本上若你沒有用到rewire或vst bridge,而是採用VST3的音源,應該不會發生錯誤的輸出結果。


Real-time另外一個可能用途是使用external instrument/effect情況


先來看看VST connection這個畫面。external instruments/effects其實這就是過去所謂「硬體音源」「實體合成器」此類有midi孔的東西,cubase對這個老舊時代的東西也有支援。




當我們在cubase中使用external instrument時,切記要勾選real-time export,以及不勾選deactivate external midi devices。


至於謠傳所謂「real-time export的音質比offline export來的好」,我們可以用phase cancellation方法實驗一下。如果這兩種輸出的音質是相同的,則我們以這兩種輸出後的東西,其一選擇相位反轉,則同時播放的時候應該會發不出聲音,反之若有聲音則可證實兩者不同。

以下是實驗結果...同一組midi track以real-time與offline輸出結果...神奇的事情發生了











第一軌:offline midi鼓組輸出
第二軌:real-time midi鼓組輸出
第三軌:offline同時
第四軌:real-time同時

當把圖中由上數下來第二軌進行phase inverse,再進行一次offline/real-time輸出,發現大鼓低頻相消不見了,但高頻的小鼓/鈸雖然留下了,但也沒有保留完整的頻寬...聽下去,會發現大鼓拍點又出來一些高頻沒消掉的東西,感覺有相消到但沒有成功,差了那幾毫秒。

好奇心與研究精神驅使下,我單獨輸出kick試看看。
下面這個我一樣用real-time/offline輸出,第二軌大鼓是phase inverse的。
















大鼓real-time一起輸出

大鼓offline一起輸出

或許結論出來了,雖然只有部分完全被相消,關鍵在於硬體設備,好的錄音界面有好的word clock,可以做到更準確的sampling減少jitter的發生,在更準確的clock下就有完全被相消的可能。所以想以real-time export做音質的提升,我認為幫助微乎其微。

總之,一般來說使用reai-time export所需電腦資源較大,但理論上也提供一個較穩定的輸出方式,以vst bridge或rewire運作的音源以此可獲得較穩定的聲音。但究竟音質有無差異,是否每檯電腦結果不同,有興趣者可以自行在每台錄音界面上玩玩上述phase cancellation的方法。

另外若有control room需求使用者,可在vst connection裏面enable control room的功能,可在device中的control room mixer做監聽音量調整,在real-time export時也可開啓監聽音量聽到輸出結果。