domino/要望003/149

Last-modified: 2009-05-25 (月) 09:20:50

音源定義ファイルでPC番号を「0 ~ 127」の範囲で指定するオプション

  • ページ: domino/要望
  • 投稿者: 逃亡者?
  • 優先順位: 低
  • 状態: 完了
  • 投稿日: 2009-03-15 (日) 01:10:39

メッセージ

「<ProgramChangeEventOffset="1" />」のような感じで、
音源定義ファイル内での指定を「0 ~ 127」にするオプションを希望します。
 .
「Program Changeの情報をテキスト出力 → 正規表現で置き換え」
という感じで音源定義ファイルを作成しようと思うのですが、
その際に、出力されたテキストでは値の範囲が「0 ~ 127」になっているので、
毎回「+1」するのが大変です。
ProteusVXのテキスト出力も「0 ~ 127」だったので、一般的にはこちらなのかな? と思いました。
よろしくお願いします。


  • ちょっとよくわかっていないのですが、あくまで音源定義ファイル内でのPC範囲を0~127にしたいという事ですね?(Dominoの画面上では、1~128(もしくは環境設定で指定した範囲)) -- たかぼー? 2009-03-15 (日) 10:13:37
  • はい、音源定義ファイル内のみです。Dominoの画面上は現在の仕様(環境設定の全般(1)で設定)の方が良いです。なぜなら、その音源のGUI上の表示では、例えばDist.Gt.がPC#30と表示されますが、GS・XG音源で慣れている身にとっては、Dist.Gt.はPC#31なので、Domino上では31で入力したいためです。 -- 逃亡者? 2009-03-15 (日) 12:33:40
  • <InstrumentList PCMin="0">とかかなぁ・・・(定義ファイルのオプションが定義ファイルに書かれてるのって変な感じがするのですが(^^;)。もしくは、動機がProteusVX用定義ファイルの自動生成なのでしたら、そういったコンバータ作りましょうか? -- たかぼー? 2009-03-16 (月) 09:24:52
  • そうですね。お願いしても宜しいでしょうか? 実は動機はサウンドフォント(「.sf2 processor」や「cfg for soundfont」で出力したテキストを編集)でして、私的には ドラッグ&ドロップなどで .xml内の「PC=""」の数値を +1 する、という機能があればそれで足ります。よろしくお願いします。 -- 逃亡者? 2009-03-16 (月) 20:53:20
  • xmlを直に変えるのは誤動作が怖いですね^^;;; それならPCMin="0"案かなぁ・・・。 サウンドフォントファイルをドロップしたら音源定義ファイルが出来上がっちゃうぐらいのコンバータがあれば、一般の方でも使えるんじゃないかなぁとも思ったのですが、そんなのは要らないですか? -- たかぼー? 2009-03-19 (木) 16:23:25
  • サウンドフォントの仕様書発見:http://www.soundblaster.com/soundfont/sfspec21.pdf -- たかぼー? 2009-03-19 (木) 16:37:37
  • 是非とも欲しいです!>音源定義ファイルが出来上がっちゃうぐらいのコンバータ 設定ファイルでInstrumentList、DrumSetListを分けて出力するようにも出来る形が良いですね。そうすれば、「InstrumentList、DrumSetListを抜いた、サウンドフォントプレーヤーの音源定義ファイル」を用意して、「あとは各自で使用するサウンドフォントのInstrumentList、DrumSetListをコンバータで作成して、追加(コピペ)して下さい。」な感じで、うまく行きそうな予感がします (// -- 逃亡者? 2009-03-20 (金) 00:56:31
  • 一般の方でも使えるように、基本的には「sf2ファイルをドロップするだけ」ぐらいにしたほうが良いかなと思っています。なので、逃亡者さんにご協力いただけるのでしたら、例えば穴あきになっている定義ファイル(サウンドフォント定義ファイル汎用のCCMや初期データ辺りだけが書かれた物)を作って頂いて、InstrumentListとDrumSetListはsf2ファイルから得られた情報を元に動的に生成し、それらを最後1ファイルにして書き出す感じにしようかと思っています(もちろん別途細かい機能を付けても構いませんが)。 ちなみに、もしご存知でしたら教えて頂きたいのですが、サウンドフォントの音色はプリセット番号とバンク番号で管理されているようなのですが、PC#=プリセット番号+1で良いですよね? バンク番号(0~128?)はMIDIのBank Select MSB/LSBでどのように指示すれば良いでしょうか?(BANK0~127の場合MSB=0~127、 BANK128の場合→LSB=1, MSB=0てな感じでしょうかね)。それから、「この音色はドラムセットだ!」という確かなフラグは中にあるんでしょうか?それともbank=128をドラムセットとして扱えばよいでしょうか? -- たかぼー? 2009-03-23 (月) 14:56:49
  •  1. 「Module」的なフォルダに、「サウンドフォントのMAPを追加する定義ファイル」を用意する。
     2. オプション設定で「GS配列 or XG配列」、「MAPを追加する位置(一番上 or 一番下)」を設定する。
     3. sf2ファイルをドラッグ&ドロップすると、1. の定義ファイルにサウンドフォントのMAPが追加された定義ファイルが書き出される。
    このような感じでどうでしょうか? 例えば、Panpotの値の範囲が「-64 ~ +63」か、「0 ~ 127」か、というような好みの問題もありますので、「指定した定義ファイルに、サウンドフォントの音色MAPを追加する」という形の方が良さそうな気がして来ました。
    bankについてですが、sfzは XG配列として扱っているようです。つまり、「bank 0~127」は「MSB="0" LSB="xx"」に、「bank 128」は「MSB="127" LSB="0"」になります。
    ただ、利用者が多いであろう TiMidity++ では、GS配列で使われていることが多いような気がします。この場合は、GS配列なので、「bank 0~127」は「MSB="xx" LSB="0"」で、「bank 128 (というかドラムセット)」は「MSB="0" LSB="0"」で指定していると思います。人によって、どちらを使うか分からないので、「GS配列 or XG配列」の選択が出来た方が良いと思います。ドラムセットのフラグについては分かりません。多くの場合はドラムセットは「bank 128」にしてあると思うのですが、それ以外の bank がドラムセットになっているものもあるようです。例えば、SGM-V2.01は bank 127と128とで別々のドラムセットになっています。 -- 逃亡者? 2009-03-23 (月) 20:28:17
  • 情報ありがとうございます。「指定した定義ファイルに、サウンドフォントの音色MAPを追加する」は、どんどんファイルサイズがでかくなってしまい、メモリを圧迫する事になりますので(特定のmapだけ読み込むわけではないため)1サウンドフォントにつき1定義ファイルの方が良いかなと思います(ついでに、消すのも更新するのも楽ですしね)。Panpot等の好みの問題は確かにありますが、MSGSのユーザーから要望が上がってきたことはありませんし、逃亡者さんのお好きな方固定で問題ないかと思います^^; ん~、SF2内のBankをBank Select MSB/LSBで扱うルールは、各ソフトウェアやソフトウェアの設定によって変わるという事ですね? GS系は、bank0とBank128がどちらもMSB="0" LSB="0"になってしまうと思うのですが、これはプレイヤ側にリズムトラックかそうでないかを設定する項目があるのでしょうか? -- たかぼー? 2009-03-24 (火) 09:14:44
  • そうですね。TiMidity++の場合は、次の画像のようにデフォルトのドラムチャンネルを設定する項目があります。
    timidity_drum.png
    また、GMモードおよびGSモードの時はGS互換な感じになっていて、GSのドラム追加のエクスクルーシブ(F0 41 10 42 12 40 1x 15 0y CS F7)で切り替えられるようになっています。(XGモードの時はエクスクルーシブではなくて「Bank MSB = 127」でドラムになるようです。) -- 逃亡者? 2009-03-24 (火) 23:31:04
  • >メモリを圧迫~問題ないかと思います^^; なるほど、了解しました。用意する定義ファイルは「<ModuleData Name="" Folder="Soundfont (TiMidity++、sfz)" ...>」な感じで、Nameは入れない方が良いでしょうか? -- 逃亡者? 2009-03-24 (火) 23:32:53
  • いろいろありがとうございます。Nameはそうですね、とりあえず空けておいてください。 -- たかぼー? 2009-03-25 (水) 08:56:04
  • 試作してみましたので、一度見て貰えますでしょうか?→filesf2domino_dev000.ZIP おかしな所や不明な点などありましたら、教えてください。同梱されているdefault.xmlというファイルを逃亡者さんにいろいろいじっていただきたいと思います。(sfzとtimidity用とで別けた方がいいでしょうかね??) -- たかぼー? 2009-03-25 (水) 15:27:14
  • ありがとうございます。いくつか試してみましたが、InstrumentListに「EOP」というNameの不要なデータが加わってしまうようです。場所はサウンドフォントによって、「PC=256 Bank=255」だったり「PC=1 Bank=0」だったりします。後はドラムの「Tone Name」が無いことですね。これはdev000だからでしょうか? 用意する定義ファイルですが、sfz用とTiMidity++用とで 約 200KBほど容量に差が出ると思われますので、分けられる方が良いと思います。その場合は、TiMidity++はcfgファイルを作ることでXG配列に対応させることも可能なので、サウンドフォントプレイヤの選択肢は「TiMidity++ (GS Map)」、「TiMidity++ (XG Map)」、「sfz」のような感じで 3つの形でお願いします。TiMidity++はGS MapとXG MapとでDefaultDataの内容が変わるので(リセットだけですが^^;)、用意する定義ファイルは 3つになります。 -- 逃亡者? 2009-03-26 (木) 23:33:23
  • Preset名EOPがプリセット情報の終端のようですので、それ以降の処理を中断したいと思います(名前一致だけだとまずそうな気もしますが)。 ドラムのTone Nameはまだ何処に存在しているのか仕様書から読み取れていません^^;;なにせ英語なので (T-T  プレイヤの選択肢を3つに増やすのは了解です。 -- たかぼー? 2009-03-27 (金) 09:43:58
  • ちなみに、SGMで各ドラムセットの各ノートに割り当てられている楽器名の一覧表って何処かにないでしょうかね? ToneNameを実装する上で正解が知りたいと思いまして。例えば、ステレオのサンプルは、LとRでサンプル名が異なりますので、どうするのか辺りなどなど。 -- たかぼー? 2009-03-27 (金) 11:39:11
  • Tone Name情報怪しいですが、一応出るようになりました→filesf2domino_dev001.ZIP 名前と音は合っていますかね??(^^; -- たかぼー? 2009-03-27 (金) 14:38:33
  • ありがとうございます。SGM-V2.01で鳴らして確認してみました。見た感じ、「(L)」は無くした方がスッキリと見やすくなりそうです。・・・そのくらいなら自分(手動)でやった方が良いですかね (^^; とりあえず、「PC#49 ORCHESTRA」がおかしかったです。「0-9」と「10-21」のTone Nameが同じで、「17-21、25」は音色が無いっぽい(音が鳴らない)のにTone Nameが出力されています。また「41-53」はTimpaniの音が鳴るのに、Tone NameがSTANDARD 1と同じになっています。
    それから、追加の要望になるのですが、
    sf_pc.png
    MAPの出力方法を音色リストとドラムセットリストのそれぞれ別に「全部まとめて」、「8個ずつ分ける」、「16個ずつ分ける」のように選択出来るようにならないでしょうか? GSm、XG2k、XGbなどで、PC#(P)内でドラッグしなくても済むようにという意図でそのようにしているので、サウンドフォントでも行いたいのですが。 -- 逃亡者? 2009-03-27 (金) 20:49:05
  • あ、そういえばSGM-V2.01にはCakewalk INS File(SGM-V2.ins)が付いていました。更新日時がちょっと古いのが気になるところですが、PC#13 ---とPC#65 --SGM drum kits --以外は載っているっぽいです。 -- 逃亡者? 2009-03-27 (金) 20:59:16
  • 遅くなりました。m(_ _)m 定義ファイルが用意出来ました。fileok_sf2.zip -- 逃亡者? 2009-03-28 (土) 22:14:22
  • ありがとうございますm(_ _)m いろいろ修正したものをアップいたしました→filesf2domino_dev002.ZIP オーケストラもたぶん大丈夫だと思いますが、ご確認をお願いいたします。ちなみに、MAPの中身が空っぽだと不正終了してしまいますので、次のDomino本体修正版で、落ちないように手を入れたいと思います。 あとですね、ファイル構成は今回のもののようにしようと思っているのですが(逃亡者さんの定義ファイルを同梱+readme.txt追加)、一般公開にあたって何かまずい事がないかもご確認ください(Readme.txtでもっとしゃべらせろだとか)。 -- たかぼー? 2009-03-30 (月) 11:55:13
  • オーケストラの修正を確認しました。しかし、ドラムセットリストのMAP出力方法の選択が無効になっている(音色リストの設定になる)ようです。それと すみません、定義ファイルとテキストを若干修正しました。 fileok_sf2_2.zip こちらに変更をお願いします。m(_ _)m Readme.txtについては、特に問題ありません (^^) -- 逃亡者? 2009-03-30 (月) 21:08:24
  • 遅くなりましたが、ご連絡ありがとうございます、正式版候補になります→filesf2domino_dev003.ZIP (Domino本体の修正も早めにやりますね) -- たかぼー? 2009-04-02 (木) 09:10:27
  • ありがとうございます。MAP空っぽの修正版とともに確認しました (^^) そして、何度もすみません。最終調整な感じで修正しましたので、fileok_sf2_3.zip こちらに変更をお願いします。m(_ _)m -- 逃亡者? 2009-04-03 (金) 12:13:14
  • えーと、こちらの要望どうしましょう??ProteusVXも必要でしょうかね?(まだ完了にするのは早いかな?) -- たかぼー? 2009-05-18 (月) 20:59:22
  • この前CASIOのキーボードのマニュアルを見たのですが、そちらもPCのナンバーが「0~127」でした^^; やはり、<InstrumentList PCMin="0">があった方が良いかもしれません。 -- 逃亡者? 2009-05-18 (月) 23:48:07
  • 表示上は環境設定で切り替えられますから、ユーザー目線では問題無いと思うんですよね。定義ファイルでPC番号がずれるだけですが、ずらせば良いだけの話でもありますし。 -- たかぼー? 2009-05-19 (火) 01:19:15
  • 「PCを+1するスクリプト」あるんですが良かったら使います?公開するつもりは無かったので適当ですけど。 こちら -- ゆき? 2009-05-19 (火) 14:02:37
  • 遅れてすみません。m(_ _)m >ゆきさん ありがとうございます。ゆきさんのツールで十分な感じです。解決しました (^^)  >たかぼーさん 私的問題点は手軽に「+1」する方法が分からない、というものだったので、ゆきさんのツールで解決しました。このまま完了で問題ありません。m(_ _)m ちなみに、以前はエクセルで「+1」を貼り付ける、なんてことをやっていました^^; -- 逃亡者? 2009-05-25 (月) 00:03:37
  • 了解です~、ゆきさんもありがとうございますー -- たかぼー? 2009-05-25 (月) 09:20:41