各種内蔵音源データからmidiデータへの変換に関する情報交換をするスレです。
各種変換ソフト等
NSFシーケンスからMIDI変換 nsf2midi
SPCシーケンスからMIDI変換 spc2midi or spctool
PS2シーケンスからMIDI変換 P2gconv or VGMTrans or Bgm2mid
DC シーケンスからMIDI変換 Dgconv
PS シーケンスからMIDI変換 Pgconv or Seq2mid or akao2mid
SS シーケンスからMIDI変換 Sgconv
NDSシーケンスからMIDI変換 VGMTrans or Sseq2mid or ndsts or ndssndext
GBAシーケンスからMIDI変換 Sappy or gba2mid
VGMシーケンスからMIDI変換 vgm2mid
ココスレのうp主様作品
akao2mml FF9.8.7.2 サガフロ midi変換対応
hosa2mml Dew Prism midi変換対応
smds2mml Xenogears FFT midi変換対応
akao2mml(spc)FF4.5.6 RS1.2.3 midi変換対応
VGMTrans リメイクソース(akao,smds,hosa)うp主様&作者様に感謝!
spc2mid補助ツール SmfExTime(Tick補正等)前スレ347氏に感謝!
☆注意☆
基本的にDLしたものは個人使用を目的としたものであり不正に他方への
転載・改造は原則禁止。尚、作者様の好意で改造等、認められたものに
ついてはこのスレ内にてうp可能。
各種変換ソフトにて変換したmidi等も原則、転載・うp禁止ですが
やむおえない場合のみ各個人の責任でやり取りを行って下さい。
内蔵音源より変換ソフトを使ってmidi変換する際の手順等、解らない
点は添付テキスト及びドキュメントを熟読したり過去スレを参照しま
しょう。
☆おながい☆
荒らしと煽りは徹底して放置・無視の方向でお願いします。
荒らしに反応する人もまた荒らしです、反応しないことが一番効果的です。
@うpローダー@
各個人で使い易いトコでお願いします。
乙。ここに皆が移行する迄の間、保守をヨロ。
とりあえず巡回保守
巡回保守
こっち側にこっそりアップしてみる。
ほしゅ
ほしゅ
補習
捕手
ほす
干す
ってな訳で新スレ移行だがドラクエで皆、忙しいんだろな・・・
前スレの聖剣伝説2でゴネてた人は解決したかいな?
俺も触発されてspc2midiとSmfExTimeでガンガン編集しまっくってるww
かなり手間食うけど、それなりに楽しいずら。
測定(仕事)しながらバイナリーみてたんだけど、曲データ構造はFF5と同じっぽい。
SPC内に配置されるメモリアドレスだけ違ってるみたい。
FF5は、0x1D00
聖剣2は、0x1B00
FF5MMLで変換したかったら、SPCファイルの頭に0x0200(512)バイトのダミーデータいれて。
で、mml化できると思う。
確認したわけじゃないんで、うまく行かなかったらごめん。(まだ会社なんで)
うまく行ったら、教えてくれくれ。
帰宅してから、詳しく解析してみる。
ヘッダやループに絶対アドレスを想定しているから駄目じゃないか
22 :
SOUND TEST :774:2009/07/27(月) 17:23:28 ID:oL6Rz397
ごめん。そうだった。
ソース的には4行かえてビルドするだけで、mml吐けるのは確認した。
でも会社のPCだと2chみれないんで、帰宅してからうぷる。
ちなみに、def_ff5.asmの35行目にある、アドレスの定義。
早く試したい人は、そこかえてビルドして。
おぉう!?
確かに先頭アドレスにダミーを挿入しとたら完璧に変換でけたどー。
24 :
SOUND TEST :774:2009/07/27(月) 20:58:22 ID:oL6Rz397
あれ? できた?
じゃぁ出来るのか。
・・・うん、そういえば、曲データはSPCでの絶対アドレスが書いてあるわけじゃないから、アドレスの演算がちゃんとうまく働くのか。
FF4や5の曲データって、カセット側のROMのアドレスの下位16bitが書いてあるから、ロードするSPC700のRAMのアドレスに補正しないといけないんだよな。
ごめん。気付いたらさげわすれてた。携帯からなんで。
早く帰ってmidiで再生してみてぇ。
とりあえず、こそこそとsd2mml.comって実行ファイルは作っといた。
帰宅して曲として成り立ってるか確認してからうぷる。
27 :
SOUND TEST :774:2009/07/27(月) 22:50:00 ID:oL6Rz397
そして、まだ帰れない人。
客がうるさくて、ちょっと胃が痛くなってきた。
ついでに聖剣伝説3もみてみた。
これは、AKAOっぽくはあるけど、既存のフォーマットじゃないっぽい。
曲データは、0x2100番地っぽかった。(SPCファイルでのアドレス)
0x2100〜0x210Fが、ch1〜ch8のヘッダーで、
SPC-700実機での絶対アドレスが書いてある。
※実際には、先頭0x0100バイトはSPCファイルのヘッダーなので、
SPC-700実機のメモリアドレスに換算する場合は
先頭の0x0100バイトを削除すると、
そのままSPC-700の実機に読み込まれるイメージになります。
ここまでは解ったけど、あとはめんどい。
案外、ロマサガ1とかFF4用のでいけたら、ごめん。
でも、多分、いけない。
聖剣3で、音源ドライバーを聖剣2より退化させると思えないし。
聖剣3のオペコードで、解ったのだけ、かいとく。
D0 … End of Track
D1 n1 … 多分テンポ
聖剣伝説2聴いてるけど・・・
LFO(ビブラート、トレモロ)の周期がなんか、やたら長い気がする。
この辺、コマンドは同じだけど、引数の深さは違うのかな?
(とおもってたら、FF5のLFOもおかしかったり・・・)
FF5のLFOは、問題なさそうだな。。。
LFOの周期は、FF5と、聖剣伝説2で仕様が違ってるみたい。
今日は、夜更かししすぎた。
>>32 激しく乙。
オフセット値の問題なら他タイトルもイケるかも?
かも?
FF6とロマサが2、3も、曲データ単体は、ちょっと違うだけで、殆んど同じオペコードなんだよね。
ドラム用のオペコードのあるなしとか、その辺が違うだけで。
そういえば、VGMTransでもFF7やサガフロを読めたらいいのになぁ。
問題は、初期と後期をどうやって識別するかだ。
聖剣3のSPC、引き続き眺めるだけ眺めてみたが、なんかakaoっぽくなくてどちらかというとsmdsに近いなぁ〜と思って、サウンドプログラマー調べてみたら鈴木氏だった。
納得がいった。
akao2mmlのソース再利用できないんで、とりあえず保留するわ。
確かにakaoの初期型と後期型の区別の処理が難しいかもね。。。。
無理っぽいと判断したからVGMTransの中の人も諦めたんだろうね。
なるほど納得ぅー。
原理的には可能であってビルド時に初期か後期の選択式にすれば・・・
みたいな事は反則だよねwww
VGMTransの話題が久方ぶりに出てアレなんだがFF9の曲番号にあたる127・129・216・316・410
をVGMTransに読み込ませると落ちてしまう。原因解る人いる?
いる
はい完了
そんじゃ、原因教えてくれねーか?
初期も後期も、ヘッダーの文字同じだからな。
無理なのは良く解った。
43 :
SOUND TEST :774:2009/07/29(水) 21:37:53 ID:+NIwP8/Z
Is it impossible to access the old thread?
>>37 I didn't give it up, just never got around to working on old akao.
>>38 Poor programming of VGMTrans. But the FF9 PSF set was ripped to exclude any bytes
in memory not accessed over the course of playing a sequence (There is an option
for this in PSF-o-Cycle to reduce file size). Therefore, some bytes of the sequence
data that normally would never get accessed are left as 00 and confuse VGMTrans...
for example, some end-of-track events do not exist in the PSF sequences.
yes
When 1000 responce were written、this thread went to ..... where?
そして、いまだ会社。
客(海外)から、明日の午前中までに報告書かけと。
英文で。
聖剣2検証してぇぇぇ。
聖剣3、考えてたんだけど、解析しちゃえばakao2mml側で対応できちゃうかもしれない。
ちと、仕事トラブってるんで、しばらくは着手できないけと、聖剣は自分も好きなんで、いずれやろうとおもう。
てか、聖剣伝説2、独特な音色多くて、定義難しいな。
聖剣2な流れのところ悪いが
誰かモンスターファーム(PS2)の大会BGMって吸いだせた奴いないだろうか?
育成関係のBGMは割と簡単なんだが大会のシーケンスデータがどうも見当たらない
初代は全部ストリーム、2は全部シーケンス、3作目となるこれは半々なのだろうか?
>>45 同感。ムズイよな。
>>43 ファイルサイズを小さく編集しろ。って事なのか?
>>47 多分その辺は誰もやってはないと思ふ。て言うか、俺の場合、ゲーム
自体持ってないから解らんが。。。。
50 :
SOUND TEST :774:2009/07/30(木) 11:31:08 ID:nblOopRY
51 :
SOUND TEST :774:2009/07/30(木) 11:39:15 ID:ESw1jxll
俺もわからん。意味不明www
聖剣2は波形レベルで和音にしてある音がある気がする。
ボス戦の危機だったかな・・・あれで変な音が鳴っていたような。
akaoのrippingの仕方間違えてるんじゃないの?
ってこと?
PSFを作る時点で。
むかし、間違えた方法のせてたサイトあったし。
俺が当初うぷったff8mmlでもその問題でて、リッピング間違えてないか確認して、間違えてたら、処理飛ばす条件分岐仕込んだし。
ちゃんとヘッダーにかいてあるサイズ通りにリッピングしてPSFつくれば、いけると思う。
俺は、CDROMから吸出してPSFにはしてないから、よくわからない。
55 :
SOUND TEST :774:2009/07/30(木) 16:06:54 ID:zucmGNkc
Sorry, it's very tough for me to understand Japanese.
>>53 This was directed at me, right?
Technically, it's not a mistake because the PSFs play fine.
But the sequence data in the FF9 PSFs is not byte for byte
identical to the original data.
This is not true for all PSFs. It depends on how they were ripped,
and whether the music engine would read all bytes of a sequence or not.
There is an option in PSF-o-Cycle that preserves all surrounding
1000 bytes (or something like that) of all addresses read. Some rips used it.
I couldn't understand your second paragraph.
>>54 FF9のゲームディスクから直接シーケンスデータをサイズ通りに拾い出し
VGMTransを通してもやっぱり落ちる曲は落ちる。PSFにしてもしなくても
結果として読込不能。
自分が試した例
FF2:FF8の生ディスクからIMGファイルをVGMTransに直接D&Dで読ませれば
全曲変換可能。
FF9に至っては読込ませ段階で落ちる。
129で試したが、俺が数年前に抜き出したのは読み込めた。
PSFは自宅のPCなんで、自分も確認してみるわ。
抜き出したの発売日の頃だし、どうやったかもう覚えてないや。
ツール類hddクラッシュで、公開してたのいがい消失してるし・・・
参考までに、うまくいったデータの最後8byte
(16進)
#127
1FE0番地から
26 48 00 7F 03 0C 4D A8
#129
0A68番地から
0A 48 00 73 03 05 5A C0
FF9_127を確認してみた。
We confirmed the binary of "FF9_127.EXE".
PSFから作ったEXEと、2000年11月に、自力で抜き出したAKAOファイルを比較した。
We compare between FF9_127.EXE (from PSF) and FF9_127.snd that I ripped at Nov.11,2000.
(I not used tool. We ripped by binary editor of MS-DOS)
その結果、FF9_127.EXE側は、いくらかバイトが足りてない。
As a result, FF9_127.EXE have no some byte.
Please see the following tiff file.
この、tiffファイルを参照。
http://www1.axfc.net/uploader/Sc/so/22860.tif&key=ff9_127 音色構造体の、00 と FF の違いは関係なし。
パーカッションの構造体をコピペしたら、ちゃんとVGMTransで読めた。
VGMTrans can read FF9_127.exe when we copy & paste the drum struct from ripped data by me.
なんで、やっぱり、PSFを作る際の切り出し方法に問題があるとおもう。
Therefore, we think that PSF have problem. it is way of ripping.
自分がやった抜き出しは、本当に覚えてない。ゴメン。
イメージにしたんだっけかな?
PC98のBIOSを機械語で直接叩いて、セクターから直接読んだような記憶もあるけど、
それは、falcom系の抜き出しにしか、つかってなかったと思うし・・・
バイナリエディタで開いて、自力で切り取った記憶もあるんだよな。
CD-ROM実家なんで、CD-ROM側のデータは確認できない。ごめん。
61 :
SOUND TEST :774:2009/07/30(木) 22:31:14 ID:zucmGNkc
>>59 Ah, ok I understand.
The top 00 bytes (which should be FF) were removed by PSF-o-Cycle during
optimization, because they were never read by the PSX CPU.
There are two possible reasons why the drum struct bytes are 00.
1) Error by the ripper - as you suggested. He may not have noticed the
00 bytes below, or he may not have realized that those bytes are
part of the music data - an understandable mistake.
2) Those drum structs may be unused by by the sequence, and
therefore were left out during the PSF-o-Cycle optimization process.
An easy way to test which is the case is to load the PSF into PSFLab,
import the correct sequence over the corrupt one, then play and listen.
If you hear missing drums, it was an error of the ripper.
Do not worry about ADPCM data having been excluded by PSF-o-Cycle.
All ADPCM data is sent as one large block to the SPU, and therefore
would not have been excluded.
62 :
SOUND TEST :774:2009/07/30(木) 22:42:12 ID:zucmGNkc
A surefire method:
After loading the PSF and importing the correct sequence data
into PSFLab, set a read breakpoint on the drum struct address.
(right click -> Breakpoint -> check "Break on: Read".
Then Debug -> Go).
> An easy way to test which is the case is to load the PSF into PSFLab,
> import the correct sequence over the corrupt one, then play and listen.
As a result, it sound out the drum part.
Therfore, we think problem of ripping.
we → I.
いかん。いつもの英文報告書作成の癖で we つかっちった。
で、書きたかったのはこれ。聖剣伝説2(Secret of Mana 2)
Roland SC88Proで音色割り振るの無理だ。
いくらか試してみたけど、SC88Proじゃ似た音色が少なすぎる。
Roland SC8850なら、何とかなるかも。
■CD1-01:(Openning)
$0c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @48 _0 ;Strings
$1c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @34 _-24 ;Pick Base
$2c $0z k127 v127 y100,2 y101,0 y6,64 H16,0 @0 _+12 ;Piano
$3c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @52 _0 ;Chorus
$4c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
$5c $0z k127 v127 y100,2 y101,0 y6,64 H2,0 @61 _0 ;Trombone
$6c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @119 _0 ;Revers Cymbal
■CD1-02:(なんだっけ?)
$0c $1z k127 v127 y100,2 y101,0 y6,64 J42 ;H.H.Close
$1c $1z k127 v127 y100,2 y101,0 y6,64 J36 ;B. Drum
$2c $0z k127 v127 y100,2 y101,0 y6,64 H3,0 @34 _-24 ;Pick Base
$3c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @8 _0 ;Celesta
$4c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @21 _0 ;Accordion
$5c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
$6c $0z k127 v127 y100,2 y101,0 y6,64 H17,0 @25 _-24 ;Guiter
$7c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @09 _0 ;Glocken
$0d $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @52 _0 ;Chorus
$1d $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @48 _0 ;Strings
■CD1-19:(Boss)
$0c $1z k127 v100 y100,2 y101,0 y6,64 J38 ;S.Drum
$1c $1z k127 v100 y100,2 y101,0 y6,64 J36 ;B.Drum
$2c $0z k127 v127 y100,2 y101,0 y6,64 H5,0 @61 _0 ;Bress
$3c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @48 _0 ;Strings
$4c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @8 _0 ;Celesta
$5c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @55 _0 ;Bass Hit
$6c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @36 _-36 ;Slap base
$7c $0z k127 v127 y100,2 y101,0 y6,64 H3,0 @34 _-24 ;Pick Base
$0d $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @68 _0 ;Oboe
$1d $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @30 _-24 ;Dist.Guiter
$2d $0z k127 v127 y100,2 y101,0 y6,64 H2,0 @61 _0 ;Trombone
■CD1-41:(last bossだっけ?)
$0c $1z k127 v127 y100,2 y101,0 y6,64 J36 ;B.Drum
$1c $1z k127 v127 y100,2 y101,0 y6,64 J38 ;S.Drum
$2c $1z k127 v127 y100,2 y101,0 y6,64 J42 ;H.H.Close
$3c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @48 _0 ;Strings
$4c $1z k127 v127 y100,2 y101,0 y6,64 J49 ;Cymbal
$5c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @36 _-36 ;Slap base
$6c $0z k127 v127 y100,2 y101,0 y6,64 H3,0 @34 _-24 ;Pick Base
$7c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @52 _0 ;Voice
$0d $0z k127 v127 y100,2 y101,0 y6,64 H5,0 @61 _0 ;Bress
$1d $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
>>59 FF9のDisc中にあるIMGファイルから抜出した生のakaoでも落ちる現象は
一体何なんだ????
わからん。
ディスク持ってないから、自分で解析して。
バイナリー比較するとか、CDROMの規格外の領域にデータが書いてないかとか(一般的なコピープロテクト)、逆にGAPやCRCまで読んでないかとか。
たまに、BIOSやIOポートを直接叩かないと、読めないデータをいれたりするメーカーいるから、そのへんも考慮。
面倒クセーからやめた。
読めないモノは読めないままでいいや。
なんという投げやりwww
聖剣伝説2(Sercret of Mana)
■CD1-03:薔薇と精霊
$0c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @48 _0 ;Strings
$1c $0z k127 v127 y100,2 y101,0 y6,64 H2,0 @61 _0 ;Trombone
$2c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @09 _0 ;Glocken
$3c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @00 _+12 ;A.Piano
$4c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
$5c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @52 _0 ;Voice
$6c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @04 _0 ;E.Piano
■CD1-04:いつもいっしょ
$0c $1z k127 v127 y100,2 y101,0 y6,64 J36 ;B.Dumm
$1c $1z k127 v127 y100,2 y101,0 y6,64 J38 ;S.Drum
$2c $0z k127 v127 y100,2 y101,0 y6,64 H32,0 @115_0 ;Hand clap
$3c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @4 _0 ;Celesta
$4c $0z k127 v127 y100,2 y101,0 y6,64 H3,0 @34 _-24 ;Pick Base
$5c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @21 _0 ;Accordion
$6c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @12 _-12 ;Marinba
$7c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
続き
■CD1-05:やさしい思い出
$0c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @21 _0 ;Accordion
$1c $0z k127 v127 y100,2 y101,0 y6,64 H16,0 @0 _+12 ;A.Piano
$2c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @4 _+12 ;E.Piano
$3c $0z k127 v127 y100,2 y101,0 y6,64 H9,0 @54 _+12 ;Syn Voice
■CD1-06:少年は荒野をめざす
$0c $0z k127 v127 y100,2 y101,0 y6,64 H17,0 @25 _-24 ;Guiter
$1c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @52 _0 ;Voice
$2c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @00 _+12 ;A.Piano
$3c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
$4c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @48 _0 ;Strings
$5c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @04 _0 ;E.Piano
■CD1-07:夏の空色
$0c $1z k127 v127 y100,2 y101,0 y6,64 J36
$1c $1z k127 v127 y100,2 y101,0 y6,64 J38
$2c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @00 _+12 ;A.Piano
$3c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
$4c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @21 _0 ;Accordion
$5c $0z k127 v127 y100,2 y101,0 y6,64 H2,0 @61 _0 ;Trombone
$6c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @04 _0 ;E.Piano
$7c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @12 _-12 ;Marinba
$0d $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @48 _0 ;Strings
>>65 の曲名は、
No.1 … 天使の怖れ
No.2 … 不思議なお話しを
No.19 … 危機
No.41 … 子午線の祀り
気付いた事。
聖剣伝説2 ラスボスのパーカス先頭にゴミデータ入るね。手動で取っ払ったら
バッチリ
オペコードが0xFDの時に、そのうしろに入るっぽいな。
後で直すわ。
今楽団帰りで、メンバーで夕飯(という名の酒)。
聖剣伝説2・3は結構名作だったし思い入れが多かった作品だから好きな曲を
midiに出来て非常に感動してる。前スレでわがまま言って申し訳無かった。
うぷ主だけど、俺も聖剣1〜3は好きだから、手を出してみた。
ちと仕事忙しくて、作っておきながらまだあまり聞いてないが。マジで時間欲しい。
会社の食堂で深夜残業にむけて燃料補給中。
はやく3着手してぇ。
というか、楽団のほうもそろそろ本番近くてヤバい
ドラクエもやりてぇ。
質問なんですけど
糞臭い自分語りはなんですか?
>>77 糞はお前だろ?通報したからな。二度とくるな。アク禁近し。ざまぁ〜〜〜〜〜
聖剣3対応楽しみだ。
乙。
親切丁寧にありがとう。これもアレかな?必要部分をバイト計算して切り出しをして
プログラム通して圧縮を解く。ってパターンなのかな?
CD内にあるSO2.binからSLZファイルを抜き出すプログラムを
セットにしておきました
シーケンスに関する知識は0なのであとはよろしく
>>82 サンクス!! シーケンスデータのみキレーに抽出でけた。
これをどう解析するか・・・・ムズ過ぎてゾクゾクしてる。
まず、ヘッダーを解析するんだ。
どこかに、ポインターぽい数値が小さい値から順に並んでいると思う。それが、トラックデータのオフセットアドレスだと思う。
それっぽいのがなかったら、トラックデータ毎にトラックのサイズが書いてあるタイプの可能性も。
メーカー側で、mmlからコンパイルしているのか、smfからコンバートしているのかで、データ構造の傾向が変わるから、その辺の見極めもすればいいかも。
あと、独自形式を開発・作曲環境も含めて1から作っているという可能性も。
これだとプログラマー次第なんで、どんな構造か解らない。
音源制御は、まともに音楽を奏でようとすると結構大変なんで、多分、既存のドライバーを参考にしているとは思うけど。
SOちょっと、難しさに興味があって、ちょっと見てみた。(マテ
0x0016 ・・・ 6[Byte]×16[track] の構造体。
━━━━━━━━━━━━━━━━━━━━━━━━━
0x00 … 不明
0x02 … 不明
0x04 … Offset address of track data
0x0076 ・・・ 6[Byte]×16[track] の構造体。
━━━━━━━━━━━━━━━━━━━━━━━━━
0x00 … 不明
0x02 … 不明
0x04 … 不明
0x00D6 ・・・ シーケンスデータ
━━━━━━━━━━━━━━━━━━━━━━━━━
ここは、2Byte1組で、譜面パターンへのoffset addressが書いてある模様。
但し、0xFFFFの場合は、End of Track
0x???? ・・・ 譜面パターンデータ
━━━━━━━━━━━━━━━━━━━━━━━━━
0x00〜0x7F 音符?
引数は1Byteで、音長[ticks]を示す?
ただし、0x00の場合は、次の音との和音?
0x80 譜面データ終わり
引数無し
0x8F 休符か、タイだと思う。
引数1byte 音長[ticks]をしめしていそう。
ちなみに、まったく曲聴かないで、バイナリーを見ていただけなんで、
これがあっているかは、解らない。
検証は、お願い。
というか、今さっき会社から帰宅ななわけで。
夏休み取れるのだろうか・・・
(マテ
は、まぁ、ミス。
きっと、疲れてるん。
だいたい分かってきた。
HOSAよりは全然素直なフォーマットだと思う。
いかは、推定。
音符は、基本4byte1組。
つまり、引数は3byte。
引数1 Note Onから次のコマンドまでのデルタタイム
引数2 Note OnからNote Offまでのデルタタイム
引数3 ベロシティ
ただし、引数2、3は、0x9Eコマンドの引数次第で省略される。
これは、引数を2つもってて、音符の引数2、3に該当。
0x86は、エクスプレッション
引数1 デルタタイム
引数2 指定値
バイナリー解析してておもったが、すごい合理的なフォーマットだと思う。
かなり高い表現力を持ちながら、いかにファイルサイズを小さくするか、考え抜かれている感じ。
専門家が作ったのかなっと思ってぐぐってみたら、サウンドドライバーで会社立ち上げた人で、納得がいった。
ちなみに、夏期長期連休日出勤中にバイナリーみてるんで、さすがに今回はコンバーターまで作る余裕ない。
今回は解析作業と助言で許してくれ。
作るんだったら、聖剣3の方やりたいし。
このドキュメントへの追記とかは、自由にやってください。
そして、是非、アップしてくれ。
解析した分だけでも、書いてくれれば、時間ある時に追記しようと思う。
本当に、これはサウンドの専門家が作ってて、
かなり色々なノウハウが詰まってそうなので、
色々な視点で解析していかないと、完璧な解析結果は得られないと思う。
ドキュメントの扱いは、このスレ内に限定して、自由で。
コンバーター作ったら、そのアーカイブ内に入れるのもokです。
そうそう、slzのツールを作成された方に大変申し訳ないのだが、スタオーの
Tr.1-29のslzをbin変換する際にバグ落ちしてしまう。原因不明・・・・・
OP-Codeと引数
0x80: 0 End of Score
0x81:
0x82: 2
0x83: 3
0x84: 2
0x85: 2
0x86: 2 Expression
0x87: 2
0x88: 2
0x89:
0x8A: 2
0x8B:
0x8C:
0x8D: 0
0x8E: 1
0x8F: 1 Rest
0x90: 2
0x91:
0x92: 2
0x93: 2
0x94: 4
0x95:
0x96:
0x97:
0x98:
0x99:
0x9A:
0x9B:
0x9C:
0x9D:
0x9E: 2 Note attribute
0x9F:
引数がある場合、最初の引数は、Delta timeのような気がする。
ここまで判明させておけば、もうプロトタイプのコンバータは作れると思う。
>>92 原因を調べたところ一部の画像ファイルなどで最後に
数値の0が連続して続く場合に展開するとファイルのサイズが
10バイトほど大きくなるのがある
よってメモリ不足で落ちしてしまう
とりあえず4096バイト余分にメモリ確保するようにして再うpしました
聖剣2
■CD1-08:踊るけものたち
$0c $1z k127 v127 y100,2 y101,0 y6,64 J36 ;B.Drum
$1c $1z k127 v127 y100,2 y101,0 y6,64 J38 ;S.Drum
$2c $0z k127 v127 y100,2 y101,0 y6,64 H32,0 @115_0 ;Hand clap
$3c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @12 _-12 ;Marinba
$4c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @115_-12 ;Castanet
$5c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @30 _-24 ;Dist.Guiter
■CD1-09:遠雷
$0c $1z k127 v127 y100,2 y101,0 y6,64 J36 ;B.Drum
$1c $1z k127 v127 y100,2 y101,0 y6,64 J38 ;S.Drum
$2c $1z k127 v127 y100,2 y101,0 y6,64 J42 ;H.H.Close
$3c $1z k127 v127 y100,2 y101,0 y6,64 J46 ;H.H.Open
$4c $0z k127 v127 y100,2 y101,0 y6,64 H32,0 @115_0 ;Hand clap
$5c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
$6c $1z k127 v127 y100,2 y101,0 y6,64 J37 ;Side stick
$7c $0z k127 v127 y100,2 y101,0 y6,64 H3,0 @34 _-24 ;Pick Base
$0d $0z k127 v127 y100,2 y101,0 y6,64 H24,0 @18 _-12 ;Organ
$1d $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @21 _0 ;Accordion
$2d $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @30 _-24 ;Dist.Guiter
$3d $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @00 _+12 ;A.Piano
$4d $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @12 _-12 ;Marinba
■CD1-10:妖精族のこども
$0c $1z k127 v127 y100,2 y101,0 y6,64 J36
$1c $1z k127 v127 y100,2 y101,0 y6,64 J35
$2c $1z k127 v127 y100,2 y101,0 y6,64 J42
$3c $1z k127 v127 y100,2 y101,0 y6,64 J46
$4c $0z k127 v127 y100,2 y101,0 y6,64 H32,0 @115_0 ;Hand clap
$5c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @115_-12 ;Castanet
$6c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @12 _-12 ;Marinba
$7c $0z k127 v127 y100,2 y101,0 y6,64 H24,0 @18 _-12 ;Organ
$0d $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @21 _0 ;Accordion
$1d $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
$2d $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @69 _0 ;E.H.
■CD1-11:月夜の出来事
$0c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @115_-12 ;Castanet
$1c $0z k127 v127 y100,2 y101,0 y6,64 H32,0 @115_0 ;Hand clap
$2c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @21 _0 ;Accordion
$3c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @69 _0 ;E.H.
$4c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @12 _-12 ;Marinba
$5c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
$6c $0z k127 v127 y100,2 y101,0 y6,64 H2,0 @61 _0 ;Trombone
■CD1-12:闇の奥
$0c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @48 _0 ;Strings
$1c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @02 _-24 ;A.Piano
$2c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @00 _+0 ;A.Piano
$3c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @52 _0 ;Chorus
■CD1-17:夜の魂
$0c $0z k127 v127 y100,2 y101,0 y6,64 H1,0 @48 _0 ;Strings
$1c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @04 _+12 ;E.Piano
$2c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @0 _0 ;@33
$3c $0z k127 v127 y100,2 y101,0 y6,64 H8,0 @75 _+12 ;Flute
$4c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @04 _0 ;Celesta
$5c $0z k127 v127 y100,2 y101,0 y6,64 H3,0 @35 _-24 ;Fretless Base
$6c $0z k127 v127 y100,2 y101,0 y6,64 H0,0 @09 _0 ;Glocken
今まで、オーボエってかいてあったの、コラングレに変えて。
音色番号は、 H0,0 @69
>>94 サンクス!!
改善された。無事全曲抜取できた。キャラデータとの区別が大変だったが
バイナリエディッタ付属のビットマップ表示で何とか区別が出来た。
マジ感謝する。
はぅぅぅ〜〜 じ、時間がほしい・・・
99 :
SOUND TEST :774:2009/08/12(水) 17:54:39 ID:69EQbyLG
ドラクエ9音楽まぁまぁ良かったけどゲームは面白くナイ。
スレ違いだが、そういう事だ。
…で?