SF的bank猜測

討論MP3、WAV、MIDI、WMA甚至其他數位音訊的播放、製作、轉換等。

版主: DearHoney

回覆文章
kageroh
大師
文章: 52
註冊時間: 2001-08-21 08:00

SF的bank猜測

文章 kageroh »

欲爬文時總是只能看到搜尋結果的第一頁, 所以問題有重複的話請多包涵 ;)
---
從接觸電腦以來用的就是SB Live, 也都沒(不會)做什麼音樂, MIDI的東西都是從SF Manager裡面看的 :-.-: bank有128個. 不過最近逛到一個介紹MIDI規格的網站 MIDI Technical Fanatic's Brainwashing Center 指出bank select可定到14bit, 開始想到以前作SF的兩位長輩, 鼓組擺放位置的意義.

手上沒有SF的規格書, 純猜測. SF只有128個bank, 意指SB Live只吃bank select的coarse部分, 除了ch10(9)會將fine的部分對應至coarse, coarse則對應至program, program對應到note. 用Vienna看好像也是這樣...我想起bennetng大的其中一篇文章"Creative SoundFont Bugs", 提到pitch變化的時候出來的會是program變化的情形, 或許可以用剛才的推論來說明這個現象可能不是bug而是規格上的限制
kageroh
大師
文章: 52
註冊時間: 2001-08-21 08:00

文章 kageroh »

剛剛用hex editor看文章中那個示範midi檔案...跟我的猜測不同 :o
實在很抱歉....不過還是搞不清楚為什麼SF的bank定義跟人家不一樣
bennetng
神人
文章: 665
註冊時間: 2001-05-07 08:00
來自: 香港
聯繫:

Re: SF的bank猜測

文章 bennetng »

sf2 檔的規格是 128 個 program, 每個 program 有 128 個 bank, 以 bank select MSB 選擇, 所以每個單一 sf2 檔最大可以容納 16384 種音色 (不包括鼓), 所以這是 sf2 檔本身規格的問題, 不是 bug, 這個限制, 無論用任何 driver, 都是無法突破的, 除非把 sf2 檔的規格升級至可以容納 2097152 (不包括鼓) 種音色... 即 128 Program*128 Bank Select MSB *128 Bank Select LSB

至於 "pitch變化的時候出來的會是program (其實是 key number) 變化的情形"和 bank select 無關, 那個令 pitch 變化的參數是 RPN, sb 吃的是 RPN MSB/LSB 和 NRPN MSB/LSB, 和 Data Entry MSB/LSB, 所以是通吃, 以前我用 win98 的 Liveware 3.0 和 win2000 的 Liveware 2000 都不會有"pitch變化的時候出來的會是 key number 變化的情形"的問題, 我錄的 ogg 檔, 沒有問題的其實就是用舊版 driver 錄的, 所以這很明顯是新 driver 的問題

用編曲軟體可以很容易看出來
http://bennetng.kc-studio.com/RPN.png

留意左面的紅框, Applause (拍手聲) 右面打橫的四枝棒就是原來四種不同聲調的拍手聲, 下面打直的紅色棒就是用來控制音調的 RPN 參數... 出錯的示範檔會出現像車聲 (Car-Pass) 和尖叫 (Screaming)是因為 driver 誤把 RPN 參數轉換成 key number, 至於右邊 Event List 裡則列出了整個 midi 檔用了什麼參數, 包含 MSB 和 LSB 的 RPN 和 Data Entry 參數

順帶一提, 用 kx driver (建議 3538h 或更舊) 的話也不會有這個 bug 的
kageroh
大師
文章: 52
註冊時間: 2001-08-21 08:00

文章 kageroh »

是RPN :o 我一開始發文時還以為是用note on/off在控制pitch
有編曲軟體真的很方便T_T

至於bank跟program這兩個字, 會不會是各家用法不同? 因為MIDI message裡面, 有個program change, 而我提到的那個網站指program是歸屬於bank底下的, 也就是跟音色是一樣意思. 至於bank select的事情我實在是完全搞錯, 我看Vienna裡面鼓組的每個聲音在鍵盤上是不同個key, 才有這種推想... :P

kx 3537上的確沒問題, 另外試的MS的GS音源則根本不懂分辨_ _

(再刪除一部分錯得離譜的地方...)
bennetng
神人
文章: 665
註冊時間: 2001-05-07 08:00
來自: 香港
聯繫:

文章 bennetng »

其實如果想在 vienna 改動 sf2 檔令 GS 的雙鼓組 midi 可以正常播放的話, 是不可能的, 唯一的方法是修改 midi 檔, 因為 GS 是用 sysx 選擇雙鼓組的, XG 才是用 bank select MSB 127 (16256)選擇 , 我把 GS 鼓組放在 bank select MSB 125 (16000) 是方便我自己使用 GS 雙鼓組而已, 這是引起你誤會的主因吧?

放多一首 XG midi 給你參考, 用了 XG 雙鼓組和 XG SFX Kit, 總共三個鼓組的, 但 Creative 不吃 bank select LSB 和 XG 的修改音色參數, 所以和 S-YXG50 比起上來完全不同
http://bennetng.kc-studio.com/oxycute.zip
SBLive + AnotherXG v2.1 + Creative 522 (A2 value) driver 錄製

...用 kx 聽的話, 又會面目全非
kageroh
大師
文章: 52
註冊時間: 2001-08-21 08:00

文章 kageroh »

坦白說是其他原因. 我最初假設Roland跟Yamaha的鼓組都是類似的配置方式, 所以那個"insane tuning"才會發生在作法不同的SF上.

以下若有錯請指正
---
重新看了一些GS的曲子後發現她其實跟SF的方式類似, bank select MSB為0(不過LSB也是), 再限制ch10以外不能對應鼓組, 不然根本分辨不出是GM的128個音色還是鼓聲了...所以才需另外用SysEx來放ch10以外的鼓組. 根據這首XG的曲子則判斷Yamaha是因為鼓組的MSB不是0(126, 127)便無ch10的限制.
---

但最終還是確定了一件事, 也就是無論哪一家換鼓組一定是用program change指令, 並非Yamaha有空出的LSB就可以用來切換...自己關起來想錯了也不知, 還是有人可以請教比較好點 :D
bennetng
神人
文章: 665
註冊時間: 2001-05-07 08:00
來自: 香港
聯繫:

文章 bennetng »

XG 比較方便, 不論什麼 channel, 只要 bank 用對了, 就可以用鼓

GS... 它的理念是一次過用很多部機的音色 (SC-55/88/88Pro/88x0) 它的 bank 其中一個用途就是用來選取不同機種的音色, 而且是 MSB/LSB 一起用, 所以是會有點複雜啦, 比如說我採譜的其中一首 GS MIDI, 除了雙鼓組外, 還同時用了不同機器的音色
http://bennetng.kc-studio.com/MyMusic/MyMusic.html
R-TYPE Delta Last Dance! 那首

設定是這樣的
http://bennetng.kc-studio.com/delta-lastdance.png

至於把 MSB/LSB 都設成 0, 其實是強制使用 GM 音色的意思, 因為 GM 沒有 bank
kageroh
大師
文章: 52
註冊時間: 2001-08-21 08:00

文章 kageroh »

原來如此, 也就是說GS的LSB是選擇特定機型的MAP, 而MSB的用途則像SF一樣
. 因此先前說的LSB=0的情況應該是選到本機的MAP
(例如送到SC-88Pro的資料指定LSB=0/3會是88Pro MAP)
大致上了解您所說的了, 感謝m(_ _)m 這裡是判斷用的圖

>>把 MSB/LSB 都設成 0, 其實是強制使用 GM 音色的意思
同意但是感覺容易讓人誤會(想成MSB/LSB都要是0才是GM音色), 因LSB不為0的話等於是其他MAP的GM部分, 我猜SC面板上的MAP選擇鍵就是對送進來的LSB作處理
回覆文章