コマンドラインとは
←Back
◇Windows以前のMS-DOS時代は全てがコマンドラインで記述されていました。現在もDOSモードとして機能する事が可能です。しかし、それは単なるDOS時代の名残ではなく、BATファイルによる自動実行が可能というWindowsでは出来ない特技を持つのです。
◇実行できるのはコマンドラインで動くものだけ。Windows専用アプリは不可です。
◇BATファイルはテキストファイルです。拡張子がBATである事で認識されます。専用の作成ソフトがあるわけではなく、エディター類(メモ帳)で作成します。
◇BATファイル内では様々は命令文がありますが、ここでは、それを理解する必要はありません。1行で1命令という決まりで、コマンドライン実行ソフトと、そのソフトに対する命令文をスペースを挟んで記述します。
◇1行1命令という事で、複数のソフトを連続して実行する事が、非常に便利な機能なのです。
◇コマンドライン用の実行ソフトとBATファイルは、Sound
Fontと同じフォルダに入れてください。複数のフォルダで作業したい場合は、フォルダごとに実行ソフトとBATファイルを置きます。つまり、命令が及ぶ範囲がフォルダ内に限られます。
(PATH指定場所にという方法もありますが難しくなるのでスキップ)
Sound
FontをPCに読み込むのは通常、SoundFontコントロール-AudioHQを使って、それぞれのバンクに割り当てます。
このソフトはコマンドラインで同じ事をします。
何故コマンドライン?
複数のsf2を連続して読み込めるからです。
どんなsf2が現在PC上に読み込まれているのかは、BATファイルの中身、という事になります。後日、あの時の状態に、というときは、このBATファイルを実行するだけです。
たった一つしか読み込まない場合でも、一発クリックで、メモリ内を消去、新たにSound
Font設定ができるので便利です。
(注)Bank 0 の指定ができませんでした。 Bank 1 から指定できます。
それではBATファイル内の1行記述の方法を..
記述:
SF2LOAD [<option>] [<bank number>
<soundfont filename>]
【例】
SF2LOAD
3 TEST.sf2
------------------------------------
SF2LOAD : 実行ファイル名。
3 : バンクナンバー。
TEST.sf2 : ロードするSound Fontファイル。
------------------------------------
それぞれは、必ずスペースで区切ります。
ファイル名を例えば、test.bat のようにして保存すれば完了。
拡張子がBATである事以外制約はありません。Windows上でBATファイルをクリックするなら、ファイル名8文字という制約もありません。
これでロード完了です。
現在読み込まれているものを消去するなら、
SF2LOAD -c 3
以下の3つの文ですね。
SF2LOAD
-c
3
(注)これ以外にsf2ファイル名などを記述するとエラーになります。
全てを消去する
SF2LOAD -C
大文字のCだけを−の後に記述で、全てクリアされます。
Sound Blaster−Aのみ、B側は、そのまま生きています。
バンク3を消去して、新たにSound Fontをバンク3に入れる場合は、SF2LOADを2回実行することになります。BATファイルで自動実行するなら、2行で記述すればよいわけです。
SF2LOAD -c 3
SF2LOAD 3 TEST.sf2
となります。
コマンドライン・オプションは以下の通り。取敢えず必要なものは色違いで。
-h
Help
-d <filename>
Create a bat-file for loading all soundfonts currently in memory. Use
full pathnames.
-dist <filename>
Create a bat-file for loading all soundfonts currently in memory. Use
filenames only (suitable for distribution)
-distm <filename>
Create a bat-file (filename.bat) for loading all soundfonts in
memory. Use filenames only and include a line to play the MIDI file
(filename.mid) using mediaplayer
-c <bankno>
Clear the specified soundbank (remove it from memory)
(メモリクリア→バンク指定)
-C
Clear all soundbanks currently in memory
(メモリをクリアする!)
-n <deviceno>
Set AWE device number (for users with multiple cards)
-l
List all soundfonts currently in memory
-L
List all soundfonts currently in memory (with filenames)
(リストを出力する事ができる)
-p <bankno>
List all (melodic) presets in bank
-i
Print information about the AWE card
-v
Enable verbose mode
-nt
Do not print the program title
-t
Print the program title
残念なのは、Sound
FontのA/B切り換えができない事。全てAのみです。
SF2Comp
http://www.hammersound.net/mirrors/last_night/sf.htm
SF2Compは、sf2ファイルからWAVファイルを出力します。同時に生成されるTXTファイルを元に、sf2ファイルへ書き戻す事が可能です。
記述:
sf2comp d -agl d:\test.sf2 d:\temp\sf
【例】
sf2comp : プログラム名 |
それぞれに命令はスペースで区切ります。
-agl
Add Global Layer to every preset Creates in a text file a GlobalLayer
entry with full set of generator entries for every preset even if
this preset have no such layer in source
以上がWAVを出力する場合です。この時、Sound
Fontのファイル名と同じTXTファイルができます。上記の例だと、Strings-mono_FF.txt となります。
これは出力されたWAVファイルのリストを含みます。後に書き戻す時に必要です。
◇この時点でWAVファイルが出来ましたので、WAV編集ソフトで加工します。同じファイル名で上書きしてください。
さて、それをsf2に書き戻します。↓この1行でBATファイルを作ります.
sf2comp c -i G:\sf2cmp\Strings-mono_FF.txt G:\sf2cmp\StFF_new.sf2
となります。
(注)もちろん、実際には、自分のフォルダ、Sound Font名を記述します.
WAV出力のとき d だった命令が c になりました。これが書き戻す時です。
-i compile using [Info] part (except for
"Version" field)
Places information from the "[Info]" section into target
font. The only field that is not used is "Version".
様々な命令・スイッチがありますが、取敢えずはこれだけでOK。
一度作ったBATファイルは、それを雛形として、sf2ファイル名だけを変更すればよいです.
【応用】
何種類もBATファイルを作るのは、繁雑になるので、1つのBATファイルで幾通りかのSound Fontを指定する場合。
TEST.BAT
SF2LOAD 1 TEST-1.SF2
SF2LOAD 2 TEST-2.SF2
SF2LOAD 3 TEST-3.SF2
この状態だと、SF2LOADが3回実行され、Sound
Fontも3つロードされます。
実行しないものの先頭に”コロン”を入れます。
:SF2LOAD 1 TEST-1.SF2
SF2LOAD 2 TEST-2.SF2
:SF2LOAD 3 TEST-3.SF2
これで、2番目の TEST-2.SF2だけがロードされます。
本来のコメント行は上のようにREMと記述しますが、コロンでも結果的に同じ事になり、この方が楽です。
追加、消去など幾通りも作っておいて、必要なもののコロンを外して実行すれば、楽に変更できます。
←Back