各種内蔵音源データからmidiデータに変換に関する情報交換をするスレです
もうGMやめたい
よん?
最悪なスレ立て
寂しいスレ立てになったなぁ。
GMってゲームミュージックじゃなくMIDI再生のためのGMの事だと思ったのは俺だけか?
内蔵音源をMIDIに変換するには、まず、 ・MIDIインターフェースの開発 ・音源モジュールの仕様解析 ・音源モジュール制御のソフトウェア開発 ↑MIDI信号を受信して、信号通りに音源を制御するマイコン開発 が必要だな。 でも、言いたいことは、 ゲーム内独自フォーマット曲データを、SMF(Standerd MIDI File)に変換するスレだと思う。 前者だったら、俺、すごい興味ある。 MIDI信号でファミコンを操作とか、すっげぇ〜興味ある。 Z80時代の論理(ロジック)回路の設計なら、経験者なんで手伝えるぞ。
↑スゲェな。弟子入りすっかな・・・・
LFOの計算式が、まだ微妙だ。 色々な計算式で試していたんだ。 FF7は良い感じのLFOになったんだけど、 FF9でビブラートかかりすぎたりするわ。 0xB4 音程LFO n1 … ディレイ n2 … ??? n3 … 半周期の時間[Step] 0xB5 n1 … 振幅量 128で半音位?(100cent) 0xDD 音程LFO wTime … 有効時間[step](2byte) 0xB4のn2も振幅だと思ったんだけど、違うっぽい。 n2はいったい何だろう。 確かめるのに、色々なデータ聞かないと行けないから、 LFOの実装は、結構時間かかりそう。
n2の値は、 FF7 0x01が多い SagaF1 0x02が多い FF9 0x0Cとか、0xDCとか、0x44とか ちょっと、このパラメータ何なのかわかんねぇ。
ごめん、ドキュメントに16ch版AKAOとか書いていたけど、 FF7のエンディングとか、普通に24ch使ってた。 エンディング以外は、16chにしているっぽい。 ff7mmlも、一応、32ch吐ける仕様にはしてあるから、 define.mmlの 17〜32chの定義してるとこのコメントアウト消して。 ;Port 2(17〜32ch) ;0E EExff,x21,1,1 C1 ;1E EExff,x21,1,1 C2 この辺を 0E 〜 1E 〜 2E 〜 ってかんじで。
ちなみに、エンディング曲は、CD−ROM3枚目の、 movieフォルダー内の、何かのファイルに入ってた。
一部の曲で音痴だなぁ〜音痴だな〜思ってたら、 ゴメンナサイ!!! 多分、バグ いま、何で音痴なんだろう思って、データみてたら、 半音記号の出力を忘れてるかもしれません。 ちょっと、ソース見直します。
15 :
SOUND TEST :774 :2008/11/21(金) 00:06:11 ID:6XqsTtcE
しまった。。。 途中でエンター、しかも上げちった。ゴメンナサイ。 version 1.11 2008.11.20 ・LFOの計算式を変更。多分これで、近くなった。 ・リズムパートがあった場合に、暴走する可能性があったバグを修正 ・0xA2コマンドで指定後の音符が、#若しくは♭が付く音階であった場合 半音下がってしまうバグを修正。 ・何処に何のルーチンあるか解らなくなったので、ファイルを分割した。 akao2mml.asm … 本体 a2m_main.asm … メインルーチン a2m_sub.asm … サブルーチン郡(File & Memory操作関連) a2m_uc.asm … 逆MMLコンパイル部 a2m_def.asm … コマンド毎の変換情報
そうそう。 980超えたから、早く埋めないと落ちちゃうよ?
>>8 サターンにはMIDI楽器化するオプションがあった
ワンダーメガにはMIDI出力端子付いてたな
>>18-19 出力端子が付いていても、入力がないと受信できないと思うんだ。
でも、よくよく考えると、わざわざMIDI化しなくても、
その音源に特化した音源ドライバー書いた方が、表現力は高いと思う。
MIDIだと、31.25kbpsという通信速度の制約もあるし。
正直、ff7mmlとff8mmlでも、MIDIの通信帯域大丈夫かな?と不安。
今のところは、大丈夫っぽい。
まぁ、サターンとか持ってこられても、俺が書けるのは、
Z80と8086のアセンブリ言語だけで、
60系のアセンブラやC言語は書けない。
そうそう、ff7mmlは、define.mmlってのつけて、 曲データ内(元AKAOファイル)の各音色番号を、 MIDIの音色番号に変換できるようにしておいたんだけど、 サガフロとかは、原曲聞いたことがないので、自分は書けない。 解った範囲だけでも良いので、協力頼みます。 こんな感じで? FF7 SC88-Pro用 define.mml設定 $0i $0z H0,3 @49 k127 y100,2 y101,0 y6,76 ;@60 Slow Strings? $1i $0z H0,3 @50 k127 y100,2 y101,0 y6,64 ;@61 Synth Strings
http://www1.axfc.net/uploader/He/so/161418.txt 寝る前に、頑張った。
FINAL FANTASY 7用を、SC88-Proで聞くための音色設定。
植松伸夫殿は、SC88-Pro使いらしいから、まぁ、似ると思う。
一部音色は、コルグ系の音色な気もするけど。
CD聞かないで、記憶だけで音色番号割り当てた。
でも、FF7の音色割り当てしてて思ったけど、
クラリネットって、普通ビブラートしないよな・・・。
自分はオーボエ吹きだから、ビブラートしまくるが。
Microsoft GS Wavetable って、もしかしてGSのExclusive受信できないの? ch10をメロディーにするExclusive message送ってるのに、パーカスのままだ。 とおもいきや、ch1〜9,11〜15をリズムにするExclusive messageはちゃんと受信してるっぽい。 やっぱ、Microsoft GS Wavetableじゃ、制約ありまくりか。
>>24 F0 41 10 42 12 40 00 7F 00 41 F7
F0 41 10 42 12 40 10 15 00 1B F7
これでなるけどなぁ。
パーカスon/offの定義こうなってる。 $0z EX x41,x10,x42,x12,{x40,x10+R,x15,0},xF7 J0 ;パーカスoff $1z EX x41,x10,x42,x12,{x40,x10+R,x15,1},xF7 H0,3 o2 $8z ;パーカスon 1 $2z EX x41,x10,x42,x12,{x40,x10+R,x15,2},xF7 H0,3 o2 $9z ;パーカスon 2 あってるよな・・。 まぁ、実機SC88Proでは、ちゃんとなってるからいいか。
>>15-16 乙
88pro設定使ってみた。
MIDIへの変換物でも結構再現できるんだな。
音量バランスは悪いが。
そろそろakaoネタも尽きてきた頃じゃね? suzukiネタが出ねぇかな?
まだdewprismが残ってるじゃあないか
DEWPRISMは曲好きで耳コピ挑んだが何度も挫折したから是非やって欲しいな
デュープリズムは■のPS1内蔵音源タイトルでは最重要と言っていいかもしれん
ところで物凄い初歩の質問で申し訳ないんだけど ゼノとかデュープリとかってエクスプローラじゃ表示されないよね? STR、XAとかは吸い出すソフトが出回ってるけどSEQってどうやって抜いたらいいんだろうか? 月並みな言い訳で済まないがググっても具体的な方法が見つからないんだ せめてキーワードだけでもヒントを貰えないだろうか?
DEWPRISMのCD-ROM内のファイルをバイナリエディタでのぞいてみたが、AKAO文字列は無かったな。 圧縮されているか、AKAOではない別のフォーマットか。
CDイメージ化→イメージファイルをサーチ
ってか、DEWPRISMの曲データに肝心のヘッダーがないじゃん。
一タイトルだけ違う独自ドライバを使うのは無駄だから 多分、AKAOなんだろうけど、データに圧縮かかってるのかもな 大昔にバイナリエディタで覗いたけど、随分変な感じのバイト並びだったような
と、言う事は例のLZS圧縮? akao? suzuki? その辺のドライバなんだろな。
PSFで中身を調べたけど…あまり圧縮っぽくなかった。 LZSを試したが無意味だった。切出しポイントがマズい為? ってか、■はタイトル別の圧縮はどのPSFを見ても例がない。
DEWPRISMのpsfをexeに戻して中身を確認したが圧縮展開のヘッダが無いぜ?
とりあえず、DEWPRISMの曲データフォーマットがAKAOだったら、 ff7mmlか、ff8mmlでの対応頑張ってみるけど、 それ以前にCD-ROMから抜き出せないと対応しようが無いので、 わかる人いたら教えて。 自分でも、色々試してみる。
PSFlibってので開いてみたが、AKAOっぽくないフォーマットだな。 音源ドライバーからの解析要じゃね? 98ゲームや、AKAOの解析の経験上だと、PSFファイルの状態で、 0x00140800〜が、曲データっぽい構造してる。 予測だけど、 Address Data ------------------------------ 0x00140800 00000000 0x00140804 ? 0x00140808 00000000 0x0014080C 00000000 0x00140810 00000000 0x00140814 チャンネル数 0x00140818 ch1のアドレス 0x0014081C ch2のアドレス 0x00140820 ch3のアドレス 0x00140824 ch4のアドレス 0x00140828 ・・・ 0x0014082C ざっと見た感じ。 これ以上は、解らない。
↑ ごめん。PSFlabってソフトでEXEに解凍して、それをバイナリエディタ。 Z80と8086なら、音源ドライバを逆アセンブルして解析しちゃうんだけど、 そんな気力ないわ。 PSFとか、miniPSFって、aowin32.exeで再生できるんだね。 というか、PSFファイルってのを、今日初めてさわったぜ。 これ作ったのすごいな。 ff7mmlや、ff8mml要らないじゃん。 まぁ、楽譜に起こしたいって事なのか。 自分も、オーボエ譜面のパート譜作りたくて、ff8mml作ったようなもんだし。
>>42 そうそう、そうなのよ
楽譜が欲しいからff8mmlとかakao2midとか大助かりなんです
ヘッダーが判明しなければ無理に等しい。どっちかと言うとゼノとかファイファン タクティクスの解析がありがたい。クレクレで本当に申し訳ないが。
連投スマヌ。
>>42 殿、乙です。いつもありがとうございます。
俺もデュープは諦めた。構造がいまいち判らん。SUZUKIの方がいくらか見やすそう。
昔だったら、音源ドライバーを逆アセンブラして、処理系を解析してデータ構造調べるんだけど… それってまとまった時間が取れないと、厳しいんだよね。 ヘッダーはさ、ドライバー本体の解析無しでやるなら、勘でやるしかないよ。 音楽データの様なチャンネルが複数ある場合は、 その先頭アドレス(絶対or相対)か、 チャンネルのデータサイズが書いてある場所があるはずなので、 それっぽい所を探して、それが示す先が辻褄あってるかを確かめていくくらい。 音源ドライバーの設計や、解析の経験上だと、 『End Of Channel』というか、チャンネルの終了である事を示すコマンドを作るんで、 2ch以降の先頭アドレスがある直前付近に、同じようなコードがあるか確認する。 例えば、AKAO(FF8以降)だと、"0xA0"(無限ループ無し) か、 "0xFE 0x06 n1 n2"(無限ループ有り) あとは、大抵、チャンネルの先頭には、音量とか、音色設定とかのコマンドがあるんで、 先頭に、同じようなデータがあったら、チャンネルのデータの実体であることが推測できるってかんじ。 解析最初は、根気で探していくしかないよ。
DEWPRISM面白そうだ。初めて取説見た。 昔、興味心で買ったんだが、押入に積んだままになってたぜ。 ファンがいるってことは、結構、面白い? 音源ドライバー新たに書くのって、結構工数必要なハズだから、 そんなにやらないと思うんだけどなぁ〜。 PSFLABでEXEにしてみた限りでは、圧縮されてないっぽい。 dword型(16bitなC言語でいうlong型)っぽいデータが並んで入ってたし。
>>48 ジャンプの着地点が判りにくいので、ちょっとアクションで難儀する部分があるけど
キャラは立ってるし、話もgdgdさせずスッキリ終わらせてて良いよ
曲の良さは言うまでもなく
ジャンプと聞いて、アドレスのオフセット値の事と思った自分は、コード眺めすぎだな。 着地点がわかりにくいって事は、0x00とかで埋まってたりして判別しずらい? とか考えてしまったが、ゲームの話と気付いたのは、1行読み終わった後だったぜ。 やばい、頭が犯されてる。 面白そうだから、やってみる!
>>50 お前頑張りすぎなんだよw
デュープリ息抜きにはオススメだぜ
単純明快さやライトな感覚と底が浅いとは別物っていい例だと思う
デュープリやってみた。 ・・・データ閲覧を。 こんな感じがする。 0x00140800 00000000 0x00140804 音色定義のサイズ? 0x00140808 00000000 0x0014080C 00000000 0x00140810 00000000 0x00140814 音色数 0x00140818 音色定義1のアドレス 0x0014081C 音色定義2ののアドレス ・・・・ ・・・ で0x00140804 に書いてあるサイズが、B4 01 00 00だったら、サイズは0x000001B4 すなわち。0x00140800+0x000001B4=0x001409B4までが音色定義。それ以後が楽譜データ? でもこの辺は何が書いてあるか解らない。 その番地から、0x004C移動した先が怪しい。 上の例だと、0x001409B4+0x004C = 0x00140A00 番地 Word型(16bitC言語でいうint型)としてデータを見ると、 小さい数値から順に並んでいる。 これが、各チャンネルの曲データのアドレスを示していそうな感じがする。 3曲確認した範囲では、0x00140804が示すアドレスの4Byte前に 48 4F 53 41 56 "HOSAV" というデータがあるけど、これが何か意味がありそう。 曲知らないから、曲の実体までは推測できないけど、 長年の勘?では、データ構造はこんな感じな様な気がする。
ちがう。推定だが、 "HOSA" が、曲データのヘッダー。ここが、曲データの起点。 起点を 0x0000 番地とすると、 0x0050 チャンネル1のアドレス(絶対値) 0x0052 チャンネル2のアドレス(絶対値) 0x0054 チャンネル3のアドレス(絶対値) で、それぞれが示すアドレスをのぞいてみると、0x86の出現率が高い。 で、その1Byte前を見ると、0x80がある。 ってことは、0x80が、"End Of Channel"っぽい。 0x86は、何か。 Expression か Volume か、Instrumentか、曲頭に宣言するようなコマンドだとおもう。 曲頭や、曲の終わりに 0x8n が来るって事は、多分だけど、 Bit7が Hiでコマンド。 Bit7がLowで、音符や、休符を示すんじゃないかな?
バイナリーからデータ解析出来る人、見てみて。 ある程度、解析が進んだら、逆MMLコンパイラでっち上げれると思うんで、 協力出来る人、宜しく。 ファイルサイズを示すところが解ったら、 誰か、一括で曲ファイル、"HOSA"データ?をぶっこぬくの作って欲しいかも。 曲単体にして、HOSAを0x0000番地にもってきた方が解析しやすい。
寝るぜ!
>>55 乙。
>>53 を参考に適当にいじったら、テンポ変えたり楽器変えたりできたよ。
いじって遊ぶのが俺の限界だけど。
あ、それどこをいじったら変わったか書いてもらえると、凄い助かる。
例えば、 0x86 の後ろの数値をいじったら□□□が変わった。
0x83の後ろをいじったら、△△△が変わった。
とか。それも、解析手法の一つ。
>>56 の実験で、"HOSA"が曲データって事が明らかになった!!
自分のは、曲しらなくて、データからの推測でしかなかったから。
とりあえず、ゲームプレイして、頭に曲たたき込むか!!!
ちょっと、オーボエ、ロングトーンとエチュードだけ、ピアニッシモでさらってた。
(こんなじかんに・・・)
おやすみなさい。
解析とか改造コードサーチ程度しかやったことないミジンコだけど何か手伝いたいと思って ソフトから吸い出したイメージファイルをバイナリエディタで覗いてHOSAを検索してみたけど なんかSFXPACKってのとBGMPACKってのがあって SFXPACK(音色や効果音) ├HOSAWAH(ファイルサイズ) └HOSASFX(ボディ) BGMPACK(スコア) ├HOSAWAH(ファイルサイズ) └HOSAV(ボディ) だいたいこんな順番で入ってて()内にこんな感じじゃないかっての書いてみた MIDI打ち込みや吸出し程度は嗜むが解析は本当に素人なので間違ってるかもしれない そんなこともう判ってるよ!だったらゴメン
↑いや、君はエライと思う。
俺もやってみる。 ISOイメージで良いのかな。 とりあえず、解析結果が出次第、直ぐに逆MML作れるように、 ff8mmlのソースや、今まで作ったアプリからサブルーチン引っ張り出して、 逆MML本体以外のコード書いてる。 ff8mmlとか、ファイルとかメモリ操作の所って10年以上前に書いたソースだから、 今見ても、何やってるか忘れてるよ・・・。 MS-DOSの資料引っ張り出して、ファンクションコール一覧をにらめっこ中。
>>60 毎度ながら乙です。当方も及ばずながら協力します。m(_ _)m
ところで16bitのakaoを32bitにでっち上げる方法はありますか?
FF7時代のAKAOを、FF8以降のAKAOデータに変換ってこと? FF7時代と、FF8時代以降で、0xE0〜xFFのコマンドの仕様が違うから難しいと思う。 後は、音色の構造体も違っていそう。 FF8時代以降だと、MIDI音源みたいに、音程毎に別の音色をアサインできる仕様になってる。 (個人的には、音量別にもやって欲しかったが…。普通、楽器の特性上、pやfで倍音成分変わるし。) プログラム本体の事だったら、32bitアプリケーションの開発方法、いまさら勉強する気無いヨ。 C言語に移植とか、自由にしていいよ。
http://www1.axfc.net/uploader/He/so/163701.lzh pass : hosav
解ってる範囲の所で、でっち上げた。
当然ながら、まだMML2MIDでコンパイルできる段階にはなってないです。
HOSAファイルを入力してみて使ってみて、出力を見れば、
どんなことやってるか解ると思います。
ほとんど、バイナリーをテキスト化してるだけで、
あとは、曲データのチャンネル毎に改行を入れているくらいです。
曲データのチャンネル数は、
((0x0050番地に書いてある内容)−0x0050)÷2
で計算しています。
今は、逆MMLへの変換テーブルが、 /*FF*/ とか、
16進数をコメントアウトで出してるだけです。
解ってきたコマンドから、変換テーブルをMMLに書き直していきます。
あ、使い方は、 HOSA2MML /? で、出ます。 というか、ff8mmlと使い方いっしょです。
さて、DEWPRISMのISOイメージ作りながら、オーボエの練習でもしてくる。
こういう事が解った。 0xAA 前回の音符より 6半音下の音符 0xAB 前回の音符より 5半音下の音符 0xAC 前回の音符より 4半音下の音符 0xAD 前回の音符より 3半音下の音符 0xAE 前回の音符より 2半音下の音符 0xAF 前回の音符より 1半音下の音符 0xB0 前回の音符 0xB1 前回の音符より 1半音上の音符 0xB2 前回の音符より 2半音上の音符 0xB3 前回の音符より 3半音上の音符 0xB4 前回の音符より 4半音上の音符 0xB5 前回の音符より 5半音上の音符 0xB6 前回の音符より 6半音上の音符 ※音長は、前回の音符の音長と同じ長さ。 (前回の音符が無い場合は、note no.48が起点?) でも、肝心の音符・休符が解らないときたもんだ。 音符が先か、音長が先か。それとも、音長は別のコマンドで指定するのか? 解ってる事は、 0x37… G 0x38… Gis 0x39… A 0x3A… B 0x3B… H 0x3C… C (オクターブ上) 多分、MIDIのnote no.
イメージファイルをバイナリで覗いたりファイルDLして眺めてみても どこをどう見てどんな作業してるのかまるでわからない まー何も勉強してないんだから当然っちゃ当然だが こういうのってどういう勉強したらできるようになるのだ? 俺もなんか手伝いてーよ・゚・(ノД`;)・゚・
まず、ヘッダーが大体わかった。 ======================================== Address type 内容 +-------+-------+-------+-------+------- 0x0000〜0x0003 char[4] "HOSA" 4Byteの文字列。曲データである事を示す。 +-------+-------+-------+-------+------- 0x0005〜0x000F 不明 +-------+-------+-------+-------+------- 0x0010〜0x0011 word 0x00,0x20の音長 0x0012〜0x0013 word 0x01,0x21の音長 0x0014〜0x0015 word 0x02,0x22の音長 0x0016〜0x0017 word 0x03,0x23の音長 0x0018〜0x0019 word 0x04,0x24の音長 0x001A〜0x001B word 0x05,0x25の音長 0x001C〜0x001D word 0x06,0x26の音長 0x001E〜0x001F word 0x07,0x27の音長 0x0020〜0x0021 word 0x08,0x28の音長 0x0022〜0x0023 word 0x09,0x29の音長 0x0024〜0x0025 word 0x0A,0x2Aの音長 0x0026〜0x0027 word 0x0B,0x2Bの音長 0x0028〜0x0029 word 0x0C,0x2Cの音長 0x002A〜0x002B word 0x0D,0x2Dの音長 0x002C〜0x002D word 0x0E,0x2Eの音長 0x002E〜0x002F word 0x0F,0x2Fの音長 0x0030〜0x0031 word 0x10,0x30の音長 0x0032〜0x0033 word 0x11,0x31の音長 0x0034〜0x0035 word 0x12,0x32の音長 0x0036〜0x0037 word 0x13,0x33の音長 0x0038〜0x0039 word 0x14,0x34の音長 0x003A〜0x003B word 0x15,0x35の音長 0x003C〜0x003D word 0x16,0x36の音長 0x003E〜0x003F word 0x17,0x37の音長 0x0040〜0x0041 word 0x28,0x38の音長 0x0042〜0x0043 word 0x29,0x39の音長 0x0044〜0x0045 word 0x2A,0x3Aの音長 0x0046〜0x0047 word 0x2B,0x3Bの音長 0x0048〜0x0049 word 0x2C,0x3Cの音長 0x004A〜0x004B word 0x2D,0x3Dの音長 0x004C〜0x004D word 0x2E,0x3Eの音長 0x004E〜0x004F word 0x2F,0x3Fの音長 +-------+-------+-------+-------+------- 0x0050〜0x0051 word 曲データのある絶対アドレス ch1 …(2)参照 0x0052〜0x0053 word 曲データのある絶対アドレス ch2 …(2)参照 0x0054〜0x0055 word 曲データのある絶対アドレス ch3 …(2)参照 ・・・ 0x006E〜0x006F word 曲データのある絶対アドレス ch16…(2)参照 ========================================
0x00〜0x1F … 休符。 音長は、ヘッダーの0x0010〜0x004Fを参照。 0x20〜0x3F … 音符 音長は、ヘッダーの0x0010〜0x004Fを参照。 引数は1Byte この引数が音程を示す。(note no) 7bit目が立っていたら、もう一個引数あり。内容はわからん。
>>69 は違いそう。
0x00〜0xFFの各バイナリーが意味をもっているんじゃなくて、
ビット毎に意味を持っていそう。
16進的な見方じゃなくて、2進数としてデータを見たほうが良いかも。
構造、結構複雑だわ。
========================================
Command param MML 機能
+-------+-------+-------+-------+-------
001x xxxx bNote 音符
+-------+-------+-------+-------+-------
1000 0000 End of Channel
+-------+-------+-------+-------+-------
101x xxxx 相対音符? (前回の音符からの半音単位での相対値。)
+-------+-------+-------+-------+-------
1xx0 0011 音色?
00 bVoice 次音符?
10 bVoice 次コマンド?
11 bVoice 次休符?
こういうのって自力で覚えたの? それともプログラミング関係の専門家さん?
↑↑↑君等すげぇな。神だね。スターオーシャン2もキボンヌ。
まだほとんど解決してないのに次の話をするなよ
>>71 専門家を目指して「た」。けど、親に反対されて今はしがない技術者。
自力といえば80%くらいは自力かな。20%は、高専生時代とかの後輩・同輩・先輩から。
音楽の方は一応プロの先生についてる。
基本的には、簡単な構成の曲を一曲見つけて採譜してから、
その楽譜を見ながらデータを眺めていくって感じ。
その時に、音源ドライバーの設計者が
「演奏プログラムの中ででどういう処理をやりたかったのか」を
想定しながら、自分の頭の中にも処理フローを思い浮かべて、
「自分だったら、こうするな」っていう勘から
その勘での想定結果を、PSFファイルのバイナリーを書き換えて、
想定通りに演奏が変わるか確かめる。って方法を今は使ってる。
音符データを探す段階になると、採譜した結果を、5線譜かMMLに書かないと、自分は出来ない。
自分は、DEWPRISMまでにするよ。てか、それ位しかソフトもってないし。 Suzukiドライバー?使ってるソフトは、自分は全くもってない。 DEWPRISMの解析進めるから、ゆるちて。 まぁ、週末、休日出勤になっちまったから、週末は動けそうにないが…。
正直これやって欲しいなってのはまだあるけど こればっかりはリアルが一番大事だから残念だが仕方ない DEWPRISMもあんまし根詰めて無理しないようにな〜
そうだよな。スクエニ系コンプリートなんて人の苦労を省ずに 期待していた考えが恥かしくてたまらないぜ。 これだけ尽くして貰ってるんだから感謝しきゃ!
いや、そんな事はないぞ?
コンバートで得たSMFならここだし、採譜したならDTM板のスレじゃないかね
MSXやFCでデータレベルでのコンバートは見たことないな
83 :
78 :2008/12/02(火) 01:56:27 ID:BqvBKFPX
あらら、耳コピで作ったやつです。 どうも間違えたみたいですみませんでした
帰宅するのがこの時間なのだが… DEWPRISMの解析、まったく進捗せず。アハハハハ。 音符は上の大体解ったんで、ルーチン書きたいんだけど時間がねぇぇぇぇええ。 ======================================== 【コマンド概要】 7654 3210 ----------------+----------------------- taa? ???? t … 0:音符コマンド 1:制御コマンド a … 00:通常? 01: t=0時 通常? t=1時 相対音符 10:??? 11:次は休符。休符の音長として、引数"bRest"追加。 ? … パラメータ。種類により引数がある場合がある。 ・ bRest 000l llll (休符) (※a=11の時に追加されるパラメータ) x … 休符の音長(0x00〜0x1F)
======================================== 【コマンド詳細】 7654 3210 内容 +-------+-------+-------+-------+------- 0aal llll 音符 l … 音長(0x00〜0x1F) a … 00:通常? スラーとかその辺? 01:通常? 10:? 11:次は休符。休符の音長として、引数"bRest"追加。 (1)bNote vnnn nnnn (音程) v … 0:何も無し 1:引数"bVelo"(Velocity)有り ※a=11で休符が有る場合、その後ろに追加される。 n … Note no (2)bVelo 0kkk kkkk (Velocity) (※v=1の時に追加されるパラメータ) (※付かされる場合は、bRestの後に追加される。) k … Key-on velocity(0x00〜0x7F) +-------+-------+-------+-------+------- 101n nnnn 音符(前音符からの相対値) n … 00000(0xA0):前回より、−16半音の音程 〜 10000(0xB0):前回より、±0 半音の音程 〜 11111(0xBF):前回より、+15半音の音程
TABで整形してるから、ずれまくるな…。 とりあえず、時間できたら、逆MMLするルーチン書いて、 その時に、書いた format.txt もアーカイブに含めるわ。
あ、こっち忘れてた。 1aa? ???? の方のコマンド。 引数の数は、コマンドにより様々。 +-------+-------+-------+-------+------- 1aa0 0000(80) End of Channel 1aa0 0001(81) 全体に関わるような何か 1aa0 0010(82) 全体に関わるような何か 1aa0 0011(83) Set Instrument 1aa0 0100(84) 1aa0 0101(85) 1aa0 0110(86) ? 1aa0 0111(87) 1aa0 1000(88) ? 1aa0 1001(89) ?無限ループのマーカー? 1aa0 1010(8A) 1aa0 1011(8B) 1aa0 1100(8C) 1aa0 1101(8D) ? 1aa0 1110(8E) 1aa0 1111(8F) 1aa1 0000(90) 1aa1 0001(91) 1aa1 0010(92) 1aa1 0011(93) 1aa1 0100(94) 1aa1 0101(95) 1aa1 0110(96) 1aa1 0111(97) 1aa1 1000(98) 1aa1 1001(99) 1aa1 1010(9A) 1aa1 1011(9B) 1aa1 1100(9C) 1aa1 1101(9D) 1aa1 1110(9E) 1aa1 1111(9F)
>>84 ベリー乙
デュープリズム発売から10年近く待ってるので
待つのにはすっかり慣れました
のんびりやってくださいw
それではあと10年待ってね
ネタが尽きたか過疎ってきたなぁーーーー
まあまあ、1日空いただけじゃないか
93 :
SOUND TEST :774 :2008/12/04(木) 12:45:21 ID:wiGJVc84
結局サガフロ1のProject AKAOの解析どーなったん? 前スレFF7の解析で止まったままだし。
あれって結局、FF7mmlの作者さんが解析成功したよね。16bit akaoだって。
>>96 あっぷしてあるじゃないか。
まぁ、アップしてから、色々直してあったので、再うっぷ。
http://www1.axfc.net/uploader/He/so/166367.lzh version 1.14 2008.12.1
・"init.mml"を新設(AKAO32)。これにより、以下をカスタマイズできるようにした。
(1) MIDI音源の初期設定
・以下のコマンドに対応
0xFE1C(AKAO32) 引数は1Byteだった。(今まで2Byteにしてた)
version 1.13 2008.11.26
・以下のコマンドに対応
0xFD(AKAO24) 拍子
0xFE(AKAO24) リハーサル番号
0xFE15(AKAO32) 拍子
0xFE16(AKAO32) リハーサル番号
何だろうとは思っていたけど、両方とも、再生には関係ないな。
まぁ、生な演奏者にとっては、大事なんだけど・・・。
version 1.12 2008.11.24
・音量・パンポットLFOの振幅が大きかったので、係数を低くした。
・以下のコマンドに対応
0xA4 ポルタメント(但し、ベンドレンジ8以内のみ)
中には、ベンドレンジ80必要な曲もあり、完璧な対応は無理。
0xFE1F(AKAO32)不明:引数は無しのようなので、それに対応。
↑ベイグランドストーリ対応(まだ、変換出来ない曲有り。)
ベイグラ対応開始とな!
Dewprismの解析は、今週も休日出勤確定で、年内は動けないかもしれない。 正月にコーディングするつもりなんで、続きの解析しておいてくれれば、 そのぶんも含めて、正月にコーディングするぜ。 あとは、音色割り当てとか!! ちゃんと編集すれば、けっこうそれっぽくなるし、 特にFF8〜9は、一部をのぞいて、ほとんどSC88Proの音色使ってるから、 音色のマクロ文を編集すれば、かなりそっくりになるデータが多いよ。 例)FF9のバトル1の音色設定 $0a k127 y100,2 y101,0 y6,52 H 3,3 @38 $1a k127 y100,2 y101,0 y6,64 H24,3 @30 $2a k127 y100,2 y101,0 y6,64 H 0,3 @30 $3a k127 y100,2 y101,0 y6,64 H 0,3 @18 $4a k127 y100,2 y101,0 y6,64 H24,3 @48 $5a k127 y100,2 y101,0 y6,64 H 8,3 @52 $6a k127 y100,2 y101,0 y6,64 H17,3 @84 $7a k127 y100,2 y101,0 y6,64 H 2,3 @89 $0b k127 y100,2 y101,0 y6,64 H 0,3 @56 $1b k127 y100,2 y101,0 y6,64 H 0,3 @15
>>96 ff7mml パラサイトイブでも、使えたらしいよ。
自分は持ってないから試せないけど。
ff9 ラスボスのコンパイルの仕方。 秀丸とかのテキストエディタで、 (1) 『/*L*/]3』を『/*L*/』に一括置換 (2) 『/*L*/r1』を『/*L*/』に一括置換 (3) 音色定義を自分の好きに編集 でいける。 ff8mmlで吐いたそのままのmmlだと、 元の曲データがかなり特殊なことやってる曲データなので、コンパイル出来ない。
>>98 圧縮解いたPSFからAKAOヘッダ探して最初に引っかかった方のエリアを
別ファイルで保存してから読ませたらff7mmlまでは通った。
あとは未対応部分を削っていけば何とか鳴りそうだけど
修正箇所多すぎて積んだ
>>99 その辺の編集はイントロ部無限ループ・イベントループ抜けに
値するFE-06の辺だよな。akao2midで変換かけたらエラー吐きするが、何処でエラーに
なるのかサーチしたらそこだった。akao2midの変換ルーチンを見ても、やはり同じ場所
みたい。コードが登録されてない。似たケースとしてハンターチャンスって曲もそうだった。
正確には、0xFE 0x07 の条件ジャンプ命令があって、 次に、0xFE 0x06 の無限ループがある構造になってる。 でも、その前にループ開始、C言語でいう for(){ があるんだけど、 0xFE 0x06 の後に } で閉じているんだ。 無限ループ{ for(){ if(){break;}; ←条件ジャンプ } ←無限ループのかっことじ } ← for文のかっことじ。 こんなかんじになってるから、ff8mmlでもエラーでてる。
ff8mmlは、0xFE 0x07が見つかったら、0xFE 0x06の無限ループを1回無視する設計にしているんで、 とりあえずは、その先までMMLは吐けるようになってる。 でも、最初の0xFE 0x06の無限ループと、0xFE 0x07がしめすジャンプ先の間にあるゴミデータも出力しちゃうんで、 その辺で不整合がでちゃう。 いまんとこ、その辺をうまく逆MMLコンパイルする方法が思い浮かばないから、 吐いたMMLを手動で編集するしかないようになってる。
FF9のハンターズチャンス確認してみた。 チャンネル1で、0xFE,29(0x1D) と、0xFE,30(0x1E) と、0xFE,16(0x10)がコメントアウトされてる。 未解析コマンドなんだけど、引数の数はいま2Byteで設定されてて、 引数のサイズが違うんだと思う。 これは、引数の数変えて、確かめてみるだけで対応できるんで、コード直す時間とれたら直す。 akao2midは、作者じゃないから、直せない。 C言語そこまで詳しくないし。
FF9ハンターズチャンスや、ラスボスの曲を、
ちゃんとコンパイル出来るMMLを吐くように対応した。
何やったかというと、以下の解明していないコマンドではあるんだけど、引数の数だけ解明させた。
http://www1.axfc.net/uploader/He/so/166877.lzh version 1.15 2008.12.6
・以下のコマンドに対応
0xDA 引数は1Byteだった。(今まで2Byteにしてた)
0xFE07(AKAO32) 条件ジャンプ先にちゃんと飛ぶようにした。
↑FF9のラスボス対応。
0xFE10(AKAO32) 引数は1Byteだった。(今まで2Byteにしてた)
0xFE1D(AKAO32) 引数は無しだった。(今まで2Byteにしてた)
0xFE1E(AKAO32) 引数は無しだった。(今まで2Byteにしてた)
↑FF9の色々な曲対応
いつもお疲れ様です(-人-)
FFシリーズのオケ編成の曲データって、ちゃんと総譜に書く順番に並んでいるんだな。 Fl,Ob,Cl,Fg,Hr・・・・ってかんじで、その他の楽器を使う場合はその後とか。 FF7は、16チャンネルの制約があるからか、そうとも言い切れないみたいだが。 でも2管編成ではなく、木管は1管だったり、それでいながら金管は3管だったり、おもしれぇ。
スーファミ時代の植松氏の譜面は ブラス1 ブラス2 ストリングス1 ストリングス2 ベース シンバル ハイハット バス・スネアドラム 等の並びが多かったなぁ。 個人的に数曲譜面をいただいて学校のブラスバンド部で仲間と演奏してた。
FF4は厨房のときに耳コピで楽譜起こしてブラバンで演奏したよww スクウェアに電凸して楽譜くれと言ったのは良い思いでw
みんなそれぞれ必死だったんだなぁ
楽器吹きで、且つゲーム好きだと、マイ楽器で演奏したくなるんだよな。 DQとかはCDに譜面付いてきたけど、FFシリーズはついてこないしな。 他、Falcom物の逆MMLも作ったし、FF5のSPCをMMLに変換するのも作ったわ。 俺はオーボエとコーラングレ吹きだから、C管とF管用に書き直したり、 クラ吹きや、Tp吹きはB管用に書き直したり。 でも、吹奏には、弦っていないんだよな。
弦入れると管弦楽部になっちゃうからね あと、小中高で弦はちと難しい かなり覚悟完了してやらないとモノにならん
まぁ、どんな楽器も、まじめにやるんなら覚悟しないとむりじゃね。 まぁ弦は確かに小さい頃からやってないと駄目な楽器だけど、 管は、大きくなってから始めてもプロになれるらしい。 逆に、呼吸器系を酷使するから、管はある程度成長してからじゃないと出来ない楽器らしい。 まぁ、オーボエ吹き・・・もといホラ吹きのいう事は、適当に聞いてくれ。 てか、このスレ、けっこう楽器吹きいそうだな。 まぁ、再生環境あるのにSMFに変換したいってことは、そう言う事なのか。
「まぁ」大杉。 深夜残業で疲れてるな。お休み。 DEWPRISM手をつけてぇぇぇぇええええ。 ゲームもやりてぇぇえええ。
なにより、オーボエの練習してぇぇぇぇええええ。 週末しかロングトーンしてないから、どんどん力が落ちていく・・・
まぁマイペースで行こうじゃないか。俺も気まぐれでsuzukiドライバの解析 を始めたばかり。今、忙しい中で判った事はヘッダー部のサイズ格納場所・ 及びch終了場所。ch始まりが解かんねぇから肝心のシーケンス部分の解析が 進まねぇ。誰かヒントくれない?
chの始まりは、 (1) ヘッダーにch1〜順番に相対アドレスか、どこかを基準とした絶対アドレスで書いてある (2) チャンネルのはじめに、各チャンネルのサイズが書いてある。(チャンネル毎にヘッダー) (3) その他、他のケースもあるかも。 (1)のケースが多いよ。
やっぱり解かんねぇ。しらみつぶしに絶対・相対アドレスを割出すバイナリ エディッタを使っているが。修行が足らんなこりゃ。
SPCならSPC2MIDIで一応得られるから まずはそっちを試してみては? 変換精度は悪くはないし、ピッチベンド使いまくりなデータでなければ 手修正もあんまり要らない DVAされたら大人しく諦める
spc2midはベタ変換でノートタイミングがバラバラだから譜面にならない。 だからff7mmlのようなほぼ完璧な変換ソフトを作って欲しい。
得られたデータを修正して譜面を起こすぐらい、自力でやれよ… 全く手のつけようがないデータじゃないんだから
ってか、手が付けられないに等しいぞ?tempoは合ってない、ノートは目茶苦茶。 デュープリズムを自力で解析しろ。って同じくらいの労力だな。
MIDIにコンパイル出来なくて良いなら、FF5なら逆MML作ってあるぞ。 ただし、PC98のMS-DOSでしか使えないんで、 98エミュレーターや、98用のMS-DOSは別途入手して欲しい。 ukky氏のPPZ8と、86音源があれば、一応再生可能。・・・だと思うが これって10年以上前に作った奴なんで、本当にコンパイルできるか不明。 もしかしたら、MML文字列を吐くだけで、手動で、 MMLコンパイラ用のMMLに編集しないといけないかもしれない。 こんなんで良いなら、ハンドル名とか、解析協力者の名前消して、 リアセンブルしてからうっぷできるが・・・。
98エミュレータ立ち上げて確かめてみたら、 一応、PC98用のFM音源ドライバー+PPZ8用のMMLを吐いてた。 音色ファイルは、昔PMDBBSで某氏が公開していた物なのだが… 今は入手不可能かもしれない。
>>124 spc2midなんて物があったら欲しいが
spc2midiは少なくとも変換してるわけじゃないからな
確かにspc2midiは 変換とは違うけど、素晴らしいツールだよ。 spc2midiで対応できない例は、タクティクスオウガ。 おそらくチャンネルに動的に音を割り当てているので 楽器ごとに分離できない。 それで、自分なりに解析を試みたことがある。 たぶん、こんな感じ。 E0 xx 音色 02 〜7F 音長 音長指定の後(オプション) xy x:1〜7 ゲート y:0〜F ベロシティ 80 〜 C7 音符 C8 直前の音をのばす? C9 休符?
色々と変換物のバイナリを整理してて思った事は akao2mml は akao2mid を 超えた(神Tool) だ。若干手間はかかるが変換精度はピカイチ。音色編集は 出来るし申し分ない。しかも対応タイトルも自分が確認しただけでも多く ある。 これまでの此処の流れを見てたら spc_akao2mmlと題して是非とも自分も spc版akao2mmlをビルドして欲しいな。と思ったのが素直な感想。
そんな次から次へあれやれこれやれと言ってやるなよ なんか年末リアルで忙しいらしいしクレクレも程々にしないと 嫌気が差してこういうとこ出てきてくれなくなる方が困るだろ?
>>133 120氏のように「やれ」と言ってはないぞ?
思っただけだ。おk?
前スレで職人潰しを目の当りにしたからな。ソフトに行こーぜ?
>>127 MIDIやってるやつならそれくらいできるだろ
ただ面倒臭いだけで
>>131 タクティクスオウガはPS版からSEQ2MIDするという手もある
>>133 そういうオマイさんらもクレクレだろがw
開き直ったら人間終わりです
流れぶった義理ごめん minipsfを展開したらbgmっていう拡張子が出てきたんですが、 これってストリームですか?
だから何のminipsfだよ?
>140 放置されるかと思ってますた FFXのシーモアバトルです。
そりゃ、PS2版akaoだわ。ストリームじゃないね。
>142 という事は、bgm2midからの変換になるんですね レスありがと
bgm2mid持ってたらくれない?
>>132 ありがと。
でも、AKAOって、すごくMMLをコンパイルして作ったぽいデータフォーマットだから、
MIDよりMMLに逆コンパイルする方が、作り手としては楽なんだよ。
なんで、MML2MIDに該当する命令があれば、そのまま、該当する命令の文字列に変換しちゃうだけなんだよ。
なんで、C言語とMML文法をそれなりに解ってれば、AKAO→MMLなら簡単に作れちゃうと思う。
俺はどこか頭が飛んでるから、アセンブラでしか組めないけど。
だれか、チャレンジしてみれば?
switch()文と、printfのファイルに書き出す版の関数の組み合わせでいけると思う。
MMLには、『テキストエディタで編集できる』って利点があるんだぜ!
まぁ、MML使いにはうれしいかもしれないが、SMFで編集したい人には確かにめんどいかも。
同じ理由で、ff4〜ff6もさくって作れるけるだろうけど、自分は、作業できるとしたら来年。 今、年内納期の仕事が次から次に来てて、とてもじゃないけど、コーディングする時間とれないわ。 練るぜ
そーいえばWIN_ver.のSPCTOOLがでてたけど誰か試した?
http://www1.axfc.net/uploader/He/so/169246.lzh ダウンロードするのは、解析に協力してくれる人な!!
hosav の逆MMLをでっち上げてみた。
ぱすわーどは、曲データのヘッダー文字列を小文字半角5文字で
曲の構成が簡単な、"trap Master"って曲で検証。
その他の曲は確かめてない。ぬきだしめんどいし、まだ曲知らないし。
誰か、CD-ROMドライブにCD-ROMいれて、ぶっこぬくのつくって!!
基本的に、まだ使い物にならないはず。
hosa2mml /d255 元ファイル名 >MMLファイル
って、/d255ってオプションつけると、バイナリーをコメントアウトするようにしてある。
解析は、だいぶしやすい形に吐けていると思うので、検証宜しく。
MMLは、さくら用。
ff8mmlを作った頃はMML2MID使いだったけど、今はさくら使いなので。
コンパイラは、
ttp://oto.chu.jp/ から、DLして。
あぁ、ff8mml(akao2mml?)の様に、 "format.txt"入ってるんで、こっちも参考にして。 ただ、色々、解らないことが、まだ多い。 AKAO(赤尾氏作)や、MUCOM(古代祐三氏作)系のドライバーとは、 データの構造がけっこう違う。SMFとも違う。 どっちかというと、CPUのニモニックに近い作りになってる。 で、ビットで並べたときに、 caannnnn とすると、 c=0 で音符コマンド c=1で制御コマンドを示すんだけど、 aaがやっかいで、 aa=00 ←多分、通常処理 aa=01 ← c=0(音符コマンド)の場合は通常処理。 c=1(制御コマンド)の場合は、相対音符。 aa=10 ←これが、意味不明。次に来る数字の意味や、引数がわからん。 aa=11 ←次にバイトで、waitを示している。 c=0(音符コマンド)の場合は、音長になるし、 c=1(制御コマンド)の場合は、休符が挿入になる。 nnnnn は、タイプ。 c=1(制御コマンド)だったら、nnnnnで制御の種類 nnnnn=00000 : End of Channel nnnnn=00001 : テンポ(次の1Byte) nnnnn=00011 : 音色(次の1Byte) c=0(音符コマンド)だったら、nnnnnで音長になる。 音長は、0x0010+(nnnnn×2)番地の内容。 次の1Byteで、ノートナンバー。MIDI規格と同じ数値。 但し、bit7がHiの場合は、後ろの1Byteで何かを示している。 まず、aa=10の時の挙動を調べたい。 あとは、c=1の時の、nnnnnのそれぞれの意味。 が、解析案件。
どなたかワイルドアームズ2のMIDI変換方法を教えてもらえないでしょうか?
FF7MML用の音色定義。
音源 :Roland SC88Pro用
タイトル:FINAL FANTASY 7
ぱすわど:ff8mmlといっしょ
http://www1.axfc.net/uploader/He/so/169634.lzh 音量バランスを、MML2MIDのFVコマンド(ソフトエンベロープ)を使って調整してみた。
特に、音が小さいホルンとか、音が大きすぎるオケヒとか。
この音色の方がいいんじゃないってのがあったら、書いてくれ。
SC88Proに、どんな音色があるかあまり詳しくないので。
乙です。 FF8mmlの対応作品 チョコボレーシング チョコボダンジョン チョコボダンジョン2 フロントミッション クロノクロス レジェンド オブ マナ ファイルファンタジー2等の変換を確認しますた。
そんなに使えるんだ。 まぁ、ファルコムも、ソーサリアンからブランディッシュ3まで、ずっとMucom使ってたしそういうもんか。 しかも、当時、バイトの古代祐三氏がつくったドライバーをずっと・・・。 世界樹の迷宮も、あれ、MucomをDS用に書き直したんだろうなぁ。 DSでFM音源っぽい楽曲をつくってたし。
そうそう、この間から暇を見つけてはサガフロの音色定義をコツコツと始めて いるのだが、面白い事が判った。XG[MU-128]とハチプロで音色を検証していたら、なかなか シックリくる音がない。そんでもって色々調べたらコルグのシンセ[トリニティー&トリトン]の 音色だと判明した。 正月休みには何とか色々な音色定義をビルドして作者さんに渡したいものだ。
>>157 あーあれコルグの音なのか
昔耳コピしたとき(YAMAHA+Roland)÷2みたいな音ばっかで
音色あわせ辛くてイライラした覚えがある
FF7も、コルグっぽい音。 コルグの音色は音が厚くて良いよ。 その分、曲の作り手側でのバランス取りは難しいけど。 SC88とかの音源は、初心者が使いやすいようにバランス重視だから、その分、音が薄っぺらいんだよね。
KORGの音源モジュールって、他のシリーズと音色配列に互換性あるのかな。 あれば、押入から03R/W引っ張り出して、 03R/W用の音色定義作ってみるかなぁ。
コルグは他の音源と互換性がないですよ。 パーカスをみても一目瞭然だとおもいます。古くはロマサガ1からですね。
んじゃいいか〜。 SC88Proなら、持ってる人それなりにいるだろうし、8プロで。 XG音源(Mu128)も持ってるには持ってるけど、元々、 視聴用とか、GS音源以外での聞こえ方のチェックのためだけに買ったものだから、 どんな機能あるのか知らなかったりするわけで。 YAMAHAのオーディオ機器は好きなんだけど、・・・楽器はRolamd使いでつ。 あ、でも楽器(ObとE.H.)は、フランスの老舗メーカーだ。 ヤマハ、イングリッシュホルン作ってないんだよな。
なんかゲーム音楽って、ピアノアレンジとか、ギターアレンジは出版するのに、 管弦楽アレンジとか、吹奏楽アレンジって少ないよね。店頭に。 ドラクエは、すぎやま工房がレンタルしてるのは、しってるけど。 ノンアレンジの楽譜とかも、見かけない世なぁ〜。 ピアノとギター優遇されすぎ!!! まぁ、ピアノ譜のメロディーだけ読んで吹いたりはするけど。 やっぱ、原曲もやってみたいんだよなぁ〜。
コルグのNS5Rを持っているが、確かにサガフロで似た音使っていたなぁ。 ここのメーカーって音にクセが有り過ぎて苦手w
しかし曲者同士というか臭いもの同士というか(いや、悪い意味じゃないぞ?) イトケン節には妙にあってる感じがする
おそらくサンプリングレートの違いなんだろね。音が違うように聞こえるのは。
コルグは、確かに扱うのは難しいね。 逆に、SCシリーズの音源とかが、使いやすくする為にと音の厚みを削りすぎなんだよ。 他の音色とのバランス調整が腕の見せ所な訳で、デフォルトのままでつかう音色じゃないのが殆どなんだよね。 SC8850でも、コントラファゴットや、ソプラニーノサックスや、オーボエ・ダモーレとか、 そういうマイナー楽器(でもないんだけど…)の音色を作るために、色々パラメータいじった事あるけど、 やっぱ、この辺の音色を作るときは、音に厚みがあった方が作りやすいよ。 今は、Roland Fantom-XR使いだけど、やっぱり、そのままの音色じゃ扱うの難しくて、 自分が使う音色はバランスとって、ユーザーパッチに保存してある。 SC8850音色すくねぇぇぇぇよ!!! コントラルトクラリネットとか、ソプラニーノクラリネットも無いし! FFシリーズでも、この辺の楽器つかってないし。 やっぱ、マイナーなんだなぁ〜。 まぁ、自分の耳じゃ、コントラアルトクラと、コントラバスクラの音色聞き分けれないけど! これ、聞き分ける人いるんだよなぁ〜。神の耳の持ち主が。
それにしても、FF8とか、FF9とか、 シリーズ内で音色番号に統一性がありそうなんだけど、 一部の曲で、音色番号に割り当てられている番号と音色が違っちゃうんだよな。 どこかに、バンク切り替えコマンドみたいのが、あるのかなぁ・・・。 FF8とか、ストリングスは、0x20〜0x2B番の音色に、低音域〜高音域があるみたいなんだけどな… ある曲では、チューバの音色番号だったはずなのに、ある曲では別の音色とかあって。 この辺が判明できれば、define.mmlつかえれるようにしたいのだけど、 バイナリーみても解らんわ。
純正のpQESでも、シンセで言うところのキースプリットして 低域にベース、高域にシンセみたいな詰め込み方した奴があるし □独自ドライバでやってても不思議はないわなあ ちなみに純正では初代ペルソナがそれを駆使ししてて非常に困る
桃伝の曲データはpQESなのにPgconvでは出来ない。seqripで切取ってseq2mid で変換でるが再生出来ない。何でだろ?
171 :
SOUND TEST :774 :2008/12/16(火) 16:26:12 ID:oZyDc9cu
pQESもなかなか奥が深いんだな。
マイナーだがサウザンドアームズ(アトラス、レッドカンパニー)も多分純正pQESだと思うが 吸出しはできても正常に変換できない 最初と最後だけ通常再生されて中間が物凄く間延びした物が出来上がる 中見たらテンポじゃなくて音自体の長さが異様に長くなってたから 何か変換ミスしてるんだと思う、何かはわからんが
>>172 それは手順のことかい?「変換ミス」
何気にseqripから吐き出されたsqファイルをバイナリエディッタで確認したら
pQESのヘッダはあってもチャンネル終了の FF 2F 00 は見当たらず。
しかし、93 2F 73 00 とか 93 2F 00 とかあるので、その辺をガッツリ
FF 2F 00 と書換えてやれば尻切れトンボな曲にはなるが何とか seq2mid を
通って通常再生されるmidiにはなった。
ところで英雄伝説T&Uはseqrip出来るのかねぇ?ってか、PSFのミラーに
上がってない物は基本的にmidi変換出来ないと思ってよいのかな?
FF6も無理っぽそうだもんなぁ。
連投スマソ Dragon QuestW・Z(PS)のmidi変換を成功された方っていらっしゃいます? PSFとかも転がってないのでどなたか生dataを持っていたら頂けませんか? midi変換したいと思うので。
生データも生データから作ったPSFもれっきとした著作物 個人利用ならまだしも不特定多数への配布は違法 データが欲しいならソフトを買え
>>170 桃伝はSEQなのにSEPのヘッダになってるのが原因
70 51 45 53 00 00 00 00
70 51 45 53 00 00 00 01
に書き換えれば変換できる
アドバイスサンクス! 早速やってみる。DQ4は某ネットで拾ってきた。
>>176 はじめから桃伝のヘッダーが 70 51 45 53 00 0000 01 だったのですが変換は無理でした。
基本的には、akao2midやff8mmlで作った、mmlやmidファイルもNGだぜ。 ff8mmlとかのドキュメントには書いてないけど、宜しく! DEWPRISMの解析進捗は、なんか解ってきそうな、わからないような・・・
そーいや、ドラスレ英雄伝説って変換できないよね?
>>180 ソーサリアン〜ブランディッシュ3までは、ずっとMUCOMつかってる。
mucomの変換ツールは、vector行けば色々とある。
fmpのmml吐く奴とか、そのまま演奏する奴とか。
全部、PC98用だが。
http://www1.axfc.net/uploader/He/so/171171.lzh DEWPRISMの逆MMLコンパイラ Version 0.02β
どこまで使えるかは解らない。
検証とか、解析できる人は手伝ってくれると嬉しい。
ソースは、アセンブラだけど、一応C言語ライクに作ってあるから、
ff8mmlのソースよりは読みやすくなってると思う。
でも、アセンブラはアセンブラだ。
.if〜.else〜.endif とか、 .while 疑似命令使ったり、
local疑似命令で、ローカル変数まがいの事したりしているから、
その辺はC言語ライクで読み・・・まぁ、アセンブラだし簡単には読めないか。
あとは、 0x40〜0x5F, 0xC0〜0xDF (2進数で、x10xxxxx)の挙動の解析。 この辺のコマンドがあると、まだ正常に逆コンパイルできない模様。 0x00〜0x1F 音符コマンド。 wait値は前回のwait値 0x20〜0x3F 音符コマンド。 wait値は音長といっしょ 0x40〜0x5F ??????? 0x60〜0x7F 音符コマンド。 wait値は、次のバイナリーで指定 0x80〜0x9F 制御コマンド。 wait値は0 0xA0〜0xBF 相対音符。 wait値は前回のwait値 0xC0〜0xDF ?????? 0xE0〜0xFF 制御コマンド。 wait値は、次のバイナリーで指定 wait値ってのは、次のコマンドまで、何ticks待つか。 バイナリー指定されるwaitは、0x0010〜0x0050番地の内容が適用。 例えば、0x60〜0x70だと、最初のバイナリーが音長(ノートの長さ)で、wait値は別に指定される。 なんで、ノートの長さが48で、waitが192だったら、 192÷48=4分音符と、 192-48チック、つまり付点2分休符ってこと。
おまいらスクエニ以外で変換したいゲームの曲ベスト3って何だ?
ヴァルキリープロファイルとVIPER PHASE1
スターオーシャンシリーズとサガフロンティアシリーズ
おまいら…スクエニ以外と言ったべよ?
ダブルキャストとPS2もいいならZ.O.EとANUBISだな
最近のソフトだとソーマブリンガーかな あれはsdatでなく独自シーケンスファイルかつ独自ドライバ
VIPER PHASE1とでじこミュニケーション1,2だな
>>189 メンツがメンツだけにストリームかと思ってたのだが、違うのか
スクエニ以外のゲームした事のないヤツにとっては酷な質問だわな。 爆笑!!
幻想水滸伝1・2あたり変換したいかな。 それっぽいファイルはあるけど、よく分からんw
>>195 DSなら簡単に変換できるよ?ってか、曲自体psと同じか知らないけど・・・
197 :
SOUND TEST :774 :2008/12/19(金) 22:32:37 ID:dK5kM9KJ
最近ここに来たのだが、パスワードを公開してくれないので取れない。
ログも見れないカスにいちいち教えてやらなくていい そういう奴はDLできたら次は「どうやって使うんですか^^;」でとくる
全くだ。クレクレはともかく、教えて君は勘弁願いたいものだ。
クレクレは神。 クレクレ無くして発展は無し!
さすが聞き専スレ6-485がきっかけで立ったスレだけのことはあるな このスレにはクレクレとよく訓練されたクレクレがいる
>>202 だから何?
気にいらねーなら来るなよ!いちいち口出しすんじゃねぇよ!カス!
いや、褒めてんだろ
そんなくだらねぇ話しないでデュープ解析の人に労をねぎらう言葉を掛けられないのかよ! 全く他力本願ないい加減な奴等だよ!
sf2
∩ .∩ .い_cノ / ̄>O .c/・ ・っ (ニニニ)△△ .("●" ) (・ω・`)[‖] ここも悪い子ばかりだな O┳Oノ)=[ ̄てノ ̄ ̄] よし!次行こ! ◎┻し◎ ◎――◎=3 /ラジャー\
なかなか過疎ってるじゃないか。
なんかおもしろいpsfこないの?
っていうか、MIDIに変換出来るPSFのリストが欲しいぞ?
PSFは厳密には・・・実行ファイルかな?それともメモリイメージ?
loveemuが開発されたSPCの内部構造を正確にMIDI変換するツールが各メーカーごとに対応出来たら どんなに嬉しいことか・・・・・ やはり、MIDI変換の原点はSPCだよな。
んなこたーない シーケンスデータへの変換はシーケンスデータからだ 1歩譲ってログからだ
しかし手修正の時間を考えるとログはNGだな。 暇人には良い時間潰しだが忙しい人間にとってはspcにしろpsfにしろ、やはり 変換ツールが肝だわな。VGMTrans・akao2mid・akao2mml・Pgconv・GBA2mid 等の開発者の皆様には敬意を表します。
>>213 がいっているのはシーケンスデータの変換の話では?
loveemuさんが最近、任天堂とカプコンの多タイトルに対応した
spc変換ツールをリリースされた。
ちなみにloveemuさんはgba2midの作者さんでもある。
217 :
SOUND TEST :774 :2008/12/27(土) 00:07:35 ID:EkR6Fp/L
TNSは冬混み出ないの?
218 :
SOUND TEST :774 :2008/12/27(土) 00:14:06 ID:EkR6Fp/L
すまん誤爆した
でも、解析も暇がないと出来ないんだぜ。 ff5とかff8とかmucomも、解析したの高専時代だしな。 授業中に、逆アセンブラしたソース眺めてたぜ。 俺の青春時代、これで良かったのか? 古代祐三氏のMUCOMって、東芝製Z80特有の未定義命令使ってるから、 そこで最初意味不明で悩んだ記憶があるぜ。 IXレジスタの上位8bitだけにロードする命令とか。 ザイログ製のZ80には無いんだけど、東芝製のZ80にはあるんだよ。 Z80の4MHzで、BGMとして音楽を鳴らすには、 処理をかなり最適化しないといけなかったのは解るけどさ、 だからって、CPUのデータシートにのってない命令を使うのはどうかと思うんだ。
我々からすればアセンブラ等プログラム領域が読書き出来る人は 神と言う他はない。本っっっっ当に乙です。
221 :
SOUND TEST :774 :2008/12/27(土) 13:07:57 ID:8Be64PF2
あのさー、結局ワイルドアームズ2のMIDI変換の話が尻切れトンボになってんだけどマダー? 誰か教授きぼんぬ!
>>220 でも、C言語できないんだけどな!
チーム開発は経験あるから、C言語から呼ばれるアセンブラは書けるけど…。
全然C書けないと言ったら嘘になるが。
近頃のナウなヤングなソフトウェア業界には、アセンブラ使いは要らない子なんです。(TT
ハードウェア業界じゃ、まだ現役といえば、現役だが。
ようやく、ZWEI2クリアしたから、次、DEWPRISMやるぜ!!
やっぱ、耳に楽曲覚えさせないと、逆MMLコンパイラ作れねぇわ。
乙です。 アセンブラの良さは(処理能力の速さ)ってずっと思ってたけど間違いかな?
>>224 一昔前のCPUならそうなんだけど、
最近のCPUはC言語に特化してるから、
下手にアセンブラで組むと遅くなるんだぜ。
それに、CやC++のコンパイラが凄い進化していて、
CPUのパイプラインとかも考慮して、
機械語レベルでの命令の順番も最適化してくれるから、
一概にアセンブラ=高速とは、もう今の時代は言えなかったりする。
ただ、ゲームボーイとか、ワンダースワンとかで使われていたCPUは、
その一昔前のCPUに該当するから、アセンブラで書く方が処理速度早くなると思う。
が、ゲームボーイ時代はそうでもないんだけど、
ワンダースワンは、ゲームメーカーにアセンブラを組めるデベロッパーや、
ドット絵を書けるクリエーターがいなくて、速攻廃れたらしい。
↑ 某ゲームメーカー勤務の友人曰く。
(おれ、PS2・PS3のような、ソフトの開発費が膨大に掛かる方がきついと思うのだが。)
アセンブリ言語が必要とされる分野は、知ってる限りだと、
家電のマイコン制御や、LSI内(DSP等)のファームウェアとかじゃない?
俺自身も、本職は、音関係の回路屋だし。
ゲームボーイのCPUは、Z80のカスタム。ただ、完全なZ80ではないらしい。 ワンダースワンのCPUは、NECのV30MZだったんだけど、もう廃品種になった。 この2つのハードって、もうお亡くなりになったんだけど、設計者が同じなんだよ。 すごい洗練されているハードだった。 ただ、そのハードを使いこなせる技術者がいなくて、ワンダースワンは速攻廃れたのが残念。
FF5のSPCを、ukky氏のPPZ8で鳴らす為のFF5MMLっての作ってあるんだ。
(ff8mml.comって、実はそれをFF8&mml2mid用に書き換えた奴。)
前に、ff5用のも作ってくれって要望があって、昔の資料引っ張り出してるん。
PC98立ち上げて、86音源で演奏させたり、ソース眺めてるんだ。
サイン波の音色でエンベロープ設定して、ピアノの音に重ねてたり、
サイン波でフルートのまねごとしてみたり、
ノコギリ波にエンベロープかけて、クラビ作ってみたりしてるんだな。
MIDIでやるにしても、エンベロープまでちゃんと再現させないと、本物みたいには鳴らなそう。
ただ、ハープの減衰や、シンバルの減衰も、音色自体には減衰はなくて、
エンベロープで減衰させてるから、エンベロープをどうするか。
>>121 の情報に追加。
FF5は、俺も遙か昔に解析済み。
--------------------------------------
0xEB bAR Attack
初期音量 =100(bAR/15) [%]
音量100%に達する時間 = 8(15-bAR) [ticks]
※1[tick]に、100(15-bAR)%変化する。
0xEC bDR Decay Rate
(程度は不明)
0xED bSL Sustain Level
(程度は不明)
0xEE bSR Sustain Rate
1[tick]の変化量 100(bSR/4096)%
0xEF ADSRエンベロープを初期値に再設定
ピアノのお稽古とか、あのおもちゃっぽいピアノの音色、 グロッケンと、オルガンの音色にエンベロープかけたのをユニゾンさせて、作ってあるんだぜ。 オルガンは、ビックブリッヂの死闘で使われてるあのオルガンの音色と一緒。
>>226 正直8086の開発はこりごりと思う人が多かったと思う98世代
セグメントの壁か。 俺は元々Z80な人だから、気にはならなかったんだけど、 ゲームとか大規模ソフトウェアを組もうとすると、やっぱ、やっかいだよな。 ワンダースワンも64kByteの壁があるから、32bit-CPUに慣れた人にはやりにくかったのかもな。 俺は、DSレジスタにカセット内RAMのセグメント入れて、 ESレジスタに本体のRAM(メモリマップI/O)のセグメント入れるのが好きだった。 久々に、1bitは血の1滴、1clockは血の1滴を味わったハードだった。
アセンブラでセグメントを意識して開発するぶんにはいいんだろうけど、 C言語だと中途半端に掩蔽されるうえに、それでなくてもややこしいポインタ 関係がNEARだのFARだのわけわからなくなる。
何だか高次元な話で訳判んないけど乙です。
あぁ、なるほど。 C言語は、スモールモデルでしか書いたこと無かったわ。 確かに、64kByteを超えるラージモデルを書くのは大変そうだ。 それに、ゲームとかになると、チーム開発なのと、ハードを使いこなす必要があから、 単純な構造にならなくて、より、プログラム全体の構造が解りにくくなるんだよね。 シナリオのスクリプトファイルに、機械語のコードをハンドアセンブルする奴もいるし。 今の車載とか、医療機器とかの信頼性が必要な職場じゃ、絶対あり得ないわ。
一応音屋なんだけど、カーオーディオでも車に搭載される場合、エンジンやブレーキ制御用の素子並の信頼性が必要されるんだぜ。 この辺って、医療機器よりも、高信頼性が要る。 ゲームメーカーのソフトウェア、信頼性低すぎ。ちょー実感中。 俺の作るソフトウェアもバグありまくりだけどな!! ff8mmlとか。
>>233 > シナリオのスクリプトファイルに、機械語のコードをハンドアセンブルする奴もいるし。
16bitCPUまではともかく、さすがに32bit以降ないでしょ。
あったとしてまあ、論理演算やbit操作、条件分岐くらいだろうが
今は普通にプリプロで処理されるし、単にスクリプタのコマンド実装の手抜きかw
Cが主戦力になって以来、そもそもアセンブラで書く意義がCPU命令による
ダイレクトなハードウェア制御に、ほぼ限定されてしまったからね。
サウンドのデータ構造も、音源の進化によるものではなく、ゲームの演出面の
肥大化や複雑化に影響されるものだと思うし。
だから、ゲームを遊んで音や演出を把握しながら解析を進めるのが一番の近道
だと自分も思いますよ、がんばって!
> 16bitCPUまではともかく、さすがに32bit以降ないでしょ。 そうそう。8086時代の話。 ゲーム音楽も、最近はmp3とかoggとか、ストリームも使われ始めてきてない? 生演奏と、打ち込みじゃ、やっぱ違うしね。両方やってて思うけど、やっぱ打ち込み音楽は表現力に限界あると思う。 DSとか、携帯機器ではまだ生き残ると思うけど…。 PS2でさえ、シーケンスデーターでやろうとすると、メモリ不足とかで、表現を妥協しないといけないところがあるらしいし。 ギガサンプラー並の事をPS2でやったら、メインのゲームが入り込む余地無くなるとか。
> ストリームも使われ始めてきてない? いつの話をしてるんだ 今はストリームだけどインタラクティブに繋ぎ合わせて曲展開が変化するとか ストリームだけど複数トラックでフレーズを抜き差しして半ばシーケンスみたいに鳴らすとか そういうのもあるよ ストリームだから生なんてことは全然ないし シーケンスでもびっくりするような音のもある
無限ループのタグいれるのは見たことあるけど、いま、そんなことまでやってるんだ。 >ストリームだから生なんてことは全然ないし あー、そういやそうだ。 サンプラーとかでつくって、それをストリームにする人のが多いか。 俺、ちょー過去の生物だから。最近の流行は全然わかんね。 ゲーム業界変化激しすぎだわ。 自己啓発する暇があったら、オーボエの練習しながら、dewprism解析する。
そーいえば、ワンダースワンのmidi変換ツールってないよね?
作ればあると思うが… WS版FF2のデーターフォーマットは知っているが、 俺はあれをSMFにしようとは思わない。 まぁ、FF2は、PSのAKAOに似た構造だった。
てか、たった4和音なんだから、耳コピで出来るっしょ。
確かに・・・ nsf2midやspc2midよりはマシなものが出来ると期待していたのだが・・・ 甘かったかな?
logから作るんだったら、全然マシじゃ無いと思うんだ。 データ構造を解析して専用のを作るんだったらいけると思うが。 音源LSIの音程の精度も高温部はあまり良くないから、 LSIにかかれる音程から、ノート番号とPitchBendを算出するアルゴリズムにすると、 高温部は、ピッチベンドかかりまくりになると思う。 WonderSwanの音程は、 (3072000÷32) ÷ (2048 − LSIに書き込んだ値) [Hz] あとは、平均率 A=440Hz として、ノート番号と、ピッチベンドを計算してあげる感じかな。
マスタークロックの 3.072MHz を 32で割ってるのは、 音色の波形テーブルが、1波長32段階だから。 MSXのSCC音源みたいな感じだけど、量子化数は4bit。(MSXのSCCは8bit) 音量は、右4bit、左4bitで、合計8bit(1Byte)。 なんで、この右の音量と、左の音量から、パンポットと音量を計算することになると思う。 WS版のAKAOは、音源ドライバー内で、音量とパンポットから、右と左の音量を計算するようにしているっぽい。 曲データレベルでは、音量(Range=0〜15)と、パンポット(Range=0〜31)を指定するようになってた。
少く限られた容量を有効にかつ凝った演出を作りあげるサウンド・エンジニア殿には 脱帽です。
未公開VGMtransってもう手に入らないのかな?
ハッキリ言ってフツーでは手に入りません。Google先生に聞いて見ましょう。 海外のサイトにて有料であります。
明けましておめでとうございます。 本年度も変換ツール・MIDIについて大いに盛り上がりましょう!
>>243 の事って、SSG音源が高音域で音程が怪しくなるのと同じなのかな?
PC-98の音源で打ち込んでいた時、音程が微妙だった記憶があるけど。
音程精度は周波数レジスタが何ビットあるかに尽きると思う OPMのKC(キーコード)みたいな方式なら話は違ってくるだろうけど あれは内部にテーブルを持ってるってことになるのかな
251 :
SOUND TEST :774 :2009/01/03(土) 01:46:02 ID:bfvPu5dC
あけてました。おめでとうございました。
>>249-250 0〜2047 の11bit。
技としては、オクターブ1個上の音色を作って、
1オクターブ下で鳴らすって技がある。
矩形波とか、そういう簡単な音色限定だけど。
ワンダースワンは、chiptuneとかで使っても、面白い音源と思うよ。
WSをライブで使ってる人いるんだよな。WTDなんだろうか。
WonderWitch + SoundILかもしれないぞ! となりで、弟がFF11やってるんだが、ロンフォーレってところの音楽いいな! なんか、コード進行が、すごい植松進行だよな。
でも植松節じゃないんだよな。
トニック→ドミナント→トニック が繰り返されるあたり、植松伸夫進行に感じるんだ。
誰かXenogearsのformat見破った人はいないのーーーー? 激しくmidiにしてぇよぉ〜〜!!!
257 :
SOUND TEST :774 :2009/01/05(月) 19:54:47 ID:u43szB5x
デュープリズム、マダー?
マダ by うぷぬし てか、欲しいなら、解析協力すれ。 解った範囲を書き込みしてくれれば、それをソースに反映してアセンブルしてupる。 俺、ゲーム自体最近やり始めたばっかだ。 曲も知らないのに、ふつう、作れねぇyp
うぷぬし
最近、アークザラッドにハマっててdiscのIMGファイルから曲を抜出そうと seqripで切出してseq2midでmidiに変換したが、ものの見事にmidiが再生 出来なかった。何でかのぉ? 同じ経験した人、居るかいなぁ?
>>260 1なら何も考えなくても出来た覚えがあるんだが
>>261 psfからは簡単だったがdiscからは変換されても再生不能。何故か解からんが
263 :
SOUND TEST :774 :2009/01/06(火) 16:59:57 ID:p+AQrpbu
俺も変換出来なくて諦めた記憶あるわwww
圧縮されてるんじゃないの? べたのSMFとか、無駄にサイズがでかいし。 SEQって、SMFと似たようなフォーマットなんでしょ?
切出したseqの中身を覗いたが圧縮情報は無かったぜ?
FF8MMLで吐いたMMLの音色設定集作ってみた。
タイトル:FINAL FANTASY 9
対象音源:Roland SC88Pro
もの :
http://www1.axfc.net/uploader/He/so/179147.lzh PASS :FF9
ff8mml.com作った当時、音色割り当てしたのはここまでで、
続き、作る気力がある人、よろしく!
一部だけ割り当てて、書き込んでくれても良いし。
まとめ位なら、暇なときにでもやります。
ff7mml.comと違って、コピペしてからmml2midでコンパイルしないといけないからめんどいけど、
まぁ、抜き出し物はそう言う物だとあきらめて。
色々、データ眺めてたんだけど、やっぱり、
曲データ毎に音色番号に割り当てられてる楽器が違ってるから、
タイトル一括での定義ファイルは、実装無理だわ。
『Vamo'alla flamenco』 の「まだまだあまいぞ!」は、当然ながらSC88Proにはそんな音色ないから。 鳴らないけど、我慢してね♪
間が開いてるのが気持ち悪いから、これだけ定義してみた。 ■CD1-19:ファンファーレ 《パーカス定義》 $8z @49 /*Instrument of percussion 1z*/ 《音色定義》 $0a k127 y100,2 y101,0 y6,64 H0,3 @56 ;Trumpet $1a k127 y100,2 y101,0 y6,64 H0,3 @57 ;Trombone $2a k127 y100,2 y101,0 y6,64 H0,3 @74 ;Recorder $3a k127 y100,2 y101,0 y6,64 H16,3 @72 ;Piccolo 2 $4a k127 y100,2 y101,0 y6,64 H0,3 @72 ;Piccolo 1 ■CD1-20:あの日の記憶 《音色定義》 $0a k127 y100,2 y101,0 y6,64 H0,3 @0 ;G.Piano $1a k127 y100,2 y101,0 y6,64 H0,3 @68 ;Oboe $2a k127 y100,2 y101,0 y6,64 H9,3 @4 ;E.Piano $3a k127 y100,2 y101,0 y6,64 H0,3 @71 ;Clarinet $4a k127 y100,2 y101,0 y6,64 H0,3 @70 ;Faggote
pass間違ってるぞ
アークザラッドは1〜3なら普通にゲームディスクのデータから変換して再生できるよ? パソコンのドライブに問題があるんじゃないだろうか
>>262 psf作った人が標準seqに変換した可能性もある
seqripでseqデータ吐き出しは270曲程。seq2midで変換したら同じ曲ばかり数曲 再生可能。あとは全て再生不可能。違うPCで何度か実験したが結果は全て同じ。 ドライブ不具合でも無さそう。考えられるのはヘッダーpQESはダミーで実際には 別ドライバでデータが形成されていると言うことだろうか…。Pgconvで試しても同一曲 数曲とストリーム(DLS)の吐き出しのみ。
>>269 ごめん。小文字だった。
>>272 方法が間違えているか、圧縮されているか、独自拡張があるのか、独自形式か。
疑問があるんだけど、CD-ROMのISOイメージファイルって、
CD-ROMのセクターにかかれているデータだけが入ってるの?
セクターの前に、セクタ番号とか、トラック番号とか、シリンダ番号とか、同期用のGAPとか入らないのかな?
フロッピーディスクの構造は知ってるんだけど、CD-ROMのディジタル的な構造は知らなくて。
昔、物理セクターの中じゃなくて、セクターとセクターの間にある、
同期用のGAPに、データ書き込んで、それをコピープロテクトにしてたゲームとかあって。
PSでも、そう言うこと、やってるのかなぁ〜と。
とか、同じセクタ番号のセクタを2つ作って、それを検出する奴とか、 あえて、特定のセクタ番号のセクタを作らないとか、 特定のトラックは全部GAPにして、セクター数を0にするとか、 セクタを、通常はインデックスマークから、0,1,2,3の順番で並べるところを、 8,9,10,と並べて、それを検出するとか、 いろいろなコピープロテクトがあったんです。
CDイメージはベタもあればGAPが挟まってるのもあるけど PS1のゲームだったら大抵はマウントすればファイルシステムとして見えるので問題ない XAはそれじゃ駄目なこともあるけどこのスレ的には対象外だし でも、たまにファイル見えないのもあってイメージを見る必要があるんだよね フォーマットは色々あるし全然知らないけど、圧縮みたいなことさえしてなければ ゴミ部分はほとんど一目瞭然なんで適当に加工してベタな状態にしてるよ 困ったら何はともあれバイナリエディタでビットマップ表示を眺める
88Pro聞いてみたいけど、 もうシリアル接続できる環境なくなっちまったからなぁ...。 Win98時代は勝手サイトの作りこまれたデータにずいぶん世話になったが。
誰かハチプロ安価で譲っておくれ。オイラの壊れちまった。
あ、88proってそういえばUSB接続ないんだっけ。
8850と8820はあった覚えがあるけどな
>>276 USB→RS-232C の変換装置とか売ってるぞ。
それか、USB接続できる
>>279 を買うんだ!
Ch10以外もリズムトラックに設定できるGM規格のMIDI音源が2ポート分(32トラック)あれば、
define.mml や、 定義の所いじくれば、SC88Pro以外でも聴けるよ。
ff7mmlと、ff8mml は、リズム関連の命令は、マクロ($0z, $1z)で出力してるから、
・ff7mmlで吐いたmmlは、define.mml
・ff8mmlで吐いたmmlは、init.mml
の中の、
$0z EX x41,x10,x42,x12,{x40,x10+R,x15,0},xF7 J0 ;パーカスoff
$1z EX x41,x10,x42,x12,{x40,x10+R,x15,1},xF7 H0,3 $8z ;パーカスon 1
$2z EX x41,x10,x42,x12,{x40,x10+R,x15,2},xF7 H0,3 $9z ;パーカスon 2
を、その音源でのリズムチャンネルの設定方法に変えればok。
SC88Proは、エクスクルーシブで設定するから、付属のdefine.mmlは、
エクスクルーシブ(GSのやり方)になってる。
MML2MIDの命令は、
$ … マクロ定義
H … バンクセレクト(プログラム・パッチ・音色の) (引数はmsb,lsbの2個)
@ … プログラムチェンジ
y … コントロールチェンジ (引数は、レジスターとデータの2個)
Ex … エクスクルーシブ (引数は、xF7がくるまで)
MML2MIDの数字の書き方は、通常で10進数。
先頭にxがついたら、16進数。
これと、基礎的なMIDI規格が解ってれば、定義を自分で編集できると思う。
あ
>>280 のエクスクルーシブの中に、
『x10+R』
って引数があるけど、"R"は定数で、Roland式のチャンネル番号が入ってる。
・取説より抜粋
> チャンネル10ならばRは0
> チャンネル1〜9ならばRは1〜9
> チャンネル11〜16ならばRは10〜15
そのほか、"C"って定数もあって、これは、チャンネル番号がそのまま入ってる。
で、EX命令中の "{ }" は、Roland 式のチェックサムをコンパイラに計算させる範囲。
GM2用のCRC計算はしてくれないんで、GM2の場合は、自分でチェックサム計算要。
何かいいネタない?
akao2mml の変更点
version 1.16 2009. 1. 9
◆MASM9.0(Microsoft (R) Macro Assembler Version 9.00)
でアセンブルできるように、ソースファイルを手直しした。
MASM9.0は、以下のソフトウェアに含まれて居ます。
・"Microsoft (R) Visual Studio 2008" (有料)
・"Microsoft (R) Visual C++ 2008 Express Edition" (無料)
→
http://www.microsoft.com/japan/msdn/vstudio/express/default.aspx ※別途、16bit実行ファイルをアセンブルする為に、16bit版のリンカーが必要です。
→
ftp://ftp.microsoft.com/softlib/mslfiles/lnk563.exe ◆コマンド関連
・以下のコマンドに対応
0xFC (AKAO24) 拡張音色に対応
但し、こちらは曲データ毎に番号に統一性無いため、
音色割り当ては、各MMLファイルを直接編集要です。
(FF7では使われない。サガフロンティアで多用されている。)
・以下のコマンドを修正
0xEE (AKAO24) 無限ループ命令によるジャンプに再対応(バグ修正)
0xFE06(AKAO32) 無限ループ命令によるジャンプに再対応(バグ修正)
※version 1.01の時点で元々できていたのだが、
0xFE07命令の対応時に、正常動作しなくなっていた。
そのバグの修正。
(FF8や、サガフロでSMFコンパイルできなかった曲の対応)
おつ
一応、windowsがあれば、Microsoftが無償公開しているソフトでアセンブルできる状態にしたんで、 やる気があれば、誰でも*.asmのソースの編集して、アセンブルできるようにしておきますた。 ただ、8.00対応の為、6.11以前のmasmは使えなくなったんで、ヨロシク。 PC98時代に主流だった?、masm5.00とか。 nasmとか、そういうのは知りません。使ったこともナッシング。 masm 6.00以降の日本語の文献とかって、絶版だったり入手しにくいから 参考asmソースという使い方は、・・・ソースがきったないので出来ません。 スパゲティーです。 ほかの、もっとコーディングが綺麗な人のソースを見ましょう!
スパゲティーとか大学の講義依頼久々に聞いたw
ふと思ったんだがakaoとかの独自ドライバや標準ドライバなんかで作成された sound dataはmidiで言うrcpやsngみたいなもので再生はゲームプログラム内に その音楽を走らせる為の独自シーケンサがあると考えていいんだよね?
SMF(*.mid)も、一つの曲データフォーマットで、 akaoも、一つの曲データフォーマットにすぎない。 SMF(*.mid)は、AMEIとMMAが合議の元決めた国際的なフォーマットなだけ。 SMF(*.mid)も、akao等の独自フォーマットも、演奏の為のデバイスドライバは必要。 ただ、SEQ?ってのは、SONYがゲームメーカーに提供しているライブラリに、そのデバイスドライバが入ってるんだと思う。 AKAOとかHOSAは、当然SQUARE内でデバイスドライバを開発したとおもう。 AKAOに関しては、その開発者が赤尾さんって方だから、AKAOってヘッダーが付いてるっぽい。 ただ、音色ファイルにもAKAOってヘッダーがついてて、曲なのか、音色なのかは、データの中身を見てみないと解らないんだよな…
このスレで需要があるかどうかは解らないけど、
PC98時代のFalcom物。
mucomに関しては、vectorに腐るほどツールがあるので、データフォーマットだけ。
----------------------
タイトル :NEC PC98版 Falcom SOFT 資料
ファイル名:mucom_format.txt
URL :
http://www1.axfc.net/uploader/He/so/180671.txt PASS :mucom
備考 :SORCERIAN 〜 Brandish 3 に該当
:但し、後期ソフトはスライド辞書で圧縮されています。
----------------------
一応、逆MMLもできるけど、PC98用のFM音源用のMML。
しかも、近似値でやってるだけだから、正確な変換じゃない。
MIDI音源パートや、BEEP音源パートも、一応、逆MMLできる。
けど、MML2MIDや、Sakuraとは全然文法が違うので、書き直し要です。
無限ループ命令は、無視しています(無限ループ未対応)。
MMLを目で見て、手動で楽譜で手直しってのは、出来ると思う。
----------------------
タイトル :NEC PC98版 Falcom SOFT 逆MMLコンパイラ
ファイル名:fmd98mml.lzh
URL :
http://www1.axfc.net/uploader/He/so/180674.lzh PASS :fmd98
備考 :英雄伝説4, Brandish VT に該当
:但し、Brandish VTはスライド辞書で圧縮されているので解凍要です。
----------------------
乙。 いただいた。いつもスマソ。
ちょっと気が付いたんだが、サガフロの音色定義の作成が大詰めなんだけど、吐き出された mmlやmidiの中身を確認しながらの作業で始めから音色指定が無いパートがあるんだけど、 やっぱり手作業なんだよね。パーカッションなんかはトランスポーズで直せばバッチリ。 でも音源にない音色が多々あるから原曲には近くなるけどモノによっちゃまるっきり曲にならないデータ もあるね。独自でサウンドフォントを作れば解消する話なんだろうけど… 機能上、仕方ない部分はあるけどakao2mmlはakao2midを超えた神ツールと断言してもいいと思う。 一使用者の立場から見て・・・・。
なんだか斧の調子悪いみたいだな・・・ 楽しみにしてたがakao2mmlは取り逃してしまいそうだ。
>>293 俺も akao2mml のデバッグしてて思った。
サガフロは、音色指定のコマンドが3つあって、
そのうちの2つは define.mml で編集可能なんだけど、
もう1つ、 0xFC コマンド(
>>284 で対応)があって、これも音色命令っぽい。
ただ、こっちは曲データ毎に番号の互換性がないみたいなんで、
0xFC命令で指定された音色は、曲データ毎に編集が必要になると思う。
書き忘れた。
>>293 お疲れ様です。楽しみにしてます。
俺も、デュープリズム、頑張ってプレイする。
スーパーマリオみたいなゲームをやるところまで行った!
思わず、Bダッシュとかしたくなってきた。
まぁ、昨日はオーボエレッスン他、今日はFF11のLSイベント &市民楽団の練習
明日は実家に行かないといけないんで、この連休は出来てないんだけど・・・。
火掻き棒はSDKが持たないと真の力を発揮できない
298 :
SOUND TEST :774 :2009/01/12(月) 21:58:18 ID:BNGHxkhd
はぁ? 意味わからん
>>283 ツール頂きました。
素晴らしいです。
サガフロのpsflibからff7mmlで変換しているんだが、曲順がサッパリ・・・
データ・タグみれば?
HESをMIDIやMMLのような形に変換するものってある?
302 :
SOUND TEST :774 :2009/01/14(水) 21:25:34 ID:EVUsULIV
ハッキリ言って、そんなモノない! 自分で作れば?
ろむイメージを通信規格か音楽記述書式に変換か 難しいな
色々と頑張った甲斐あって変換MIDIが70タイトル超えたwww
305 :
SOUND TEST :774 :2009/01/17(土) 12:06:55 ID:XnBhVjE4
過疎ってるな
っていうか、オーボエってかなりムズいしセンスが無いと吹けないよな。 俺は昔、サックス吹きだったけどシンセに変えたのよ。
俺は、シンセの方が先だったよ。で、生楽器もやってみたくて、オーボエ始めた口。 楽団の人たちからは、「おまえ、いきなりオーボエとか、思い切ったことやるよな」とか言われてるゼ 他の人らは、中・高校時代から、吹奏楽やってるような人たちだから、やっぱみんな巧いわ。 俺も、巧くならないと。
そーいえば…楽器始めたのはファミコンのドラクエ3の曲に触発されてからだなぁ… 懐かしい!! 本格的に始めたのはFF4に影響された時かな…
小中学生の時に、リコーダーでドラクエや、FFの曲をリコーダーで奏でるのは仕様だったよな。 アルトリコーダーでレクイエム演奏してみたり、リコーダーで祠とか、フィールド吹いてみたり。 ・・・ゴメン。同学年内でそんなことやってたの俺だけだったわ。 国語授業で原爆の朗読をするときに、班で持ち回りで朗読するんだけど、 自分の場所以外でアルトリコーダーでDQ3のレクイエム吹いたりしてた。 超 ゴメンナサイ。
あの頃はゲームミュージックって言葉もなければジャンルすら確立されてなかったもんなぁ。 人前で演奏する事自体恥かしい時代だった。
>>311 DQ3の頃って88年じゃん。ゲームミュージックブーム真っ盛りの時期だろ。
グラIIやA-JAXなど複数のレコード会社から出てたし、
アケ基板のサウンドプロテクトが普及してきたのもこの頃だし、
当のDQ3だって何故か鴻上尚史のボーカル盤なんてのが出てたりした。
人前でゲーム音楽を演奏するのが恥ずかしいのは個人的な問題で時代は関係ない。
小学生の頃は足踏みオルガンでグラ、ツイ、スペハリとか弾いてたよ。
最近はソレ系の芸人までいるらしいな。良いとも悪いとも評価し難いが・・・
Vの交響組曲が売れまくってたころを知らない世代かぁ
当時は売れまくっているかどうかを知る術もなかった気がする
売れてるとか売れてないとかいう見方はしてなかったけど ゲームミュージックの品揃えが悪い店でも置いてあるとか わけのわからんボーカル盤が出てるとか N響を使ってるとか そういう要素にはメジャーというかバブリーというか、そんな雰囲気を感じたよ。
人前で演奏とか、恥ずかしいとか思う暇ないぜ。 指間違えないかとか、音程正しいかとか、リズムあってるかとか、 そっちの方に意識がいって、演奏中は恥ずかしいとか思ってる暇無い。 今でも、そろそろドラクエ9の発売日だからって、 楽団の4月の演奏会に向けて、ドラクエの譜面さらってるしな! 普通に、カラオケボックスとかでも練習して、隣の人が覗きに来るけど、 そんなんで恥ずかしいとか思ってたら、楽器なんて出来ないぜ
その楽団でCD出してくれよw
PS2のYs3のディスクからsqファイルをブッコ抜いて変換してみたけどモノの見事に失敗した。 あれも騙しヘッダーの特殊ドライバみたい。天外魔境2 はストリームっぽい。
319 :
SOUND TEST :774 :2009/01/21(水) 21:04:10 ID:TVvJ6B5i
何だか寒いレスでスレが止ってらぁ〜〜
>>317 まぁ、やるのは、昔出版されてもう絶版の楽譜だけどな。
コピー譜が出回りすぎて、絶版になったとか。。。
すぎやま工房で、同じ楽譜をレンタルはしてるみたいだけど、
弱小楽団にはレンタルなんてデキナイデス。
で、akao2midのデバッグとかしてるんだけど、ベイグラントストーリの
music004.dat
music016.dat
これ、やっぱ変換あきらめかも。
無限ループ解析のアルゴリズムを書き直してみたんだけど、やっぱ上2曲で暴走する。
バイナリエディタで眺めてたんだけど、条件ジャンプと、ジャンプ(普通は無限ループにつかうコマンド)が入り組んでてスパゲティーなシーケンスになってる。
MUSIC058.DAT〜MUSIC065.DAT位のところでも、mml2midでコンパイルできないけど、
曲を聴いたことが無いから、どこを直せば良いのか解らない状態。とりあえず放置。
/*FF*//*FF*//*FF*/って連続してるところが怪しいんだけど・・・。
これ何やってるんだろう。
ごめん akao2mml
N64対応のVGMTransを探しているけど見つからない。 良かったらで構わないのでうpして下さる方がいると助かります。
わりい。未公開Ver.の公開は作者殿に止められているので うpは出来ない。海外のサイトで、それ系のフォーラムで会員になるとVGMTrans full Ver. と言う名で未公開Ver.が落せる。自力GETをお祈りしています。
自ロワ 主人公@-@ ロワ会場で筋トレ中、もう一人の筋肉から技を盗もうとしてる 主人公@‐A 拡声器使って強マーダーが目の前、機械女が近くに 主人公@‐B 魔王のホレたヤツと一緒にバイクから幼女を救出、比較的平和。 主人公@-C ブロマイドを託し魔王に特攻して死亡 でも託した相手が主人公G 主人公A 即効で強マーダーにぶつかる、死亡 望みを託した相手はなんとかなりそう 主人公B 自分は勇者なのかどうか悩んでる。 主人公C いいように利用されそう、ステルスと行動。 主人公D 呪いから開放、今後どうなることやら 主人公E マーダーを一人間接的に撃墜、若干空気 主人公F 主人公Bと分離、@-@と合流しそう 主人公G とあることから自我を失いかけている、危険。 主人公かどうかは最近出たクロスオーバー新作で決めたり 複数いたりすっから困る
誤爆申し訳ない
+-----------------------------------------------------------------------------
| タイトル | Super Famicon版 SQUARE SOFT 逆MMLコンパイラ
|ファイル名| AKAO2MML.LZH
| カテゴリ | MS-DOS用プログラム(※16bitアプリケーションです)
| 動作機種 | NEC社V30シリーズ、intel社i80186若しくは、その上位互換のCPU
|前提ソフト| MS-DOS version 3.30d以降 (但し、64bit versionのOSは不可)
| 圧縮方式 | lh5
|転載の可否| 不可
|URL |
http://www1.axfc.net/uploader/He/so/185662.lzh |PASS |akao
+-----------------------------------------------------------------------------
version 1.00 2009. 1.22
とりあえず作った。
FINAL FANTASY 5 に対応
基本的には、ff8mml&ff7mmlのソースから引用して作っているんで、ちゃんと動くと思う。 実は、無限ループの戻り先を解析するルーチンにちょっと手間取ったけど…。 相対アドレスと思いこんでいたら、SPCって絶対アドレスで書かれているのな。orz ff5は、spcデータもってるから作れるんだけど、 ff4, ff6は、spcデータもってないのよ。カセットも実家だし、 ROMイメージを作る機械も、知人にあげちゃったので。orz ff5のspcは、PC98のハードディスクにはいってたんで、 それを持ってきてデバッグした。 10年くらい前にSPCに抜き出した奴なんで、いまのspcと同じなのかどうか…
ビックブリッジの死闘も、音色振ってみた。 ----- $0c $0z k127 v127 y100,2 y101,0 y6,64 @16 _+12 ;Organ $1c $0z k127 v100 y100,2 y101,0 y6,64 @56 _0 ;Trumpet $2c $0z k127 v100 y100,2 y101,0 y6,64 @34 _-36 ;Bass $3c $0z k127 v100 y100,2 y101,0 y6,64 @29 _-12 ;Guiter $4c $0z k127 v100 y100,2 y101,0 y6,64 @117 _-12 ;Tom $5c $1z k127 v64 y100,2 y101,0 y6,64 J38 ;S.Drum $6c $1z k127 v64 y100,2 y101,0 y6,64 J36 ;B.Drum $7c $1z k127 v64 y100,2 y101,0 y6,64 J49 ;Cymbal $0d $1z k127 v64 y100,2 y101,0 y6,64 J46 ;H.H.Open $1d $1z k127 v64 y100,2 y101,0 y6,64 J42 ;H.H.Close
>>320 ベイグラのpsfで確認出来るのでは、と思ったけど
内部のファイル名と本当の曲名との対応が聴いてみないことには判らんよな
イベントの進行に応じて次のループ部分へ進むみたいな
スクリプトからの動的な制御をあちこちでやってると思われる>ベイグラ
ff5mml リリースした後にミスに気付いた。
音色定義の出力。
音量を V100 って出力してるけど、mml2mid の音量命令は小文字の v だった。
>>328 のビックブリッジのように、Vを小文字に書き換えて。次のversionで直す。
シーケンスの中は、E (エクスプレッション)でやってるんで、音色定義の所だけ。
>>329 そういえば、CD-ROM内のファイル名がわかっても、それが何の曲か解らないか…。
>>323 ありがとうございます。了解しました。
その後自分で何とかのファイル某フォーラムで探した
032307は未公開版ではなかったようだ。
さらに自力で何とかしてみることにしますよ。
エンドタイトルも、音色振ってみた。 これは、曲中で条件ジャンプ命令(いわゆる音楽の「2カッコ」)つかってるんだけど、 「1かっこ」と「2かっこ」の間に、実際には使われてない楽譜データが入ってて、 それで、スネアドラムだけ、最後の方で、ソロプレイしちゃってる。 ちょっと、対応方法考えるわ。 $0c $0z k127 v100 y100,2 y101,0 y6,64 @48 _0 ;Strings $1c $0z k127 v100 y100,2 y101,0 y6,64 @56 _0 ;Trumpet $2c $0z k127 v100 y100,2 y101,0 y6,64 @73 _+12 ;Flute $3c $0z k127 v100 y100,2 y101,0 y6,64 @60 _0 ;Horn $4c $1z k127 v64 y100,2 y101,0 y6,64 J49 ;Cymbal $5c $1z k127 v100 y100,2 y101,0 y6,64 J40 ;S.Drum $6c $0z k127 v100 y100,2 y101,0 y6,64 @46 _+12 ;Harp $7c $0z k127 v100 y100,2 y101,0 y6,64 @47 _-12 ;Timpani とりあえずは、検索で2回目にひっかかるこれを、コメントアウトして。 ↓ [E75a4E50a12a12a12E75a4E50a12a12a12E75a4E50a12a12a12a12a12a12E75a4]8
>>326 いつも乙です。早速、使わせていただきました。いや〜〜、すごいですね〜。
かなり感動してマス。はい。
FF4・5・6と同一エンジンかと思いきや違っていますた。
うぉっ!! またもや神ツールの投下ありがとう!! ってか、この怒濤の勢いスゴ過ぎる〜。 ホントにいつも乙です。サガフロの音色定義、ずっと出張続きなので停滞気味です。 申し訳ナイ・・・
>>333 いや、同一エンジンだと思いますよ? 楽譜データも一致しますし。相違点はシーケンス開始の
オフセット値と若干のメタイベント関連でしょうか。そこをクリアすればFF4 5 6、 ロマサガ1
2 3 の変換は可能だと思われます。spc data を穴が開く程見つめれば解かる筈です。
とりあえず検証のためにspc落とせるサイトのリンクはりますね。
ttp://snesmusic.org/v2/
ff4とff6は、そのうち着手します。 以前貼られたURL見てみると、若干、フォーマットが違うようなので、 別の実行ファイルになると思います。 (バイナリーが違うだけで、処理は、ほぼ同じっぽい。) ソースファイル中で "ifdef" 〜 "endif" の条件コンパイル疑似命令つかって、 同じソースファイルで作れるようにはしておいてあるつもりなので、 先ずは ff5mml.com をある程度形にしちゃえば行けると思う。 で、自分で ff5mml.com で遊んでいたんだけど、音量バランスが悪いことに気付いた。 昔、ppz8 でつくったときは、対数テーブル入れていてバランス取っていたんだけど、 spc700 の音量を、 midi音源の音量に変換するのも、対数テーブルが必要かもしれない。 そのへんは、テーブル入れてみて、実験してみるつもりです。 あと、テンポ早くない? いま、テンポ命令の値に、 1.1 をかけ算しているんだけど、 かける値 1.0 でいいのかな? (つまり、そのまま。)
ちょっと、音量バランスとか、その他おかしいところあったら、ソースいじくるつもりなんで、 ff5mml.com の音色割り振りしようと思ってる人がいたら、ちょっと、待って。 こればっかりは、色々な曲で検証しないと、完成度が上がらないので、 ちょっと、時間かかるかもです。 あと、LFO(ビブラート・トレモロ)も、現状は無視してます。
ってことで、気付いたことがあったら教えて欲しいので、宜しくデス。 → ff5mml.com
上の方に、そのURL貼られてた。それも参考にした。 FF5に関しては、昔PC98の86音源でSPCをならそうとかやってたから、自分も解析してる。 でも、サイト上の情報には、引数についての細かいことが書いてないのよ。 例えば、音量の1は、何dB(デシベル)に相当するのかとか、何V(ボルト)なのかとか。 MIDIに関しては、 ・Expression や、 Volume は、 Gain[dB] = 40 × log( Volume ÷ 127 ) [dB] ・パンポットは、 Gain(Left) [dB] = 20 × log( cos( π ÷ 2 × max( 0, Panpot − 1 ) ÷ 126 ) ) Gain(Right) [dB] = 20 × log( sin( π ÷ 2 × max( 0, Panpot − 1 ) ÷ 126 ) ) ってのが、標準って事になってるから、これに合うようにどう変換するか? あと、ピッチとか、制御系がどうなっているのかって事まで把握しないと、 正確な変換ってできないのよ。
やっぱりプロはスゲェよ。俺達、素人の出る幕はないな。
これで、色々バランス整った。 それなりのMIDI音源で、ちゃんと音色ふれば、それっぽく聞こえるようになった。 自分で確認したのは、ファイル『FF5_SC88Pro_設定集.txt』に書いてある曲だけ。 ってことで、GS音源とか、XG音源とかもってるひと、音色ふって! GSは、まぁ、自分も気が向いたら割り当てるけど。 多分、SPC700のメモリの限界なのか、 ff5は曲毎に音色番号に割り当てられる楽器が違うので、 ff5mml.com も、曲毎に割り当て必要になってます。 プログラムし出すと、集中しちゃうんだよな。 もうこんな時間。寝るじょ。
PASSを・・・
20レスぐらい読めば?
誰か、ビオックブリッジの死闘のトランペットパート、吹いてみない? ドラムもむちゅかちいな。 ハイハット。テンポ180の16分音譜でタッタタタッタタ・・・ ラベルのボレロのスネアドラムよりきびちいんじゃね?
ビックブリッジの曲ってリアルトランペットだと 高音域が足らなくないかな… 生楽器は詳しくないけどw
>>347 なかなか補正値の割出しには骨が折れるな。って言うか、クロック(同期)が取れてないせいか
どうしてもノート位置がずれるけど、あるていど形になるから大したもんだぜっ!!
マジ、乙カレーっす!!
>>347 これnsf2midのものにも使えそうだね。
乙です。
>>347 いつもシーケンサーで手動で倍率調整してたから
これはなかなか便利だね
乙乙
>>348 XIIのアレンジでも途中でオクターブ下がってたな
ff5mmlのinit.mmlの編集ってどうやるの? だれか見本くれない?
init.mml は、SC88Pro用の初期化と、パーカッションon/offのマクロが書いてあるだけだよ。 XG音源な人とかの為に、初期化設定や、パーカッションon/offの定義を別にしてあるだけ。 パーカッションのon/offって、音源(GM2, GS, XG)でやり方が全然違うし。 XG音源は持ってるには持ってるんだけど、聞き専用だから、使い方知らないんだ。 SC8850 & Fantom-XR & リアルオーボエ使いだし。 音色番号の割り振りは、各曲mmlファイルの一番下に出力されてるマクロを編集する。 いま、ff6mml デバッグ中。近いうちに公開できると思う。 でゅーぷりずむは、ペンディング中。ごめん。 いま、ゲームそのものをプレイ中
http://www1.axfc.net/uploader/He/so/188256.lzh pass は、この前といっしょ。
■改訂履歴
version 1.02 2009. 1.29
一応、FF6に対応したけど、まだ逆コンパイルできない曲有り。原因不明。解析中。
・ディチューンコマンド→ピッチベンドへの変換式の係数を調整した。
(音程が外れていれる曲があった。)
一応、ff6mml.com をリリースしました。
ただ、実際に逆コンパイル→mml2midでコンパイル後の、
音楽として正しいかは、あまり確認していません。
養成乱舞だけは、これが一番、やってることがややこしい曲だろうので確認しました。
一番、この曲が手間どるだろうなとおもいきや、こっちはすぐできちゃって、
別の問題の方が手間取りました。
未だに、エンディングは正常に逆コンパイル出来ないみたいで、原因究明中。
本当に、曲として正しいか、確かめていないので、
確かめてもらって、報告してもらえると、凄い、ありがたいです。
自分も、作業できるのが、会社帰宅後〜寝る間なので、
とりあえず、今日出来た分として、アップします。
養成じゃねぇぇぇぇえ。 「妖精乱舞」だっけ? ラスボスの3段階のぼるあれ。 あれも、フラグによる曲のループ抜けやってるっぽいので、 FF9のラスボス対応時に作ったソースを使い回して対応しました。 こういうめんどいのは直ぐ出来たのに、エンディングがわけ解らんyp。 今日はもう寝ます。
寝る前に、音量バランスだけ気になったんで、バトル2だっけ? にSC88Proで音色割り当ててみた。 とりあえず、音量バランスとかは問題なさそう。 $0c $0z k127 v116 y100,2 y101,0 y6,64 H1,3 @48 _0 ;Strings $1c $0z k127 v127 y100,2 y101,0 y6,64 H1,3 @17 _0 ;Organ $2c $0z k127 v127 y100,2 y101,0 y6,64 H0,3 @34 _-36 ;Bass $3c $1z k127 v127 y100,2 y101,0 y6,64 J36 ;B.Drum $4c $1z k127 v127 y100,2 y101,0 y6,64 J38 ;S.Drum $5c $0z k127 v116 y100,2 y101,0 y0,64 H1,3 @30 _-24 ;Dist.Guiter $6c $1z k127 v127 y100,2 y101,0 y6,64 J49 ;Cymbal $7c $1z k127 v127 y100,2 y101,0 y6,64 J42 ;H.H.Close $0d $1z k127 v127 y100,2 y101,0 y6,64 J46 ;H.H.Open
http://www1.axfc.net/uploader/He/so/188617.lzh ↑
SPC版 akao2mml
version 1.03 2009. 1.30
・無限ループ命令を使ったジャンプのアドレス計算が正常に出来ていなかったバグを修正。
・リピート命令をシミュレートするモードを追加した。 … /d1 オプション
MML2MIDの『 [ : ] 』命令で実現できないようなリピートを使っている曲は、
このオプションを追加することにより、逆コンパイラ内部で、リピートを行います。
FINAL FANTASY 6のエンディング(後半)は、このオプション要です。
・無限ループの解析ルーチンで、リピート命令もシミュレートするようにした。
やっと、ff6の全曲、逆mmlできた。
ただ、エンディングは、従来のアルゴリズムじゃ出来ないから、
ff6mml /d1 ファイル名.spc >ファイル名.mml
ってかんじで、 /d1 ってオプション付けて。
オプションの意味は、index.html 読んで。
GJ!! なんというネ申!!
最近思う事だがakao2midにしろspc2midにしろ直接ゲームの音楽データを midi変換するよりも一度mmlにしてからmidiに変換した方が再現率高いな。 確かに変換時における手間は多少なりともかかるがバッチファイル書いて 一括処理してしまえばいい事だし。 akao2mmlの人はマジ、スゲェよ。感謝、感謝デス。
自分で耳コピして音色つけたほうが再現高くね?
>>363 音感もってれば、耳コピして自分で時間かけて打ち込む方が、再現度は高くなるよ。
akao2mml作る時も、作るには、最初何曲か耳コピしておいてから作ったし。
PSやSPCと、MIDIじゃ、パラメーターの仕様が違うから、
その変換式とかちゃんと音を聞いて、調整しないと行けないし。
それでも、やっぱり、耳コピして打ち込んだ方が再現度は高いね。
あくまでも、参考用のデータだとおもう。コンバーターで得たデータは。
確かにそうかも知れないな。だが、俺の思う所は耳コピは音感持つ人の技であって 原曲に近いMIDIを作れるかも知れないけど音感無い人はやっぱり変換データが必要で そのデータに手を加えて曲に表情を付けていくのが精一杯。 なので変換ツールを作成された人は自分にとって神な訳です。 あと、自分の偏見かも判りませんが、耳コピはやはり原曲再現と言うよりもアレンジって いう感覚に陥ってしまいます。ゴメンなさいね。
でも、音色ファイルもぶっこ抜いて、サンプラーとかでならすと、 まじで、そのまんまの曲になるよ。 むかし、PC98上で、FPDやPPZ8でならしてたけど、そっちの方は本当に再現度高い。 音色のフォーマットは解らない。 昔、SPC内の音色をFPVファイル(FPDの音色ファイル)で吐くコンバーター作ってた人いたけど、 今もどっかで公開されているのかな?
私の場合音感といっても殆ど相対音感だからなあ…
基本耳コピだけど、取り切れない所は変換ものに頼ってるかな。
>>365 >原曲再現と言うよりもアレンジ
そうかもしれない。原曲再現目指してるつもりでも、ついつい手癖で
やってしまう箇所が結構あるw
とはいえアレンジと言うのもおこがましいので原曲「重視」って事でひとつw
正確無比な耳コピなら歓迎なんだけど、それはなかなか難しいと思います。人間臭さって 面では十分過ぎる位に味があると思いますけど、それでは此処のスレの意味が無くなると 思うんですよね。あくまでも耳コピを押される方は耳コピのスレを立てていただければ 賛同される方が集まって大いに盛上がると思いますよ。耳コピについては否定はしません。 内蔵音源の解析への第一歩みたいなものですからね。
370 :
SOUND TEST :774 :2009/02/01(日) 09:19:59 ID:zvBMkv6p
ってことで、次のネタお願いします。
>>366 SPCの音色フォーマットはbrrといってだね……
これをぶっこぬいてwav変換できるツールがどこかにあったはずだよ。
wavだと、波形のループポイント失われない? サンプラー用の音色データーにループポイントを保持したまま変換しないと、 たぶん、そのままの音楽にならないよ。 自分は、pc98エミュレータの中に、spc2fpv.exe っての 草の根BBS時代にどっかからかダウンロードしたけど・・・ とおもって、spc2fpv でぐぐったら、出てきた。
OpenSPCでspcをmod形式に変換できる。 mod形式から音色データだけ取り出せばサウンドフォントとかにも変換可能。
374 :
SOUND TEST :774 :2009/02/01(日) 17:36:31 ID:zvBMkv6p
話は変るがコナミ系ってSPCが謎だよな。特にマダラ2が特異なフォーマットだし。
まぁ、ネタは貰うもんではなく、自分で作るもんじゃ! 俺、そろそろ定演だから、まじめに練習しないとヤバイyp。 akao2mml ソース書き直したし、そんな難しくない構造だと思うから、 気力があれば、ソースみて、サガフロ用とかのも作れるはず。 自分的には、あと、サガフロ3とFF4は時間できたら着手予定だけど、 スーファミの■製ゲームはFFシリーズしかやった事無いから、サガフロ3は微調整は出来ない。 それに、音色割り当てるってネタもあるじょ。 ツールはアップしてるけど、音色割り当てとかその辺は、結構、助けて欲しかったり。 デュープリズムは、しばらく待って欲しい。 あれは、今まで解析したフォーマットの中で一番複雑怪奇な構造してるんで、けっこう時間掛かると思う。 いつも、設計者がどういうことを考えているのかを思い浮かべて、 こうしたいんだろうな〜っての予測するんだけど、デュープリズムは、全然想像できないヨ
>>373 それで出て来た音ってピッチが残念な感じになるんだけど俺だけかな?
サガフロ3?
なーに人の揚げ足取ってんだよ。暗黙の了解でいいじゃないか。
揚げ足とかじゃなくて、普通に疑問に思っただけじゃないのか
って言うか、主が何を言いたいか今までの流れを見て少し考えれば判るだろww
ごめん。 えっと・・・ ロマサガか!!
VPとSO2を解析したけど、共通フォーマットとしか 分からなかった私が通りますよ。 アレって誰か解析できた?
昔やってた人がいたけど、愛想尽かして去っていったよ テスターとして個人的にプログラムもらった人もいたようだが、どうなったやらね ま、1年かそこら前の話だし、もう戻ってくることもないだろう
あれってVGMTransの未公開Ver.みたいに海外のサイトに不法に流されてた。 しかもRARにパスかかってて外人からパス買うシステムになってたぞ?
DL数制限掛ける馬鹿は逝ってよし。 って、それは別人だっけ?
うp時のコメントとか色々な面での仕草?からして別人だったと思う。 馬鹿1人の為に職人を失ったのは、かなり痛い。
連投スマヌ。 確かに過去の職人はモノホンだったよな! ベイグラとか変換が完璧だったからな。
個人的には、akao2mmlも、 解析協力してくれたり、akao2mmlのネタ(補助ツールとか、音色定義とか)を投下してくれる人が、 DLして貰いたかったりするんだじょ。(でも、変換後mml,midをうぷるのは禁止な。) ROM,DOMは、イヤン。 まぁ俺が出来るところまでは、時間見つけてこつこつ、ツール作っていくつもり。 spc版akao2mmlに入れた、ループ解析のテクニック (リピート命令をakao2mml側で展開しちゃうの)を導入すれば、 ベイグラどうにかなるかなぁ〜・・・。akao2mmlで暴走しちゃう曲。 暴走しないで、ちゃんとmidiにコンパイルできてる曲って、どう?
ROMやDOMが嫌ならサイト立ててお礼カキコ強制とかやればいいよ。 昔のROMサイトみたいにさw 2chでROMやDOMやめろってそりゃ無理ってもんだw
>>388 そんな何曲も試した訳じゃないが、短めの曲は一見大丈夫そうだったりする
昔のakao2midだとカタコンベのデータが滅茶苦茶なんだよな
ここで改良されてる版では試したことなかったな
協力したいのは山々だがなかなか… 音楽の知識もここじゃあまり役に立たないしなぁ。 88proでも持ってりゃ音色定義くらいはできるのかもしれないが、 定義の適用の仕方すらまだおぼつかない素人だったりするw
音色定義の仕方は俺も最初はチンプンカンプンだったがakao2mmlの人が投下 してくれたツールの中に入れてくれてる見本音色定義のファイルを穴が開く 迄ながめたら把握出来たぜ? 頑張って理解してakao2mmlの人を助けて応援 しようじゃないか。何事も貰いっぱなしは良くないでアリマス。 >375に書いてあったロマサガ3とFF4はかなり楽しみにしてたりするので あまり大きな事は言えないけど自分もそれなりに時間が取れたらFF4・5・6 ロマサガ3の音色定義は作るつもりです!!!
もっと分かりやすく説明すれば、協力者が増えるに違いない。 それ以上にクレクレも増えるだろうけど。
ここのスレは設立当初からギブアンドテイクだろww
>>392 じゃ、ロマサガ3、これからコーディングして(.asmソース書いて)みる。
あれ、FF6とあんまかわんないみたいだし、たぶん、すぐ作れると思う。
想定外の事してなければ
ロマサガ3 すぐ作れたには作れたんだけど、パーカッションくせ者だな。 ロマサガ3のリズムトラックって、 C, Cis, D, Dis ・・・ H(B) の12音にパーカッションが割り当てられて、 オクターブは関係ないってフォーマットだよね? ユーザーがパーカスを編集できるMIDI楽器じゃないと鳴らすの難しいかも。 SC88Proってユーザードラムないから、GSだとSC8850必須とかになりそう。 XG音源は、ユーザードラムあるんだっけ? 曲によって、パーカッションチャンネルにしたり、 メロディーチャンネルに戻したりしてるから、 オクターブ情報保持しておかないと、メロディーチャンネルに戻った時にオクターブずれそ。 ざっと、確認したところ、曲データ側でオクターブ指定し直しているっぽいけど。
ロマサガのパーカス。こんなかんじっぽい。 C : べードラ1 Cis: シンバル1 D : スネア Dis: シンバル2 Fis: H.H.Close Ais: H.H.Open B : べードラ2 とりあえず、あと何曲か確かめて、 ちゃんと曲として成り立ってるようだったらうぷる。
http://www1.axfc.net/uploader/He/so/191158 version 1.04 2009. 2. 4
Romancing Saga 3 に対応
ロマサガ3は、PS版のAKAOの様にリズムチャンネルがあります。
が、MIDIのようなのじゃなくて、上の書き込みの通り、
オクターブ関係なく、ド(C)〜シ(B)の12音にリズムが割り当てられる様です。
これを、MIDI音源で再現するには、
ユーザーパッチとかしようして、ユーザーがパーカッションを作る必要あり。
例えば、Roland SC8850だったら、次のようなエクスクルーシブを、
曲のはじめに127音階分送るとか。
送るべきエクスクルーシブ・メッセージは、各MIDI音源のマニュアルを参照。
0A EX x41,x10,x42,x12,{x21,x1C,48,41},xf7
0A EX x41,x10,x42,x12,{x21,x1C,49,43},xf7
0A EX x41,x10,x42,x12,{x21,x1C,50,45},xf7
0A EX x41,x10,x42,x12,{x21,x1C,51,47},xf7
0A EX x41,x10,x42,x12,{x21,x1C,52,48},xf7
0A EX x41,x10,x42,x12,{x21,x1C,53,50},xf7
0A EX x41,x10,x42,x12,{x21,x1C,55,44},xf7
0A EX x41,x10,x42,x12,{x21,x1C,56,42},xf7
0A EX x41,x10,x42,x12,{x21,x1C,57,46},xf7
で、mml2midのコマンド・文法については、mml2midの取説参照して。
ロマサガ3,C〜Bのリズムをmml側で定義できる仕組みを考えた。 音符を出力する前に、マクロを挟んでみようと思う。 で、マクロ側で J命令とかで、パーカスのノート番号指定できるように。 SC8850必須とか敷居が高くなるし、また、時間出来たら対応してみる。 このままだと、パーカスチャンネルの音色編集がとてつもなくめんどくさい状況なんで。
88Proでも8850でも同じやり方でユーザードラム使ってたよ
>>398 おぉっ!! ありがとうございます! ローランド音源は持ってないけど色々試して
頑張って作ります!!
http://www1.axfc.net/uploader/He/so/191488.lzh version 1.05 2009. 2. 5
◆ろまさが3
・パーカッションon時、音符に応じて前にマクロ($0x〜$5y)を挿入するようにした。
このマクロ中に、音色番号、ノート番号を定義する事で、パーカッションが容易に定義できます。
・これに応じて、mmlファイル中にパーカッション定義のマクロを出力するようにした。
◆FF5
・テンポの係数を変更した。(変更前:11/10→変更後:60000/55296)
※感(勘)で設定した係数から、SPC700のテンポ制御の仕様から算出した係数へ。
つまり、 『 BPM = 60[sec]÷{48[ticks]×(256÷指定値)×0.0045[sec]} 』
パーカッションに関しては、ド(C)から順に、
C ベードラ1
Cis シンバル1
D スネア1
Dis シンバル2
E スネア2
F ?
Fis クローズ ハイハット1
G クローズ ハイハット2
Gis ?
A ?
Ais オープン ハイハット
B ベードラ2
って曲が多いっぽいんで、
rs3mml.com は、デフォルトでこの設定を出すようにしておいた。
デフォルトの出力を買えて欲しければ、提案? よろしく。
そおいえば、FF5MML のテンポの係数って、 昔、ドレミ出版社のピアノ楽譜みて、それで決めたような気がする。 とおもって楽譜みてみようと思ったんだけど、FF5のピアノ楽譜が無いよ…。 FF1〜3,4,6はあるのに。 FF6と、サガフロのSPCデータは、 そのままBPMで記録されているっぽいから、特に計算しないで出力してます。
いま、リズム、ほとんど音量127にしてるけど、 メロディーと音量バランスとれるように、100位にして置いた方が良いのかな? まぁ、俺、ロマサガ3は、弟がやっていたのを横で聞いてただけだから、あまり調整できない。 言ってくれれば、直せるところはソース変えるんで、言ってもらえると嬉しいかも。
RYTHEMも個別で編集出来るなんてスゴイです! GMの音色リストも手に入れて気合いとヤル気120%で頑張ります!! FF4は今からどんな仕様になるのか楽しみでゾクゾクしてます。
406 :
SOUND TEST :774 :2009/02/06(金) 11:18:00 ID:5x0nj9nL
>405と同感です。我々の想像を上回る事をやってくれる>402さんは天才と言うに ふさわしい。痒い処に手が届くと言うか上膳据膳と言うか何と言って良いか判らない けど至れり尽せりで本当に感謝してます。拙者はFF4のツールが出来たらFF4の音色 定義担当みたいな感じで頑張らせてもらいますよ。
じゃあ、サガフロは俺に任せろ! ※ ロマサガではありません。
>>396 SC-88Proにユーザードラムセットありますよ。
ちょっと気が付いた事。ロマサガとかのspcをspc700プレーヤーに読込ませ各チャンネル…つまり音色を確定したい チャンネルだけ除いてマスクをかけ呼出されるwaveのナンバーをみる。そのナンバーを10進数 に置換えればakao2mmlにより吐き出されたデフォルト?音色番号と一致する。 チャンネルマスクをかけてない聞いた音色にGMの音色を書き替えれば少ない労力 にて音色定義が作れる。って算段。
FFシリーズや、ロマサガシリーズって、 曲毎に、音色番号に割り当てられる楽器違わない? 0〜31番は、効果音でもつかうから、固定みたいだけど、 32番以降は、曲毎に違ってる感じ。 0〜31番は、ノコギリ波とか、正弦波とか、そういった感じの音色が多い。 3番はサイン波。これは、FF5、FF6、ロマサガ共に3一緒だった。 ロマサガ3は、SNESのROMイメージの特定の番地に、曲毎に、 SPCの音色番号と、ROM内の音色番号の対応テーブルがあるみたい。 SPC700で鳴らすときに、指定された音色番号の音色だけを、 SPC700に転送して、鳴らすって感じだと思う。 32番以降は、16種類の音色だけ定義かのうみたい。 なんで、音色番号は 0〜31 ・・・ どの曲でも同じ音色 32〜47 ・・・ 曲毎に違う。
あ、プレイヤーで音色番号表示されるから、 チャンネルマスクすれば、すぐ音色が解るって事か。 俺、アーカイブの中にいれた、音色定義集、全部、記憶と勘でやってた。 SPC再生とかしてない。(マテ 最近のSPCプレイヤーは、そういうパラメータ、ちゃんと見れるんだ。 俺、winampしか使ったこと無かった・・・。
>>406 うい、作った。
本当は、昨日(金曜日)のうちにうっぷしようと思ったんだけど、
LFO(ビブラート)の仕様が、FF5,6,ロマサガ3と違っててバランス取りに手間取った。
http://www1.axfc.net/uploader/He/so/192051.lzh version 1.06 2009. 2. 7
FINAL FANTASY 4 に対応
定義部の変更だけじゃ対応できなくて、本体側のソース(a2m_def.asm, a2m_uc.asm)も変えたので、
FF5,6、ロマサガ3に影響が出たかもしれない。どこか変になってたら教えて欲しい。
まぁ・・・毎 Version up で、いじってると言えばいじってるんだけど、
FF5,FF6,ロマサガ1曲ずつしか、比較チェックしてないので、
もしかしたらどっかに影響でているかも。
LFO関係のルーチンを、それなりにいじったので。
まぁ、ver 1.05 でも、ロマサガ3のリズム定義出すために、色々いじったと言えばいじったんだけど。
>>405 たいした仕様にできなくてごめん
>>いろいろ
ごめん。ロマサガか。
サガフロとロマサガが、頭の中でごっちゃになってるわ。
サガフロはPS。ロマサガはSFC。
音色定義作成時あれば楽。っていうspcプレーヤーを紹介しておきます。 皆さんご存知と思いますが、spcplay2132 です。 ☆チャンネルマスクが出来る。 ☆呼出されるwaveの音色番号が出る。 ◎詳しい操作方法は各自DLして中のdocを見て下さいね♪
>>415 そこ若干間違ってるよね。
× (対応してる)
・オールサウンドオフ (非対応)
・オールリセットコントローラ (非対応)
・ファインチューン (非対応)
・コースチューン (非対応)
・RPN Null (非対応)
× ピッチベンドで変化する最大値を設定(0〜12(半音))
○ ピッチベンドで変化する最大値を設定(0〜48(半音))
ロマサガ1はバイナリ見た感じでは固定音色っぽい。とか言いつつ多分内部では色々と やってそうだが。少い制約の中での曲構成だから当然と言っちゃぁ当然だわな。 ビブラートデプスとピッチベントが同じ扱いというのが、他タイトルと同じで少々 笑ってしまう場面もあったりする。そうそう、音色バンク?にもゲーム毎に入替えや 登録出来る領域があったのは実際、驚きだった。
SPC700は、音程に関しては音色波形データをどのピッチで鳴らすか?ってだけなの。 音程[倍] = 音源LSIに書かれた値 ÷ 0x1000 なんで、音程と、ピッチベンドと、ビブラートは、ハードウェア的には同じパラメータ。 これらをやりたかったら、ソフトウェアで実装しないといけないんで、 昔のコシューマーゲーム機とか、PCゲームのBGMは、 BGMの質は、サウンドプログラマーの腕にもかかっていたんですよ。 SPC700は、音量の時間的な変化(ピアノやシンバルの減衰等)はハードウェア側で対応しているけど、 昔のパソコンのPSGとか、ワンダースワンとかはそういう機能すらないから、 サウンドプログラマーが、ソフトウェアで実装しないと行けなかったんです。
PSGのハードエンベロープは0-15の幅でしか使えないからあまり有り難いものじゃなかった。 FM音源はADSRついてるけど、後期にはそれだけでなくTLをリアルタイムで動かしてるのもあったね。
>>418 って事は限られたパラメーターの組合せって言うか使い方によってはそれらしくなるんだな。
例えばエクスプレッションの上下連続でトレモロみたいな?
プレイヤーによってビブラートだけ無効にしたりできるのは、ソフト側での制御ってことかな? なんかLFO用の波形を出力できるとかいう噂もあったがw、やっぱ単に音程変化扱いだよな。
これまでの流れを見るとそういう事になるな。
>>419 Falcomの英雄伝説4とBrandish VTとか、そうだったね。
ハードウェアのADSRエンベロープ(FM音源の)使いながら、
SSG音源と共通のADSRエンベロープのサブルーチン使って、
FM音源(TL)も、MIDI音源(エクスプレッション)も、ソフトウェアでもエンベロープ実装してた。
なんで、PMDとかFMP移植しようと思うと、けっこう大変。
>>420 音量のLFOを深くかければ、トレモノになるね!
でも、サックス以外の管楽器のビブラートは普通、音量なんだけどな・・・。
>>421 SPC700は、もしかしたらハードウェアLFOあるかも。
でも、SQUAREのサウンドプログラマーの赤尾氏は、
音程・音量・パンポットの3系統のLFOをソフトウェアで実装しる。
プレイヤーにLFOのon/offスイッチがあるとしたら、
多分、ハードウェアのon/offじゃないかな?
ソフトウェアLFOの場合、SPCファイル中のプログラムに干渉しないと行けないから、
タイトル毎に違うプログラムのLFOをon/offするってのは、限りなく不可能に近いと思う。
SPC700のLFO調べてみた。 これは・・・確かに、俺がサウンドプログラマーだったら、 使える様にはするけど、別にソフトウェアでLFO実装するわ。 チャンネル1つ使って、それをLFOの波形にして、別のチャンネルの音程を変調するらしい。 ch0で、ch1を変調できて、 ch1で、ch2を変調できて ・・・ ch6で、ch7を変調できる。 ch0は変調できない。 って仕様みたい。
つまり、変調すると、変調用につかったchが使用できなくなるから、最大発音数が減ると。
それわ直列FMできるってことになるのか!?
そう言われれば、変調用に使うチャンネルを高周波で発振させれば、FM音源と同じ原理だな。
低周波で発振させるからビブラートなだけであって・・・。
実は、FM音源みたいなことできるのかもな。
最大で2opのFM音源が4つあるのかも。
まぁ・・・PCMとして使う方が賢明だろうけど・・・
ロマサガ3やる人の為の、参考例 作ってみた。
SC88Pro用だけど。バトル曲っぽい曲だけ、音色割り当ててみた。
↓
http://www1.axfc.net/uploader/He/so/193021.txt PASS : RS3 (小文字だったかもしれない)
>>424 なるほど、それはそれでそのままな感じの仕様ですねw
しかし、やはり対応のプレイヤーやプラグイン(SNESAPUベースの?)では、
タイトルやchに関わらず、ビブラート、ベンドは共通でON/OFFできるみたい。
まあ、自分は変換MIDI作る時は、ノート情報以外の膨大なCCやSysExは一括削除してしまうが。
>>428 俺なんか持ってるシーケンサがショボイからCCやSysExは一括削除出来ないわ。
cherryやdominoじゃ仕方ないか・・・・・
そーいえば、spcにはFF7・8・9みたいに拍子情報が無いみたいだね。
どっちもフィルター付いてるはずだが・・・?
>>430 フィルターって? 今まで手動削除してたから一曲あたりの編集に時間がかかる
スマソ。自己解決
433 :
SOUND TEST :774 :2009/02/09(月) 20:37:03 ID:354DvUIK
前のカキコであったけど、ロマサガ3とロマサガ2、1も同じエンジンかい? いくらかRS3mmlで試したけど 変換出来ないんだけど?
435 :
SOUND TEST :774 :2009/02/10(火) 07:56:26 ID:lx63Du+Z
なるほど! 何か悪い事いったみたいでゴメン! ロマサガシリーズは全て変換出来るものと誤解していた。
>>435 あ、ごめん、なんか勘違いしてた
後半の記述については忘れてくれ
437 :
SOUND TEST :774 :2009/02/10(火) 18:27:40 ID:lx63Du+Z
自分に能力があればロマサガ1・2の変換ツールが作りたいが無理だしなぁ。最近、mmlの読み方 がやっと理解してきたばかりだし。何年先になる事やら
あっ、私もロマサガ1と2のツールが欲しいなぁ。 お願い出来ないかしら? ファイファンはゲームしたこと無いから分らない けどロマサガなら超マニアよん
お前ら、いい加減にしろ!!
>>407 まかるじょ? サガフロ
ff7mml.com でmml化できるから、define.mmlの編集ヨロ!
まぁ、このスレで編集してくれてる人いるけど。(同じ人だったらごめん)
個人的には、ドラクエの譜面の方が欲しいんだけど、解析すんのがめんどいわ。
DQ4のオケのスコア譜と、DQ1のロトのテーマの吹奏楽譜(スコア譜とパート譜)はもってるんだけど・・・。
ちと、マイク置くため、楽譜みないで吹いたんで、指かなり間違えてるけど、勘弁。
>>441 心意気が伝わってきますね〜
曲として見るとするなら、オーボエ小さくしてリバーブ掛けて、
伴奏は大きくしてパンも調整して、ベースはドライにしたいところだにゃ。
さすがに貰うもん貰った後は過疎るもんだなぁ 大笑いだ
使い方教えてクレクレ〜
>>443 一発取りなんだ。
スピーカーでバックだして、オーボエで演奏して、一回取り。
やっぱ、別々に録音して、ACIDとかでミキシングするべきかな?
てか、指間違えまくってるからはずかちい。
ちゃんと練習してから、録るんだった。
>>444 まぁ、そんなもんじゃない?
俺も、定期演奏会がもうあと2週間ちょいだから、ツールに手を加えてる時間あんまないし。
(リード削りに飽きてきた人。天気良いからリード削り日より!!)
FF11のLSイベントはサボったぜ!(マテ
定期演奏会と、慰問演奏会おわったら、デュープリズム再開!
>>444 と言いつつしっかり貰うもんだけ貰ってんだろ?w
話の流れを変えて恐縮だが、rs3mmlの音色定義でカサバやコンガ等のパーカス 定義って皆どうやってる?ベードラやスネアは素直に変換通るが特殊なヤツはmml2midを 通らないんだが……
おまいら、どれくらい音色定義進んだ?
進むも何も使い方が分からないからサッパリでさぁ
使い方がサッパリ…って、うp主さんが親切に見本まで投下してくれてるのに…。 おないら馬鹿?
>>448 編集が間違えてるんじゃないか?
J命令の数値を変えるだけじゃ?
デュープリズム ミント編クリアしたぜ! ルゥ編くりあしたら、また改めて、リフレッシュした頭で曲バイナリー眺めてみるかなぁ。 多分、作曲環境がMMLじゃないから、無理にMMLにしようとすると駄目なのかなぁ。 AKAOは、ちょーMMLチックなフォーマットだから、MMLにする方がやりやすいんだけど。
ここのスレの住人はマナーの悪いヤツや約束守らないヤツばかりだから デュープリの解析やツール作って配布するのは止めた方がいいぜ? 仮に、うpするも約束の音色定義とやらが全て出揃ってからにしたらどうだい? 君ばかりのうpもアホらしかろうに。 聞き専からの助言です。
まあ、それを音色定義でも叩きつけながら言えればカコイかったし、 君がこのスレにいる意味も見えたよな。 でも確かに、主さんに愛想尽かされれば俺らは何も言えないな。 個人的には協力っていうとどうしても、 変換のプロセスではなくて最終的なMIDIの調整って方向になっちゃうんだよね。 逆に言うとツールとしては既に不満も無いというか…
>>454 乙ー
ミント編に比べるとルゥ編はシリアスだw
GBAの音源がmidi化出来ないのだが誰か助けてくれるようないい人いる?
>>458 Sappyというツールを使ってみるといいとおもう
>>459 sappyやってみたんだけど無理だった
パワポケ6をやりたいんだけどコナミ製だから搭載してるサウンドエンジン任天堂の純正じゃないんだろうなぁ
それじゃ、GBA2MIDでやってみては?
462 :
SOUND TEST :774 :2009/02/25(水) 09:57:55 ID:EBOPAjRQ
誰かKONAMIやハドソン(spc)のフォーマットや資料があるサイト知らない? 変換ツール作りたいんだが……
スーパーファミコン的リバーブを、SC88Proで作り込んでみた。 AKAO2MML用の、init.mmlの、GS-Resetのエクスクルーシブが書いてある下に、 この行追加すれば、スーファミっぽいリバーブになる。 A EX x41,x10,x42,x12,{x40,x01,x30,x06},xf7 ;Reverb Macro A EX x41,x10,x42,x12,{x40,x01,x31,x06},xf7 ;Reverb Character A EX x41,x10,x42,x12,{x40,x01,x32,x00},xf7 ;Reverb Pre LPF A EX x41,x10,x42,x12,{x40,x01,x33,x08},xf7 ;Reverb Level A EX x41,x10,x42,x12,{x40,x01,x34,x20},xf7 ;Reverb Time A EX x41,x10,x42,x12,{x40,x01,x35,x40},xf7 ;Reverb Delay Feedback A EX x41,x10,x42,x12,{x40,x01,x37,x7F},xf7 ;Reverb Delay Time あたりまえだけど、XG音源や、MS-GSじゃ意味無いからな。
スーファミはリバーブじゃなくて確かエコーだよな
エコーというか、ショートディレイだな
こんなようなパラメータよく打ってたよw リバーブマクロをショートディレイにして変な音響作ってたwwww
先日、ロマサガ3・FF4の音色定義を編集してみたのだが自分が持ってるXG音源対応で GMやXGに無い音色を使用している楽曲が幾つかあり完全では無い為、色々悩んでる。 いいアイデアはないものか?
それは、もう似た音色を探して、代用するしかないと思う。 Romancing wikiってサイトに書いてあった音色を参考に、 SC88Proだとこんな感じって表は作ってみた。 01 管楽器 H2,3 @73 _+12 ;Flute 02 ホルン系 H1,3 @60 _0 ;Horn 03 弦楽器 H1,3 @41 _+12 ;Violin 04 Harp H0,3 @46 _+12 ;Harp 05 ボイス系 H0,3 @52 _+12 ;Voice 06 Finger Bass H4,3 @35 _-24 ;Fretless Bass 07 Slap Bass H0,3 @36 _-36 ;Slap Bass 12 Trumpet H0,3 @56 _0 ;Trumpet 16 ギター系 H0,3 @24 _-12 ;Nylon 17 弦楽器 H1,3 @42 _0 ;Cello 19 ブラス系 1A ホルン系 1B MusicBox 1C Celesta 1D エレキギター系 22 Whistle 28 Synth Strings H1,3 @50 _+12 ;Synth Strings 29 Strings H1,3 @48 _+12 ;Bright Strings 2A エレキギター系 2B Clavi H1,3 @104 _-12 ;Sitar 2C ギター系 H0,3 @24 _0 2D ギター系 2E Xylophone 30 弦楽器 31 ボイス系 33 ボイス系 35 Pick Bass H3,3 @34 _-36 ;Pick Base 38 Acoustic Bass 39 Santur 3B ボイス系 3C 管楽器 H8,3 @68 _+12 ;Oboe 3E Ocarina 4B Organ? H0,3 @22 _0 ;Harmonica H0,3 @23 _0 ;Bandoneon H0,3 @70 _-12 ;Faggote
08 Bass Drum J36 09 Tom H1,3 @117 _-24 ;Tom tom 0A Cymbal J49 0B Hi-hat Open J42 0C Hi-hat Closed J46 0D Snare Drum J38 0E Snare Drum J40 0F Cymbal J51 10 Timpani H0,3 @47 _-12 11 Conga J63 13 Maracas J70 14 コンガのようなタム H11,3 @118 _0 ;Conga Tom 15 Brush? 18 銅鑼 1E Vibraslap H1,3 @11 _+12 ;vib 1F Agogo J68 20 Snare Soft @48 J38 21 Bell? 23 Bass Drum Soft @48 J36 24 Hi-hat Closed J42 25 Hi-hat Pedal J46 26 Electric Bass @16 J36 27 Electric Snare @16 J38 2F 金属的な音 32 金属的な音 34 効果音 36 効果音 37 効果音 3A 効果音 3D 効果音 3F 効果音 51 Jingle Bell @57 J75 ;Spark J60 ;Bongo J61 ;Bongo
どなたかbgm2midを持っていませんか? かなり困っているので分けて欲しいです。
471 :
SOUND TEST :774 :2009/03/03(火) 10:12:40 ID:7myG6leU
ほしけりゃ分けるけど条件付きだぜ?
472 :
SOUND TEST :774 :2009/03/03(火) 15:43:58 ID:7myG6leU
メガうpに、アンタのレスNo.でファイル名作ってうpしとく。その中に条件書いとく から連絡よこしなよ?
>>472 頂きました。有難うございました。
試用品でPS1・PS2各ドライバ対応・NINTENDO64などの変換ツール
もありました。こちらはシェアということなのでPASSの購入をします。
474 :
SOUND TEST :774 :2009/03/03(火) 16:39:14 ID:7myG6leU
受け取ったみたいだから消しとく。さらば
あれ? 俺達にはないの?
GBAの良作ってsappyもgba2midiも使えないの多いなぁ
確かにないなぁー。すぐにドライバやフォーマットが見破られてツール出ちゃうから メーカーもそれに併せて対応してるんだろ。きっと。
っていうか、PSF系の変換って飽きてきたよな。音源に無い音色並べた曲なんか つつこうとする気持ちにさえならん。サウンドフォント作れば怪傑ゾロリなん だが此処のスレ住人同様、自分もうpやらないクレクレ野郎なものでやりましぇん。 うp主以外、俺も含めて全員こ汚ねぇ乞食だから。
なら無駄に卑下せんと黙って指くわえとけ それならクレクレにはならん
お前に言われたかねぇよ。
音色はそれらしいのを作って対応かな。 GS音源あたりでも加工は意外とできるし。
tukinami.comとかVGMTrans見れないんだけど もう遅いってことなん? 今更知って結構ショック…ミラーとかないかな
あいや、psfとmidiにできると思ってたけど違うのかいな もう少し調べます…すいません
×psfとmidi ○psfをmidi うぅ、逝ってきます
優しい人… ありがとう、使い方勉強してくる
あと前スレ735氏にもお礼 sgconvだけは上のアーカイブに無かったから それにしてもうp祭りに参加したかったです
489 :
SOUND TEST :774 :2009/03/07(土) 20:39:56 ID:k1M+7ZFD
貴様っ! 言ってはならぬ事を……
ただMIDIにするより音削ってXMSNES通してSPCにするほうが楽しくなってきた
音色定義してもらってロマサガ2きいてたが、 ゲームボーイのサガで使われた曲はいってるのか。 これ、ビブラートきかせたオーボエのソロ・プレイも入れて欲しかったなぁ レクイエムだっけ? やべぇ、吹きたくなってきた。あとで、五線紙に書くか。
今迄リリースされたakao2mmlでロマサガ2 の変換が可能なんだ? やってみる。
FFTをMIDI化したいんだけど上手くいかない
そりゃ、上手くいく訳ないよ。何せ武蔵伝と同じスズキドライバだからな。 諦めなよ。
その話題は出さずに置こうや。何人も解析挫折した難攻不落のドライバだからな。 いくら、うp主さんでも無理。ってモンだ。
ってむしろ君だけが遠回しに(ry
>>496 そりゃ、お前さんだろ?
遠回しに何期待してんだか
釘刺したつもりが、まさか俺の方に言われるとは思わなかった。 すまん、勘ぐってしまった。
いや、勘ぐるというか誤解されかねないのではないかと思ったんだ。 まあもういいっすorz
うp主舐めんなカス
って言うか、うp主さんを困らせるレスはスルーしようぜ! 出張終わってたまに来てみりゃ、この有様……
さすがうp主さんや!
意識しすぎでかえってキモイわ ヘソ曲げられちゃ困るとかいかにも相手を利用してる自覚がある奴の言葉で感謝とは程遠いわな だいたい大半はたまに見に来てうpされてたらDLって終わり、そのうちの何人かもお礼レスして終わり 物理的なお礼する奴なんていないしうp主だってそんなの期待してないだろ ネットなんてそんなもんだし普通にありがとうって言えばそれ以上必要ないんだろ 誰かに普通に感謝するってことに慣れてないの?
そうだそうだ!
うpする側としては適度におだててもらえるといいね。過剰に持ち上げるのも宜しくない。 で、貰う方は気持ちよく貰うと。 そもそも2chにうpする以上DOMとか気にしない。そういうもんだし。
「適度に」って一番難しいだろ 世の中カンパ必須と考えてるキチガイも居れば お礼してくれるだけで感激の極みですって謙虚すぎるのもいる
まぁ、あれだ。その…上手くは言えんが、此処にいちいち書かなかったけど、 うp主さんに対してちゃんとお礼や協力をしてる人間が居る事を判ってほしいぞ?
508 :
SOUND TEST :774 :2009/03/10(火) 19:21:53 ID:IfkVDkrT
(・д・;=;・д・)オロオロ
>>494-495 FFTは難攻不落…そっかぁ
深く考えずに書き込んですんません
前スレ735氏の見たら持ってるgba2midiも古いverだったし
自分は化石のようです
でもpsf・psf2からmidiにできて幸せですた
510 :
SOUND TEST :774 :2009/03/11(水) 18:22:07 ID:1B5vN6oj
まぁ、別の話題にうつりましょうや。 おまいらの変換したMIDIで一番満足したのはなんぞや?
ツール集めた時点で満足して、変換してません(´・ω・`)
512 :
SOUND TEST :774 :2009/03/11(水) 20:06:45 ID:1B5vN6oj
ツール集めだけかいな?勿体ない…
使い方が分からないのだ。 ドラッグしても変な文字列がだーっと流れるだけでうまくいかん。
やっぱ着メロに変換して携帯で鳴らすときかな これ言うとだいたい不正着メロサイトやってる焼酎と同類な目で見られるのがキツイとこだな 着うた出てから完全に廃れてしまったが今でも自作着メロが好きなんだよね ま、厳密には自作とは言わないんだけどな あとは実際に楽器でひくときだよね スクウェア物とかはドレミ出版からピアノ楽譜出たりするけど 難易度の問題でかなり萎えるアレンジされてたりするから 原譜が手に入るのがヘタレで完全耳コピできない身としてはうれしい
>>513 それってakaoの切出し方法が間違っているかPSFをそのまま読込ませているか…
その辺の初歩的ミスだと思うよ?
>>514 ドレミ楽譜は萎えるアレンジどころか明らかな採譜ミスも多いよ。
FF4とかマジ酷い。
サガフロはアレンジしてた人が弾くポイントに何故かゲームの感想
書いてるくらいw無駄に気合いが入ってたけどw
>>513 間違ってもD&Dでは無理だからね? ちゃんとakaoの切出しを終えてから
dosのコマンドラインからの立上げじゃないと。バッチファイル書けば
複数処理もおk。
ってか、コマンドラインの叩き方も解からないのなら諦めて初歩から勉強
しておいで。
DOSのプログラムでD&D出来るのと出来んのの違いって何なの? そういう風に作ってあるかどうか? D&Dでも場所とファイル名は無指定でオプション無しでとりあえず使えるものは、 確かにとっつきやすくはある。
>>519 確かにそう言う疑問はあってもおかしくないわな。
アプリの開発言語やそのアプリを走らせる為の処理ルーチンなどが関係してる
と思う。意図せず作ったアプリが何とD&D出来ちゃった。といった事はよくある話だから。
基本的にWINDOWSアプリじゃないものはDOSから。って思ってた方が良い。
>>516 すげぇ。結構詳しく書いてある!!。
ちなみに、ドラムキットも選択可能。
$8z @0 /*Instrument of percussion 1z*/
$9z @48 /*Instrument of percussion 2z*/
この行の@の後ろの数字に、ドラムキットの番号(-1)を入れる。
$8zは、$1zのドラムキットの番号で、$9zは、$2zのドラムキットの番号。
$1z, $2zは、init.mml で、Roland GS規格のドラムキットonのシステムエクスクルーシブメッセージが書いてあるので、
XG音源を使っていたら、XG音源用のに書き換えれば、XG音源でもパーカッションに切り替わるはず。
>>513-519 近辺
ごめん、D&Dには対応してない。
もともと、MS-DOSをメインに使ってた頃に作ったソフトなんで、
Windowsの事は同時、全然考えてなかった。
個人的には、DewPrismの曲データを抜き出すソフト誰か作って欲しい。
自力で、CD-ROMもISOファイルにして、バイナリエディタで抜き出そうと考え中。
ヘッダーは、"HOSA"ってのは解ってるんだけど、サイズが解らないんだよな〜。
クリアしたし、ISOファイル眺めてみるかぁ〜。
で、なんかアクションゲーム続けてやりたくなって、政権伝説4開封した。 タイトル画面?で放置しながらマニュアル読んでたんだけど、ビックリした! BGM。途中から入るオーボエ。オーボエ吹きだからビックリしたのかもしれないが。 すごく生のオーボエっぽい音がするの。シンセっぽい音じゃなく。 中音域の音色は、哀愁漂うまさにオーボエって音色で、 驚いたのが低域の音色。ほとんどのシンセサイザが中音域の音色を使うのに、 ちゃんとオーボエの低域の音出してるの。 うまい熟練したプレイヤーが吹いてる感じで、あれ、打ち込みでやってるんだったら、 サウンドプログラマーも、打ち込んだ人もすげぇーな。
政権伝説となw 聖剣4が実際ストリームなのか打ち込みなのかは知らんが 最近打ち込みが難しいとされるギターとかでも音源によっては 打ち込むだけでビックリするほど生に近くなったりするからな〜 感動した裏側を後で知って幻滅とか結構あるぜ?w
D&Dなんて、専用のbatファイルつくればおkだぜ。
ごめん。漢字間違えた。 エレキギターとか難しいな。 一回打ち込んだことがあるけど、生っぽくならなくて、かなり試行錯誤した記憶があるよ。 同じように難しいのが、木管1本とか、弦1本のドsoloだと、個人的には思う。
確かに打ち込んだだけのバイオリンとか聞けたもんじゃねーな 凝り始めるとソロパートなのに厚み出そうと音重ねたりビブラートだのExp使いまくりになる
ロマサガシリーズのバトル曲をリアルなストリングスにやっちゃうと何とも悲しい出来栄え になってしまう
FFも、サガシリーズも、個人的に、 SC88系なら、Bright Stringsが良い感じ?と思ってみている。 ペットはそのままで良いね。 FFシリーズのフルートとボエは、Expが付く音色が良い感じ?
ペットはモジュレーション&エクスプレッションの多用でイイ感じ。 更にディストレーションかけるとソロでもカッコいい!
デュープの曲サイズって大雑把にバイナリ眺めてみたら必ずしも各曲同じ場所にサイズ格納 って訳じゃないみたい。ヘッダーにある曲もあればそうじゃない曲も。構造体が掴めない。
531 :
SOUND TEST :774 :2009/03/18(水) 20:50:45 ID:x/59k9kL
ドラクエとかもmmlとかに変換出来たら嬉しいけど前スレで変換されたmidiが 出ていたから微妙だね。
SPCからならコンバータ出てるでしょ
全く需要ないだろうがダメ元で聞いてみる 誰かPSソフトのサウザンドアームズのMIDIちゃんと吸い出せた方はいないだろうか? (リューナイトの伊藤岳彦キャラデザで浜崎あゆみがOP歌った奴) Pgconvやseq2midで吸い出すと一応MIDIとして吸い出せて再生もできるんだが 再生しはじめて10秒後あたりからテンポはそのままで音の持続時間が異常に長くなり 数分間フリーズしたようになる箇所が何箇所かあってどう見ても正常ではない (約1分半の曲が間に発音しっぱなしで止まる区間が何箇所か入ることで10分弱のデータになる) 吸い出せないとか吸い出したMIDIが再生できないならまだわかるが 採譜は合ってるのに音長が異常という実に中途半端な吸出し状況でかなり悔しい この作品以外でこんな変な症状になるソフト知らないんだが 原因や対策に何か心当たりがあったら当てずっぽうでもいいから是非ご教授願いたい
>>534-535 あ、あれ?なんで正常に吸い出せてんだ???
と思ったらファイルネーム見るとminipsfから吸い出したのか
seq2midでディスクから吸い出すと全部の曲が伸びておかしくなるんよね
ってことはseq2midのバグなのかな?
PSF経由の吸出しは面倒で手を付けてなかったんだがちと勉強してみるよ
ありがとう、ずっと悩んでたからマジで助かった
ただその恩を仇で返すような形でホントに申し訳ないしDLした奴が言うのも筋が通らないが
やはり吸い出した現物をうpするのは控えた方がいいと思う
537 :
SOUND TEST :774 :2009/03/20(金) 08:50:24 ID:6ZXSHKB+
seq2midは正常でpsfを作る時に何らかの改ざん?を施してる。
知らぬ間にJMさんとこのHP消えてたよ
でもファイルだけは残っているみたいなんだよね キャッシュからアクセスできるみたい
なるほどね・・・。
SSSPSXはステートセーブからSEQ取り出せるからいいな ディスクから吸えないタイプのでもどうにかなったり xebraも似たようなこと出来るけどどうにも重すぎる
>>542 こんな簡単な方法あるとは知らなかった
正に目からウロコだ
>>543 ステート(クイック)セーブデータにそのとき流れてるseqが一緒に格納されてる
吸出しはPSソフトのファイルから直接吸い出すのと同じ方法
誰かN64の変換ツールアップして下さい
>>544 でも、スタオーやヴァルプロなど特殊なヤツは抜けないですよね?
472氏お願いします、シェアで結構ですので
確かにSO2ザコ戦抜きたいなぁ・・・ 後ろのハープシコードがカオス過ぎて聴こえないよ
550 :
SOUND TEST :774 :2009/03/22(日) 14:26:44 ID:R/+VgWcC
64はいらねぇ。 他でやっておくれ。
551 :
SOUND TEST :774 :2009/03/23(月) 13:01:56 ID:kIp2YBQI
SSSPSXじゃ、スタオー抜けねぇ。標準フォーマットじゃないとダメってのが結果。
結局、slzとかakaoとか、まんまの情報がステートデータにのる。って事で 変換の役には立たない。って事だ。 特殊フォーマットがpQESに変換されるものかと勘違いいてた。大笑い!!
圧縮ものなら
圧縮モノってワイルドアームズ位じゃん
N64欲しいけど、本当にあるのか?と思う 音源と3D描画の命令が一緒になっているしSFCほど簡単にはできない気が
>>552 もしその通りだったら何のための独自ドライバかわからんじゃないか
確かにそうだ。まぁ、完全に解析されるのも時間の問題と見た。
558 :
SOUND TEST :774 :2009/03/24(火) 12:36:51 ID:8ED2xzpU
最近、うp主さん来ないね。 去ってしまわれたのか……?
64はusfからmidiだけ抜き出すだけでも難しいんだっけ?
561 :
SOUND TEST :774 :2009/03/24(火) 18:31:10 ID:8ED2xzpU
うろ覚えだが、そう難しくなかったように記憶してる。 お粗末だが、なんちゃってツールもあったくらいだから。
なんちゃってツールってアレだよな? たしか、WINANPとかのMIDI吐くプラグイン。 かなりの曲数吐き出させて遊んだ記憶があるな。 今となっちゃググッても絶対に見つからないが…運よく俺は持ってるがなwww
さっさと、うpしろカス!!
うpお願いします!!
>>563 人にものを頼む態度じゃねぇな。ムカつく。
うpしなくていいよ^^ 無断二次配布で偉そうにする輩はたいてい持ってないから
568 :
SOUND TEST :774 :2009/03/26(木) 13:53:57 ID:TkwXbP5J
何だ、ダマシかよw
マジ頼みます
懐かしいな。MIDI吐くプラグイン。SPC2MIDとそう変らない精度だったからガッカリしたなぁ。 あの頃。今更Google先生に聞いても判らないだろうな。
571 :
SOUND TEST :2009/03/27(金) 10:28:45 ID:ta/pj825
FF8の.minipsfをもっているのだが ここからどうやってMIDIにするんだ?
過去スレ見りゃ判るだろ。 いちいち教えねぇよ。
ゲームボーイのロム(またはgbs)からmidiを取り出す方法はありますか? いちおうGBfanでmidi記録出来るのは知っているのですが、 それだとチートも使えないので酷く手間がかかったり効果音が被ったりしてしまいます
すみません。自己解決 GBS2GBとGBfanを使って効果音の入らないmidiを作れました
575 :
SOUND TEST :774 :2009/03/27(金) 22:54:51 ID:S5V3YpoS
アクセス規制終わったみたい!
>>558 akao2mmlのうぷぬしなら、上のとおり、最近、アクセス規制?
書き込み規制されてただけで、たまに、見てはいるデスよ。
サガフロの音色定義が難しいって話で、自分でもトライ中。
パーカッション、ロマサガ3と同じ仕様っぽい。
FF7は、GMや、GSのオケキットと同じ配列だったけど、
サガフロは、ロマサガ3の様に、C〜H(B)の12音階に、リズム割り振ってるっぽい。
まだ、色々検証中。
仕様を把握してからコーディングしないと、
後から、ソースを大幅に書き直す事になりかねないので。。。
ff7mml.comから、サガフロ専用のをでっち上げないと、
サガフロの音色定義は、出来ないかもしれない。
まだ、よう、わからないけど。
データフォーマットは、FF7と一緒なんだけどねぇ・・・。
あげちった。 ごめん。
577 :
SOUND TEST :774 :2009/03/29(日) 11:17:02 ID:vXXLWt0i
わーい。うp主さん来た♪
変換したMIDIをCherryで編集してんだけどよくバグッて強制終了になっちまって 上手く作業が進められない。
他使えばいいだろww ところで面白い事が判った。ヴァルプロ・スタオーのPSFの曲データFormat、 "slz"だがあれって圧縮なんだね。曲だけじゃなく他プログラム(ブロック) にも多用されてる。まだ解析中で圧縮アルゴリズムは解明出来てないが解凍 されれば恐らくノーマルpQESが顔を出すことだろう。"slz"はあくまでも曲 Formatではなく圧縮ヘッダーって話。
midiは絶対的にシェア使った方がいい
SLZが圧縮されたファイルだなんてのはとうの昔に知られていたし展開ソフトもいくつかあるが生のシーケンスファイルは出てこない
今時cherryはねーよw
スレ違いな話だけど使い易いシーケンスソフトってある?まぁ、個人差はあるとは 思うが……。おまいらの意見が聞きてぇな。
俺的には、MML最強な訳で。・・・コンパイラだが。 十数年MIDIいじくってると、今更GUIが使えない。 もう、MML見て、演奏できるレベルにもなったし。 最近、譜面がみにくいと、5線の下にMMLを書く俺が居る。
この手のゲームから吸い出したSMFを弄るなら 未だにSTed2一択だ そんな細かいtickとか必要ないしね
Dominoはどうよ
Dominoを落として使ってみたけどイイねぇ〜〜!! かなりイイ!!
いやむしろ今は信者がウザイくらい定番じゃろ
いやいや、レコンポこそが最強じゃよ。
591 :
SOUND TEST :774 :2009/04/01(水) 19:33:03 ID:aFP8BqvK
ってか、もうレコンポは終ってるぞ?
それ言うなら、ST/GT/VELなフォーマットが終わってるようなものだから すっかり世界はMBT一色よ…
そんなもんかいな? 最近マターリしてるようだから話題の路線変えてみよっかなぁ〜
595 :
SOUND TEST :774 :2009/04/03(金) 10:01:11 ID:QJWdEm+D
いつも乙です!
MIDIシーケンサーなんてフリーで事足りる
入力方式の問題があるが…
入力方式については人により相性があるからねえ…
人それぞれ。って事でいいんじゃない?
長さん風に…… 次行ってみよぉ〜〜!
長さん・・・(´;ω;`)ウゥ・・・
midiom2に期待age midiom1はバグ放置のうんこだけど
midiom2は地獄か
605 :
SOUND TEST :774 :2009/04/07(火) 21:10:15 ID:vwq9NXXw
それって、なぁに?
それくらいググればいいぢゃねーか。
先日、とある方からN64用の変換ツールを頂いたのだが、keygenってソフトに パスワードか何かを入れないとインスト出来ないみたいで全くもってkeygenの使い方が判らない のでインスト出来ません。どなたかkeygenの使い方を教えてもらえませんか? 教えていただければ中身を確認出来次第、うpしますので・・・・
それくらいググればいいぢゃねーか。
スマソ。自己解決。ありがとやんしたー。
さっさとうpしてくれ
話ブッタ斬りで悪いがMIDIの編集でフィナーレ使ってる人いる?
SMFの編集って意味では使わないな〜。 自作したakao2mmlで作ったmmlから、スコア譜とパート譜を作るときは、フィナーレ使っている。 所属している楽団は、普通の吹奏楽団だから、ゲーム音楽はあんまりやらないけど。 まぁ、趣味で吹くだけ。
レス、サンクス。吐き出されたAKAO2MMLのMIDIをフィナーレに読込ませて色々と編集を しているけど16分3連符がタダの16分音符に化けて譜面的にオカシクなるんよ。 スレ違いだけどゴメンな。
フィナーレで、SMF読み込むの難しいよな。 あきらめて、MML見ながら、自力で打ち込んでるよ。
保守
あれ? 皆さんネタ切れでっか?
>>594 のデータを、WSPの差分にしていおいた。
あと、FINAL FANTASY 6の音色定義が終わったんで、それも入れた。
WSPの使い方は、自分でドキュメント読んでくれ。
転載可扱いのフリーソフトなんで、同封してあります。
PC98 DOS時代のフリーソフトだから、拡張子が.docでも、テキストなんでヨロシク。
◆URL:
http://www1.axfc.net/uploader/He/so/218466.lzh ◆ぱす akao
◆音源 Roland SC-88Pro
WSPを動かすときは、*.MMLファイルを、*.WUPと同じ名前にしないと動かないので、
MMLのファイル名は、頑張って変えてください。
>>619 ドキュメントを穴が開く迄読み倒してとにかく自力で頑張れ!!
うp主さんへ SPC用のAKAO2mmlには拍子とかの定義は無いんですよね? 全ての楽曲が4/4拍子で吐かれているのでどうしても気になり思い切って聞いてしまいました。 スレ汚しで申し訳ありません。
>>621 逆に、俺が聴きたいデス
ところで、618にうぷったの、ちゃんと使えたのが心配。
差分適用したMML、SMFにコンパイルできた?
自分のでは出来たけど、差分用に比較した元MMLって、
ソース結構いじくってるakao2mmlで吐いたMMLだから
多分、吐いてるMMLは同じだと思うけど…。
こんな感じで、XG版とか、GM版とか、
FF4とか5とか8とか9とか、作りたい人は作って!!
色々うっぷされたら、ロマサガ1と2対応版、うっぷしてみる。
PS用のと、SPC用ので、ソース分けたことを、絶賛後悔中 orz
SMFから直にコンバートしてるような近年の内蔵音源データじゃないと 拍子って概念自体がデータ側に持たれてないんじゃないかと かつてはVSYNCが最小音長だった時代もあるぐらいだし 拍子なんて音楽的な概念が残ってるのはPS1ぐらいからでは
なるほどなぁ〜 ってことは・・・ピアノ譜を参考にしたり自分で割出しをしなきゃならない。って 事だよな。 曲やタイトル別に割出した拍子情報をうpるのって実際の話、 反則になるんかいなぁ?? ある意味、音色定義ならず拍子定義みたいな? まぁ、手動編集になると 思うが・・・・(爆)
拍子情報は別にいいんじゃね? 4小節目から3/4拍とか言ったって、曲は解らないし。 話し言葉でも、あの曲のC→Am→Dm→G7 の進行いいよね!とか言わない? まぁ、1625はありふれた進行だけど。
自分で、ツールとか作ってる方いたら、解析情報や、 akao2mmlのソース(80x86のアセンブリ言語だけど)とか渡すのは構わないので、 その際はメールアドレスなり、書いて。 うっぷは、他の方達も何かやってくれたら(音色定義とか周辺ツールとか?) うっぷする予定。 デュープリズムも、ちょっとずつ解析中。 まぁ、その前に、初期AKAOのパーカッションの解析しちゃったんだけど…
>>579 SLZは前に解凍したことあるよ
SLPMと表示されている実行ファイルに解凍プログラムがある
LZのみの圧縮とLZ+ランレングスの二種類あったはず
それはゲームディスク内のプログラムの話かいな?
spcの手っ取り早い解析方法って何かね? 良き知恵求む!
ほしゅ
あのー、SLZの圧縮の溶き方とツールがあるとこ教えて下さいませんか?
AKAOの解析資料、サガフロのページに勝手に書いておいた。
ttp://www41.atwiki.jp/sagafrontier/pages/43.html HOSAは、大体、音符になるようになってきたけど、まだ変な曲有り。
すごい難しいわ。
SMDSは、ちょっとだけデータ見たけど、これ、多分Dewprismより簡単だとおもうじょ。
0x0000〜0x0003 char[4] "SMDS" 4Byteの文字列。曲データである事を示す?
0x0004〜0x0007 ?
0x0008〜0x0009 word ファイルサイズ? とおもったけど、違うっぽい
0x000A〜0x000F 不明
0x0010〜0x001D 不明
0x001E〜0x001F 曲名の先頭アドレス …(2)参照
0x0020〜0x0021 曲データのアドレス? …(3)参照
0x0022〜0x0023 word 曲データのアドレス ch1
0x0024〜0x0025 word 曲データのアドレス ch2
0x0026〜0x0027 word 曲データのアドレス ch3
・・・ word ・・・
0x004C〜0x004D word 曲データのアドレス ch22
0x004E〜0x004F word 曲データのアドレス ch23
0x0050〜0x0051 word 曲データのアドレス ch24
※終端は、0x0000(word)となる。
■(2) 曲名データ情報 …(ヘッダーの0x001Eが示す先の内容) ━━━━━━━━━━━━━━━ ASCIIの文字列。終端は、0x00(Byte) ■(3) 曲データ情報 ━━━━━━━━━━━━━━━ 0x80 n1 休符 音長さは、n1[ticks] 0x90 チャンネルの終端? 0x94 n1 オクターブをn1に設定 0x95 オクターブアップ 0x96 オクターブダウン 0x97 n1 n2 拍子=n1/n2 0x98 n1 リピート開始点? n1…リピート回数 0x99 リピート終点? 0xA0 多分テンポ n1×???[BPM] 0x00〜0x7F が音符だと思うけど、この辺は、要検証
解析に協力してくれれば、smds用も作れる。 してくれなかったら、作らないというか、作れない。 smds使ってるゲームは、やったことないしな。 書き忘れたけど、 timebase は 48 で作られていると思う。 AKAOも、HOSAもそうだから。 最初、0x00〜0x7Fは、そのままノートナンバーだと思ったけど、そうじゃないっぽい。 ちょっと曲知ってる人に耳コピしてもらって、楽譜みながらバイナリー見てたんだけど、 オクターブっぽいコードがある。 なんで、AKAOと同じように、音程と音長が複合化したコードなのかもしれない。
自分は、どっちかというと、HOSAの解析に集中するんで、 smdsは、ヘッダー判明させておけば、だれかできるかな? と言うことで、よろちく!
>>630 気合いと根気以外に必要なもんは無いと思うんだ。
あと、耳。絶対音感までは要らないけど、
音を聞いて楽器使っても良いから、楽譜が書ける程度の耳コピ能力。
楽譜とか、耳コピの結果を紙媒体で残しておくスキルは要。
バイナリーを見る観点は、色々あるけど、
耳コピ結果、簡単な音形があったら、その部分探す。
例えば、
・半音進行している所があれば、バイナリーがインクリメントしているところがあるはず。
・同じ音が同じ音長で続いていれば、おなじバイナリーが連続している。
※リピートでやる場合もあるので、一概にはそういえない点も注意。
・チャンネルの終了のコードは、ch2〜ch24の先頭アドレスの
1Byte前を見れば、同じコードが書かれているはず何で、
それで、チャンネル終端のコードや、無限ループのコードは直ぐに解るはず。
・そもそも、ヘッダーは、WORD単位で、どんどん値が大きくなっていく所を探すだけ。
多分、それが、トラックの先頭アドレスを示すポインタ。
自分が、設計するとしたら、どう設計するかって考えながら、バイナリー見る。
あとは、気合いと根性と根気と酒。
やっぱ、酒ですか
音楽するときゃ酒が必需品だべよ!
楽器するときは飲めないけどな。 でも、吹いた後のビールは、格別だな。 解析中は、まぁ、ビールも必需品だな。 解析してて、行き詰まると、むかついてくるから、 そんなときは、ビールを一杯。 冬だったら、日本酒でもok
解析は、やっぱ、一日に一気にしようと思わない方が良いな。 行き詰まったら、その日はあきらめるのも重要かもしれない。 ぐっすり寝て、翌日にまたバイナリー見てみると、 新しい事に気付くことが、稀に良くある。
途中でakaoのバイナリ情報(頭の中にあるやつね。)とゴチャになり何度も 始めから見直したり整理した情報を破棄したり・・・中々進まないのも事実 です。(笑)あ、解析の話ね・・・↑
解析結果を、テキストファイルに書くのも、結構限界があるんだよね。 バイナリの見方として、よく、テキストエディタにバイナリの16進数コピペして、 テキストでコメントふりながら検証したりする。 ちょっとsmdsのバイナリーみてたんだけど、トラックデータをこんな感じで 80 18 r8 (192÷0x18=8分音符) AC 00 ??? 98 04 [4 4回ループ 94 06 o6 80 90 r2. (0x90=48*3 192÷48=4・・・4分音譜3つ分で、付点2分音符) 99 ] リピート終点 BA ???? E0 00 ???? なんか、パズルゲームみたいみたい。 コマンドの引数の数を勘違いすると、積むんだよな。 音楽データって、大抵が可変長のコマンドだから、1つ狂うと徹底的に狂う。 今日は、もう頭疲れてきたんで解析終了。
うp主さんと1杯やりたいものだ〜(笑)
そうそう、akaoとsmdsは、間違いなくMMLからコンパイルされているデータだと思う。 いきなりSMFにコンバートしようとすると、音源ドライバーを書くスキルが必要になるじぇ。 だから、今まで、解析断念の人が多かったんだと思う。 逆にHOSAは、SMFからコンバートしたっぽいデータになってる。 ただ音符は、、KeyOnイベントと、KeyOffイベントじゃなくて、 音符コマンドに音長がパラメータとして付く。但し、デルタタイムは別指定。 なんで、音長さを4分音符にして、デルタタイムを0にすれば、 同一トラック内で、和音ができる。 休符コマンドって概念はなくて、休符はデルタタイムで実現している感じ。 これは、SMFもいっしょかな。
…まぁ実際には、音長コマンドに、音程がパラメータとして付くんだけど。 最初、これがなかなか解らなくて、ムキーーーーー〜〜ってなった。 smdsは、MMLにしようと思えば、SMFよりはコンバータ作るの楽だと思うから、 トライする人は、トライしてみると良いかもしれない。 といっても、まだ、音符のコマンドの構造が判明していないから何とも言えないが、 先ずは、それを判明させないと行けないけど。
そーいえば、■系GBAのタイムベースも確か分解能48分の1 だったなぁ・・・・ って、関係ねぇ話でスマソ。
smdsに期待。 俺の昔のメモによると 01〜13 ド 14〜26 ド# 27〜39 レ ... D2〜E4 シ で、値が小さいほど音長が長い。 あと ACが楽器指定 E0 xx 音量(00-7F) E8 xx パン(00-7F)
>>648 一つの推定を思いついた。
0x80以降のコードが、どうしても音符以外に使っているとしか思えない。
0x00〜0x7Fは音符を示していて、もしかしたらそのまま、ヴェロシティーになるのでは?
で、次の引数1[Byte]で、
>>648 に示す音程+音長を示すコードと。
この推定で、バイナリー眺めてみる。
まとめ (推定)
----------------
0x00-0x7F XX 音符 XXで音長&音程を示す。コマンドはヴェロシティ
0x80 XX 休符
0x81 XX タイ
0x90 チャンネル終端
0x94 XX オクターブ
0x95 オクターブアップ
0x96 オクターブダウン
0x97 XX YY 拍子
0x98 XX リピート開始点 XXは回数
0x99 リピート終端
0xAC XX 音色
0xE0 XX 音量
0xE8 XX パンポット
>>648 ちょっと検証してみた。バイトコードを 19で割って、
商が音符になるのは
>>648 の通りで、
『余り』の意味を検証。
const char* strLength[19] ={"1","2.","2","4.","3","4","8.","6","8","16.","12","16","32.","24","32","64.","64.","64","%"};
これで行けた。
余りが18の場合の時に "%"って書いてあるけど、これは特別で、
『もう1Byte追加して、その1Byteが音長を示す。』
> 01〜13 ド
> 14〜26 ド#
> 27〜39 レ
> ...
> D2〜E4 シ
これで言うと、0x13, 0x26, 0x39, ・・・ , 0xE4は、3Byteのコマンド。
例えば、
7F 13 0C
だったとしたら、ヴェロシティ 127で、ドを 0x0C=12[ticks]ならす。
って意味だと思う。
ってことで、今日は寝る。
ゴメン訂正。 const char* strLength[19] ={"1","2.","2","4.","3","4","8.","6","8","16.","12","16","32.","24","32","64.","48","64","%"};
こちらも色々と考えてみた。なるほど上記レスの説で間違いはないみたい。 耳コピしたデータと符合してるみたいな。他イベント系の命令?とかのコードはかなり難しそう。こりゃ、仕事どこじゃなさそーだわ。
イベント系のコードは、その意味がわかれば万々歳だけど、 次の段階としては、先ずは、各コマンドで、引数が何Byteあるのかの把握かな。 それさえ解っちゃえば、先ずは解らないコードは飛ばしちゃえば良いだけで。 次の手法は、バイナリーエディタを見て、テキストエディタにコピペして、 マニュアル・アンコンパイルの繰り返しが良いと思う。 地味な作業の繰り返しになるが・・・。
ってか、総当りだな。ブルートフォースみたいな。そんでもって 変化が出たとこで賺さず範囲を想定……その繰返しの作業をやるしか ないな。
まず、逆MMLコンパイラのプロトタイプ作ってみた。
ゼノギアスの曲を色々コンパイルして聴いてみたけど、
const char* strLength[19] ={"1","2.","2","4.","3","4","8.","6","8","16.","12","16","32.","24","32","64.","48","64","%"};
一部、ハズレっぽい。
音長がうまくいってなさそうな感じだけど、原曲知らないから、何とも言えない所。
作った本人は、ゲームや曲を知らないので、この位までしか出来なさそう。
とりあえず、解析において、本ソースコードの編集及びビルドは自由に行ってください。
但し、アップに関しては、『内蔵音源をMIDI変換するスレ』内においてのみ可。
1つのコマンド・バイナリーを、MML文字列に変換するルーチンは、
ソースファイル"unMML.cpp" の
関数"void unMMLcompiler::Decode1Command()"
でやってます。
やってることは、そんな難しくないので、後は、住人達のマンパワーに任せマス。
自分は、DewPrismの解析にもどるゼ
http://www1.axfc.net/uploader/Sc/so/932.lzh
あ、ごめん。 PASSは、ヘッダー4文字を小文字で。
MASMじゃないのが逆に新鮮
プログラム領域が全くダメポな人は吐き出されたmmlを地道にmidi変換 出来る所まで手直しするしかない訳ですね? ようするに
http://www1.axfc.net/uploader/Sc/so/1167 ちょっといじった。
これで、曲を知らないで作れる範囲の限界だと思う。
>>655 は、ちょっと、変換後の音長が変だったので、ちょっと修正書けた。
テンポの係数だとか、
音符以外のほとんどのバイナリーは、解析していないので、
その辺は、情報が上がってきたら、自分でコード書いても良いし、
勝手にコード書いて、ここにうぷして貰っても構わないです。
今、対応済みのは、
0x00-0x7F 音符
0x80 休符
0x81 タイ
0x90 End of Track
0x91 無限ループだけど、SMFにはそんな機能無い
0x94〜0x96 オクターブ関係
0x97 拍子
0x98〜0x99 リピート
0xA0 テンポ (但し、BPM変換はしてない)
0xAC 音色
0xE0 音量
0xE2 音量推移
0xE8 パン
0xEA パン推移
未解析のコマンドは、まだ沢山あります。
>>657 一応、VC++も書けなくはないんだけど、アセンブリ言語の方が得意なんデス。
でも、アセンブリ言語で作ると、ソースを編集できる人が限られて来ちゃうから、
フリーで入手できる、Microsoft Visual C++.net 2008 で書いた。
CLIは使ってないというか、・・・何それ?うまいのか?
.netフレームワークとか、全然しらないゼ。
>>658 意味がわかったバイナリがあったら、
ここに書けば、誰かソースを編集してくれるかもしれないぞ!!
自分がやっちゃいそうだけど、まぁ、デュープリズムの解析を優先する。
smdsは、誰かお願い。
それぞれ、"format.txt"を入れておいたので、解析の際は参考にして欲しい。 スレに書かれたのと、自分が調べた範囲のは大体まとめてある。 但し、DewPrismに関しては、"format.txt"を見ただけでは、データ構造は把握できないと思う。 自分も、最初、アセンブリ言語で組むつもりだったが、 データ構造が複雑すぎて、可読性の確保のためにC++で書き直した。 ツール関係を作る人は、C++ソースを呼んで、どういう風に処理しているのか見た方がいいと思う。 非常に解析のし応えがある、曲データフォーマットだった。 最近まで、不況のせいか、仕事は落ち着いていたんだけど、 重たい案件を抱えたので、しばらくは、解析対応できないので、よろしく。 なんで、出来る所までやったのを、うぷっておきます。
usf抜き出すツールってあるの?全然見つからん
あるよ。かなり前に俺がうpしたがなww
>>661 愛してる
ちょー乙です
PS-X.EXEの先頭ヘッダ切り落とさず食わせて、2GのMML吐かれてわらた
そう言えば、逆MMLコンパイラ作っておきながら、
それが何のタイトルに使われているのか知らないんだよな…・
◆初期AKAO (project AKAOって言うの?)
FF7(*)
サガフロ1(*)
パラサイトイブ
◆後期AKAO
FF2, 8(*), 9(*)
ベイグラントストーリー
チョコボの不思議なダンジョン
聖剣伝説 Legent of まな
◆smds
ゼノギアス(*)
サガフロ2
クロノクロス
◆hosa
Dew Prism(*)
こんな感じ?
開発する上では、(*)印が付いてるゲームのデータで検証してます。
>>665 誰かやるだろうなぁ〜って思ってた。
似たようなフォーマットがあるだろうから、
エラーチェックとか、データチェックかけてないんだ。
なんで、変なデータ読ますと、最悪、暴走するんで宜しく。
本来の曲データでも、一部、暴走する曲データがあるのを確認しているけど、
(1) 未解析の機能をつかっていて、正常に動作しなかった
(2) シーケンスが、条件ジャンプコマンド、無限ループコマンドで
入り交じって、スパゲティーな構造になっている。
場合に暴走します。
ソフト側でチェックかけてないんで、
[1] ctrl+c か、
[2] ctrl + alt +delete か、
[3] 電源ボタン
で、停止して♪
>>666 激しく乙です!
一部訂正させて下さい。
サガフロ2・クロノクロスは後期akao smdsはゼノギアス・武蔵伝
となっています。 同じsmdsでも武蔵伝は正常変換は出来ないっす。
ちなみに・・・うp主さん以外の住人達へ。 デュープ&smdsのファイル
の抜取はヘッダーからゼロ・バディングする所まででおkです。全曲抜取
が出来たらbatファイル作って実行すればスンゲェ楽です。
smds、オクターブが変になる曲があるみたいで、 0x98命令の case()文の所を、こう変えれば、うまく行くかもしれないです。 曲知らないから自分は検証できないので、検証は宜しく。 あと、変えるのこれだけなんで、自分でソースいじって、ビルドして。 unMML.cpp の、void unMMLcompiler::Decode1Command()関数ね。 VC++.net 2008 Express Edition は無償だから、 持ってない人は、自分でダウンロードして、インストールするヨロシ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ //------------ //Repeat [ case(0x98): *MML << "[" << (int)SND->cRead() << " "; cVelocity=-1; //Velocityの記憶をreset *MML << "o" << (int)cOctave; break; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■補足 この一文を追加するだけ。 *MML << "o" << (int)cOctave; ━━━━━━━━━━━━━━━━ おそらく、サウンドドライバーの動作として、 『 リピート開始時(0x98コマンド)にオクターブを記憶させていて、 リピート終了時(0x99コマンド)に戻った時に、 リピート開始時に記憶したオクターブに、 サウンドドライバー内部のオクターブ用の変数をセットし直す。 』 という事をやっているんだと思う。 なんで、リピート開始時に、オクターブを吐き出す処理を追加したという感じです。 変数"cOctave"は、オクターブ関係の命令があった時に、設定しています。 (以下参照) //------------ //Octave case(0x94): cOctave = SND->cRead(); *MML << "o" << (int)cOctave; break; //------------ //Octave Up case(0x95): cOctave++; MML->put('>'); break; //------------ //Octave Down case(0x96): cOctave--; MML->put('<'); break;
>>667 サンクス。
もしかしたら、smdsも、akaoみたいにversionがあるのかも。
まぁ、そんなに構造は変えないだろうので、バイナリー見る人は見てみると良いかも。
補足しておくと、AKAOは、00 が連続していてもデータの終わりではないので注意。
AKAOって、
(1) 各トラックの楽譜データ
(2) パーカッションの定義
(3) 音色の定義
があって、(2)と(3)の構造体中で、00が連続することが良くあります。
akao2mmlは、この辺も調べて、音色定義マクロの方に反映しているので、
そこでデータが足りてないと、音色定義マクロの出力に失敗します。
smdsは、何曲か見てみたけど、 smdsを起点(アドレス=0x0000)として、 0x0008〜0x0009番地に、リトルエンディアンの2Byteで、データサイズが書いてあります。 00 は連続しないけど、シーケンスデータはそこまでしか書いて無くて、 後に続くデータは、曲とか関係ないデータっぽいので、 切り出しソフトを作る場合は、ヘッダーを見て、そのサイズ通りに切り出してもokだと思います。 HOSAは、ヘッダーにファイルサイズが書いてなさそうなので、 00 が連続したら、切り出してくれれば、問題ないと思う。
>>666 超乙
参考までにFFTもsmdsみたいだ。
そのままではVoice関数に異常があってエラーが出るけど
データに小細工するとSMF化できるっぽい。
>>672 確かにVoice関数が"2〜129"の範囲内に対し吐き出されたmml内の数値は
デカイな。"141〜255"が最大値。何かしらの計算式、÷2四捨五入みたい
な感じでソースを変えたら上手くいくかも。要は128Bank分の音色数しか
処理出来ないみたいだから。
範囲内数値でテケトーにやればバッチリmidi吐くよ。ゲロゲロゲロ〜って。
>>672 , 674
http://www1.axfc.net/uploader/Sc/so/1934.txt ちょっと代替策。パスは無し。
Voice()命令が128を越えないように、ソースをいじった。
Instrument()ってスクリプトを、MML中に書いて、
MML文字列では、音色設定時は、Instrument()関数を呼ぶようにした。
この辺は、さくらは、MML中にスクリプトがかけるから便利なんだよな。
ダウンロード後は、”unMML.cpp”にファイル名を変えて、
元のunMML.cppをそれに書き換えてビルドして。
ちょっとsmdsの出力MMLみて気付いた。 0xAE パーカッション on 0xAF パーカッション off 但し、GMのドラムキットとは、全然パーカションの配置がちがうっぽい。
0xBA は、リバーブonかな? ほとんど、各トラックの最初に入っている気がする。
PSFをEXEにして、テンポコマンドのパラメータをいじってみた。 指定値 テンポ結果 何倍違うか いくつ違うか(差) 68 79 1.161764706 11 114 134 1.175438596 20 120 141 1.175 21 180 210 1.166666667 30 一次関数にあるみたい。 バイナリのテンポの値に、1.175 をかければ、BPMになりそう。
smds、LFOとか判明したらどうやって対応しようかなとか考えてたんだけど、
さくらじゃ無理な予感がしてきた。
エンベロープとかLFOは、mml2midの方が、高機能なんだよなぁ。
HOSAみたいに1トラックで和音やってたり、
SMFからそのままコンバートようなデータだったら、サクラの方が良いけど
smdsは、mml2midの文法を吐くように、作り直した方が良い予感。
今更だけど、作り直そうと思う。
hosaは、エンベロープとか、直接音量コマンドを書きまくってやってるんで、こっちはサクラで問題なし。
というかhosaは、サクラじゃないとうまく逆コンパイラ作れなかったと思う。
>>678 のテンポも含めて、時間取れ次第、対応してみる。
今日は寝る。
>>679 うp主さん、今のツールだけでも満足ですから頑張り過ぎないで下さいね。
コソーリ押入れの隙間から応援してます。
http://www1.axfc.net/uploader/Sc/so/2698.lzh smds2mml version 0.04 (2009. 5.19)
◆以下の機能に対応した。
・ヘッダーのトラック数を参照するようにした。
・テンポ推移
・ポルタメント
・パーカッション on/off
・リバーブ on/off
・Instrument()関数をMML中に吐く様にし、
音色設定をVoice()から、Instrument()に変えた。
◆以下の点を修正した。
・リピート時にオクターブが狂う。
・テンポが遅い
・コマンドの引数のByte数を修正(0xB8, 0xE1, 0xFC, etc..)
・音符とタイの間にコマンドを挟むと、
KeyOffしてしまうサクラの仕様に対処した。
※!!!注意!!!
ポルタメント対応により、"smds2mml.h"を変更しています。
曲知らないで作ってる。原曲知らない。
変換後、再生変だったら、どこがどう違うのか教えて。
あと、続き解析してくれる人の為に、format.txtも更新しておきました。
まぁ、C++のソースも見てください。
mml2midにしようかなぁとか言ったけど、まださくらです。
あと、ゼノギアスで、暴走していた2曲が、暴走しないようになりました。
曲になっているかは、知らない。
うお、なんかすごいスレ発見した ソフトダウンロードして俺もやってみよう
だれかさ、LFO関連(音程・音量・パンポット)の解析しない? 多分、 D7, D8, D9 が、音程関係のLFO E3, E4, E5 が、音量関係のLFO EB, EC, ED が、パンポット関係のLFO だと思う。このコマンドに続く、引数の意味について。 原曲を持ってないから、こればっかりは、自分で調べきれない。 とにかく、原曲を聴いて、 ・ビブラートの深さはどの位か? ・ビブラートの周期 ・ノートonしてから、どのくらい経過したらビブラートが始まるか を検証して、バイナリを見る感じ。 絶対音感というよりは、ソルフェージュできれば、解析できると思う。 多分だけど、楽器系に、ビブラート使ってると思う。 あと、稀にシンセ系の音。
楽器系 ってなんだよ。 管楽器ね。
LFOなくっても完璧っす! 満足ぅ〜〜 逝ってしまいそ〜
LFOってSPU仕様上波形固定なの?三角波だけ?矩形波とかは?
SPUには無い
ハードウェアの機能じゃないよ。 akaoとかsmdsは、音源ドライバ(つまりソフトウェア)でやってる。 AKAOに関しては、音程、音量、パンポットの3系統あるのを確認してる。 恐らくsmdsも、この3系統を実装しているとおもう。 ソフトウェアでやるには、三角波状が比較的楽にプログラミングできるけど 中には正弦波のテーブルを持たせて、正弦波LFOをやってる音源ドライバーもある。 Falcomの、PC98版・英雄伝説4,PC98版・BrandishVTとかは、三角波モードと、正弦波モードがある。 別に、LFOはそんな難しいプログラミングじゃないよ。 自分の経験上では、LFOよりも、ADSRエンベロープをソフトウェアで実装する方が難しかったな。 SPUや、SPC-700に関しては、ADSRエンベロープはハードウェアで実装されているんで、 AKAOや、smdsは、ADSRエンベロープは、ハードウェアに頼っていると思う。 ちなみに、ADSRっていうのは、 Atack (音の立ち上がり) Decay (立ち上がってから、1回目の減衰。 ピアノとかはこれが大きい) Sustaion (1回目の減衰がおわってからの、2回目の揺るやかな減衰) Release (音を出し終わった後の、音が0になるまでの減衰) のそれぞれ頭。
すげぇムズイ話してるな。高次元すぎてオイラにはサパーリ理解が出来ないww それよりだな、デュープの音色定義をだな……うぅ……、ごめん。こっちも サパーリ判らんのです。はい。 で、何か問題でも?
今更なんだがゼノギアスってぇヤツはアレだな、その〜音色ウェーブがVBだったりするんだナ。 この仕組みが解れば音色定義も楽なんだが。上手くいかんモンだなぁ。
>>690 ゼノギアスの吐いたMML眺めてたんだけど、
使ってる音色番号、連番じゃないね。とびとびで使ってる。
もしかして、初期AKAOの様に、
どの曲も、音色番号と楽器の対応、同じなんじゃない?
原曲解らないから自分は検証しようがないけど、
誰か、そう言う視点で見てみない?
>>689 難しいって言うか、単語はDTM(Desk Top Music)で一般的に使う単語や、普通の音楽用語じゃない?
C++は、解らなくてしょうがないと思うけど。
でも、個人的には、C++覚えるより、オーボエの奏法覚える方が、苦労してるじょ。
LFO検証しようと思ったんだけど、やっぱ、原曲ないと無理だ。 吐いたMMLや、バイナリー見ただけじゃ、わかんないや。 (まぁ、当たり前と言えば、当たり前だが。) CD買ってくるかなぁ。ゼノギアスのサントラとかあるの? まぁ、ビブラートのソルフェージュはできるし、サントラで何とかなるだろう! オーボエは、ビブラートが命だしな。
酔っぱらいは、ねるデスよ。 LFO以外も、smds、何か解ったことがあったら、教えて欲しい。 smds2mmlの方に反映するんで。
内蔵音源をmidi変換するのに何で原曲無いと無理なんだ?とふと思った。 内蔵音源を聞けばいいじゃん。
まぁ、デュープも去ることながらゼノギアスも素晴らしい楽曲なのでMIDIに変換出来て 本当に満足している。是非、サントラなりPSFなりで聞いて欲しい。あと音色 関係だが、拡張音源の連発でPS純正はあまり使用されていない。その証拠に 音色バンクに統一性がない。何等かの命令で純正バンクIDと拡張音源バンクID の入替えが行われていると思われる。自分で好きな曲をチョイスして音色リストを 作成したが同一バンクにバッティングする音色が多々あった。拡張1 拡張2 拡張3みたいな感じで。ただ、本来01〜255音色みたいなので単純に2で割っても 同一バンクに被る音色が2つあってもおかしくない勘定になるな。
0勘定で127×2=254=0〜254=255音色。1勘定て128×2=256=1〜256=255音色。 つまりPS側から見ると基本0か1の勘定でバンク127、 拡張バンク127。 って考えた方 が正解なのかも知れない。されどMIDIはパーカス除く127音色しかない訳だから半分 脳内変換に頼らざるおえないな。どう見ても1〜16Tr=127音色 17〜32Tr=127音色 ×2で255音色って作りじゃなさそーだから。
version 0.04から、Instrument()関数作って、 MML文字列中では、Instrument()命令吐いて、 その中の引数には、バイナリと同じ値を10進数で書いてる。 なにかの曲で、 Insturument(255) ってなってるのもあったよ。 Instument()関数中に、SWITCH()〜CASE()〜DEFAULT命令あって、 その中にVoice()命令あるんで、それいじくると、音色定義が早いと思う。 さくらのVoice()命令は、引数1つ or 引数3つ。 Voice(n1,n2,n3) ってあったときは、 n1 ・・・ 音色番号 (0〜127) n2 ・・・ バンクLSB (0〜127) n3 ・・・ バンクMSB (0〜127) n2やn3は、GM音源じゃいみないけど、GSとかXG使ってたら、使うと良いかも。 例) CASE(255){ Voice(80,1,3); TrackKey(+12); } ちなみに、TrackKey(+12); は、移調量。 +12だったら、+12半音。つまり1オクターブ上になる。 これだと、音色番号255が指定されたら、 音色番号80 音色バンク1,3 移調量+12半音(+1オクターブ) にセッティングすることになります。 詳しくは、さくら取説の SWITCH()文 や、 Voice()文の所を読んでもらえれば、 MML中のSWITCH()文の意図がわかると思う。
で、いまMML2MID文法で吐くオプションを実装中。
こっちの文法で吐いた時は、AKAO2MMLと同じ様にしようと思ってる。
というか、おなじ仕様にした。
・・・というか、
>>695-696 の通り、
1つの曲の中でバンク切り替えて居るんだったら、
設計変えないと行けないな。
途中まで、MML2MIDモードつくっちったよorz
>>694 ちなみに、俺、PSFは持ってない。
検証用に、smdsに切り出したデータだけ持ってる。
流石に、曲聴かないと逆MML作れないから、1曲だけならPSFもってるけど…
再現性上げるための細かい微調整は、色々な曲聴かないと無理。
さくら仕様のMMLで吐いたときは、 MMLで使っていた音色番号の一覧を、MMLの一番下に出力するようにしておいた。 MML2MID仕様で吐いたときは、akao2mml同様の、音色定義マクロを吐くようにしてあります。 音色の検証、し易くなったと思います。音色の検証はお願い! 自分は、LFOを研究する。ちょっと、時間はかかると思うけど。
乙です。感謝してます ところで0.04になってからゼノギアスのellieとmaria2の2曲が 暴走(?)っていうかmml変換終わらないんですが自分だけですかね
切出し方法はあってるか? 俺のは変換出来るで?
すいませんできました 9011だったら Stirlingで0x1190 bytesではなく0x1191 bytesまでとらないといけないんですね 0.03では問題なかったみたいなので気がつきませんでした ありがとうございました
smdsのバージョン上がってもサクラの方側は音抜けする曲あるね。 mml2mid側はちゃんと発音してるけど。
ゼノギアスの音色検証中だがやはりバンクがバッティングしているようだ。 一応、曲はmaria2(サントラ名:飛翔) mml内バンク04(Brass Strings)バッティング バンク06(Tinpani Harp)バッティング みたいな感じ。 普通にリスト作っても最終的には(耳)しかなさそう。 俺はこんなふうにリストを作ってる Bank Tone Ex_Bank1 Tone 02 St 02 St 03 Ho -- -- 04 Br 04 St 05 Tr -- -- 06 Ha 06 Ti etc・・・・
>>706 吐き出したMML見てみたけど、良く解らないな。
0xFEコマンドで、音色セットの切り替えしているのかな?
実は、間違えて、"maria1"みてたんだけど、
多分、0xC?コマンドは、SPU(PlayStationの音源Chip)のADSRエンベロープのパラメータを指定しているっぽい。
0xC0 エンベロープ リセット
0xC2 Atack Rate (PlayStation の 0x1F801xx8番地 の bit8〜15 )? 範囲:0〜127
0xC4 Sustain Rate (PlayStation の 0x1F801xxA番地 )? 範囲:0〜127
0xC5 Release Rate (PlayStation の 0x1F801xxA番地 )? 範囲:0〜31
0xC9 Decay Rate (PlayStation の 0x1F801xx8番地 の bit4〜7 )? 範囲:0〜15
0xCA Sustain Level (PlayStation の 0x1F801xx8番地 の bit0〜3 )? 範囲:0〜15
"maria2"は、smdsの生データの、 0x0055〜0x0067番地も気になる。 ここも未解析で、なんのデータなのか意味がわかってない。 曲によって、maria2みたいに。 タイトル?データと、シーケンスデータの間に、 何かのデータがあるんだよね。
そもそも、ゼノギアスのPSFは純正音源(VB)、シーケンスデータ内格納音源、PSFデータ末尾 付近にある拡張音源と3タイプある模様。それぞれのIDを音別に呼出してるんだと 思われる。曲番号103の1か2Trのフルート(主旋律)部において同じプログラム No.ではないが同一音色なのにバンクの使い分けが行われている。そう言う観点 から見ると幾つかの同一バンクNo.での違う音色切替が行われているものと推測される。
ゼノとFFTの音合せムズカシイネー!
"103.exe"と、"203.exe"のバイナリーを見ると、 0x00041140番地,0x00A00800番地,0x00170800番地に"wds "という文字列が見当たる。 このうち、0x00A00800番地,0x00170800番地がPlayStationの波形(音色)データのようなバイナリー。 ざっと見、0x00A00800番地の方は両者同じなので、効果音等でも使われる、常にロードされている音色(波形)? 0x00170800番地は、両者の.exeで異なっているデータなので、これが、曲毎にロードされる音色っぽい。 VB形式のヘッダーって、"wds "?? で、曲203を例に取ると、0xFEコマンドの引数で、38(0x26)と、42(0x2A)が指定されてる。 で、0x00A00800番地と,0x00170800番地近傍を見てみると、そこから0x20Byte進んだ地点に、見事に0x26と0x2Aが書いて有る。 音色セット番号0x26(38)は全曲共通部の音色で、それ以外が、曲毎に異なる音色!? あ、なんか解ってきたかも。
で、VBとか、VHとかあんまよく知らないから、調べてみたんだけど、こういう認識であってる? SONYが、この辺、特許出してたんで、特許読んでみた。 VAB 音色バンクデータ ├VB : 波形情報部(wave実体) サウンドバッファにロードされる └VH : 属性情報部(バンクヘッダ) メインメモリにロードされる | ※特許読むと、メイン・メモリの節約の為 | ヘッダと波形が別れてるそうで。 | ├[1] VABヘッダ |├ ファイルがバンクVABであることを識別するためのVAB識別子 |├ バージョン |├ 個々のバンクVABを識別するためのファイルID |├ バンクVABを構成するファイルのサイズを表わすファイルサイズ |├ バンクVABに含まれる上記プログラムの数を表わすプログラム数 |├ バンクに含まれる全VAG属性セットの数を示すトーン数 |├ バンクに含まれるVAGの数を示すVAG数 |├ マスタボリュームの設定レベルを示すマスターボリューム(mvol) |├ マスタパンレベルの設定を示すマスタパンレベル(pan) |└ 等など | |
├[2] プログラムヘッダ | ├ プログラム(0) | ├ プログラム(1) | | ・・・ | └ プログラム(n) 128個まで(つまり最大127) | ├ プログラムに含まれるVAG属性の数を示すトーン(tone) | ├ プログラムのマスターボリューム(vol) | ├ プログラムの優先度(prior) | ├ 音源のモード(mode) | ├ プログラムのマスタパンレベル(pan) | ├ プログラムの属性(attribute) | ├ アドレス(address1、2) | | | ├ 使用するトーン属性(VAG属性)のID (0) | ├ 使用するトーン属性(VAG属性)のID (1) | | ・・・ | └ 使用するトーン属性(VAG属性)のID (n) 16個まで(つまり最大15) | | ※トーンにより、波形を切り替えれる。(1プログラムで、最大16波形) | 例えば、音域で波形を切り替える等に使う。 | PlayStation標準のSEQの再生では、音域による波形切り替えになる |
├[3] トーン属性テーブル(VAG属性テーブル) | ├ トーン属性(VAG属性) (0) | ├ トーン属性(VAG属性) (1) | | ・・・ | └ トーン属性(VAG属性) (n) | ├ VAG属性の優先度(prior) | ├ ボリューム(vol)と、パンポット(pan) | ├ 発音の中心となる音程であるセンターノート(crsc) | ├ ピッチ補正を行なうためのファインチューニング(fine) | ├ 発音の最小値及び最大値(min、max) (※波形を適用する音域) | ├ ビブラートの幅及び1周期の時間(vibW、vibT) | ├ ポルタメントの幅及び持続時間(porW、porT) | ├ ピッチベンドの最小値及び最大値(pbmin、pbmax) | ├ エンベロープの設定値(adsr1、2) | ├ 当該VAG属性が含まれるプログラムの表示(program) | └ 当該VAG属性が使用する波形データ(VAG)の識別情報(vag) | | | └[4] VAGオフセットテーブル ├ VAGの位置を示すvag offset (0) ├ VAGの位置を示すvag offset (1) | ・・・ └ VAGの位置を示すvag offset (n) (最大255? 254?)
ちなみに、特許公開番号は、特開平8−160958 ぐぐれば出てくる。 図とかはないから、文面だけで仕様を把握するのが大変だったが・・・ なんで、特許は、ああ読みにくいんだろう。 とりあえず、1曲で、これでいうVAB?(音色セット)が2つ使えるっぽい。 サウンドドライバー(smds)で固定されてる音色セットは、VAB ID=38 後は、曲毎に違うVABを1つロードできる感じ? って推定した。 で、smdsデータを眺めてみたら、 0x0016番地に、0xFEコマンドで指定される数値と同じ数値が書いてある。 もしかしたら、これが、曲毎に読み込まれるVABのIDっぽい。 こういう推定で、smds2mml書いてみようと思う。 解析しながら、ソースもいじってたから、近いうちにアップできると思う。
http://www1.axfc.net/uploader/Sc/so/5046.lzh あ、暴走無しで一発で行けた。・・・3曲しか試してないけど。
MML2MID文法で、全46曲コンパイルできるのは確認。
多分、動く。
自分、曲知らないから音色定義できないんで、
このVersionで、定義ができるかどうか、検証してみて欲しい。
version 0.07 2009. 5.29
◆以下の機能に対応した
・音色バンクの切り替え。
MML2MID出力時は、音色バンク毎に定義マクロを出力します。
・パーカッション情報を、MML出力に反映させるようにした。
version 0.06 2009. 5.27
◆以下の機能を実装した。
・音程・音量・パンポットのLFO(Low Freqency Oscillator)に対応。
※MML2MID文法で出力時のみの対応。
※Sakura文法での出力時は、非対応。
Sakruaは、先行指定が1系統しかない為、パラメータの時間推移に使用。
あ、パーカッションも、MML2MID文法なら定義しやすくなってるはず。 パーカッション構造体の意味が何となくわかったんで、対応してみた。 AKAO2MML(ロマサガ3以外)と、ほぼ同じやり方。
で、サガフロの音色定義が終わってしまったんだ。
http://www1.axfc.net/uploader/Sc/so/5048.lzh PASS : サウンドプログラマーの性を、半角4文字
音源 : SC8850推奨(ごめん。SC88Proに無い音色があったからSC8850使った。)
まぁ、できる限り、SC88Proにある音色で作ってます。
抜き出しは、自分でやってくれ。
スライド辞書の解凍は、どっかのホームページにアップされてた。
別手段として、PSFから抜き出すって技もあるようで。
でも、男なら、ちゃんと ゲームのCD-ROMから抜き出すんだ!!
Akaoがその典型的パターン。VB,VHに依存しない代わりに音域による音色パッチの 割付が行われている。つまりこう。#C0〜#C3迄がフルート。#C4〜#C6迄がストリングス みたいな感じで。Akao Sample Waveの中に登録されていてシーケンス部ヘッダーID で呼出しが行われている。一つのSample tableに2種類のWaveが登録されているのは あまり数がないので検証するにあたって、それなりの根気とツールを要する。 後期型Akaoがそれ。効果音チャンネル部にもシーケンスデータを詰込み32チャンネル フルに使用してる結果である。どちらかと言うと(その為)だけのドライバーと言っても 過言ではない手の込んだ作りになっている。
>>719 FINAL FANTASY 8の"Force Your Way"とかがそうだったかな。
ディストーションギターと、何かを同じ音色番号で鳴らしてた記憶がある。
でも、主な使い道は、ピアノや、ストリングス系の表現に使ってた感じ。
ストリングスだけで、8個くらい波形使ってたような記憶がある。
低域〜高域の音色をそれぞれわけて、弦がなるべく自然に聞こえるようにしてた。
FF8は、ストリングスが中心だったけど、
FF9だと、ほとんどの音色で、音域毎に波形変えてて、
より、音楽が自然に聞こえるようになってた。
・・・なってたんだけど・・・SC88Proの音なんだよなぁ〜。
後期型Akaoで作成された曲って殆どそう言う作りになってるんだよね。 上手く音と音の隙間を埋めて自然に聞こえる、聴かせる為のテクニックなんだよね。 話が少しズレたけど、smdsは初期型Akaoと後期型Akaoのちょうど中間的なドライバみたいだね。 入院中で詳しい資料持ってきてないからあまり詳しい情報は書けないんだけど・・・
マルチサンプリングはMSGSや携帯でも使われているごく普通のテクだと思うんだがなあ
マルチサンプリングのテク話じゃないよ。音と音の隙間を同じ音じゃなく似た音で 違和感なくシットリ濡れた感じのイイ旋律に仕上げるテク話だよ。FF9あたりが 結構、充実してたんじゃないかな。初期型Akaoの方が案外ベタだったがアレはアレで 良い味だしてたんだよな。
確かに、マルチサンプリングなんだけど、 サウンドメモリが512kByteしかない中でマルチサンプリングやるんなら、 音程じゃなくて、ベロシティーでやって欲しかったな。 p(ピアノ)とか、f(フォルテ)って、一般人には音の大きさってイメージしか無いだろうけど、 実際はそうじゃなくて、『音色を変えろ』って音楽記号なんだよね。 pだったら、やさしくとか、きれいにとか fだったら、力強くとか、鋭くとか。 低域と、高域で音色わけるんなら、 ヴァイオリンと、ヴィオラと、チェロと、コンバスにわけて、録音すれば良いんだし!!
PlayStationがそう言う仕様なのか、ドラゴンクエスト8は、 音の強さ別に音色用意してたな。 明るい感じのペットと、軽い感じのペットと、重厚感あるペットとか、 弦も、ヴァイオリン、ビオラ、チェロ+コンバスでわけてた。 弦に至っては奏法別にある感じで、弦だけで、何個も音色番号使ってたな。 なにかのインタビューで、PS2のサウンドメモリが足りないとか言ってたけど、 そこまでやってるんだと、納得行った。 生オケには及ばないけど、オケっぽい仕上がりになってて、ゲームやったらビックリしたぜ。
ドラクエ8はゲームから音楽データを抜出したモノがあるのでバイナリみて構造を チョビッと見てみる。確かスタオーみたいに圧縮かかっていたから容易には取出せ 無かった筈。たしか専用ツールがあったと思うのだが・・・。圧縮を解けば普通に ツールを使用すればMIDIに変換でけた。フォーマットはプレステ2標準フォーマット。 なので仕様書があれば解析自体容易です。
729 :
SOUND TEST :774 :2009/05/31(日) 14:23:34 ID:Iqu1CJ0H
スクエニ系から脱出出来ない俺って・・・ぷぎゃぁぁぁぁ〜〜〜〜っ!! うぅっ・・・・シクシク・・・
スタオーの解凍するのは分かったがそこで積んでる。 Stab何とかというザコ戦の曲がイントロのピックベースが F#連打だから並んでるデータを見てるけどわからん。 半年くらいやってるのだがw
俺もスタオーの解凍を試みたが挫折。解凍の仕方なんて皆目見当つかねぇよ。 いい解析研究の材料なんだがな。
解析は、経験値もものを言うのかな。兎に角、推定と検証の繰り返しかな。 一番確実な解析は、音源ドライバーを逆アセンブルして、 どういう処理をしているのか全部確認する事なんだけど、 データ眺めるだけでも、解ると思う。 予備知識として、MIDI規格1.0や、SMFの仕様を読んでみるのも良いかもしれない。 PlayStationの音源(SPU)の仕様も知っておいた方が良い。 ハードウェアと、SONY純正ライブラリの仕様も。 昔のゲーム音楽だと、GUIのシーケンサーじゃなくて、MMLで書く人が多いから、 一回、MMLでの打ち込みをやってみるのもいいんじゃない? Sakuraよりは、昔チックなMML2MIDの使い方を覚えるのも良いかも。 今までの解析経験上、独自フォーマットの場合、 MMLからコンパイルしたようなデータ構造が凄い多い。 特に、x68k, PC88, PC98のFM音源から流れてきている作曲家やプログラマーは、そうだと思う。 SPCやPS1時代のAKAO、smdsなんかは、すごいMMLちっくなフォーマット。 まぁ、smdsは、SMFで最初作って、MMLに逆コンパイルして、そこにまた命令追加して、smdsにコンパイルしたって感じのデータだが。 HOSAは、SMFからコンバートした感じ。
733 :
SOUND TEST :774 :2009/06/01(月) 02:19:34 ID:SpsspfKk
miniusfをSMFに変換するツールくれ
悪いが、そんなツールは存在しない。USFにご執心な方からのアクションをじっと 待つしかないです。だいぶんマリオ系の解析が進んでるようですが。 PSF 同様、独自フォーマットが多いようですからかなり時間はかかると思いますよ。 何か自分で気に入ったタイトルがあれば解析してその情報を先駆者の方に送れば 変換ルーチン位、書いてくれるかも知れません。とにかく頑張って下さい!!
やっぱりスタオーの圧縮解く方法わかんねぇ。 投げた。一年間悩んで損した。
スライド辞書なんじゃないの? PlayStaion関係の仕事してる友人が、 処理能力的にそんな高度な圧縮とか暗号とか出来ないって言ってたから 多分、スライド辞書あたりだと思うぞ。 ハフマン符号も、まぁ難しくは無いけど、 CD-ROMから読み出して解凍は、プレイヤーのストレスがたまるだろうし、 CD-ROMから読み込みながらリアルタイムで解凍できるスライド辞書だと思う。
そう思って色々試したが無意味ですた。かなり特殊な事をやっているんだと思ふ。
解凍できれば何とかなりそうな気もするんだけどね。 SMFから変換してるような気がするから、データの並びとか見れば。
俺からすれば解凍が一番のネックだな。
スタオーは後にしてゼノの音色定義を皆で協力して完成させようじゃないか。 少し判った事をひとつ・・・ 01: トロンボーン 02: トランペット 03: ホルン 04: ストリングス 05: ベース 06: ハープ ティンパニ 07: --拡張・純正バラバラ 08: --上に同じ 09: ティンパニ みたいな。
>>740 VAB?のID番号も気にした方が良いと思う。
MML2MID仕様で吐いたら、そのまま、コメントアウトでID番号書いてある。
Sakura仕様で吐いたときは、instrument()関数の引数で、
1つ目が音色番号
2つ目がVABのID。
つまり、
Instrument(9,50);
だった場合、VABのID=50番の、音色番号9の音色を使うって意味。
といっても、まだ想定の段階だから、もしかしたら不都合が出てくるかもしれない。
なんで、SMFにコンパイルする前に、MML側に吐かれている数値を見た方が良いと思う。
SMFへコンパイルすると、VABのID番号の情報はSMFには行かないんで。
とりあえず、LFOに対応しているMML2MIDの文法で吐く方がおすすめ。 MMLの一番下で、音色定義できるんで、検証しやすいと思う。 $0a $0z y100,2 y101,0 y6,64 H0,0 @3 _0 ; VAB_ID = 53 $1a $0z y100,2 y101,0 y6,64 H0,0 @7 _0 ; VAB_ID = 53 $2a $0z y100,2 y101,0 y6,64 H0,0 @1 _0 ; VAB_ID = 53 $3a $0z y100,2 y101,0 y6,64 H0,0 @8 _0 ; VAB_ID = 53 $4a $0z y100,2 y101,0 y6,64 H0,0 @1 _0 ; VAB_ID = 38 $5a $0z y100,2 y101,0 y6,64 H0,0 @2 _0 ; VAB_ID = 53 $6a $0z y100,2 y101,0 y6,64 H0,0 @3 _0 ; VAB_ID = 38 $7a $0z y100,2 y101,0 y6,64 H0,0 @4 _0 ; VAB_ID = 38 $8a $0z y100,2 y101,0 y6,64 H0,0 @5 _0 ; VAB_ID = 38 $9a $0z y100,2 y101,0 y6,64 H0,0 @2 _0 ; VAB_ID = 38 $0b $0z y100,2 y101,0 y6,64 H0,0 @9 _0 ; VAB_ID = 38 $1b $0z y100,2 y101,0 y6,64 H0,0 @5 _0 ; VAB_ID = 53 $2b $0z y100,2 y101,0 y6,64 H0,0 @6 _0 ; VAB_ID = 53 $3b $0z y100,2 y101,0 y6,64 H0,0 @6 _0 ; VAB_ID = 38 $4b $0z y100,2 y101,0 y6,64 H0,0 @10 _0 ; VAB_ID = 38 こんな感じで吐く。 @が音色番号で、これはsmdsで指定されている番号と同じ値を吐いてる。 で、一番最後に、コメントアウトしてVABのID番号を書いているんで、参考にして欲しい。
743 :
SOUND TEST :774 :2009/06/06(土) 15:14:00 ID:zHreugsX
744 :
SOUND TEST :774 :2009/06/06(土) 15:21:20 ID:zHreugsX
↑ウイルスバスターが反応したけど何?
俺がうっぷする時は、大抵改訂履歴書くだろうから、ウィルスだったら注意しる。 で、きっと、たぶん、おそらく、その後に、だらだら長文の書き込みが色々と・・・
あ、そうそう。頂きました。ありがとうございます。
I dowmload
>>744 .
Thank you very mush for yor up-load.
I will use it.
I very very wanted to it.
751 :
SOUND TEST :774 :2009/06/06(土) 21:37:28 ID:zHreugsX
どうぞ。Please use it. That's why I released the source. I'm glad you find it useful =).
752 :
SOUND TEST :774 :2009/06/06(土) 21:43:09 ID:zHreugsX
>>748 Re: AKAO2MML etc. - ASM? You must be a masochist ;).
マゾ!? C/C++は最近勉強したばっかりで、実はあんまり使えない。 本職は論理回路屋なんで、アセンブラの方が得意。 でも、smdsとhosaは、C/C++で作ってありますよ。 m, masochist !? I understand a little C/C++. I study C/C++ recently. I am logic device engineer. therefore, always, I use assembler. smds and hosa made C/C++. (win32)
754 :
SOUND TEST :774 :2009/06/06(土) 22:35:42 ID:zHreugsX
Just teasing you =) Assembler is much more difficult than C!
Assember is defference sure.
I forgeted to write password about smds and hosa.
It is as follwos.
[2] SMDS2MML (for Sakura & MML2MID)
>>716 PASS : smds
[3] HOSA2MML (Dew Prism) (for Sakura)
>>661 PASS : hosa
difference → difficult My english is poor. sorry.
英語って難しいな。 文法は解るから、解らない単語があったら辞書ひけば意味は解るんだけど…
about unknown in "AkaoSeq.cpp" A0 : End of Channel A2 n1 : length of next note [ticks] AD n1 :Hardware ADSR envlope - Atack Level AE n1 :Hardware ADSR envlope - Decay Level AF n1 :Hardware ADSR envlope - Sustain Level B0 n1 :Hardware ADSR envlope - B1 n1 :Hardware ADSR envlope - B2 n1 :Hardware ADSR envlope - B3 :Hardware ADSR envlope - return to default --- B4-B7 LFO Pitch B8-BB LFO Expression BC-BF LFO Panpot B4,B8 n1 n2 n3 BC n2 n3 n1 delay from note-on to LFO start. [ticks] n2 unknown n3 length of LFO [ticks] B5,B9,BD :depth of LFO B6,BA,BE :stop of LFO B7,BB,BC n1 :unknown --- C0 n1 transepose C1 n2 transepose add C8 repeat start C9 n1 repeat end (n1 = repeat times) CA repeat end (repeat time = 2[times]) CC :slur on CD :slur off DD n1-n2 :LFO time [ticks] (pitch) DE n1-n2 :LFO time [ticks] (Expression) DF n1-n2 :LFO time [ticks] (Panpot) --- FE06 n1-n2 jump FE07 n1 n2 n3 conditional jump n1 unknown (condition?) n2-n3 jump address FE09 n1 n2 n3 conditional jump in repeat (C8 - C9, CA command) n1 condition (repeat times) n2-n3 jump address FE15 n1 n2 beat (Rhythm) n1 / (192÷n2) beat. FF16 n1 n2 measure (bar) n2 × 256 + n1 [measure]
ってAKAOばっかりだったけど、ファルコム音楽フリー宣言記念。 ファルコム様の英断に超感謝!!! PC98おしいれから出して、イースとか録音しまくるか!?
760 :
SOUND TEST :774 :2009/06/07(日) 01:07:10 ID:fDbQw+6W
>>756 Your english is good. I understand you perfectly well, and I greatly appreciate it.
>>757 わかった. I wish I could say the same. I hardly understand Japanese.
>>758 Wow. A lot of information here. Thank you very much!
I was unaware of the LFO. What a pain.
I would ask you the details, but I don't think I'll be adding support for it at the moment.
In fact, I'm not really working VGMTrans right now. I may fix some simple things though.
I am confused about FF16 (measure). Can you explain?
> I am confused about FF16 (measure). Can you explain? Sorry. FE 16. ごめんなさい。FE 16 でした。 This is rehearsal number. (measure number) In the music playing, it is unrelated. これは小節番号(練習番号)で、演奏上は関係しないです。 It is the same meaning as the number written on the bar of the score. 楽譜の小節線の上に書かれる数字と同じ意味です。
まぁ、楽器演奏上は絶対必要なんだけど。 Well, in playing instrument though it is an absolute necessity. 指揮者 『じゃ、木管。354小節から』 Conductor > " Wood! from 354. " 俺 硬直 (どこだよ?) I > play stop. ( I think " where? " ) 指揮者ににらまれる。 Conductor : "......" lol
763 :
SOUND TEST :774 :2009/06/07(日) 02:13:48 ID:fDbQw+6W
面白い. I do not believe MIDI even supports such markup (I might be wrong), so I am surprised it is part of the format. I know that Time Signature is included in some formats (Square's PS2 format, for example), which also has no bearing on playback. But Time Signature is at least present in MIDI.
764 :
SOUND TEST :774 :2009/06/07(日) 02:20:12 ID:fDbQw+6W
To be clear, I understand that FE 15 is Time Signature in this format. Thank you for providing that information.
no problem. If you have any qestion about smds, hosa and first version's akao, I will give the answer, too. First akao resemble late version's akao. A difference is as follow. (1) header 0x0000-0x0003 "AKAO" strings 0x0004-0x0005 serial ID number 0x0006-0x0007 file size 0x0008-0x0009 unknown 0x000A-0x000F time stamp 0x0010-0x0013 number of tracks (of true bits) 0x0014- pointer of music track (2) 0xE0 〜 0xFF command E8 n1-n2 : tempo E9 n1 n2-n3 : tempo move EA n1-n2 : Reverb depth EB n1-n2 : Percussion On (n1-n2 is pointer to percussion struct) EC n1 n2-n3 : Reverb depth move ED : Percussion Off EF n1 n2 n3 : unknown F0 n1 n2-n3 : conditional jump in repeat. (in C8 - C9, CA command) F1 n1 n2 n3 : unknown F2 n1 : Instrument (Don't set Atack-Rate of ADSR envelop) FC n1-n2 : Instrument (n1-n2 is pointer to Instrument struct) FD n1 n2 : Time Signature FE n1-n2 : rehearsal number. (measure number) (3) Percussion struct This is 5[Byte] * 12[note(C, Cis, D, ... , H)] = 60[Byte]. [0] : Instrument number [1] : Note number (60 is o5 C ) [2] : unknown [3] : volume [4] : panpot
[Amendment] EB n1 n2-n3 : Reverb depth move EC n1-n2 : Percussion On (n1-n2 is pointer to percussion struct)
お休みなさい。 明日、オーボエれっすんだyp。 寝ないと。 Good night. I go bed. tomorrow, I take lesson in oboe...
I look "FFT.cpp" of the VGM. (smds format) Command that i known is as follows. A2 n1 n2 :Tempo sweep (n1=sweep-time[ticks] / n2=tempo*256/218 [bpm]) AD n1 :unknown AE :Percussion On AF :Percussion Off B0 :Slur On ? B1 :Slur Off ? B8 n1 n2 n3 :unknown BA :Reverb On ? BB :Reverb Off ? C0 :Envelop Reset to default of "VAB" instrument. C2 n1 :Atack Rate? C4 n1 :Sustain Rate? C5 n1 :Release Rate? C9 n1 :Decay Rate? CA n1 :Sustain Level? D2 n1 :detune? D4 n1 n2 :portamento (n1=sweep-time[ticks] / n2 * 100 [cent]) D6 n1 :unknown D7 n1 :LFO depth of pitchbend D8 n1 n2 n3 :LFO length of pitchbend D9 n1 n2 n3 :LFO ? E0 n1 :Expression E1 n1 :unknown E2 n1 n2 :Expression sweep (n1=sweep-time[ticks] / n2=sweep value) E3 n1 :LFO depth of Expression E4 n1 n2 n3 :LFO length of Expression E5 n1 n2 n3 :LFO ? E8 n1 :Panpot E9 n1 :unknown EA n1 n2 :Panpotsweep (n1=sweep-time[ticks] / n2=sweep value) EB n1 :LFO depth of Panpot EC n1 n2 n3 :LFO length of Panpot ED n1 n2 n3 :LFO ? F8 n1 n2 n3 :unknown F9 n1 n2 :unknown FB n1 :unknown FC n1 n2 :unknown FD n1 :unknown FE n1 :Select "VAB" instrument set. (n1 = ID of VAB)
-------------- About the LFO -------------- parameter of 0xD8, 0xE4, 0xEC commands. n1 = length from "LFO start" to "LFO of vibration is max". n2 = cycle of LFO n3 = length from "Note-On" to "LFO start". -------------- About the Percussion -------------- About the address 0x0020 of "smds" format header, it is 16bit-pointer of Percussion struct. Percussion struct is 5[Byte] × n. [0] Indicated note number in the track data. ( 60 is o5 C(Do) ) [1] Sounded instrument number. [2] Sounded note number. ( 60 is o5 C(Do) ) [3] Sounded volume ? [4] Sounded panpot ? I think that the End of struct is start address of Track 1.
日本語ではさんざんスレに書いてる内容なんで、特に書かないで良いよね。 VGMトランスの今後の発展に期待。 まぁ・・・最近はいじってないって書いてあったけど。 We hope become prosperous (development?) of your VGMtrans. thank you.
771 :
SOUND TEST :774 :2009/06/08(月) 22:34:47 ID:rnGYp3Hy
Thank you for translating all of your information on these formats into English. There is certainly a lot of info here! Perhaps in my free time I will integrate your work into VGMTrans. But I do not have much free time at the moment. VGMTrans' dependency on DirectMusic is a problem, because it is a dead library, and it has limitations (no dynamic ADSR changing, no Sustain Rate, no vibrato, bank switching seems broken, etc) Therefore, in the future, I might work on an alternative software synthesizer to DirectMusic. Perhaps even an alternative format to DLS. But I don't have time right now =(. However, you are free to do whatever you want with the code. I apologize that is so messy.
772 :
SOUND TEST :774 :2009/06/08(月) 22:43:55 ID:rnGYp3Hy
Lack of dynamic ADSR changing kills playback of smds/dwds and several other formats that depend on it. Lack of program bank switching also kills smds/dwds and QSound playback. It is quite frustrating to depend on DirectMusic. However, you seem primarily interested in conversion to midi/mml, which this does not impact.
I see.
◆
>>771 の概役(Japanese translation)
これらの情報を空き時間にVGMtransに実装しようと思うけど、今、暇が無い。
VGMtransは、DirectMusicが死んでいるライブラリなのと、その制約から、DirectMusicとの依存性が問題になってる。
(ADSRや、ビブラートや、バンクセレクトができない。)
なんで、今後、DirectMusicの代替になるソフトウェアでやるかもしれない。
多分、DLSと同等の替わりのフォーマットで。
けど、時間がねぇ。
しかし、コード付けたんで、自由になんでもして欲しい。 (という意味だと思う。)
すごい乱雑なコードで済まないが。
> However, you seem primarily interested in conversion to midi/mml, which this does not impact. This BBS title is "Convert from Game-Music's original formar to SMF(Standard MIDI File)" =)
775 :
SOUND TEST :774 :2009/06/08(月) 23:11:09 ID:rnGYp3Hy
概役はどうもありがとうございます. Sorry for the length.
776 :
SOUND TEST :774 :2009/06/08(月) 23:13:29 ID:rnGYp3Hy
> "Convert from Game-Music's original formar to SMF(Standard MIDI File)" I thought so... I'm ranting to myself, it appears. ;)
っ Timidity++ + SoundFont
そういえばさ、akao2mmlとかで吐いた曲を、 DLSとかの抜き出した音色で聴いた時って、曲のバランスどうなの? akao2mmlって、元々のを作ったのて9年くらい前だし その頃、DLSとかSound fontっていうのを全然知らなくて、 (MMLをPC98のFPDに移植するのは考慮して、mml2mid採用してたけど) VolumeとかExpressionの係数、Roland SC88Proで調整してるんよ。 smds2mmlとか、hosa2mmlも、全然dlsとか考慮に入れてない。 本当に、ハードウェアのMIDI音源で聞くことだけを想定して設計してるから… というか、DLSっていうのを作って、それで聞く方法すら知らないデス。 今度、調べてみようかな。 サウンドボードとか必要?
あーakao2mmlで吐いたのじゃ、抜き出した音色データ使えないかも。 後期AKAOだと、曲データ側でマルチサンプリングっぽい事してるけど、 その辺、吐くMMLに反映させてないわ。 吐くMML側で、音程で音色番号切り替えないと駄目か。 初期AKAOとsmdsのパーカッションの出力は、ちゃんとその処理入れたけど・・・
おおおおお?DLSつくってみて遊んでたんだ。 後期AKAOにおけるVGMtransのある仕様を発見した。 後期AKAOは、3つの音色命令がある。 (1) 0xFE-14 (Multi sampling instrument) (2) 0xA1 (Single sampling instrument) (3) 0xFE-04 Pearcussion VGMtransは、それぞれの音色番号がかぶらないようになってる。 (1)は、指定された番号を、そのまま出力。 (2)は、(1)で使った音色番号の数だけ加算して出力 (3)は、音色番号127 (MIDIだと128) で、DLSを吐いたときも、その通りの音色番号のDLSが作られるっぽい。 音色番号を、その仕様で吐くオプションスイッチでも作るか!! akao2mmlの後期Versionで。
>>74 >>753 ソフトよりハードに近いのかな??
よく分からないけど、素人から見たらプロフェッショナルに違いないっす。
久しぶりに来たら何だか凄い事になってる!!! 長い沈黙を破ってVGMTransの登場とはww しかも、ソースコード付き!! これはマジ凄いww ってか、中身をそっと覗くと色々なフォーマット♪♪ FFTってのがあったけど、あれってSMDSなんだよね。でも 変換出来なかったのが残念無念にゃのよんww
多分FFTしか想定していないんだと思う。
Xenogears認識しなかった。
C++ソースせっかく付けてくれてるし、
自由にいじってくれって言ってるから
ちょっといじれば行けるんじゃないかな?
俺も、土日にでも、C++ソースいじってみようと思う。
いじってアップすると、作者様が喜ぶかも。
>>781 本職ハード屋。
むきーーーー Visual C++.net 2008 Express Editionじゃビルド出来ねぇ。 → VGMtrans Visual Studio.net 2003もってるには持ってるんだけど・・・ Windows Vistaじゃ使えないんだよな。TT vistaで急に使えなくなったから、Express Editionで我慢してたのに買わないと駄目か…
785 :
SOUND TEST :774 :2009/06/09(火) 23:18:21 ID:cSWUvk6m
> いじってアップすると、作者様が喜ぶかも。 はい, 大丈夫です。 But I would appreciate it if you make your changes open source.
786 :
SOUND TEST :774 :2009/06/09(火) 23:20:21 ID:cSWUvk6m
>>784 You need ATL to use WTL. Visual C++.net 2008 Express Edition does not come with ATL. =(
787 :
SOUND TEST :774 :2009/06/09(火) 23:37:47 ID:tyCXj1ra
788 :
SOUND TEST :774 :2009/06/09(火) 23:46:36 ID:cSWUvk6m
>>787 Good luck! Remember that you need an old DirectX SDK version (like April 2007).
789 :
SOUND TEST :774 :2009/06/09(火) 23:50:27 ID:cSWUvk6m
ちょっとした国際交流になってて笑った 2chで外国人書き込むことって少ないからなww
VC++.net 2008 Express わかんね。 だめだ。 XPに、VS.net 2003インストールするか・・・。 アセンブリ言語使いには、C++の複雑な機能がよくわかんねー。
解る人いたら教えて!
インストールしたのはこれ。
・Platform SDK Windows 2003 server (
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en )
・WTL81_9127.zip
こんなエラー吐く。
1>プロジェクト 'VGMTrans'、構成 'Debug|Win32' の中間出力ファイルを削除しています。
1>コンパイルしています...
1>stdafx.cpp
1>c:\program files\microsoft platform sdk\include\atl\atlbase.h(5555) : error C2259: 'ATL::CRegObject' : 抽象クラスをインスタンス化できません。
1> 次のメンバが原因です:
1> 'HRESULT IUnknown::QueryInterface(const IID &,void **)' : は抽象型です
1> c:\program files\microsoft platform sdk\include\unknwn.h(113) : 'IUnknown::QueryInterface' の宣言を確認してください。
1> 'ULONG IUnknown::AddRef(void)' : は抽象型です
1> c:\program files\microsoft platform sdk\include\unknwn.h(117) : 'IUnknown::AddRef' の宣言を確認してください。
1> 'ULONG IUnknown::Release(void)' : は抽象型です
1> c:\program files\microsoft platform sdk\include\unknwn.h(119) : 'IUnknown::Release' の宣言を確認してください。
1>c:\program files\microsoft platform sdk\include\atl\atlbase.h(5613) : error C2259: 'ATL::CRegObject' : 抽象クラスをインスタンス化できません。
1> 次のメンバが原因です:
1> 'HRESULT IUnknown::QueryInterface(const IID &,void **)' : は抽象型です
1> c:\program files\microsoft platform sdk\include\unknwn.h(113) : 'IUnknown::QueryInterface' の宣言を確認してください。
1> 'ULONG IUnknown::AddRef(void)' : は抽象型です
1> c:\program files\microsoft platform sdk\include\unknwn.h(117) : 'IUnknown::AddRef' の宣言を確認してください。
1> 'ULONG IUnknown::Release(void)' : は抽象型です
1> c:\program files\microsoft platform sdk\include\unknwn.h(119) : 'IUnknown::Release' の宣言を確認してください。
1>Still need OleCreateFontIndirect()
1>c:\program files\microsoft platform sdk\include\mmreg.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
1>f:\akao\_tool\vgm\src\windows\stdafx.h(196) : fatal error C1083: include ファイルを開けません。'dsound.h': No such file or directory
1>ブラウザ情報ファイルを作成しています...
1>Microsoft Browse Information Maintenance Utility Version 9.00.30729
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>BSCMAKE: error BK1506 : ファイル '.\Debug\CollDialog.sbr' を開けません。: No such file or directory
1>ビルドログは "file://f:\akao\_tool\VGM\src\Debug\BuildLog.htm" に保存されました。
1>VGMTrans - エラー 4、警告 1
793 :
SOUND TEST :774 :2009/06/10(水) 02:15:27 ID:KYZw8lEL
あー、あのー、自分もVisual Studio 2008 プロフェッショナルを入れてる んだけど、同じ現象なのね。 DXSDK 4/07 WTL80 必要なヘッダーファイルをVGMTransのincludeに投入。 かなりイイところまで行くけどコンパイルでけない。
VS2008ProならプロジェクトのプロパティでATLを動的リンクするように指定するだけ Expressだとさらにatlthunk.libをどうにかしたりいろいろ
そんな事ないぞ? 何か原因あっての事だろうけどBuildできまへん!!
VC2008EE + dxsdk9b + WTL80 + WS2003SP1DDK(ATL30) VS2008PE + dxsdk9b + WTL80 どちらでも問題なくビルドできる 1.インクルード・ライブラリディレクトリの設定 2.VGMTransプロジェクトの全般プロパティの「ATLの使用」を「ATL に動的にリンク」に変更する 3.EEの場合追加の依存ファイルにShLwApi.Libを追加
恥をしのんで聞くのだがインクルードライブラリフォルダの設定とはインクルードフォルダを作って必要な ヘッダーファイルを突っ込め。って意味なんだろうか?
こちらはVS2008EEなのだが(ShLwApi.Lib)をどの部分に追加をすればよいのか?
http://www1.axfc.net/uploader/Sc/so/8112.lzh DL key = akao
-----------------
revision
-----------------
version 2.02 2009. 6.10
◆FF8MML.COM
・VGMtransが出力するDLSの音色番号に併せるオプションスイッチを追加。
I added option switch to the "ff8mml.com".
This will be outputting the instrument number the same as VGMtrans.
0xA1 指定値に、0xFE-0x14で使用された音色数を加算して出力。
0xFE-0x04 @127を出力
0xFE-0x14 指定値を出力(最大16個)
-----------------
せっかくVGMtransがあっぷされたんで、
VGMtanceが吐くDLSに、akao2mmlを対応させてみた。
command prompt に type as follows.
ff8mml /d2 filename.snd >filename.mml
とりあえず、数曲は試したけど、自分がもってるff8のminiPSFじゃよくわからんかった。
DLSが上手く吐けてない?
FF9は、まぁ、何となく、それっぽく演奏できてたけど、2ポート使えないから良く解らない。
2portのMIDIが使えて、and 2portともにDLSが使えるMIDI playerって無いかな?
今は、TW-Musicで試したけど。
>>793 , 797
Thank you.
試してみる。
WDKのDownload終わってたんで、これからiso-imageをDVDに焼く!
上手くできたら、akaoとsmds関連の*.cppいじってみようと思う。
>>all
akao2mml使ってみて。 please try akao2mml.
>>800 サウンドフォントだったらTiMidity++でいけるんだけどなぁ・・・
DLSとSF2の相互変換ができるソフトでなにかフリーのやつがあればいいんだけど
16Track (1port) なら、TW-Musicがいい感じなんだけどなぁ。音質的に。 32Track (2port) 使えて、それなりの音質のSMFプレイヤーが無いと、 せっかくのVGMtransと、akao2mmlがあんま意味無いな・・・。 とりあえず、TW-musicで、port1も、port2も、Microsoft Synthesizer (default)に設定して遊んでる。 トラックがポート1とポート2でかぶっちゃうから、若干演奏変だけど。
まぁいいや。使い方、研究してみて。 そして、こうして欲しいっていうのがあったら、書き込んでくれくれ。 例えば、誰かが、AKAOの音色をSF2に変換するの作った人がいて、 そのSF2の音色番号に合うように出力して欲しいとか。 そんときは、音色番号をどう並べているかの資料も欲しいが…。
まぁ、・・・もしこれからSF2にするのを作る人がいたら、
>>800 に併せて欲しいけど・・・
書き換えるのめんどくせーし。
なんか、いい感じの、DLSが使えて、2ポート使えるMIDIプレイやあったら、
マジデ教えて!
話変わって。
In the akao2mml、"FF7"と"Saga Frontia 1"の音色定義(Insturument define)、最新版入れておいた。
Roland SC88Pro用。
88Pro持ってる人、その"define.mml"使ってcompileして遊んで。
XGに移植したい人は、適当にいじってくれて構わないです。
>>798 ツール->オプション->プロジェクトおよびソリューション->VC++ディレクトリ->ディレクトリを表示するプロジェクト
(プロジェクトの構成プロパティでも設定できる)
>>799 ソリューションエクスプローラ->VGMTrans->プロパティ->構成プロパティ->リンカ->入力->追加の依存ファイル
あとExpressEditionでATL30を使う場合
ソリューションエクスプローラ->VGMTrans->プロパティ->構成プロパティ->C/C++->言語->for ループスコープの強制準拠
をいいえにしたかも
>>806 色々サンクス。試してみる。
俺、初心者に限りなく近いからこうやって親切に教えていただけると非常に
有難いし助かる。
このスレにはイイ人ばかりで涙が出るよ!!
本当にアリガトーーーーーーーーーーーーーーーーーーーーーーーーーー!!
ちょっと話ぶった切って済まない。
ゼノギアスのPS-XのEXEバイナリーを見て、
どのアドレスに何があるのかを調べてみた。
I analyze Xenogears's music data.
The following URL is address table of Xenogears's 's PS-X.EXE.
http://www1.axfc.net/uploader/Sc/so/8322.txt ( Pass = non )
この中に、以下の3つの音色バンク(音色セット)がありそう。
I think there are 3 Instrument bank in PS-X as follows.
(1) ID = 0xFE (May, Program(Instrument) No.255 of Music sequence data. )
(2) ID = 0x26
(3) ID = ---- (This is indicated by Music sequence data.)
(1)番は、多分、曲中で、音色番号 255 になってるやつだと思う。
バイナリを見たところ、1つの音色しかはいってないっぽい。
データに連続性があるから、三角波とか、矩形波とか、そういう単純な音色。
(2)番は、全曲共通で使われる、ドライバー固定の音色。
(3)番は、曲データ毎に、PlayStationにLoadされる音色。
自分は、PlayStationのAD-PCMを、DLSにconvertする方法知らないけど、
I don't know haw to convert from Playstation's AD-PCM to DLS, SF2.
とりあえず、ここまで調べてみたんで、誰か、DLSかSF2にconvertするの作ってみない?
But I analysis above document.
Does anyone, please make the convert to DLS or SF2.
>>760 About the LFO. (smds and akao)
please see figure.
http://www1.axfc.net/uploader/Sc/so/8329.xls (pass = non) ※ 無しね。
LFO's delay1, delay2, and cycle depend on playing tempo.
Because, about the LFO of akao and smds, it was programed by software (BGM driver).
About the ADSR, it is function of playstation's hardware (SPU).
Therefore, it don't depend on playing tempo.
-----------------------
About the smds's LFO
-----------------------
0xD7 n1 :LFO Depth of Pitch bend (depth = n1 × 32 ÷ pitch-bend-range )
0xE3 n1 :LFO Depth of Expression (depth = n1 )
0xEB n1 :LFO Depth of Panpot (depth = n1 )
0xD8, 0xE4, 0xEC n1 n2 n3
delay1 = n3 [ticks]
delay2 = n1 [ticks]
cycle = n2 × 2 [ticks]
-----------------------
About the akao's LFO
-----------------------
0xB3 n1 :LFO Depth of Pitch bend (depth = n1 × 32 ÷ pitch-bend-range )
0xB7 n1 :LFO Depth of Expression (depth = n1 )
0xBB n1 :LFO Depth of Panpot (depth = n1 )
0xB4 n1 n2 n3 :LFO Pitch bend
0xB8 n1 n2 n3 :LFO Expression
0xBC n2 n3 :LFO Panpot
delay1 = n1 [ticks]
delay2 = unknown. ( I think that it is n2 [ticks] )
cycle = n3 × 2 [ticks]
813 :
SOUND TEST :774 :2009/06/12(金) 06:35:18 ID:Cw5Uy+CO
> 自分は、PlayStationのAD-PCMを、DLSにconvertする方法知らないけど、 > I don't know haw to convert from Playstation's AD-PCM to DLS, SF2. For PlaysationのAD-PCM to WAV, see PSXSPU.cpp. DLS and SF2 use WAV.
814 :
SOUND TEST :774 :2009/06/12(金) 06:37:29 ID:Cw5Uy+CO
And by WAV, I mean standard 16bit PCM.
やっぱりVGMTransコンパイルできねーー ガーン!!
コンパイルできたんで、VGMtransのakao関連のcpp修正してみた。
あんまり試してないけど、多分、幾らかのAKAOの変換がより正確にできるようになってると思う。
とりあえず、VC++.net 2008 Express でコンパイルできるのは確認できたんで、バイナリーのはアップしない。
I remake "AkaoSeq.cpp" of VGMtrans.
http://www1.axfc.net/uploader/Sc/so/8583.txt PASS = "VGM"
smdsもやってみようと思ったんだけど、ゼノギアスの *.snd 読まなくて断念。
I try to re-make smds format, but VGMtrans can not read Xenogears's smds file.
この辺、どうなっているんだろう?
誰か、ゼノギアスのsmds読むの成功したら、ソースの修正点、教えて。
あ、ちなみに、機能自体は追加してない。 流石に設計者じゃないんで、機能の実装は無理。 I can't add the new function. コマンド(Op-Code)に対して、引数(Parameter)の数を合わせただけ。 バイナリーエディタ側には、そのバイナリーがなんなのかコメントされるようにしたけど、 MIDI出力には反映されてないはず。 I remake the quantity of parameter by op-code. In the binary editor, VGMtrans will screen out the comment what function. でも、引数の数をあわせたんで、 引数の不整合で上手く変換できなかった曲があった場合は、 できるようになっていると思う。 ただし、FF9のラスボスとか、無限ループのbreakをやってるのは除く。
で、次はsmdsについて。 This witten is about smds. PS-Xのバイナリをまた見てみた。 I see PS-X EXE binary. FFTはどうなっているのか解らないので、smds全般に言及できるかは解らないが、 少なくても、ゼノギアスは、独特な事をやっているみたいです。 Analysis result is as follows. ・"VB"はあるんだけど、"VH"は無い。 There are VB in the PS-X, but There are not VH. ・変わりに、"WDS"というformatがあって、この中に、独自ヘッダーと、 VBが入っている。 Xenogears's PS-X have "WDS" data. It contain original header and VB. なので、 ・ WDSのヘッダーを、VH形式にコンバートする。 ・ VBをWDSから抜き出す。 というソフトを作れば、DLSへの変換は出来そう。 パーカッション以外のマルチサンプリングはしていないっぽい。 May, There are not multi sampling voice except the pearcussion. パーカッションのマルチサンプリングは、smds2mmlの方でデコードさせているんで、 WDSの音色番号の通りにDLSを作れれば、良い感じに鳴るとおもう。 About the pearcussion, smds2mml can decode muiti sampling to MML. Therfore, may, We get good sound if we can make DLS as WDS's instrument number. WDSのヘッダーは、波形のループポイントとか、オフセットアドレスとか、 ADSRエンベロープのパラメータとか、マスター音量とかが書いて有りそうなかんじ。 I think that WDS's header has as follows. ・AD-PCM start address ÷ 8 ・AD-PCM loop point ・ADSR ・Master Volume ・etc..
>>808 の解析結果も参照。
Zenogearsは、1つの曲で3つの音色セット(VB)が使えるって事になるみたい。
ライブラリ登録の事をもっと詳しく書いてはくれまいか? 後生です
で、VC使わない人は解らないだろうけど、コンパイルするときは、 CTRL + SHIFT + F7 でこっちでコンパイルした方が良い。 そのままF7押しても無理。
あのさー、上の方にコンパイルの事書いてあって書かれている条件満たしてるんだが zrib が何たらとかで 一向にVGMTransがコンパイル出来ない。今の状態はこう。 ☆VisualStudio2008professionalEdition ☆WTL81インストール。 ☆DirectX SDK(上に書いてあったやつ)インストール。 ☆Tool→Option→インクルード&ライブラリの設定 何が悪いのかわからない。 Projectのプロパティーの設定も出来てるし。 何故だーーーーーー!!
えっと、君は変な事してないかい? VS2008PEなら割合に簡単にコンパイルできるよ? DirectXとWTLとインクルードとライブラリ登録だけ。余分なモノを登録したらZlib をどうとかって求められるから最低限の登録を。
zlib一式はsrc/zlib以下に入っていてVGMtrans.vcproj内で指定済みなので特に設定はいらない VGMtransソースの展開に失敗したかVS自体が壊れているかのどちらか
>>826 乙。的確な答えだと思う。ところでVGMTransのソースファイルには沢山のフォーマット
が存在するが実際に使えるものは "akao ps2akao ps2 org nds Q_sound"位かな?
構成が判ればspc FFT ps1 gba とか色々詰込みたいが思いばかりで技術が伴ってない
何年かかるか分かんない。FFT.ccpに至っては変換式が殆ど出来上がってない希ガス。
同感。 FFT.ccpのバイナリ見る限りでは変換に至るまでの情報がないと思われる。
失礼。 バイナリじゃなかった。スマソ。
smdsの読み込みは成功しそう。うまくいったら、ソースうっぷする。 smds2mmlの作者。
http://www1.axfc.net/uploader/Sc/so/9976.lzh PASS = "VGM"
--------------------------------
変更点 (Change point)
--------------------------------
[1] AKAO
--------
I remaked "AkaoSeq.cpp".
・拍子(Time signature)に対応させた。
・未解析コマンドに対して、引数の数を併せた。
[2] smds
--------
I remaked "FFT.cpp", "FFT.h", "FFTFormat.h" and "root.cpp".
・smdsファイルを読み込むようにした。("root.cpp"に追記。)
(読み込まない設定になっていたのを解除)
・未解析コマンドに対して、引数の数を併せた。
というか、それ以前に、"FFT.cpp"をかなり、書き直した。
"Scanner.cpp"は、変えてないハズだけど、タイムスタンプが新しくなってたんで、一応入れておいた。
I think that I do not change "*Scanner.cpp", but there is no positive.
で、
>>831 のremakeしたVGMTransだけど、
数曲でしかcheckしてないので、後のcheckは宜しく!!
Xenogearsの曲でしかcheckしてない。
とりあえず、PSFのままでも読み込むのは確認したんで、PSF食わせても大丈夫だとおもう。
HOSAもやろうとしたんだけど、0から作る技術力が俺には無かった。
hosa2mmlで我慢しる。
まぁ、内部構造解析すれば出来るとは思うんだけど、
コードが膨大すぎて、そこまで読む気力が無かった。
とりあえず、smdsを完成させれる程度には、コード読んだが…
でも、アセンブリ言語使いだから、コード読むのに手間取ったぜ。。。
コードに思いっきり日本語コメント書いたけど・・・良いのかな…。
日本語コメントを入れるときは駄目文字に注意 駄目な例 // 変換表 /*変換表*/
835 :
SOUND TEST :774 :2009/06/18(木) 10:49:18 ID:8O9G9UXt
I'm very glad to see others working on the source code. Thank you. =) A friendly reminder: please include the original readme.txt and license.txt file in the future if you distribute the source code or binary.
http://www1.axfc.net/uploader/Sc/so/10248.lzh PASS = "VGM"
HOSAも読み込むようにしてみた。
#何故か、良く稀に、失敗したMIDIファイルが吐かれる。
原因不明。
PSFファイルから読んだときは、一発でアウトっぽい。
"HOSA"の文字列がファイルの0x0000番地にあるデータを食わせて。
1つのファイルをMIDI出力する毎に再起動が必要になってる。
ちょっと、何故か解らない。
もう、あきらめたんで、そう言うもんだと思って。
それか、直せる人、ソース直して!!!
乙。その現象はVGMTransに実装する変換及び登録ルーチンが多過ぎるとなるみたい。
newしたままdeleteしてねー
840 :
SOUND TEST :774 :2009/06/19(金) 14:31:55 ID:wqQiXY/A
>>837 Nice work!
Can you explain the problem in English? I might be able to help.
841 :
SOUND TEST :774 :2009/06/19(金) 14:34:57 ID:wqQiXY/A
Also, to be clear, it is perfectly ok with me if you add your own readme file in addition to mine.
>>840 を日本語へ
>>837 とても良い仕事!
英語でこの問題を説明してもらえますか?私が助けてあげられるかもしれません
確かに環境にもよるけどVGMTransのDS版の時も同じ現象おきた。
>>840 This is english of
>>837 -------
I confirmed that the outputted SMF(*.mid) has abnormality occasionally.
It's cause is not clear.
If VGMTrans read the PSF included HOSA-format, this failure case will occur.
Therefore, please read simple HOSA-format file.
I think that you will get successful at the first time.
However, after the second time, maybe you will get the abnormal SMF.
This time, please re-start VGMTrans.
>>839 確認してみたんだけど(I confiem)、
int HOSASeq::GetTrackPointers(void)
{
for(int i=0; i<nNumTracks; i++)
aTracks.push_back(new HOSATrack(this, GetShort(dwOffset+0x50+(i*2)) + dwOffset));
//delect object is in "VGMSeq::~VGMSeq()"
return true;
}
この辺は、基底クラス(supper class)のdestructorで、deleteしてた。
もうちょっと、ソース見てみる。
ちょーーーーーーーーーーーーーーーーーーーーーーーーーごめん。(Sorry) Bugだった。 HOSATrack::HOSATrack(HOSASeq* parentFile, long offset, long length): SeqTrack(parentFile, offset, length), iDeltaTimeCom(0), //Default delta time for Command iDeltaTimeNote(0), //Default delta time for Note iLengthTimeNote(0), //Default length for Note cVelocity(127), //Default velocity cNoteNum(60) //Default Note Number ってConstructorが"HOSA.cpp"にあるんだけど、これに iDeltaTimeCounter(0), //Delta time counter を追加(Add)して。 思いっきり、DeltaTimeのカウンターの初期化忘れてた。
PSFからのreadingでもうまくいった。(successful) 変数の初期化忘れてたのが原因だ。 About the cause of this failure, I forgot to initialize "iDeltaTimeCounter". アハハハハ。 ちょっと、もうちょっと数曲で確認してから、アーカイブ作る。
http://www1.axfc.net/uploader/Sc/so/10475.lzh 直したVersion. また、ソースなんで、ビルドは自分でして♪
2009. 6.20 (Sat)
[1] バグの原因がわかったので、対処。
変数の初期化忘れてたのが原因だった。
About the cause of this failure, I forgot to initialize "iDeltaTimeCounter".
[2] HOSAを設計する際に作った、"class.xls"を添付した。
当該ファイルは、一部のクラスについて、以下の図が書かれています。
・派生/継承(is-a)関係
・UMLクラス図(has-aの関係図)
設計したり、改造したりしたい人がいたら、参照して下さい。
※自分が解るように書いた物なので、厳密なクラス図じゃないです。(メモ書き程度)
849 :
SOUND TEST :774 :2009/06/20(土) 03:20:47 ID:PtKkt2HF
Btw unsigned int HOSATrack::DecodeVariable() Does the same thing as: ULONG SeqTrack::ReadVarLen(ULONG& offset) except there's no counter in ReadVarLen() Also, I have not analyzed the HOSA format very much, but it appears to me that it is using duration values for its notes, not separate NoteOn/NoteOff events. VGMTrans has functionality to simplify implementation of these formats. Look at SeqTrack::AddNoteByDur(). Many formats are like this, including NDS, MP2K, QSound, etc. Perhaps you can remove the code in the section titled: "// [ Process of "Delta time" and "Note off Event" ]"
850 :
SOUND TEST :774 :2009/06/20(土) 04:51:45 ID:PtKkt2HF
Here:
http://www.mediafire.com/file/2zmn53wzmjt/HOSA.cpp Changes marked with "// NEW"
I commented out obsolete code, in case something is wrong with my changes.
I also removed the fNoteOutput variable (forgot to remove iMinLengthCounter).
You can probably remove most of the DeltaTime-related variables in
Hosa.h, or make them local variables in Hosa.cpp.
851 :
SOUND TEST :774 :2009/06/20(土) 05:01:40 ID:PtKkt2HF
oops. line 308: if (fNoteOutput != 0) -> if (cNoteNum != 0) Actually, you can probably delete that line.
とりあえず俺は akao nds hosa fft ps1 SonyPS2 SquarePS2 MP2k(gba) を読めるようにした。 KonamiGX QSoundは曲やゲームを知らないので登録してない。 spc系はFormat.hがないので登録出来ない。
あ、root.cpp いじってる人いたら、また書き直すか、待避しておいて。 オリジナルから、smdsと、hosa追加してあるだけなんで。
うp主さん、Hosaのピッチベンドとかの引数は確か未解明なんですよね?
色々とVGMTransをつついているがQsoundとKonamiGXをRoot.ccpに登録した途端にビルド 出来なくなるのは何故なんだ?
857 :
SOUND TEST :774 :2009/06/20(土) 16:55:57 ID:PtKkt2HF
>>856 Qsound and KonamiGX are already enabled. They don't use Scanners.
They work through MAMELoader.
Put mame_roms.xml in the same directory as the exe (technically,
it's assumed to be in the working directory).
Be warned, KonamiGX is VERY early code.
It's basically useless in its current state.
858 :
SOUND TEST :774 :2009/06/20(土) 16:59:04 ID:PtKkt2HF
>>853 Glad you figured it out and cleaned up my changes. =)
HOSAって、Pitch bend messageあるのかな? なんか、音色側でやってる気もしなくはない。 制御用のcommandが少なすぎるんだよね。HOSA アルペジオとかも、音色側に、もうそういう音色を持たせているっぽい。 音色の抜き出しまでは作る気力無いんで、まぁ、それは、やりたい人作って。
久々に覗いてみたら何やら進展してるらしいことは見て取れるが 相変わらず文章の内容がサパーリだ 自分の無学さを呪うぜホントに(´・ω・`)
我が家の押入れから発掘した魍魎戦記MDARA2ってゲームをプレイしてたら 流れる音楽にドップリとハマり込んでしもた。midi変換したいと思ってる けどフォーマットとかに関する資料や記述があるとこ知ってたら教えて 下さいまんにょ。
>>864 あー、そういうのじゃなくてね、ここのうp主さんが作成されたような
ツールって意味なの。spc2midは昔からあったのは知ってた。うん。
魍魎戦記MDARA2のフォーマット情報とか欲しいわけ。いくらググっても
見つからないし。
ほとんどのソフトが専用ドライバである点は旧機種においては共通しているが 特にSPCは鳴らすだけなら解析する必要が無いため解析があまり盛んではない
>>866 鳴らすんじゃなくてmidi変換なんだなーーーー。これが。
レス900越えたら次スレたてますので宜しく。 二代目 内蔵音源をmidi変換するスレ 管理マン
>>867 だからspc2midiでmidiファイルに変換できるんだが?
次スレは3スレ目になるのは知ってる? 最初からいる人ならわかってるだろうけど念のため
当然知ってますよ。初代スレはMIDIうp職人潰しで最悪だったな。
そうでしたかすいません それじゃテンプレ整理とか色々あるだろうけどよろしく
VGMTrans 修正差分 6/24 version
http://www1.axfc.net/uploader/Sc/so/11815.lzh 2009. 6.24 (Wed)
[1] "smds"で使われる音色Bank"wds "形式を認識するようにした。
"*.wav"は、吐けるようになったけど、DLSへの変換は出来なかった。
どこを直せば良いんだろう?
[1] VGMTrans can read instrument bank "wds " which "smds" use.
VGMTrans can output "*.wav" files.
However, I can not re-make to output DLS file.
Where should I fix?
■備考
"root.cpp" 中の
// AddScanner("PS1");
のコメントアウトを外すことで "VH" と "VB" を認識できますが、
"wds "フォーマットの中に入っている"VB"は、
ここをコメントアウトしたままでも認識するようになってます。
コメントアウトを外すと、二重に認識するかも。
コメントアウトをハズしたときの挙動は未確認です。
I do not know function when comment "//" mark is deleted.
ちなみに、前回から変えているのは、 The changed source is as follows. ・ FFTFormat.h ・ FFTScanner.h ・ FFTScanner.cpp 追加したソースは、 Added source is as follows. ・ FFTInstr.h ・ FFTInstr.cpp だったと思う。
>>863 要するにMADARA2のmidiが聴きたいってこったろ?
どっかのmidi職人にでも頼み込んで作って貰えば?
original の VGMTrans から変えたsourceは全部入れてあるんで、
sourceを編集した人いたら注意。
>>86 x あたりの流れ
そのまま楽譜に起こせるSMFが欲しいって事だと思う。
録音系のSMFだと、小節線が凄まじいことになるからね。
あの楽譜みて、演奏できたもんじゃないデス。
まぁ、聴くだけだったら、このスレ見る意味あんま無いかも。
自分は、楽譜が欲しいのもあるけど、最近、知的興味も大きいのかも。
でも、解析ばっかして、最近練習さぼっててヤバイ。師匠に怒られる。(TT
>>871 もちろんそうなんだが、職人の切れて自演もまたきっかけで…
というのはやっぱ禁句か
>>878 今更、真相がどうのこうのって話はしても意味ないんじゃないの?
881 :
SOUND TEST :774 :2009/06/25(木) 19:18:19 ID:CS86oWIi
>>873 I think I understand the confusion you are having. Bear with me,
this is going to get very long and technical =-/.
First, some background. There are generally two types of formats:
* Some use 3 file types: Sequence, Instrument set(s),
and Sample collection(s) (SonyPS1 and SonyPS2, for example).
* Others have only 2 types of files because they group the
Instrument set and Sample collection into one file (SquarePS2 and FFT).
VGMInstrSet::sampColl is the key to distinguish these two format types in VGMTrans:
* For Sequence/InstrSet/SampColl formats, you create and load all
3 files (by calling VGMFile::LoadVGMFile() for each).
VGMInstrSet::sampColl is left NULL.
* For Sequence/InstrSet formats, you only call LoadVGMFile() on the
sequence and instrset.
Create a SampColl in VGMInstrSet::GetHeaderInfo() then
set VGMInstrSet::sampColl to this sample collection.
In VGMInstrSet::Load() are the lines:
> if (sampColl)
> sampColl->Load();
so the sampColl will be go through the load cycle, but will not
be added as a separate "Detected" file.
Look at WD.cpp for an example of how to do this.
(When DLS conversion occurs, the VGMColl class will check if there
are any SampColls in the collection. (In VGMColl::MainDLSCreation())
If there are no SampColls in the collection, then the samples from
VGMInstrSet::sampColl are loaded.)
BTW, line 125 of VGMColl.cpp should have "else return;" inserted.
Let me know if you need help with creating VGMColls.
BTW, Xenogears uses the "wds " sig, but FFT uses "dwds".
I do not know if the formats are identical aside from that difference.
I used to have dwds conversion code, but have misplaced it.
However, I am confident the region data contains
DWORD ADSR1 and ADSR2 values for the PSX SPU.
PSXConvADSR<>() in PSXSPU.h will do the the ADSR conversion for you.
>>881 Thank you for your infortmation.
I will try to re-make FFTInst.cpp.
とりあえず、翻訳(translation to JPN)。
流石に、この量は対訳サービス駆使した。
--------------------
私は、あなたが持っている混乱を理解していると思います。
私の話を我慢して聞いてください、そして、これは非常に長く技術的になるでしょう。
最初に、幾らかの予備知識として。一般に、2つの形式があります。
※ 幾らかは、シーケンス、音色、波形の3つの形式がある。(PS1, PS2 等)
※ 他の場合は2つの形式のファイルしかありません。(音色と波形を1つのファイルにするので。)
"VGMInstrSet::sampColl" クラスは、VGMTransでこれらの2つの形式タイプを区別するキーとなります。
※ Sequence, InstrSet, SampColl形式のために、全ての3個のファイルを作成して、ロードしなければならない。
(つまり、それぞれの"VGMFile::LoadVGMFile()"関数を呼ぶ。)
しかし、FFTInst.cppでは、"VGMInstrSet::sampColl"が"NULL"の状態のままです。
※ SequenceとInstrSet用に、"Sequence"と"instrset"のLoadVGMFile()だけを呼んでます。
"VGMInstrSet::GetHeaderInfo()"関数でSampCollを作成して、で、
"VGMInstrSet::sampColl"を、このサンプルコレクションにセットしてください。
VGMInstrSet::Load()には、この行があります:
> if (sampColl)
> sampColl->Load();
それで、sampCollはLoad()を通るだろうが、別々の「検出された」ファイルとしては認識されない。
この方法の例は、WD.cppを見てください。
(DLS変換が起こるとき、VGMCollのクラスは、collectionで何かSampCollsがあるかをチェックするでしょう。(VGMColl::MainDLSCreation()関数で))
(もし、collectionにSampCollsがなかった場合、VGMInstrSet::sampCollからサンプルがloadされる。)
ところで、VGMColl.cppの125行は「else return;」が挿入されているはずです。
VGMCollsを作成するのに助けなければならないなら、私にお知らせください。
ところで、Xenogearsは"wds"sigを使用しますが、FFTは"dwds"を使用します。
私は、その違いは別として、形式が同じかどうか解らない。
dwdsの変換コードを持っていたが、それを置き違えました。
しかしながら、PSX SPUにおいて、regionデータがDWORD ADSR1とADSR2値を含むと確信しています。
PSXSPU.hのPSXConvADSR<>()関数はADSR変換をするでしょう。
I have questions. ■Question (1) "WdsInstrSet::GetHeaderInfo()" function in "FFTInst.cpp" have the following code. > sampColl = new VabSampColl(rawfile, dwOffset + hdr.szHeader0); I create the VabSampColl object, and I set the "VGMInstrSet::sampColl" member. I do not understand miss point. ■Question (2) I confirmed difference of class "VGMSampColl" Constructor between "WDSampColl" and "VabSampColl" as follows. // ********** // WDSampColl // ********** WDSampColl::WDSampColl(WDInstrSet* instrset, ULONG offset, ULONG length) : VGMSampColl(SquarePS2Format::name, instrset->rawfile, instrset, offset, length) { } // *********** // VabSampColl // *********** VabSampColl::VabSampColl(RawFile* rawfile, ULONG offset) : VGMSampColl(PS1Format::name, rawfile, offset), numSamps(0) { } Please teach it's reason to me.
ごめん。よくよく英語原文読んだら 882の翻訳間違えてる。 ■誤 ----- 最初に、幾らかの予備知識として。一般に、2つの形式があります。 ※ 幾らかは、シーケンス、音色、波形の3つの形式がある。(PS1, PS2 等) ※ 他の場合は2つの形式のファイルしかありません。(音色と波形を1つのファイルにするので。) "VGMInstrSet::sampColl" クラスは、VGMTransでこれらの2つの形式タイプを区別するキーとなります。 ※ Sequence, InstrSet, SampColl形式のために、全ての3個のファイルを作成して、ロードしなければならない。 (つまり、それぞれの"VGMFile::LoadVGMFile()"関数を呼ぶ。) しかし、FFTInst.cppでは、"VGMInstrSet::sampColl"が"NULL"の状態のままです。 ※ SequenceとInstrSet用に、"Sequence"と"instrset"のLoadVGMFile()だけを呼んでます。 ■正 ----- 最初に、幾らかの予備知識として。一般的に、以下の2つの形式があります。 (1) 幾らかのタイプは、シーケンス、音色、波形の3つファイル形式がある。(PS1, PS2 等) (2) 他のタイプは、2つの形式のファイルしかない。(音色と波形を1つのファイルにするので。) "VGMInstrSet::sampColl" クラスは、VGMTransで上述の2つの形式タイプを区別するキーとなります。 (1)の場合は、Sequence, InstrSet, SampCollと、3個全てのObjectを作成して、ロードする。 #つまり、それぞれの"VGMFile::LoadVGMFile()"関数を呼ぶ。 #"VGMInstrSet::sampColl"が"NULL"の状態のままとする。 (2)の場合は、SequenceとInstrSetの、2個だけObjectを作成して、ロードする。
885 :
SOUND TEST :774 :2009/06/26(金) 10:43:03 ID:aOYMwu3h
>>883 My apologies. I seem to have misread your code.
It looks as if you are doing things correctly.
The reason the VGMSampColl is added as a separate file is that
you you are using the Filegroup matcher.
The SquarePS2 format uses a GetIDMatcher, which in turn calls
VGMSampColl::UseInstrSet to set VGMSampColl::parInstrSet.
(GetIDMatcher inherits from SimpleMatcher).
VGMSampColl::parInstrSet is checked in VGMSampColl::Load(), which causes
the sample collection to NOT be added as a separate "Detected" file at
line 61 of VGMSampColl.cpp. ( if (!parInstrSet) pRoot->AddVGMFile(this) )
Yes, this system is convoluted and should probably be changed.
I am not sure why I have UseInstrSet() in the matcher...
The Matcher system is confusing and underdeveloped.
Also FilegroupMatcher is a terrible hack right now and SHOULD NOT BE USED.
It does not even do what I say it does in the comments.
Instead, if the format permits, use the GetIdMatcher class. I see
there is an "Associated Sample Set ID" in the smds header which corresponds
to "Bank number" in the wds header. This is exactly what SimpleMatcher/GetIdMatcher
is for - it will match these two ID values to create a collection.
GetIdMatcher simply uses the VGMFile::GetId() functions of VGMSeq/VGMInstr/VGMSamplColl.
By default GetId() returns VGMFile::id.
So, the solution in brief:
* Use GetIdMatcher.
* Define VGMFile::id or GetID() in FFT.cpp and FFTInstr.cpp
886 :
SOUND TEST :774 :2009/06/26(金) 20:12:14 ID:aOYMwu3h
>>883 Re: Question 2
This is related to
>>881 .
SonyPS1 uses Seq/InstrSet/SampColl
SquarePs2 uses Seq/InstrSet (SampColl is part of InstrSet)
Therefore,
WDSampColl::WDSampColl() initializes parInstrSet
VabSampColl::VabSampColl() does not initialize parInstrSet
That is why WDSampColl takes a VGMInstrSet instead of a RawFile.
It sets parInstrSet to a VGMInstrSet. The RawFile is the same as
the VGMInstrSet's RawFile (instrset->rawfile).
(... Oops, I think VGMSampColl::UseInstrSet() may be redundant ... )
Thank you very much. I will translate into JPN tomorrow because I have no vitality for orchestra training. I will go bed. Good night.
>>873 VGMTrans 修正差分 6/24 version だけど、"root.ccp"にあるPS1を登録すると
挙動としてwavがダブって吐かれるみたい。確認できてたらスマソ。
それはそうとゼノの音合わせ、いまいち良く分からないのだが。
連投スマヌ。 mmlで吐かれた音色番号とVGMTransで吐かれたwaveの音色番号とは一致するのか? 演奏が何となく変なのだが。あっ、ゼノの話ね。 VGMTransから吐かれるmidiはピッチベンド系の処理がナイみたいで変な曲があるから 編集しずらいyp
音色は一致するらしい。一応、そう言う話は聞いた。 自分では確かめてないから解らないが。 ただし、smdsは、音色のバンク切り替えが出来る仕様なので、そこが注意点。 VGMTransで、 ・最初にヒットしたバンクは、音色番号255で使われている音色と思われる。 ・2番目にヒットしたバンクは、0xFEコマンドで切り替え『後』に適用されるバンク ・3番目にヒットしたバンクが、デフォルトのバンク。 0xFEコマンドの引数で、バンクNo.を指定している。 って、推測してる。 解らないのは、設計した関係者いがい解らないと思うんだ。 それを、誰かが、解析・検証しないと、SMF化できないわけで。 0〜10まで、全部やる気、俺はないぞ。
>>888 確認はしてないけど、実は、ダブルだろうなぁ〜とは思ってた。
それは、VGMTransの構造上、仕方がないと思う。
一番の理由は、『VBファイルそのものにはヘッダーが無い』点。
VHっていう別のファイルにヘッダーをわけちゃっているから、
コード読んだら、結構無茶な認識方法を使ってた。
本当は、VAB (VH + VB)で、一つの音色セットなんだけど、
「ヘッダー」と「波形実体」にファイルを分けちゃってるから、認識がややこしいことになってる。
あ、ちなみにバイナリーレベルでの数値なんで、 レンジは、『 0x00 (0) 〜 0x7F (127) 』ね。 普通のMIDIシーケンサーは、『 1 〜 128 』で指定するんで、そこは注意。 MML2MIDは、デフォルトは、『 0 〜 127 』の範囲だったと思う。
>>885-886 sorry. I've no time.
I will try next week.
おお、0から数えるか1から数えるかの考え方の違いはあるものの音色番号は一致した。 スレ汚しスマヌ。
楽団の練習から帰宅。 in アルコール。
>>895 良かった。
star Ocean2のslzの解凍方法やツール系を探す事が出来なかったから拙者は 諦めてゼノギアスに浮気するで候。
>>897 少し前にこのスレでソース公開した人いたような
それは知ってるけど、あれだけじゃどうにもならないです。
900 :
SOUND TEST :774 :2009/06/30(火) 15:42:57 ID:EG1iODLR
激しく同感。どうやれば使い物になるかレクチャーきぼん
スタオー2耳コピ余裕でした
>>902 乙、でもちょっと早すぎるだろ
この流れなら別に950くらいで良かったんじゃないのか?
>>902 乙
基本的に、俺が作ったのは、
このスレ(のシリーズ)内なら、改造してもいいし、アップしてもいいよ。
あとは、関連法令(著作権法等)に違反しない範囲で。
で、VGMTransで、smdsのDLS出力するの、やっぱ解らないわ。
詳しい事は、次以降。
>> 885 の翻訳文(translate into Japanese) ごめん。 ソースを誤読してたっぽい。 問題なさそうだ。 オブジェクト"VGMSampColl"が別個のファイルとして追加される理由は、"Filegroup matcher"を使っているからです。 "SquarePS2"フォーマットは、"GetIDMatcher"を使っており、その結果、 "VGMSampColl::parInstrSet"変数をセットするために"VGMSampColl::UseInstrSet"を呼びます。 ("GetIDMatcher"クラスは、"SimpleMatcher"から継承される。) "VGMSampColl::parInstrSet"変数は、"VGMSampColl::Load()"関数でチェックされており、 "VGMSampColl.cpp"の61行目で、波形セット(コレクション)を別個の検出されたファイルとして追加させません。 うん、このシステムは、複雑で理解し難く、改良しないといけないだろう。 自分でも、なぜ"Matcher"クラスに"UseInstrSet()"関数を持っているか、良く解らない。 Matcherシステムは、充分に開発されていなく、紛らわしい。 さらに、FilegroupMatcherもひどく滅茶苦茶で、まだ使うべきではないのかも。 自分がコメントでする事すらしてないし。 変わりに、フォーマットが許すなら、クラス"GetIdMatcher"を使ってみてください。 smdsヘッダーに、wdsヘッダーのバンク番号に相当する"Associated Sample Set ID"があるのが解る。 これはまさに、SimpleMatcher/GetIdMatcherがいるという事で 波形セットを作成するために、これらの2つのID値に合うでしょう。 "GetIdMatcher"は、単にVGMSeq/VGMInstr/VGMSamplCollの"VGMFile::GetId()"関数を使用します。 この関数のデフォルトは、"VGMFile::id"を返します。 述べたように、解決策の概要は、 (1) "GetIdMatcher"を使う。 (2) "FFT.cpp"と"FFTInstr.cpp"に、"GetID()"関数か"VGMFile::id"を定義する。
>> 886 の翻訳文(translate into Japanese)
>>883 Re: Question 2
これは
>>881 に関連します。
SonyPS1はSeq/InstrSet/SampColl、
SquarePs2はSeq/InstrSet(SampCollはInstrSetの一部です)を使用している。
従って、
・WDSampColl::WDSampColl()関数は、"parInstrSet"変数を初期化している。
・VabSampColl::VabSampColl()関数は、"parInstrSet"変数を初期化しない。
それは、WDSampCollがRawFileの代わりにVGMInstrSetを取得する理由です。
これは、VGMInstrSetにparInstrSetを設定します。
RawFileはVGMInstrSetのRawFile(instrset->rawfile)と同じです。
(しまった。UseInstrSet()は余分かもしれない。)
This is my trying result.
変えてみたが、DLSを出力できなかった。
なんで、VC++.netのデバッグを使用してみた。
I tried to change the FFT.cpp and FFTInst.cpp, but DLS file could not be outputted.
So, I tried to use debug of VC++.net.
その結果、VGMInstrSet::SaveAsDLS()関数内の、assocColls変数が null のままであった。
が、その原因までは判らなかった。
As a result, "assocColls" vector variable is null in "VGMInstrSet::SaveAsDLS()" function.
However, I do not understand this cause.
http://www1.axfc.net/uploader/Sc/so/13544.lzh&key=VGM > I see there is an "Associated Sample Set ID" in the smds header which corresponds to "Bank number" in the wds header.
> This is exactly what SimpleMatcher/GetIdMatcher is for - it will match these two ID values to create a collection.
> smdsヘッダーに、wdsヘッダーのバンク番号に相当する"Associated Sample Set ID"があるのが解る。
> これはまさに、SimpleMatcher/GetIdMatcherがいるという事で波形セットを作成するために、これらの2つのID値に合うでしょう。
In my analysis, smds header address 0x0016 is default sample set.
And, in smds's music sequence, It have select the sample set ID.
This command(op-code) is 0xFE.
This command have 1byte parameter which indicate sample set ID.
自分の解析では、smdsヘッダーの0x0016番地は、デフォルトの波形セットのIDで、
シーケンス・トラック部において、波形セットIDを切り替える命令があります。
そのコマンドは、0xFEです。
このコマンドは、波形セットIDを示す1Byteのパラメータがあります。
Xenogears's PSF have some sample set.
1st detected sample set : It used by insturment no. 255.
2nd detected sample set : It used after 0xFE command (op-code).
3rd detected sample set : Default sample set.
I think it is difficult to output DLS of smds.
乙。 殆ど計画倒れになる話だが、VGMTransにスタオーのフォーマットを組み込む場合、 SLZ関連のプログラムを立てなきゃ無理だわな? おっと、その前にSLZの圧縮を解く事が先決 だよな。
ガンバレ! PSFにかかってるスライド辞書なら、読み込ませたら勝手にEXEに解凍してくれるよ。 独自圧縮は知らないけど。 PSFをEXEに解凍した状態で、 中に入ってる曲ファイルに圧縮がかかっているんだと、難しいかも。
>>909 zlibから圧縮をといてEXEにするまではしってる。が、その先が問題。と言うのも
slzって独自圧縮があるから始末に悪い。Wild Armsみたいにlzs形式圧縮で結構
出回ってるヤツなら何とでもなりそうだが。ここ1年位ずっとslzの事を探して
るのだが海外のサイトに記述は若干あるもののツール系は見当たらない。
911 :
SOUND TEST :774 :2009/07/02(木) 17:01:56 ID:XTVkkqFw
なかったら、作っちゃえば良いんだよ。 VGMTransに読み込ませるなら、解凍の他にも、色々なクラスを派生させて、そのコード書かないとダメだよ。 まぁ、その辺は、参考例にできるソースコードが色々あるから、そんなに難しくないとおもう。 が、やっぱDLS出力が解んないわ。 あれからも試したりしてるんだけど、なかなかうまくいかない。 VGMTrans全体を解析しないと駄目かなぁ。
912 :
SOUND TEST :774 :2009/07/02(木) 18:25:33 ID:FR5kVQkE
作る技術と知識がないから作っちゃえば良いんだよ。って簡単に言われた日には悲しくなっちゃう
と言うのがコソーリ様子を伺ってる僕ちゃんの感想。
>>908 や
>>910 の意欲やテンションが正直羨ましい。確かに圧縮解くソースを公開されても
どうやってコンパイルするかその手段さえ分からない情けない僕ちゃん。
hootっていうの使ってみようと思って、色々HDD漁ってたら、こんなのが出てきた。
X1-turbo版SORCEIRANの逆MMLコンパイラ。
たしか、X1のHu-BAISCで作ったものだと思う。
PC98でも、ウィンドウズでもそのままじゃ動かない。
使うのであれば、何かしらの言語に移植要です。
http://www1.axfc.net/uploader/Sc/so/14101.txt&key=mucomx1 X1版は、PC88, PC88VA, PC98 のmucomとはフォーマットが違うので、
X1版ソーサリアンの抜き出し曲データにしか使えないです。
で、結局、hoot使うのはあきらめた。
曲データだけあっても、仕方が無いみたいで。
まぁ、PC98で演奏できるし、いいや。
クレクレで悪いんだがslzの圧縮解くツールか何かを上げて下さらんか? 真面目にスタオー2の解析したいから。
915 :
SOUND TEST :774 :2009/07/04(土) 18:01:15 ID:/+z5DgSc
誰ももってないと思うよ?
誰かが作らないと無いのかもしれない。 どっちみち、コンバーターを作るのであれば、 何かしらの言語は使えないと作れないんだし 既にソースがアップされているなら、そのソースを流用で良いと思う。 コンパイルの方法が解らなくても、 C言語とかの高級言語はそんな難しい文法じゃないから、解ると思う。 組むのは難しくても、何をやっているのかってのは、読めると思う。 俺も、昔は、他人の書いたCソース読めはしたけど、書くことは出来なかったし。 ポインターとか、わけわからんかったし。 アセンブラみたいに、[]でくくるだけじゃなくて、 "." とか "->" とか、の使い分けが、良く解らなかった。 今でも、『どっち使うんだろ?。アセンブラならこうなのに』って迷う。
でも、個人的には、ハフマン符号とか、そういう複雑な圧縮でなければ、 曲データの構造を解析するよりは、簡単だとおもう。 要は、スライド辞書は、同じデータ列があったら、メモリがもったいから 『ここのアドレスから、このバイト数だけ参照しろ。』 って情報書いて、ファイルサイズを小さくしているだけだから。 曲データも同じ事やってるんだよ。 リピート命令は、いわゆる、スライド辞書だとおもう。 どっちにしろ、スライド辞書の仕組みは理解しておかないと、 ほとんどの曲データは解析出来ないよ。
>> 730 今更のレスでスマン。 F#(Fis)連打とか、そう言うことしているんだと、 例えば、16分音符を16回繰り返しているとしたら、 MML的に書くと、『 [ f16 ]16 』って感じにしていると思う。 SMFみたいに、ベタで並べるのはメモリの無駄だし。 これは、akaoも、smdsも、こういう技使ってる。 hosaは、「前に同じ」って命令あって、それを15回並べるけど…。 なんで、こういう手法使っているとしたら、 同音連打は探しても、あんまり意味がない。(無くはないけど) 自分が解析するときは、各トラックのアドレス(ポインタ)が書いてある所から探すかな。 相対アドレスで書かれるときと、どこかを起点とした絶対アドレスで書かれるときがあるから、 それの見極めも必要。
とにかく、最初の解析対象の曲は、 ・トラックが少なくて、 ・小節数が少なくて、 ・複雑なことしてなくて(直感で選ぶ)、 ・耳コピが簡単な曲(これも直感?) を選ぶと良いよ。 例えば、自分は、Dew Prism解析したときは、214を選んだ。 観点は、 ・小節数が少ない。 ・トラック数が少ない。 ・アルペジオは、16分音符しか使ってない。構造が簡単そう(直感) ・同じパターンのアルペジオが続いている。 リピート命令の構造が解るかな? (と思ったが、リピート命令無かった。 ・低音部の休符が長いから、休符の事も何か解りそう。(直感) ・音量変化が無い。 っていう観点で選んだ。
ちなみに、技術英語を、翻訳サイトで自動翻訳するとわけ解らない日本語が出てくるんで、 ちゃんと、自力で読んだ方が良いと思う。
前に出たソースは未知の展開後の正確なサイズを指定しない限りうまく動かなかった気がする
ウワッ!!! 激ムズ!!!!! 誰だよ!こんな圧縮考えたヤツは! 何かもう泣きが 入っちゃってるし!
馬鹿にするつもりはないが確かにプログラム系の嗜みのない人に技術系の話や説明をしたとこ で何言ってるか理解できないだろうし時間の無駄だと思う。本当に困ってたりするならば 助け船を出せるが興味があるだけならスルーが無難かも
スタオーのデータ圧縮から展開してみたがデュープ以上に面倒そう。
>>920 スタオーとヴァルプロは同じ"SLZ"の圧縮で構成されてる。確認済。PSFから
圧縮を展開したものを見たが(1曲だけね。)結構読めそうで読めないバイナリ
になってる。解析すべきモノじゃない感じ。マジ、頭が禿になりそう。
>>926 ヅラは用意するから禿げるまで頑張ってくれw
自分は詳しくないけどVPやSOは相当面倒らしいね。
928 :
SOUND TEST :774 :2009/07/07(火) 19:01:46 ID:h3OASK+N
一番イイやつ頼むぜ?
カツラ検索してみたけど、以外に高いんだな。
>>930 お、落武者かよ・・・しかも矢付き・・・家から追出されるじゃんか・・・。
ってか、マジどーやってみんなはSLZの解凍やってんのよ? 始めからスレ読んでると 解凍ソフトがいくつかあるみたいだし。何というソフトか教えてくれねーか? それか、ソフトをうpしてくれねーだろうか? 切実にお願いです。
933 :
SOUND TEST :774 :2009/07/08(水) 21:09:37 ID:seNHqGQW
そういや、FF7やサガフロも、スライド辞書解凍しないとAKAOファイル出てこないけど、同じスライド辞書でも構造違うの? 一部は、ベタで拡張子.sndではいってたけど。 イベントファイルに埋め込まれてたり。 あれは、LZSだっけ。
>>933 そうですね。slzと構造は全く異なるようです。lzsはFF7他Wild Armsに使われて
いるようですね。圧縮形式自体けっこうポピュラーなものなのでググれば解凍
ソフトは手に入ります。
バイナリデータを見た感じ、ラブ&デストロイというゲームもlzsだと思うんだが、 FiceLZSではデコード出来なかった。 だれかデコード出来た人います?
>>935 間違いなくlzs?
psfとかデータがあれば試してみるのだが・・・
>>936 間違いなくといわれると自信がないですが。。
あいにくpsfはありません。
原盤をエクスプローラーでアクセスして、INITFS.DAT に圧縮されたであろう
QESがあります。
該当箇所を見ると、↓のような構造になっていると(自分は)思っています。
4byte 圧縮前サイズ
1byte 用途不明
1byte 圧縮フラグ
8-16byte データ (サイズは立っているビットによる)
以降、圧縮フラグとデータの繰り返し
5byte目に1byte不明な値が入っている以外Wild Armsと同じっぽいのですが。。
938 :
SOUND TEST :774 :2009/07/10(金) 18:41:22 ID:wTgcFuzu
PSF(というかexe)に入ってるのは、すでに解凍済なんじゃないかな?AKAOはそうだった気がする。 CD ROMに入ってるのは、圧縮されてりされてなかったりだけど、exeの中には解凍済のデータが入ってたような。→akao とりあえず、すぎやんの信者なんで、ドラクエやるわ。 暫くバージョンアップは無いかも。 だれか、ドラクエ9解析して。そしたら、作る。
>>938 ふつうの2sf+strm
よって既存ツールで大丈夫。
>>938 ドラクエ9ならVGMTransで楽に解析できると思うよ。独自ドライバじゃなくノーマルSseqなら
! レッスン帰りに、秋葉原よってくるかな。 R4っていうのと、ドラクエ9買ってくるぜ。 (売り切れてたり・・・
PSX-EXEから圧縮解いても独自圧縮があるのでさらに圧縮を解かなきゃいけない。 F,F7やWild ArmsはLZS,スタオーやバルプロはSLZ。まんま解凍できるものと切り出し作業 のあとの解凍など色々。あー、ラブ・デストロイはLZSに似てるけどチョイと圧縮形式が違う みたい。
944 :
SOUND TEST :774 :2009/07/11(土) 13:50:51 ID:U1Rb6y6q
曲データそのもののアップはやめようぜ。 ドラクエとかは、Jasrac管理楽曲だからちょっとまずい。 基本的に、変換方法とかそっち方面で。
>>943 やはりちがうのか。スライド辞書から理解しないと駄目みたいだなー。
変換MIDIガンガンいこうぜ!
ちょさくけんをだいじに
うぷぬし(944も)だけど、曲データそのものがアップされるんだと、 コンバータもあっぷできなくなるんで、宜しく。
で、ドラクエ買おうと思ったんだけど、ヨドバシに寄るの忘れた… なんか、店の人に勧められて、イングリッシュホルンのボーカルだけ買って、 それで満足して改札くぐってから『あ、ドラクエ・・・・』って思い出した。orz
曲データうpはこれが最初で最後っす! 曲に興味があるだけでソフトは即売りますた。ワロタのは歴代ラスボスの曲がまんま 入ってた事かな。
DQのアレンジ曲やりたいので、助かりました〜。
俺も、ゲームそのものにはあんま興味ないんだよな。多分。 いつもクリアしないで途中で放置になっちゃう。(レベル上げだるい) FF11も、あれだるい。レベル上げ。白魔導師と吟遊詩人だけレベル75(最大)にしたけど…。 (勿論、Ps2の発売日近くから6年くらい?頑張って。)
プレイステーションのマイナーゲーム「死者を呼ぶ館」のムービー、OP等のMIDIデータを取り出せたが ストーリー上で使われるBGMがMIDI変換できないってどういうことだ… マイナーゲームは簡単に変換できるということではないんだな
別フォーマットかストリームって事だな。 バイナリエディッタではどうなってる? データの中身は。
>>954 面倒くさがりでまだバイナリエディタでは確認してない
BGMの入ってそうなそれらしいファイル名がDUMMY.BINとなっている…ダミーなのか
それとも別フォーマットなのかな…そうは思えないんだけどなぁ
音色もwavにできたのにくやしい
VGMTransをPS1仕様にビルドしてデータを通してみたら?
>>956 いろいろありがとう
これ以上やってもはまっていい結果でなさそうなんであきらめて寝ることにする
まあ一番ほしかったOPがMIDIデータとして抽出できたんでよしとするよ
>>744 ,857
I tried some GX titles and successfully converted salmndr2, gokuparo, daiskiss.
The other ones were NG, though I can't distinguish the format is similar but different, or my method is bad.
I also peeked some non-GX 054539 titles' data, but none of them are same as salmndr2.
The music data conversion of arcade game is no longer popular, so I hope VGMTrans will support more machines, especially namco.
I think the early MAME drivers of System22/NA-1 supported their music with simulation by analyzing music data manually, because the MCU has not yet been dumped at that time. Is it useful?
進まないにも程があるな〜
次スレ保守カキコで10レスくらい消費しとるぞ
次スレ埋まることあれば次は
>>970 あたりの方がいいんじゃねーの?
|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| || ★★2ちゃんねるの仕様★★ || Λ_Λ || 980到達以降、 \ (゚ー゚*) キホン。 || 前のレスから24時間放置でdat落ち ⊂⊂ | ||___ ∧ ∧__∧ ∧__ ∧ ∧_ | ̄ ̄ ̄ ̄| ( ∧ ∧__ ( ∧ ∧__( ∧ ∧  ̄ ̄ ̄ 〜(_( ∧ ∧_ ( ∧ ∧_ ( ∧ ∧ は〜い、先生。 〜(_( ,,)〜(_( ,,)〜(_( ,,) 〜(___ノ 〜(___ノ 〜(___ノ
なー、なー、ドラクエ9の音楽って皆どう思うよ???
興味御座いません
何のタイトルにキョーミあるのよ?
ここは変換するスレだからな。 音楽そのものについて語りたいなら他所に行け。
>>960 にしたってこのペースで900で次スレはねーだろ
何でもいいじゃんwww
何に対して笑ってるのか分からない
968 :
SOUND TEST :774 :2009/07/17(金) 14:29:13 ID:Yo5/c3zK
961 任天堂純正のサウンドドライバーだから、すぎやんの音楽がいかされてないな。 古代祐三みたいに、自分らでサウンドドライバーかけばいいのに。かける技術者がいないんだろうけど。 赤尾氏は、古代祐三氏のサウンドドライバーと比べるとあまり大したことないんだよな。
俺内DQ音楽順位 III≧II>>IV>I>>>>>>>IX>V=VI=VII>>>>>>>>>>>>>>>>VIII
だから何?
何でもいいじゃんwww
不等号ネタは荒れるから他所でやって
そうなの? 初耳だわ
早速荒れてきました
俺の能力<その他の人たちの能力
977 :
SOUND TEST :774 :2009/07/19(日) 11:04:35 ID:rAIqtBUA
そのネ実っぽいの・・ おれもすぎやん好きだけど、スレは変換スレなんで、変換でいこうぜ。 ドラクエ買ってきて抜き出した。音色番号、やっぱり曲によって違ってた。 アーティキュレーション毎に音色番号があるかんじ。同じ楽器でも複数の音色番号がある。 ハチプロじゃ再現むつかしそ。8850でやるかなぁ。
ごめん。さげわすれた。 てか、歴代の・・・
979 :
SOUND TEST :774 :2009/07/19(日) 17:34:06 ID:eIMiz6x4
歴代の・・・って?
やっぱスタオー難しくて解析ムリそう。メモに書きとめながらの作業 だが命令がアチコチ飛びまくり〜
新参者ですが聖剣伝説2の逆MMLを作る事は難しい事なのでしょうか? 私は耳コピやツール作成などと言う高度な技術などないタダの糞です。 一番好きなタイトルだけにどなたか、お力をお貸し願えませんでしょうか?
>>981 聖剣2はspc2midiで比較的楽に出来る
当然手直しは必要だが、ここであれこれ言ってるより自分で試した方が早い
spc2midi使っても弄れないんじゃ高度な技術云々ってか むしろ最低限の技術すらないからな その程度できないなら諦めてくれというしかない
レスありがとう 頑張ってダメだったら諦めます
着メロ欲しいだけなら音楽館とかで漁れば
いや、フツーに楽譜が欲しいだけです。
ならspcファイルをspc2midiで読み込んで保存するだけ
>>987 ありがと。 やってはみたものの、メチャクチャな楽譜というかデータ
だね。 気の遠くなる作業の予感。
音色なら変換設定で調整できるし、
>>347 使えばズレも直せる
akaoの派生じゃないのかな? だとしたら、解析さえしちゃえば、現行のakao2mmlをちょっと書き換えれば、いけると思う。 が、俺は、しばらくドラクエする。
SFCのファミコン探偵倶楽部の曲データがすごい 1音ずつトラックチェンジしてるw
DVAといえばヴァルケンだな
991 それ、普通のテクだよ。 残響を残しておきたいときの。 たまに生身の演奏者にやらせる作曲者いるけどな。 休符を演奏しないと、絶対ずれる。
>>993 あーそう言うテクかー 言われてみて納得した
リバーブとかじゃダメなんだろうなあ
ナムコのコンポーザーもリバーブがない音源で音を重ねてリバーブ代わりにしてたって話しを見たわ
リバーブのほかにもディレイを再現するためにどんどん音量下げて重ねていくってのもある 極々初期からよくあるテクニックだと思う
1音ずつトラックチェンジって、例えば、ベースの最初の音がトラック1で鳴ってたけど 次の音はトラック2に行ってて、トラック1ではスネアが鳴ってるとかそういうんじゃないの spc2midiで変換すると案外そういうデータが出てくることがあって そういう場合、見なかったことにして諦めてる
996も、目的は残響なんだけど、今度はデータじゃなくて、制御側で動的割り当てしてると、そうなることがある。 後期akaoがその方法。 あと、midi音源がgm規格をうたう場合は、そうしないといけない事になってる。 なにやってるかっていうと、優先順位が低い残響から消されて、新しい音が割り当てられる。 また、音をフルに使ってると、優先順位が低い音も消して新しい音に割り当てる。
∧_∧ うめ〜 ( ・ω・) lヽ,,lヽ (っ―-つ|__,>;* ザッザッ ( ) / ) ・;*;'∴ と.、 i ( / ̄∪ ハ,,ハ しーJ ~~~~´゙`゙゙´´ ~~゙`゙´\('(゚∀゚∩/`゙゙´´ ~~゙゙ ⌒⌒⌒
1000なら来年、VPのMIDI変換ツールが公開される
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。