サウンドフォントを変換して得られる TX16Wx 専用プログラムの不具合を修正する。
始めに:
今回のテーマは TX16Wx 専用プログラムの修正だ。
第 1 章では、TX16Wx のプログラム作成機能を使った専用プログラム修正の実例を示し、第 2 章ではフィルターとモジュレーションの問題点について報告する。第 3 章では、サウンドフォントエディタを使ったサウンドフォントプログラム修正の実例を示す。第 1 章と第 3 章はペアになっていると考えて頂きたい。
私は今まで、1) サウンドフォントのプログラムの完成度に問題はない 2) TX16Wx の変換機能に問題はない ―― という前提のもとに TX16Wx 関連の説明記事を書いてきた。今回はその前提を捨てて、サウンドフォントプログラムには欠陥があり得るしTX16Wx では必ず変換ミスが発生する、という事実を提示するところから説明を始める。
OS :Windows 10(ver 1803)
1. TX16Wx 専用プログラムの修正
1)プログラム不具合の実例
この章では、TX16Wx のプログラム作成機能だけを使って TX16Wx 専用プログラムを修正する。
この作業はかなり効率が悪くミスする可能性も大きいので、修正を完了するには相当な根気と注意力が要求される。しかし、プログラム修正作業の各工程を実行することが、TX16Wx のプログラム開発機能に慣れるための手ごろなチュートリアルになっているので、一度だけでも試してみて頂きたい。
チュートリアルが不要な人は、先に第 3 章【サウンドフォントプログラムの修正】へ進んだ方が良いだろう。
使用したフリー DTM ソフトウェア:
MIDI シーケンサー: Domino(Ver 143)
DAW :Cakewalk by BandLab(ver 2019.03)
VSTi:TX16Wx(Ver 2.4.2h 64bit)
仮想 MIDI ケーブル:loopMIDI(Ver 1.0.13)
TX16Wx は 64bit 版をインストールした。
この時インストール済みの 32bit 版が削除されてしまったのでビックリしたが、64bit 版の後に再インストールしたら正常に使えるようになった。ただ、Reaper v0.999 ではインストール直後のプロジェクトの読み込みで、保存時の状態が再現されないなどの不具合が発生した。今は普通に使えている。
サウンドフォントダウンロードサイト:
32MbGMStereo:NTONYX SoundFonts Free Download
GitHub:FluidR3 GM
今回使用したサウンドフォントは 32MbGMStereo.sf2 だが、比較用として FluidR3 GM.sf2 も使用した。
ここからは、サウンドフォントのプログラムのことをプリセットと言うことにする。
なので、今後プログラムと言えば、それは TX16Wx 専用プログラムのことだ。プリセットのメンバーはインストゥルメントと言う。Tx16Wx 専用プログラムは、インストゥルメント単体ではなく、1 個以上のインストゥルメントで構成されているプリセットが変換されたものだ。
1)プログラム不具合の実例(return)
聴いて分かる不具合:
ではまず、32MbGMStreo から変換されたプログラムの修正前と修正後の再生音を聴いて頂こう。
使用プログラムはバイオリン(Violin)、ビオラ(Viola)、チェロ(Cello)、コントラバス(Contrabass) だ。
修正前の脈動みたいなモジュレーションは Contrabass が発生源だ。
修正後はずいぶん改善されているが、修正自体は大したことはやっていない。すべてのプログラムの音量を適正値に設定しただけだ。詳しいことは【プログラム不具合の修正】の項で説明する。
見て分かる不具合:(return)
下の Fig 1 と Fig 2 は、それぞれ修正前の Cello と Contrabass のスプリット(以下 Split)の様子だ。
見た瞬間に変だと分かる部分に丸印をつけてある。Fig 3 は修正後の Contrabass の様子を示している。
-
Split レンジの不足
Fig 1 では、C#4 のところで Split のキーレンジが不足している様子が分かる。
-
Split キーレンジの重複と Split 数の不足、ベロシティスイッチの設定ミス
Fig 2 では、F3 のところで Split のキーレンジが重複しており、F4 ~ D5 の所では Split の数が不足している様子が分かる。それと、この図にはベロシティスイッチの設定ミスも描かれているが、この図を見ただけでそれが分かる人は、おそらくいないだろう。しかし Fig 1、Fig 3 と比べてみると、構造の違いは一目瞭然(いちもくりょうぜん)だ。
-
不具合修正後の Contrabass
不具合の内容:(return)
サウンドフォント側に問題がある場合:
- Split キーレンジの設定ミス
- ベロシティスイッチの設定ミス
見てわかる不具合の多くはサウンドフォント側の問題だ。
上の図を見て分かるように、32MbGMStereo の変換後のプログラムには色々と問題が多い。
私は最初、これらの不具合はサウンドフォント作成者のミスだろうと思っていたが、あまりにも変なことが多いので、今は製作者が使用したサウンドフォント作成ツールの方を疑っている。
TX16Wx 側の変換に問題がある場合:
- 音量やエンベロープ、モジュレーションなどの設定値の不適合
- Split 数の不足
- Split の意図しないグループ化
聴いてわかる不具合は、ほぼ 100% TX16Wx 側の問題だ。
設定値の不適合が再生音に大きく影響するのは、サンプルで聞いて頂いたとおりだ。
Split 数が不足すると、その Split がカバーするキーレンジではモノラル再生となり、音量が低下する。
意図しない Split のグループ化は再生音に影響しない。
設定値の不適合は必ず発生する。
特に、エンベロープの Attack や Release などのタイム値は TX16Wx の適正値より数倍長くなってしまうので、再生音を聞けばすぐ不自然さに気付く場合が多い。この現象を不具合と決めつけるのは少し厳しすぎる評価だと思うので、ここでは不適合と言っている。
Split 数の不足は Fig 2 の Contrabass で初めて確認した。
一方、Split の意図しないグループ化は何度も経験している。どちらの場合も不具合は必ず同じ Split 上で発生するので、サウンドフォント側に誤変換を誘発する要因があるとは思うのだが、それが何かはまったく分からない。
2)プログラム不具合の修正(return)
では実際にプログラムの不具合を修正してみよう。
対象プログラムは Fig 2 の Contrabass で、修正対象は、上の項でリストアップされているすべての項目だ。
音量やエンベロープ、モジュレーションなどの設定値の再調整:
これはプログラム修正の中で最も重要な処理だ。だが、調整手順そのものは下に示す通りとても簡単だ。
Wave データの編集とこの手順を一緒に実行すれば、オリジナルとは異なるプログラムに作り変えることもできる。私は、近いうちに Cello でそれを試してみるつもりだ。何にしても、重要な処理を素早く簡単に済ませられるというのは良いことだ。
再調整の手順:
Step 1:すべての Split を選択する
- Keyboard Mapping Editor(マッピングエディター)上の任意の場所で右クリックしてメニューを表示する。
- メニューの【Select all】を選択する。
Step 2:音量、エンベロープなどの数値を調整する
- AEG / Main セクションの volume を適正値に調整する(現在 0.03 表示)。
- 同じセクションの velocity を 0 に設定する(現在 1.00 表示)。
- release を任意の値に調整する(現在 500ms 表示)。
- 必要があれば他の設定値を調整する。
Filter と LFO の再調整については、第 2 章【フィルターとモジュレーションの設定】で説明する。
Fig 4 で volume が極端に絞られているのは、サウンドフォント側の Preset に Attenuation(音量の減衰率)に正(プラス)の値が設定されているからだ。サウンドフォントプレイヤーで再生する時にこの設定が問題になることはないので、これはやはり TX16Wx 側で修正すべき設定だと思っている。
ベロシティスイッチ設定ミスの修正:(return)
ベロシティスイッチがどういうものかということは、ここでは説明しない。
マッピングエディターの縦軸はベロシティを現わし、横軸がキーレンジを現わしているということを覚えておけば、予備知識は十分だ。
修正作業の手順は以下のとおりだが、実際の作業の様子は GIF 1 を見ればお分り頂けると思う。作業はマッピングエディタのキーボードマッパー上ではなく、その下のグループリスト上で行う。
ベロシティスイッチ設定ミス修正作業の手順:
この修正作業では下の手順に従ってグループ行(以下 単に「行」)を選択して修正する。
1 個のグループ行は、通常キーボードマッパーに表示されている 1 個の Split に対応している。ある行を選択すると、その行に対応する Split がハイライト表示される(Split と行の同期)。その逆も真なりだ。
Step 1:修正対象キーレンジの行のペア(表裏ペア)を選択する
- 修正対象のキーレンジの最初の行を選択する。
- CTRL + 左クリックを使用して、キーレンジと Filter セクションの LowPass / Off の状態が、最初に選択した行と同じである 2 番目の行を選択する。
- 条件が合わない行を選択したら、もう一度左クリックしてその行の選択を解除する。
Step 2:設定値を変更する
- range 項目の変更箇所をダブルクリックして編集可能にする。
- 設定値を直接入力する。
Step 3:LowPass / Off の状態が異なる行を選択する
- CTRL キーを離して、編集済みの行とキーレンジは同じだが LowPass / Off の状態が異なる行を選択する。Step 1 と同じ要領でペアとなる行を選択する。
- Step 2 を実行する。
Step 4:次の対象行へ移動する
- CTRL キーを離してから編集済みの Split の次の Split を選択して、グループリストの対象行と同期させる。
- 同期された行の直前に同じキーレンジの行があれば、そちらの方を選択する。
- すべての修正が完了するまで Step 1 ~ Step 4 を繰り返す。
注意事項:
- 行を選択 / 選択解除する時は、必ず白文字の部分を CTRL + 左クリックする。
- 異なるキーレンジの行を選択する時は、必ず CTRL キーを離す。
- クリック箇所を間違えるとキーレンジが変更されることがあるが、その時はあわてないで UnDo アイコンをクリックする。UnDo アイコンは【ゴミ箱】の並びにある【<】だ。
不足している Split の補填とキーレンジの修正:(return)
-
Split の補填
Split の補填(ほてん)作業は、キーボードマッパーとグループリストの両方を使って行う。
対象となる Split は表面と裏面の 2 個だ。本来は 4 個なのだが、ここだけ半分になっているということだ。また、この 2 個は Pan が中立位置になっているので、手順の最後のところで左右(反時計 – 時計方向)に振り分ける必要がある。
修正の手順は以下のとおりだ。実際の処理の様子は GIF 2 を参考にして頂きたい。
注意事項:
Split を補填すると、追加されたグループ行の名前による並び順が Split の並びと同期しなくなる。
新しい行は必ずグループリストの末尾に追加されるので、注意が必要だ。どうしてもその状態を回避したいのならば、第 3 章の【Preset の修正】の項の関連情報を参考にして頂きたい。
Split 補填の手順:
Step 1:Split のペアを追加する
- キーボードマッパー上で表面の Split(Contrabass F4)を選択する。
- グループリスト上の同期された行の上で、右クリック > Duplicate group(s) を選択する。
- CTRL を押さずに次の F4-D5 レンジの行を選択し、上と同じ手順を実行する。
- グループリストの末尾に、F4-D5 レンジの行が 2行追加されていることを確認する。
Step 2:Split のベロシティスイッチと Pan、Filter を設定する
- 追加された 2 行を同時に選択して、キーボードマッパー上の表裏 2 個 の Split の境界線を適当な位置までドラッグする。
- コピー元の 2 行を選択して上の境界線近くまでドラッグする。
- それぞれのペアのベロシティスイッチを直接入力で設定する。
- それぞれのペアの LowPass / Off を設定する。
- 表面の Split の Pan を時計方向に、裏面を反時計方向にそれぞれ設定する。
-
Split キーレンジの修正
Split の表裏ペアを選択する方法が分かり、そのペアの Velocity 範囲を調整する方法も分かったのだから、これ以上の説明は必要はないだろう。調整方向が縦から横に変わるだけだ。
意図しないグループ化の解除:(return)
グループ化の解除はキーボードマッパー上だけで行うことができる。つまりマウス操作だけで用が済むのだ。
この不具合自体はあえて修正しなくても良いのだが、キーボードマッパーの使い方の練習には、ちょうど手ごろなサンプルになる。実際の処理の様子は GIF 3 を参考にして頂きたい。
注意事項:
グループを解除すると、分離されたグループ行の名前による並び順が Split の並びと同期しなくなる。
なので、今はすべての手順の練習が終わったら UnDo を連打して元に戻しておく方が良いだろう。
グループ化の解除の手順:
- 表面の Split をクリックして、2 個以上の Split がグループ化されている箇所を探す(例では F#3 – E4 までの Split)。
- GIF 3 を参考にして作業スペースを確保する。
- 表面のグループ化された Split を作業スペースへ移動する。
- 裏面のグループ化された Split の境界線上で右クリックして、メニューの Separate を選択する。
- 分離された Split の一方がグループ化された状態のままならば、UnDo を実行して右クリックからやり直す。
- 後は GIF 3 を参考にして処理を完了する。
確保していた作業スペースを元に戻す時、表面の Split を選択する前に下の Split をクリックしている。
裏面の Split にフォーカスがある時には表面の Split を選択することはできないので、いったん裏面のフォーカスをキャンセルする必要があるということだ。
TX16Wx を使ったプログラムの不具合の修正の説明は、とりあえずここで終了だ。
大画面のモニターを使える人には楽な操作だったかも知れないが、ノートPC でキーボードマッパーを操作した人はさぞ大変だったろう。お疲れ様でしたと申し上げたい。
2. フィルターとモジュレーションの設定(目次へ戻る)
1)フィルターの設定
第 1 章で Split とグループ行の扱い方を練習したので、【音量やエンベロープ、モジュレーションなどの設定値の再調整】の項で省略した、Filter セクションと LFO セクションの再調整ができるようになった。
Filter セクションではローパスフィルターの調整が対象になる。
これついては、デフォルトの設定値が適切かどうかというところを見るので、不具合を修正するというのとは少し違ったアプローチになっている。
LFO セクションでは LFO1 でモジュレーションを設定する。
この項で挙げている実例と説明も、不具合を修正するというテーマからやや離れた内容になっている。
最初に挙げる設定例は「すべての Note on イベントでモジュレーションがかかるという状況は受け入れられるのか?」という疑問に対する一つの答にすぎない。この疑問には、人それぞれの答えがあるだろう。
しかし、モジュレーションの強度や発生タイミングに注意深い人々を困らせる問題は、他にもある。
今回使った 32MbGMStereo の 4 種類のプログラムのうち、Contrabass を除く 3 種類の楽器には、モジュレーションの発生源が LFO 以外に 2 個もあるのだ。Contrabass でさえも 1 個余分な発生源がある。
これには私も大変困ったので、その問題については【標準的な設定では制御できないモジュレーション】という項目を追加して、少し詳しく説明している。
1)フィルターの設定
まず Filter セクションの LowPass / Off のデフォルト設定を見てみよう。プログラムは Contrabass だ。
低ベロシティ領域で LowPass を設定するのは納得できるが、19913Hz というのはどうだろうか?
人間の可聴音域はおよそ 20Hz ~ 20,000Hz(20KHz)と言われているので、その上限に近いカットオフ周波数は Contrabass ではあり得ない値だ。なので、ここを各位の好みで再設定して頂きたい。
下のテーブルは私が設定したある程度現実的な例だ。ただ、TX16Wx のローパスフィルターはそれほどシャープな特性ではないので、もっと低い周波数でも良かったようにも思う。
Filter セクションの設定:
設定の手順は簡単だ。グループリスト上で、LowPass が設定されている低ベロシティ領域の対象キーレンジの表裏ペアを選択して、freq ノブ下のテキストボックスに値を直接入力すれば良い。res ノブは 0(ゼロ)に設定し、減衰率は最大値の 24 db を選択する。
-
設定値一覧(参考)
Split(表裏ペア) | 設定値 |
Contrabass F1 | 3500Hz |
Cobtrabass C2 | 4000Hz |
Contrabass D2 | 4000Hz |
Contrabass G2 | 4500Hz |
Contrabass B2 | 5000Hz |
Contrabass D3 | 5500Hz |
Contrabass F3 | 6000Hz |
Contrabass C4 以上 | 7000Hz |
2)モジュレーションの設定(return)
ここではモジュレーションの設定を変更する。設定例はやはり Contrabass だ。
LFO1 のデフォルト設定では、すべての Note on で 4.30Hz のモジュレーションがかかるようになっている。それを変更して、高ベロシティ領域のモジュレーションを Mod Wheel で制御できるようにしてみる。モジュレーション設定の変更は、LFO セクションと Mod table の両方で行う必要がある。
LFO セクションと Mod Table の設定:
設定の手順は次の通りだ。
モジュレーション設定手順:
設定値はそれぞれの設定値テーブルを参考にして頂きたい。
- グループリストで、高ベロシティのグループ行を表裏ペアですべて選択する。
- LFO セクションの LFO1 と LFO 2 を設定する。
- Mod Table を設定する。
Split の補填とグループ化の解除を実行した後ならば、グループリスト上で右クリック > Sort > By key を選択して並び順を変えた方が作業がやりやすくなる。ただ、いったんキー順にすると、名前順に変えようとしても元には戻らないので、注意が必要だ(※)。
- ※ 末尾に追加されたグループ行には Contrabass C4 などという新しい名前が与えられるが、ほとんどのグループ行の名前が Contrabass だからだ。
-
LFO セクション設定値(参考)
LFO1 と LFO 2 の設定は次のテーブルを参考にして頂きたい。必須項目は rate と amo だ。
rate は各位の好みで構わないが、amo に 0(ゼロ)より大きな値を設定すると、必ずそれに応じたモジュレーションが発生することをお忘れなく!
設定値 | LFO1 | LFO2 |
rate | 4.80Hz | 0.00Hz |
amo | 0.00 | 0.00 |
fade in | 0ms | 0ms |
モジュレーション周波数を決める rate のデフォルト値は 4.30Hz だが、私はやや高めの 4.80Hz に変更した。
モジュレーションの強さを制御している amo をデフォルト値の 1 のままにしておくと、すべての Note on で常に最大のモジュレーションがかかり、Mod Wheel による制御は効かなくなる。Mod Wheel でモジュレーションをフルコントロールする場合は、ここに 0(ゼロ)を設定する。
-
Mod Table 設定値(参考)
Mod Wheel の dest を、デフォルトの LFO2Amp から LFO1Amp に変更する。
この変更は必須だが、見落としやすいので注意が必要だ。それと、このテーブルに載っていない項目はすべてデフォルト設定を維持している。
source | dest | amount | Tab 番号 |
Mod Wheel | LFO1Amp | +1.00 | 1 |
LFO1 | Pitch | +20Ct | 2 |
LFO1 の Pitch の amount に値を設定すると、デフォルトの音量モジュレーション(VM)に周波数モジュレーション(FM)をミックスすることができる。モジュレーションの周波数は LFO で設定した 4.80Hz だ。
Pitch に大きな値を設定して FM の比率を大きくすると、サンプルの再生音が人工的な音に変質してしまうので、VM とのバランスを取りながら値を決めることが大事だ。上のテーブルの +20Ct という値はそのようにして決めた一つの例だ(Mod Wheel は 80)。
モジュレーションの実例:(return)
下のプレイヤーは、上のテーブルの設定値で Contrabass の C3 音をモジュレ―トした例だ。
Mod Wheel の設定値は 80(0 – 127) で、最初からではなく 2sec あたりから有効にしている。この設定だと、Mod Wheel 設定値を 127 にして音量モジュレーションだけをかけた場合と同じくらいの効果が得られる。
3)標準的な設定では制御できないモジュレーション(return)
ここでは、サウンドフォントの仕様に意図的に造りこまれたモジュレーションと、サウンドフォントの仕様を満たすために必要な設定の結果として、偶然組み込まれてしまったモジュレーションについて説明する。この 2 種類のモジュレーションは、LFO や Mod Table の設定では制御することができない。
Wave データに組み込まれたモジュレーション:
32MbGMStereo では、Violin、Viola、Cello の Wave データがエンベロープのループ構造を持っている。
そのループが、Wave データに組み込まれたモジュレーションの発生源だ。
普通の図では loop のエンドポイントと Wave データのエンドポイントが重なっていて分かりづらいので、loop のエンドポイントを操作している様子をアニメにしてみた。
右側でこそこそ動いている部分に着目して頂きたい。loop 部分の振幅が【弱>強>弱】とほぼ対称的に変化するエンベロープになっていることが分かる。
ここまでの説明で Contrabass を採り上げたのは、私が低音楽器好きというのもあるが、たまたま 32MbGMStereo の Contrabass だけがエンベロープのループ構造を持っていなかったからだ。
偶然組み込まれたモジュレーション:(return)
32MbGMStereo では、Preset をステレオ仕様にするための設定がモジュレーションを発生させていることが分かった。なので、それに起因するモジュレーションはすべてのプリセットで発生している。
設定項目と設定値については、第 3 章の【サウンドフォントエディタで不具合を修正する:Preset の修正】の項で説明している。FluidR3 GM ではこれと違う方法でステレオ仕様を満たしているので、偶発的なモジュレーションは発生しない。
-
偶然組み込まれたモジュレーションの確認方法
次の手順を実行すると、32MbGMStereo の Violin でこのモジュレーションを確認することができる。
少し手間がかかるが、難しいことはやっていないので気楽にチャレンジしてみて頂きたい。嘘だろう・・・と言いたくなるほどはっきりしたモジュレーションを聴くことができる。
Step1:Wave データを変更する
ここでエンベロープのループを普通のループに変更する。
もし loop のデフォルト設定値がテーブルと違っていたら、デフォルト値をメモしてからテストを実行して頂きたい。
- プログラムスロットに 32MbGMStereo の Violin.txprog を読み込む。
- Keyboard mapper タブの右隣の Wave editor タブを選択する。
- Wave リスト上で Violin vib C5 を選択し、左端の + ボタンを押す。
- loop 行が表示されたら start >end の順にテーブルのテスト用設定値を直接入力する。
- テストが終わったら end > start の順にデフォルト値に戻す。
loop 行項目 | デフォルト設定値 | テスト用設定値 |
start | 28900 | 17191 |
end | 36302 | 17315 |
Step 2:LFO1 の設定を変更する
- TX16Wx のキーボードマッパー上で、低ベロシティ領域の右端の Violin vib C5 と表示された Split を選択する。
- グループリスト上で同期されたキーレンジ C6 – G9 グループを、表裏ペアで選択する。
- LFO1 の rate と amp を 0(ゼロ)に設定する。
- キーボードの C6 を押してみる。
- テストが終わったら元の設定値に戻す。
モジュレーションのないループ(参考):(return)
すべての Wave データのモジュレーションを除去したいと思った人のために、実際のループ作成の様子をアニメでお見せしよう。GIF 5 には 2 波長構成のループが映っているが、これは通常は 1 波長で良い。このループだとモジュレーションは発生しない。
途中でツールバーのボタンを押して、オーバーレイを有効にしている。
オーバーレイを使用するとループの作成がとても簡単になる。それと、周期的に変化するエンベロープを持つ Wave データでは、ループの位置によって音程が大きく変わってしまうことがある。
もしそうなったら、ループ開始位置を変えながら納得がいくまで調整すると良い。このアニメではそこまで配慮していない。
3. サウンドフォントプログラムの修正(目次へ戻る)
1)サウンドフォントエディタで不具合を修正する
第 3 章では、第 1 章で採り上げた不具合のうち、サウンドフォント側に問題があると思われる不具合を、サウンドフォントエディタで修正する方法を例示する。
第 1 章の内容は、TX16Wx の開発機能の簡単なチュートリアルとして活用できるように工夫したので、修正項目数と修正結果の単純さに比べてかなり長い章になった。しかし、この章はサウンドフォントエディタのチュートリアルにするつもりはないので、それほど長くはならない。
サウンドフォントエディタダウンロードサイト:
SynthFont が Viena ダウンロードサイトだ。参考として Polyphone のダウンロードサイトも挙げておく。
SynthFont:Viena and Viena64(1.131)
POLYPHONE:POLYPHONE 2.0
色々試してみたが Polyphone では、内臓キーボードによる Mod LFO の試聴確認ができない 。Instrument と Preset の両方でそうだ。私の使い方が間違っている可能性が大きいが、Polyphone 側の問題である可能性もある。なので、私はもっぱら Viena を使っている。
1)サウンドフォントエディタで不具合を修正する
では、第 1 章の【プログラム不具合の実例:見てわかる不具合】で例示した Contrabass の不具合を、Viena の 設定項目一覧表を使って修正してみよう。
それと、第 2 章のモジュレーションの項で説明した【偶然組み込まれたモジュレーション】の発生要因となる設定情報を Fig 1 で見ることができるので、それについても少し説明する。
Preset の修正:
Fig 1 は TX16Wx の変換対象となるプリセット(Preset)Contrabass の設定一覧表だ。
列はレイヤー( Layer)と名付けられている Preset の構成要素で、その中身はインストゥルメント(Instrument)だ。今はすべての Layer として単一の Instrument である Contrabass が選択されている。行は Preset の設定項目だ。
-
ベロシティスイッチの設定
設定項目【Velocity Range】を次の様に設定する。
設定項目 | 1:Bass | 2:Bass | 3:Bass | 4:Bass |
Velocity Range | 0-73 | 0-73 | 74-127 | 74-127 |
Pan | -100 | 100 | -100 | 100 |
Tune, Fine(x) | -5 | 5 | -5 | 5 |
※ テーブル中の【Bass】は Contrabass
Preset の修正はこれだけで完了だ。
TX16Wx 上で修正するのに比べて、とても簡単であることが分かる。しかも、この修正で【不足している Split の補填】も同時に修正されることを確認している。理由は分からないが、まさに一石二鳥の結果だ。
-
【偶然組み込まれたモジュレーション】の発生要因
テーブルに【Tune, Fine(x)】という項目がある。同じモノラル仕様の Instrument を 2 個使って Preset をステレオ仕様にするためには、この項目に必ず値を設定する必要がある。もし値を設定しないと、Preset を TX16Wx のプログラムに変換した時に、Pan で左右に振り分けたはずの 2 個の Instrument が 1 個のモノラル Instrument として扱われてしまう。
問題はここからだ。
【Tune, Fine(x)】に値を設定すると、ステレオ仕様になるだけではなく、再生音全体にリバーブがかかる。
そのリバーブが、再生音の中高音域にかなり目立つモジュレーションを発生させるのだ。リバーブを最小限に抑えるには、この項目に ± 1 を設定すれば良い。
比較用に使った FluidR3 GM は、Instrument の段階でステレオ仕様になっている。この項目もデフォルトでは設定されていないので、【偶然組み込まれたモジュレーション】はまったく発生しない。
追記:(2020年 3月 8日)
この要因で強いモジュレーションが発生するのは、Windows 10(おそらく 8 / 8.1 も)のサウンドドライバーの標準設定で音響効果が設定されている時だ。設定を変更してその効果を無効にすると、モジュレーションはかなり低減する。下にスピーカーのプロパティ画面の表示手順を示す。音響コントローラの設定は図を参考にして頂きたい。
スピーカーのプロパティ設定画面の表示手順:
- Windows 標準音量設定
スピーカーアイコンを右クリック >【音量ミキサーを開く】を選択 > 画面のスピーカーアイコンをクリック
- EarTrumpet
スピーカーアイコンを右クリック >【Windows レガシー】にマウスカーソルを合わせる>【再生デバイス】を選択 > 画面のスピーカーアイコンをクリック > プロパティボタンをクリック
Instrument の修正:(return)
Fig 2 は Preset の Contrabass の Layer の要素となる、Instrument の Contrabass の設定一覧表だ。列は Wave データから作成されるスプリット(Split)で、行は設定項目だ。
-
Split キーレンジ設定ミスの修正
この修正は簡単だ。【7.Contrabass F3】のキーレンジを 54-59 に修正すれば良い。【6.Contrabass D3】を 50-52 に修正しても構わない。一覧表の直接入力は、対象のデータをダブルクリックして編集可能にしてから実行する。
うまく行かなかった修正:(return)
第 2 章の【モジュレーションの設定】の項で説明したことをサウンドフォントエディタを使って実行するには、Instrument に設定されているモジュレーションの設定を外して、Preset の 各 Layer のモジュレーション設定項目に、ベロシティ領域に対応した値を設定すれば良いはずだ。
これがうまく行けば、Preset も改良できて、そのうえ Tx16Wx 専用プログラムへの変換も楽になると思って一度試してみたのだが、残念なことに思っていたほど良い結果は出なかった。
このページのテーマから見て今はそのことにこだわる必要はないが、これについては少し考えていることがあるので、いずれ他の機会に発表しようと思っている。
あとがき:(目次へ戻る)
今回色々テストしているうちに一つのことが気になりだした。
TX16Wx 以外のサウンドフォントプレイヤーのユーザーがプリセットの諸設定や構成を知るには、サウンドフォントエディタを使う以外に方法はない、ということに(今更ながら)気が付いたのだ。
考えてみればうかつな話だ。
私はほとんどの場合 TX16Wx を使っているので、専用プログラムの諸設定やサンプル(Wave データ)の構成などは、見えるのが当たり前だと思い込んでいたのだ。だからサウンドフォントを使う時も、TX16Wx で見たイメージが頭にあるので、改めてサウンドフォントエディタで確認するなどということは、全く考えたことがなかった。
第 3 章でサウンドフォントエディタのことに触れたのは、サウンドフォントエディタで既存のサウンドフォントを修正・改造するのは簡単だということを、各位に知って頂きたかったからだ ―― というのは建前で、本当は、今までサウンドフォントそのものについてまともに考えてこなかった私自身の怠慢を、この際少し埋め合わせしておこうと考えたからだ。