ThbgmExtractorに関するスレッド。 バグ報告・要望など。 (全107件の投稿) Atom 1.0

※ブラウザによっては新しい書き込みが表示されない場合があるようなので、返信が表示されていない場合はF5または更新ボタンでページを更新してください。

: ID:cipeco0y

ThbgmExtractorに関する質問・バク報告・要望用のスレッドです。

以下ありがちな質問と答え。

「アプリケーションを正しく初期化できませんでした」と表示される
.NET Frameworkをインストールしてください。
抜き出し後のファイルのサイズが大きい
エンコードするようにしない限り、抜き出し後に出来るファイルは無圧縮のwavファイルです。
エンコーダを指定してもエンコードされない
ThbgmExtractor.exeと同じフォルダにエンコーダのexeを置くか、Encoders.confにエンコーダの.exeへのフルパスを指定してください。 またEncoders.confに書いたコマンドライン引数を確認してください。
エンコーダの設定について
エンコーダの開発元に質問してください。
最新作の音楽を抜き出したい
曲目ファイルを自分で書くか、公開されているところからダウンロードしてきてください。
エラーが出る
設定した内容と出たエラーメッセージ、その時の動作ログを教えてください。
うまく抜き出せない
設定した内容と起きた現象の詳細を教えてください。

その他、下らない質問が多いので、同じような質問がないか調べてから書き込んでください。
最新版で動作しない場合、過去のバージョンも試してみてください。

: ID:z3r39xGR

初めまして。
ThbgmExtractor version 1.4 beta2のソースをダウンロードさせて頂きました。
個人的な用途で使うソフトを作るのに、
c#で音楽ファイルの区間リピート再生できるソースを探していたので、大変助かりました。
特にalsaにまで対応しているのでありがたいです。

ところで、使わせていただく過程でバグを発見したので報告させて頂きます。
すでに修正済みの場合はご容赦下さい。

  • 壊れたwavファイルが出力されている

デフォルトの設定で複数曲出力すれば容易に再現します。
ファイル出力で出力されたファイルのWAVEデータ(dataチャンク)の末尾に
数バイトのゴミデータが付加されています。

原因は、EffectAppliedBgmStreamのLengthのgetのTimeSpanからのサイズ計算に誤差が発生し、
間違ったサイズのデータを出力しているようです。
試しに、データサイズが4の倍数になるように

-          return (long)(base.Format.BytesPerSecond * (effect.FadingStart + effect.FadingLength + effect.TrailingSilenceLength).TotalSeconds);
+          return (long)(base.Format.BytesPerSecond * (effect.FadingStart + effect.FadingLength + effect.TrailingSilenceLength).TotalSeconds) / 4 * 4;

というコードに変更すると、現象が発生しなくなります。

  • Smdn.Interop.WinMM.PcmStreamPlayerのVolumeが、setした値とgetした値で食い違う (Windows)

ThbgmExtractorには使用されていないので、ソース上のみのバグです。
次のソースで再現します。

 Smdn.Media.PcmStreamPlayer player = Smdn.Media.PcmStreamPlayer.Create();
 player.Volume= 50;
 int v = player.Volume;		// vには49が入る

原因は、PcmStreamPlayerのVolumeのgetの整数同士の計算で誤差が発生しているようです。
試しに、次のように

-        return 100 * (vol.Left - WaveOutVolume.Min.Left) / (WaveOutVolume.Max.Left - WaveOutVolume.Min.Left);
+        return (int)Math.Round(100 * (vol.Left - WaveOutVolume.Min.Left) / (double)(WaveOutVolume.Max.Left - WaveOutVolume.Min.Left));

doubleで計算してRoundすると発生しなくなります。

: ID:cipeco0y

>>2
はじめまして。
詳細な報告ありがとうございます。 2件ともこちらでは把握していないバグでした。
次のリリースでご指摘頂いた箇所をしておきます。

: ID:xSEiNy3/

Ver1.3から使わせて頂いてます。
Ver1.4について要望とエラーの報告をさせて頂きます。

■要望
現状では、一括設定で長さの基準を「ループ回数」にすると、設定したループ回数に達する手前からフェードが開始されますが、達した後でフェードが開始されるような設定が欲しいです。
例えば、「1ループ後、5秒後から10秒間フェード」という感じです。

■エラーの報告
曲目を選択した状態で、フェードの時間等が表示されているボックスに手打ちで適当に大きな数字を入力するとエラーが出たり動作が不安定になるようです。

以上よろしくお願い致します。

: ID:cipeco0y

>>4
要望ありがとうございます。 便利そうなので次バージョンにて取り入れようと思います。

エラーについてですが、CPUが弱かったり入力した時間が長すぎると不安定になると思います。
参考までに、どれくらいの時間を入力ときに不安定になったか、具体的な設定をお教え頂けますか?

現状数十分を越える長さは通常指定しないだろうという前提で作ってありますが、
それよりも長く設定したいようであれば、不安定にならない対処しようと思います。

: ID:xSEiNy3/

>>5
要望の件、前向きに検討して頂けるようで感謝感謝です。

エラーですが、例えば「フェードアウト開始」のボックスに整数で10とか突っ込むとメモリが不足していますといった内容のエラーを吐いて落ちてしまいます。ループ回数を見ると5000回を超えてるのでまずこんな設定をすることはないでしょうがw

私は1ループ聞ければよいので長時間の設定をすることはありませんが、上限は合った方がいいのかもしれないですね。

: ID:cipeco0y

>>6
先ほどversion 1.4.1をリリースしました。 ご要望頂いた一括設定でのフェード開始位置の設定を出来るようにしてあります。

エラーの方ですが、10程度で不安定になるのはおかしいと思ったのですが、version1.4では10と入力すると10日として解釈されるようになってました。
それが原因で不安定となったようです。 1.4.1では10日ではなく10秒として解釈されるように改善しました。

あと、ついでなので、時間を入力できる場所はとりあえずの上限として各6時間にしました。
これでも十分不安定になり得ますが、無応答になって設定すら保存出来なくなるということは少なくなるかと思います。

: ID:xSEiNy3/

>>7
対応ありがとうございます。
早速使わせていただきますm(_ _)m

: ID:nfz66TOS

はじめまして。バグなのかわかりませんが一応報告させていただきます。

version1.3までは外部エンコーダのプルダウンにLAME等が選択できるようになっていたのですが、version1.4の外部エンコーダからは(なし)しか選択できず、外部エンコーダが使用できません。

version1.4ではエンコーダのexeファイルをThbgmExtractor.exeと同じフォルダに入れるだけでなく、外部エンコーダで選択できるようにするための別の操作が必要なのでしょうか。

: ID:nfz66TOS

すみません。>>9ですが自己解決しました。私はEncoders.confをTeraPadを利用して参照していたのですが、コマンドが

; [FAAC 1.28]
; executable=faac.exe
; arguments=-w -b 128 --title "%THBGM_TITLE%" --artist "%THBGM_CREATOR%" --album "%THBGM_ALBUM%" --track %THBGM_TRACK% --year %THBGM_RELEASE_YEAR% -o "%THBGM_OUTPUTFILEPATH%" "%THBGM_INPUTFILEPATH%"
; extension=m4a

; [LAME 3.98.2]
; executable=lame.exe
; arguments=-h -b 192 --tt "%THBGM_TITLE%" --ta "%THBGM_CREATOR%" --tl "%THBGM_ALBUM%" --tn %THBGM_TRACK% --ty %THBGM_RELEASE_YEAR% --ignore-tag-errors "%THBGM_INPUTFILEPATH%" "%THBGM_OUTPUTFILEPATH%"
; extension=mp3

; [OggEnc 2.85]
; executable=oggenc2.exe
; arguments=-b 192 --title "%THBGM_TITLE%" --artist "%THBGM_CREATOR%" --album "%THBGM_ALBUM%" --tracknum %THBGM_TRACK% --date "%THBGM_RELEASE_YEAR%-%THBGM_RELEASE_MONTH%-%THBGM_RELEASE_DAY%" -o "%THBGM_OUTPUTFILEPATH%" "%THBGM_INPUTFILEPATH%"
; extension=ogg

となっていたので、

[FAAC 1.28]
executable=faac.exe
arguments=-w -b 128 --title "%THBGM_TITLE%" --artist "%THBGM_CREATOR%" --album "%THBGM_ALBUM%" --track %THBGM_TRACK% --year %THBGM_RELEASE_YEAR% -o "%THBGM_OUTPUTFILEPATH%" "%THBGM_INPUTFILEPATH%"
extension=m4a

[LAME 3.98.2]
executable=lame.exe
arguments=-h -b 192 --tt "%THBGM_TITLE%" --ta "%THBGM_CREATOR%" --tl "%THBGM_ALBUM%" --tn %THBGM_TRACK% --ty %THBGM_RELEASE_YEAR% --ignore-tag-errors "%THBGM_INPUTFILEPATH%" "%THBGM_OUTPUTFILEPATH%"
extension=mp3

[OggEnc 2.85]
executable=oggenc2.exe
arguments=-b 192 --title "%THBGM_TITLE%" --artist "%THBGM_CREATOR%" --album "%THBGM_ALBUM%" --tracknum %THBGM_TRACK% --date "%THBGM_RELEASE_YEAR%-%THBGM_RELEASE_MONTH%-%THBGM_RELEASE_DAY%" -o "%THBGM_OUTPUTFILEPATH%" "%THBGM_INPUTFILEPATH%"
extension=ogg

と修正したところ、外部エンコーダですべて表示されるようになり、LAMEではエンコードされる事も確認しました。

;が混入していたのはTeraPadによるものなのかが私にはわからないのですが、上記で解決できたということをあらためて報告させていただきます。

: ID:cipeco0y

>>10
version 1.4以降に含まれるデフォルトのEncoders.confは、記述例をすべて;でコメントアウトしてあります。
そのため、編集して;を消さない限り外部エンコーダのメニュー項目には表示されないようになっています。

これは、エンコーダのexeファイルが無い状態(ダウンロードして展開した直後の状態)でもメニューに
エンコーダの一覧が表示されてしまうと、exeファイルのあるなしに関わらずエンコードできるように見えてしまうと考え、
version 1.4以降はEncoder.confを編集しない限りメニューには表示されないように変更したためです。

: ID:gUwehRhI

はじめまして。
使わせていただきました所、1.4~1.5までのバージョン全てで
紅魔郷の07. 明治十七年の上海アリス.wavがなぜかエンコードされませんでした。

外部エンコーダーは LAME 3.98.2 を使いました。

: ID:cipeco0y

>>12
LAMEにはダメ文字を含むファイル名をエンコードできない不具合があります。
「明治十七年の上海アリス」だけエンコード出来ないのはそれが原因です。

先ほどダメ文字を含んでいてもエンコードできるように修正したversion 1.4.2を
リリースしましたので、1.4.2を使ってください。

もともと1.3ではエンコード出来ていたのですが、1.3から1.4でダメ文字対応を削ってしまったので
1.4.1までではエンコード出来なくなっていました。
万が一1.4.2でエンコード出来ない場合は、1.3を試してみてください。

: ID:du0UTrwN

こんにちは。1.3から愛用させて頂いていました。
新しいVer.1.4ですが、設定項目が変わりすぎていて非常に困惑しています。
フェードアウトの設定など前は特に気にせず出来ていたのに、自分で細かく秒数指定するとなると本当に悩んでしまいます。切り取りカーブの呼称も変わっていますし。デフォルトでも前回と全く違いますよね?

また、保存しなければ最後に使った設定やフォルダパスも記憶してくれないので余計に困ります。
前と同じ設定はどのようにすればいいでしょうか?新しい安定版が出た以上、そちらを使わなければ気がすみません。
設定項目を以前のようなおまかせモードと、詳細設定に分ければ良かったのでは?

: ID:cipeco0y

>>14
ご意見ありがとうございます。
version 1.4では機能を増やすことを優先したので、1.3と比べて分かりにくくなったと思っています。 ご不便をおかけしてすみません。

以下、質問頂いた点についてそれぞれお答えします。

1.3と同じ設定の仕方

フェードアウトの設定

1.4では、波形部分のアンカーを移動させることで秒数指定せずともフェードアウトの設定が出来ます。 1.3のスライダと同様の設定がしたい場合は、アンカーを使って設定してください。

切り取りカーブの設定

1.3と1.4の切り取りカーブの呼称対応は次の表のとおりです。

1.3 1.4
通常(線形カーブ) 直線
急激(指数カーブ) 急激
緩やか(対数カーブ) 緩やか
S字(余弦カーブ) 滑らか
デフォルトの設定

デフォルトの設定は1.3と1.4で同じで、変更はしていません。 具体的には

  • ループ2回
  • フェードアウト時間は20秒
  • フェードアウト終了位置は2回目のループ終了位置と同じ
  • 切り取りカーブは線形カーブ

のままです。

設定やフォルダパスの記憶

1.4は最後に設定した内容を記憶するようにはなっていないので、設定した内容は抜き出し設定を保存しない限り破棄されます。 同じ設定を使いたい場合は抜き出し設定を保存してください。
ただそれでもフォルダを選択するときのデフォルトパスは保存されないので、その点はご容赦ください。

なお、まだテスト版ですが、1.5以降では抜き出し設定を保存しなくても、最後に設定した内容は記憶するようになっています。

おまかせモードと詳細設定について

デフォルトの設定は変えていないので、設定を変更しないで抜き出すか、編集メニューの一括設定を使えば、1.3に近いやり方で設定ができます。

一括設定よりも簡単に設定を済ませられるような案があれば採用したいと考えているので、
もし「おまかせモード」について提案や要望などあればお聞かせ頂ければと思います。

: ID:du0UTrwN

>>15
非常に丁寧なご回答を有難うございます。
参考にさせて頂きます。

: ID:MjowpUmA

初めまして。
Ver.1.4.3を使っている者ですが、起動するとCLR.エラー80004005と出てきてしまい対処に困っています。 是非アドバイスをいただけませんでしょうか?

: ID:Uc3GKKlM

はじめまして。
.NET Frameworkは既にインストールされている状態だと思いますので、
その前提でいくつか対処法を書きます。

エラーコードをもとに調べて見ましたが、はっきりとした原因と対処法が
みつからなかったのでうまくいくか分かりませんが、

  1. exeファイルのプロパティを開き「互換モードでこのプログラムを実行する」に
    チェックが付いている場合は、チェックを外す
  2. コントロールパネルで.NET Frameworkの修復を試す
  3. それでもダメなら.NET Framework自体を再インストールする

ことで治ったという例があるようなので、試してみてください。

あと、再インストールは面倒だと思うので、再インストールを試す前に、
ver 1.4.3以前のバージョンが動くかどうか試してみることをお勧めします。

: ID:RR9u3QBF

始めまして、このような素晴しいソフトを知り使おうと思ったのですが
下のようなエラーが出てエンコードできません

EventType : clr20r3 P1 : thbgmextractor.exe P2 : 1.4.3.0
P3 : 4b39d462 P4 : thbgmextractor P5 : 1.4.3.0 P6 : 4b39d462
P7 : 5 P8 : 1b P9 : system.missingmethodexception

ThbgmExtactorのバージョンは1.4.3でlameは3.98を使用しました
このようなソフトを使うのは初めてなので判らない事だらけですがよろしくお願いします。

: ID:Uc3GKKlM

はじめまして。
見慣れないエラーなのでちょっと原因がわかりません。

とりあえず、

  1. お使いのOS
  2. 調べられたらインストールされている.NET Frameworkのバージョン
  3. エラーが出たときの操作 (抜き出しを開始したとき、起動したとき、など)

を教えてください。

また、以下のことを試してみてください

  1. Windows Updateで最新の.NET Frameworkにアップデートする
  2. 1.4.3より前のバージョンを使う
: ID:mtXzEKiC

返事遅くなってすいません

使用しているOSはwindowsXPで
最初、インストールされてなかったので.NET Framework2.0をインストールしました
エラーが出たのは抜き出しの作業をしたときです。

一応最新の.NET Frameworkを最新にして古いバージョンの物を試してみたいと思います。
よろしくお願いします。

: ID:mtXzEKiC

以前質問した19ですが、最新版のNet Framework2.0をインストールしたら使えるようになりました。

お騒がせして申し訳ありませんでした。

: ID:Uc3GKKlM

>>22
ご報告ありがとうございます。 解決したようで何よりです。

入れ違いになってしまいましたが、原因と思しき箇所を修正したバージョン1.4.4を
先ほどリリースしました。
機能的な差異はないので、1.4.3が問題なく動作しているのであれば、
引き続き1.4.3を使って頂いて問題ありません。

: ID:KO3J3Fun

初めまして
1.44を使っているのですが
音楽フォイルを変更すると他の曲目ファイルに変更してもずっと同じになってしまいます。
あと少しどうでもいいですが
設定の保存で曲目ファイルを変えてたときに出るのでやると変えたあとの名前が保存ファイル名に入ってしまいます

よろしくお願いします

: ID:+iq/7O8y

>>24
2つとも意図している動作で不具合ではありません。

まず1つめについて。 曲目ファイルを変更しても、音楽ファイルは変更されません。
音楽ファイルの方を変えたい場合は、手動で希望の音楽ファイルを設定してください。

つぎに2つめについて。 設定を保存するときのデフォルトのファイル名は、
選択されている曲目ファイルのタイトルで決まります。

これらの動作に不都合があるのかと思いますが、書かれた内容からはいまいち
要望が読み取れなかったのでよくわかりません。
もし違うようでしたらご希望する動作をお教えください。

: ID:3aVbWdC7

はじめまして。
便利なソフトウェアを公開してくださってありがとうございます。
東方以外の曲抜き出しにも活用させてもらっています。

要望なのですが、
「ループしない曲」の抜き出しを定義したいとき、
Ver1.3系では、曲目ファイルの「ループ部の長さ[Bytes]」に「00000000」と書くことで対応できたんですが、
Ver1.4系でその曲目ファイルを読み込ませると、フリーズしてしまいます。
何とかフリーズしないように出来ないものでしょうか。
よろしくお願いいたします。

: ID:+iq/7O8y

>>26
先ほどversion 1.4.5をリリースしました。
このバージョンでループ部の長さに0を指定してもフリーズしないように
しましたので、お使いください。

なお、ループしない曲でもフェードアウト等を設定して抜き出せますが、
プレビュー再生ではオリジナルの曲の長さの分までしか再生されません。
この不具合については修正が少し面倒なので、今後のバージョンか
1.5系の方で修正します。 ご了承ください。

: ID:ZrPFUZX4

はじめまして。

かなり低レベルな質問だと思うのですが、ファイルのダウンロードで「このファイルを開くか、または保存しますか?」と出て「開く」を押しても何の反応もなくうまく抜き出し機を起動させることができないのですが・・・ご助言よろしくお願いいたします。

: ID:3+urb4HG

ThbgmExtractorでは未検証です。 試せる方は自己責任でどうぞ。

ttp://jbbs.livedoor.jp/bbs/read.cgi/computer/41116/1280315305/

19 名前が無い程度の能力 [sage] 2010/08/14(土) 17:16:17 ID:Nsac6.ZQ0 Be:
    @thbgm.dat,妖精大戦争
    00000010,0020A520,00CD5180,???
    00EDF6B0,0028EA80,00F6D180,???
    020DB2B0,0002A0E0,00C441C0,???
    02D49550,00232E40,00C09880,???
    03B85C10,001D0280,012B2380,???
    05008210,0008A180,010C2900,???
    06D1AB90,00119F00,019A3800,???
    087D8290,000C8300,01546700,???
    06154C90,001C1B00,00A04400,???
    09DE6C90,001CACC8,004A2FF8,???

    配慮にならない配慮で
: ID:oHpYhpjp

愛用させていただいております。

ここのところ、バージョンアップがないようなのですが開発は一時停止中なのでしょうか?

: ID:3+urb4HG

ありがとうございます。

現在、特に不具合や強い要望は無いようなので、ThbgmExtractorには注力してません。
いつになるかは分かりませんが、少なくとも1.5 beta 2はリリースする予定なので、お待ちいただければと思います。

: ID:iBvYBA+f

1.5 beta 2を使用しております。

まず、不具合ですが、時折終了しようとしたときに
編集済みの設定があります。現在の設定を保存しますか?
のダイアログが出た後、いいえを押しても終了しないことがあります。
再現方法がよくわからないのですがあちこちいじったときによくなります。

あと、こちらは要望なのですが
音楽ファイルの位置をiniか曲目リストなんかに書けるようにはならないでしょうか?
自分はD:\Program~に入れているだけなのですが。

では失礼致します。

: ID:oiKJ7Kya

ありがとうございます。 返信が遅くなりすみません。

終了しない件については、こちらでも調べてみます。
バグのようなら次のバージョンで修正します。

ご要望頂いた件については、1.5 beta 2であればiniファイルに以下の内容を書き込めば、
音楽ファイルの位置を設定できるようになっていたと思いますので、ご活用ください。
ProductInfo:~の後ろの製品名と、InstalledBgmSourcePathに指定するthbgm.datのパスは、
インストール先に合わせて書き換えてください。

[ProductInfo:東方星蓮船 〜 Undefined Fantastic Object.]
InstalledBgmSourcePath=D:\Program~\*****\thbgm.dat
: ID:iBvYBA+f

一つずつ指定するのですね、了解しました。

: ID:atf4u1gm

東方神霊廟の曲を抜き出せますか?

ファイルには星蓮船までしか表示されないのですが・・・。

: ID:vc9X37L6

現時点では東方神霊廟は表示されません。
曲目ファイルを用意すれば表示されるようになります。

また、確認はしていませんが、version 1.5.0なら神霊廟の抜き出しも出来ると思います。

: ID:atf4u1gm

36の物です。曲目ファイルを読み込む とはどうすれば良いのでしょうか?

: ID:atf4u1gm

36の者です。ありがとうございました!

: ID:DbY2Cd5D

こんにちは。いつも愛用させて頂いてます。
ver1.5.0にてタグ周りでの不具合ではないかと思われる事象を発見したのでご報告いたします。

先日ver1.5.0で東方蓄音機の曲目ファイルを使い「デザイアドライブ」を抜き出しました。
その後WMPに入れたのですが、曲名部分とアーティスト名の部分が文字化けしておりました。
また、alneoというオーディオプレーヤーに入れたのですが、こちらではエラーを出して再生することが不可能です。

ver1.4.6で抜き出したところ曲名の文字化けも無くalneoでも再生することが出来ましたので
恐らくver1.5.0の不具合かと思われます。

他の曲ではまだ試していないので全曲こうなるのかは判りませんが、取り急ぎご報告させていただきました。
長文及び原因の勝手な推測、申し訳ございませんでした。

: ID:vc9X37L6

ありがとうございます。

まず、1.5.x系のタグ付け機能については、そもそもおまけ程度の位置づけなので、
現在の動作で不都合があるようでしたら、ほかのタグ付けツールを使うことをお勧めします。
ほかのツールでタグを再設定することで、再生できない問題も回避できると思います。

文字化けについてですが、1.5.0から使用するようになった外部のライブラリ(TagLib#)が原因ではあるのですが、
ライブラリ側の都合なので、申し訳ありませんがThbgmExtractorとしては対処はしない方針です。
代わりに、文字コードにShift-JISを使うタグ付けツールを使ってください。

ThbgmExtractorで出力したファイルがそのままでは再生できないという点については、
可能なら対処したいと思いますので、再生しようとしたのがWAVファイルなのか、
もしくはエンコードしたファイルなら使ったエンコーダを教えていただけると助かります。

: ID:DbY2Cd5D

返答ありがとうございます。

少々お訊きしたいのですがThbgmExtractorのタグ付け機能を完全に切る事はできますでしょうか。
手動でタグ部分(出力ファイル名以外)は削除してみましたが再生できない点は変わりませんでしたので。
手動でタグを消した後もalneo側で見たらリリース年の部分に変なタグがついていたので、これらを切れれば恐らく再生できるとは思うのですが・・・

再生しようとしたファイルはThbgmExtractorを使って抜き出したWAVファイルです。
上記の通りalneoでは再生不可能でしたが、WMP側では再生可能でした。

: ID:sisSL6UE

症状の詳細とご提案ありがとうございます。

先ほどタグ付け機能を無効に出来るようにしたversion 1.5.1をリリースしました。
[抜き出し]メニューの一番下に[タグを設定する]という項目を追加してあります。
これのチェックを外せば、ThbgmExtractorは一切ダグ付けをしなくなります。

こちらでは確認は出来ませんが、恐らくalneoでも再生は出来るようになっていると思います。
ご確認ください。

文字化けについては>>42のとおりですが、参考までに再生できない件について。

1.4.6ではWAVファイルの場合RIFFタグのみを埋め込んでいたのですが、
1.5.0ではRIFFタグとID3タグを埋め込んでいました。
alneoはWAVファイルに埋め込まれたID3タグに対応していないか、
ID3タグのバージョンが合わず、再生できなかったのかもしれません。
なお1.5.1でタグ付けを無効にすると、RIFFタグもID3タグも付けなくなります。

: ID:DbY2Cd5D

返答及び新版リリースありがとうございます。

ver1.5.1でタグを切ってみましたところ、無事再生することが出来ました。
どうやらalneoはID3v1・ID3v2.3の対応だったようです。

丁寧な解説、そしてわざわざ機能追加までしてくださりありがとうございました。

: ID:U0DrrUY6

緋想天と非想天則の曲を抜き出したいのですが
Variabler Sternさんのサイトが閉鎖されてしまったようで途方に暮れております。
なんとかなりませんでしょうか・・・

: ID:0r8C5mnA

先ほどまで書き込みが出来なくなっていたようです。 失礼しました。

ThbgmExtractorは緋想天・非想天則には対応してませんし、対応予定もありません。
またVariabler Sternさんの所で公開されていたツールについても詳しくは知らないので、
こちらとしてもなんともしようがありません。

代わりに他のツールを探すしかないと思うのですが、このあたりを参考にすれば
抜き出せるんじゃないでしょうか。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1032874490

: ID:CO4vF+XP

すみません。>>36から見ましたが神霊廟の抜き出しがうまくいきません。

神霊廟にはthbgmファイルがないのでth13から抽出しようと思いましたが見事にノイズでした。

どのファイルから抽出すればいいのでしょうか

: ID:0r8C5mnA

th13というのは恐らくth13.exeのことかと思いますが、そのファイルには音楽データは
入っていないので当然ノイズしか抽出できません。

神霊廟本体を起動して音楽が再生できているのであれば、thbgm.datというファイルが
あると思います。 thbgm.datというファイルを探して、そこから抽出してください。

: ID:CO4vF+XP

>>49
解決しました。
ありがとうございました

: ID:CwMVUeLF

すみません。Ver1.5.1.0のことなんですが、
曲を抜き出すとwavのファイルが0kbになっていて曲が再生できません。
素人なので手も足も出ない状況です。
OSはXPと8と両方で試したのですが結果は変わりませんでした。
ゲーム中は音楽は流れているのでthbgmもおかしくないと思います。
どうしたらよいのでしょうか。

: ID:KDQyA187

先ほどまで書き込みするとエラーとなってしまっていたようです。 失礼しました。

>>51
エラーメッセージ等は出ず、抜き出しには成功したが、ファイルは0kbだった、ということでしょうか。

ThbgmExtractorの画面下部にあるメッセージボックスにエラーログが出ているかも
しれませんので、ご確認頂けますか。

抜き出し設定(フェードアウト開始時間など)の設定内容や、外部エンコーダの設定等が
原因の可能性もあるので、試しに設定をデフォルトのままにして抜き出せば変わるかもしれません。

: ID:/f1z9w6Z

東方心綺楼用のデータは配布されないのでしょうか?

: ID:HMbHT7/s

ThbgmExtractorとしては今の所東方心綺楼用曲目ファイルの配布予定はありません。

: ID:apqUV9sM

いつも便利に使わせていただいています。

弾幕アマノジャクの曲目ファイルを読み込ませようとすると文字化けしました。
一応解決はしましたが・・・。

http://smdn.jp/works/libs/Smdn.Formats.Thbgm/#TitleFileFormat
>@で始まる行
>音楽ファイル(thbgm.dat)のパス(インストーラのデフォルト設定でインストールされる場所)を表します。 相対パスを指定した場合は%PROGRAMFILES%からの相対パスとして解釈されます。 カンマ以降(パスの後ろ)は製品名を表します。

製品名部分で「アマノジャク」を入れると化けました。
パス部分では問題なかったです。
最終的には文字コードをUnicodeLEにすると問題なく読み込めました。
今まではShiftJISやUTF-8で問題なく使ってましたが
実は曲目ファイルに文字コードの指定があったのでしょうか。

最近は長時間作業時用再生ソフトとしても使っていたりします。
ループ回数の設定などが便利だったり。
もし可能でしたら前へ次へと連続再生ができたりすると嬉しいです。
そういうソフトじゃねえ他使え!という場合はそうなのですが。

: ID:DdfZu2HU

>>55
不具合報告とご要望ありがとうございます。
先ほど文字化けに関する改善を施したversion 1.6.1をリリースしました。

まず文字化けの件から。 これまでのバージョンでは、曲目ファイルのどこかに
「東方」という文字列が含まれていれば、そこから文字コードがShift_JISかUTF-8か
どうかの判断をしていました。
弾幕アマノジャクだと「東方」が含まれないため、文字コードの判別ができずに
文字化けしたものと思われます。

version 1.6.1からは、「東方」に加えて新たに「上海」「曲データ」という文字列
からもShift_JISかUTF-8かどうかの判別を行うようにしました。
曲目ファイルにこれらの文字列が含まれていて、かつ文字コードがShift_JISかUTF-8の
どちらかであれば正しく読み込めるようになっています。
また、判別が出来なかった場合に使用する文字コードもASCIIからUTF-8に変更しています。

UnicodeLEに変更して読み込めたのは、いわゆるBOMがセットされている場合は、
BOMから判断した文字コードを使って読み込む動作によるものと思われます。
この動作については変更はありません。

続いて、連続再生の機能について。 ThbgmExtractorの再生機能はあくまで抜き出し結果の
プレビュー用という位置づけですが、曲間の繋がりもプレビューできたほうがいいかと思い、
ご要望頂いた連続再生の機能を追加しようと思います。
ただ、動作の検証等で少し時間がかかりそうなので、次以降のバージョンにて実装する予定です。
また、再生順は曲目リスト順固定(順方向のみ)とする予定なのでその点はご了承ください。

: ID:apqUV9sM

対応ありがとうございます

文字コード判別はなるほど
実験中に色々試していて確かに「東方」と入れたときだけ化けずに不思議に思っていました
ちなみにリリース一覧には
>判別できなかった場合に使用する文字コードをASCIIからShift_JISに変更
とありますが・・・?

連続再生機能も正座して待たせていただきます。

: ID:DdfZu2HU

>>57
お待たせしました。
先ほど連続再生の機能を実装したversion 1.6.2をリリースしました。
先に書いたとおりプレビュー用としての機能追加なので、もしかしたら
ご希望に添えないものかもしれませんが、どうぞご利用ください。

文字コードに関してですが、>>56の「ASCIIからUTF-8に変更」は誤りで、
リリース一覧にある「ASCIIからShift_JISに変更」が正しいです。
失礼しました。

また、文字コード判別処理の動作について詳細を追記しています。
すでに問題は解決したものかと思いますが、よろしければ参考程度にどうぞ。
http://smdn.jp/works/libs/Smdn.Formats.Thbgm/#TitleFileFormat

: ID:apqUV9sM

全く待たされておりません・・・
本当に即行での対応ありがとうございます。
今後も末永く利用させていただきます。

: ID:5W0rON/+

東方紅魔郷にはthbgm.datがなくwavファイルになっており
変なところで切れてしまってるのですが
こちらのソフトでどうにかならないのですか?

: ID:ldeUX2tb

>>60
東方紅魔郷の場合は次の手順で編集できるようになります。

  1. 曲目ファイルで東方紅魔郷を選択
  2. 音楽ファイルの横にある[...]をクリックしてth06_01.wavを開く

これでループ回数等を指定して抜き出せるようになります。

: ID:5W0rON/+

>>61
ありがとうございます

: ID:BElaPIjM

ver1.6.2でタグが反映されません。
タグを設定するにチェックはしてます。

: ID:89zanl/k

>>63
回答が遅くなりすみません。
エンコーダー設定は何を使っていますか?

エンコードなし(WAVEファイルでの出力)の場合でもタグの設定は行いますが、
再生ソフトによってはタグが表示されません。
そのため、単に表示されていない可能性もあります。

: ID:BElaPIjM

>>64
全然大丈夫です。
mp3でエンコードしたら表示されました。
ありがとうございます。

: ID:Ujy/zDl4

稀翁玉の曲目ファイルを読み込ませてもうまくいきません

@,稀翁玉
%kog_00.wav,0000002C,0010F5DC,0072B180,稀翁玉 ~ Fairy Dance
%kog_01.wav,0000002C,00306928,019FA494,天鵞絨少女戦 ~ Velvet Battle
%kog_02.wav,0000002C,000861EC,01218B94,Castle Explorer -in the Sky-
%kog_03.wav,0000002C,001384C0,010009A4,オルフェの詩 ~ Pseudoclassic
%kog_04.wav,0000002C,000878C8,01EA3D94,新幻想 ~ New Fantasy
%kog_05.wav,0000002C,00082B8C,01430774,オルレアンの聖騎士
%kog_06.wav,0000002C,003C0304,00FE8084,My Maid, Sweet Maid
%kog_07.wav,0000002C,0029525C,01040F48,桜花之恋塚 ~ Flower of Japan
%kog_08.wav,0000002C,0003A340,01CAB3D8,乙女戦士 ~ Heart of Valkyrie
%kog_09.wav,0000002C,00855BB0,00FFBE34,エニグマティクドール ~ God Knows

なにが問題なのでしょう
読込先のファイルはkog_00.wav・・・となっております。

: ID:89zanl/k

>>66
曲目ファイルに音楽ファイルへのパスが記述されていないことが原因と思われます。
以下の手順に従って手動で音楽ファイルのパスを指定してみてください。

  1. [曲目ファイル]のリストに稀翁玉があるのを確認して、選択する
  2. [音楽ファイル]の右側にある[...]をクリック
  3. ファイルの種類を「すべてのファイル(*.*)」に変更し、kog_00.wavを開く
: ID:Ujy/zDl4

>>67
迅速な回答ありがとうございます
ですが音楽ファイルのパスを指定していても抜き出しは始まるのですがすぐに失敗してしまうのです

: ID:89zanl/k

>>68
失敗する際にエラーメッセージが表示されるならその内容を、
画面下のログにエラーが出力されていればその内容を教えてください。

: ID:Ujy/zDl4

>>69
エラーメッセージは出ていません
何一つ完了していないのに完了したという表示が出ます

: ID:89zanl/k

>>70
ありがとうございます。

ThbgmExtractorの画面最下部にあるエラーログの方は確認されましたか?
恐れ入りますが、右クリックで[すべて選択]→[コピー]でメモ帳などにコピーし、
エラーが出ていないか確認してください。
もし出ているようなら、その内容をこちらに貼り付けてください。

: ID:Ujy/zDl4

>>71
よくわからないので全部貼り付けます

loaded: C:\Users\kazu\Downloads\新しいフォルダー (2)\ThbgmExtractor-1.6.2\titles_kioh.txt (稀翁玉)
loaded: C:\Users\kazu\Downloads\新しいフォルダー (2)\ThbgmExtractor-1.6.2\titles_th125.txt (ダブルスポイラー ~ 東方文花帖)
loaded: C:\Users\kazu\Downloads\新しいフォルダー (2)\ThbgmExtractor-1.6.2\titles_th128.txt (妖精大戦争 ~ 東方三月精)
loaded: C:\Users\kazu\Downloads\新しいフォルダー (2)\ThbgmExtractor-1.6.2\titles_th13.txt (東方神霊廟 ~ Ten Desires.)
loaded: C:\Users\kazu\Downloads\新しいフォルダー (2)\ThbgmExtractor-1.6.2\titles_th14.3.txt (弾幕アマノジャク)
loaded: C:\Users\kazu\Downloads\新しいフォルダー (2)\ThbgmExtractor-1.6.2\titles_th14.txt (東方輝針城 ~ Double Dealing Character.)
2015-02-15T19:38:15.4913071+09:00 '稀翁玉'を抜き出し中。
2015-02-15T19:38:15.5013077+09:00 An exception occurred while extracting: System.ArgumentException: the end of track must be before the end of stream
パラメーター名:trackInfo

  場所 Smdn.Formats.Thbgm.TrackInfo.GetStream[TBgmStream](String thbgmPath, Int32 timesToRepeat, Boolean loadOnMemory, Object[] args)
  場所 Smdn.Windows.Forms.ThbgmPlayer.Track.GetStream(String bgmSourcePath)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.ExtractTrackTask.Extract(BackgroundWorker worker)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.<OnDoWork>b__e(Object sender, DoWorkEventArgs doWorkArgs)
  場所 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
  場所 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2015-02-15T19:38:15.5023078+09:00 [稀翁玉 ~ Fairy Dance] 抜き出しを開始します。
2015-02-15T19:38:15.5063080+09:00 An exception occurred while extracting: System.ArgumentException: the end of track must be before the end of stream
パラメーター名:trackInfo

  場所 Smdn.Formats.Thbgm.TrackInfo.GetStream[TBgmStream](String thbgmPath, Int32 timesToRepeat, Boolean loadOnMemory, Object[] args)
  場所 Smdn.Windows.Forms.ThbgmPlayer.Track.GetStream(String bgmSourcePath)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.ExtractTrackTask.Extract(BackgroundWorker worker)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.<OnDoWork>b__e(Object sender, DoWorkEventArgs doWorkArgs)
  場所 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
  場所 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2015-02-15T19:38:15.5073081+09:00 An exception occurred while extracting: System.ArgumentException: the end of track must be before the end of stream
パラメーター名:trackInfo

  場所 Smdn.Formats.Thbgm.TrackInfo.GetStream[TBgmStream](String thbgmPath, Int32 timesToRepeat, Boolean loadOnMemory, Object[] args)
  場所 Smdn.Windows.Forms.ThbgmPlayer.Track.GetStream(String bgmSourcePath)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.ExtractTrackTask.Extract(BackgroundWorker worker)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.<OnDoWork>b__e(Object sender, DoWorkEventArgs doWorkArgs)
  場所 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
  場所 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2015-02-15T19:38:15.5083081+09:00 An exception occurred while extracting: System.ArgumentException: the end of track must be before the end of stream
パラメーター名:trackInfo

  場所 Smdn.Formats.Thbgm.TrackInfo.GetStream[TBgmStream](String thbgmPath, Int32 timesToRepeat, Boolean loadOnMemory, Object[] args)
  場所 Smdn.Windows.Forms.ThbgmPlayer.Track.GetStream(String bgmSourcePath)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.ExtractTrackTask.Extract(BackgroundWorker worker)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.<OnDoWork>b__e(Object sender, DoWorkEventArgs doWorkArgs)
  場所 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
  場所 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2015-02-15T19:38:15.5093082+09:00 An exception occurred while extracting: System.ArgumentException: the end of track must be before the end of stream
パラメーター名:trackInfo

  場所 Smdn.Formats.Thbgm.TrackInfo.GetStream[TBgmStream](String thbgmPath, Int32 timesToRepeat, Boolean loadOnMemory, Object[] args)
  場所 Smdn.Windows.Forms.ThbgmPlayer.Track.GetStream(String bgmSourcePath)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.ExtractTrackTask.Extract(BackgroundWorker worker)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.<OnDoWork>b__e(Object sender, DoWorkEventArgs doWorkArgs)
  場所 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
  場所 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2015-02-15T19:38:15.5103082+09:00 An exception occurred while extracting: System.ArgumentException: the end of track must be before the end of stream
パラメーター名:trackInfo

  場所 Smdn.Formats.Thbgm.TrackInfo.GetStream[TBgmStream](String thbgmPath, Int32 timesToRepeat, Boolean loadOnMemory, Object[] args)
  場所 Smdn.Windows.Forms.ThbgmPlayer.Track.GetStream(String bgmSourcePath)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.ExtractTrackTask.Extract(BackgroundWorker worker)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.<OnDoWork>b__e(Object sender, DoWorkEventArgs doWorkArgs)
  場所 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
  場所 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2015-02-15T19:38:15.5123083+09:00 An exception occurred while extracting: System.ArgumentException: the end of track must be before the end of stream
パラメーター名:trackInfo

  場所 Smdn.Formats.Thbgm.TrackInfo.GetStream[TBgmStream](String thbgmPath, Int32 timesToRepeat, Boolean loadOnMemory, Object[] args)
  場所 Smdn.Windows.Forms.ThbgmPlayer.Track.GetStream(String bgmSourcePath)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.ExtractTrackTask.Extract(BackgroundWorker worker)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.<OnDoWork>b__e(Object sender, DoWorkEventArgs doWorkArgs)
  場所 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
  場所 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2015-02-15T19:38:15.5133084+09:00 An exception occurred while extracting: System.ArgumentException: the end of track must be before the end of stream
パラメーター名:trackInfo

  場所 Smdn.Formats.Thbgm.TrackInfo.GetStream[TBgmStream](String thbgmPath, Int32 timesToRepeat, Boolean loadOnMemory, Object[] args)
  場所 Smdn.Windows.Forms.ThbgmPlayer.Track.GetStream(String bgmSourcePath)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.ExtractTrackTask.Extract(BackgroundWorker worker)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.<OnDoWork>b__e(Object sender, DoWorkEventArgs doWorkArgs)
  場所 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
  場所 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2015-02-15T19:38:15.5143085+09:00 An exception occurred while extracting: System.ArgumentException: the end of track must be before the end of stream
パラメーター名:trackInfo

  場所 Smdn.Formats.Thbgm.TrackInfo.GetStream[TBgmStream](String thbgmPath, Int32 timesToRepeat, Boolean loadOnMemory, Object[] args)
  場所 Smdn.Windows.Forms.ThbgmPlayer.Track.GetStream(String bgmSourcePath)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.ExtractTrackTask.Extract(BackgroundWorker worker)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.<OnDoWork>b__e(Object sender, DoWorkEventArgs doWorkArgs)
  場所 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
  場所 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2015-02-15T19:38:15.5153085+09:00 An exception occurred while extracting: System.ArgumentException: the end of track must be before the end of stream
パラメーター名:trackInfo

  場所 Smdn.Formats.Thbgm.TrackInfo.GetStream[TBgmStream](String thbgmPath, Int32 timesToRepeat, Boolean loadOnMemory, Object[] args)
  場所 Smdn.Windows.Forms.ThbgmPlayer.Track.GetStream(String bgmSourcePath)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.ExtractTrackTask.Extract(BackgroundWorker worker)
  場所 Smdn.Applications.ThbgmExtractor.ExtractBackgroundWorker.<OnDoWork>b__e(Object sender, DoWorkEventArgs doWorkArgs)
  場所 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
  場所 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2015-02-15T19:38:15.9893356+09:00 完了しました。

以上です

: ID:89zanl/k

>>72
ありがとうございます。

曲目ファイルに記述されている内容に問題があります。
具体的には、曲目ファイルに記述されている「開始位置+イントロ部の長さ+ループ部の長さ」が
各音楽ファイルの長さを超えています。

イントロ部の長さ、またはループ部の長さに指定されている数値の
どちらかまたは両方が誤っていると思われます。
数値を修正した上で改めて試してみてください。

なお、稀翁玉はゲームを所持していないため、こちらでは正しい数値の検証は出来かねます。

: ID:Ujy/zDl4

ありがとうございます
もしよろしければどのようなソフトで解析できるのか教えて貰えないでしょうか

: ID:89zanl/k

>>74
こちらではそういった話題は扱いません。
検索すればソフトや解析手法がいくつか出てくると思います。

: ID:Ujy/zDl4

そうですかわかりました
長々と失礼しました

: ID:bHqkDfog

自作曲のループを使用した時になぜか偶数ループ目だけノイズとして認識され、奇数ループの時は通常通り認識するというバグを発見しました。色々と試した所、曲データ設定ファイルのループ部長さの最下位の数字が奇数(1,3,5,7,9,B,D,F)である場合に発生するということを確認しました。

偶数ループ目では本来2バイトずつ読み込むべきデータが1バイトだけずれているのかと思われます。あまりThBgmExtractor自体の仕様は分からないので正確なことは言えませんが一応報告させて頂きます。

: ID:/b5NIECk

>>77
ご報告頂きありがとうございます。

現在のThbgmExtractorの仕様では、音源を常に2チャンネル(ステレオ)16ビットとして扱います。
つまり4バイトが最小単位であることが前提となっています。
これに従い、ループ部の長さも4バイト単位の数値となっていることが暗黙的な前提となっています。

そのため、ご報告頂いたとおりループ部の長さが奇数など4の倍数となっていない場合には、
抜き出した結果を出力する際にズレが生じます。
これにより、ズレが発現する偶数ループ目の音声を聞くとノイズとなってしまいます。

現状ではステレオ16ビット以外のPCM音源には非対応となっています。
そのため、モノラルや8ビットの音源を扱いたい場合は、ステレオ16ビットに変換した上で
ThbgmExtractorに渡すようにしてください。

: ID:bHqkDfog

>>78
素早いご回答有難うございます。

: ID:P9QcoZzq

はじめまして。
ver1.6.2をDL、解凍し、ThbgmExtractorを起動したところ、
指定されたデバイス、パス、またはファイルにアクセスできません。アクセス許可がない可能性があります
というメッセージが表示されました。
再DLを試したりもしましたが、同じメッセージが表示されました。
この場合はどう対処すればよいでしょうか?
低レベルな質問ですいません。

: ID:P9QcoZzq

>>81
解答有難うございます。
そちらの方法も試したのですが、変わらず同じ表示になりました。
もしかしたらとフォルダの中身全てに同じことをしても変わりませんでした。

: ID:roFKE8GQ

>>82
こちらの手順ではどうでしょうか?
http://okwave.jp/qa/q8512476/a23699265.html

ThbgmExtractorを管理者権限で実行すればとりあえず動作はするかもしれません(推奨はできません)

ブラウザや解凍ソフトを管理者権限で実行していないか確認してみてください。

: ID:P9QcoZzq

>>83
とりあえず動作はしました。
お手数かけてすいませんでした。

: ID:uzRyp+7Q

二分木のアルゴリズムがC#で掲載されていて、大変参考になりました。
C言語のものでは概念がなんとなくだったのですが、C#で一旦動くようになれば、値の動きや遷移がわかるので、変数の意味がよくわかったり、機能の追加ができるようになりました。
ありがとうございます。

: ID:l01bxtde

>>85
こちらはThbgmExtractorに関するスレッドで扱うテーマが異なりますので、以降はこちらhttp://smdn.jp/misc/forum/programming/をご利用いただけると幸いです。
ともあれ、参考になったようでなによりです。

: ID:kPd+s4hz

Windows10でタグが書き込まれないバグが存在します。
修正よろしくお願いします。

: ID:kPd+s4hz

Windows10でタグが書き込まれないバグが存在します。
修正よろしくお願いします。

: ID:+LyRQS9z

>>88
ご報告頂きありがとうございます。
調査の上、追って修正版をリリースしますので今しばらくお待ちください。

: ID:kPd+s4hz

環境はWindows10 Pro 64bit

     .NET4.6 (Windows10ではダウングレード不可)
     です。
     
: ID:+LyRQS9z

>>90
先ほど修正を行ったversion 1.6.3をリリースしました。

このバージョンでは、WAVファイル形式で出力した場合でもエクスプローラやプロパティでタグが表示されるように修正しています。
WAVファイルで出力する場合は抜き出しダイアログの「WAVのタグ形式」を「Windows標準形式」に設定してください。
(過去のバージョンでもWAVファイルにタグの設定自体は行っていましたが、エクスプローラ等では表示されない問題がありました)

なお、「アルバムアーティスト」の項目に関しては、タグ自体の設定は行っていますが、エクスプローラでは表示されません。
これはエクスプローラ側の問題と思われるため対処が難しいですが、今後もし可能なら修正します。

MP3, M4A, Ogg形式で出力した場合については、version 1.6.2でも問題なくタグ付けがされていたので、
本バージョンでは特に修正は行っていません。

その他、変更点について詳しくはこちらを参照してください。
http://smdn.jp/works/tools/ThbgmExtractor/releases/#changes_v1.6.3

: ID:4hNJDx8j

flacでの出力は可能でしょうか?

: ID:+LyRQS9z

>>92
コマンドラインから呼び出せるFLACエンコーダーを用意し、Encoders.confファイルに必要事項を
記載することにより、FLAC形式での出力も可能になります。
詳しくはEncoders.confファイルを参照してください。

FLACではなくALAC(Appleロスレス)形式での手順にはなりますが、こちらのエントリと
同様の方法で設定することができます。
http://blog.conafie.jp/2012/04/apple.html

: ID:w3rukCco

風神録以外のweb体験版には対応していないのですか?

: ID:w3rukCco

>>95
無いので作ろうと思ったのですが、よくわかりません
紅魔~花映のWEB体験版を抜き出そうとしています

: ID:w3rukCco

>>97
ゲーム側のBGMファイルは「th07tr」とかのDATファイルですか?
風神録はBGMと書いてあったのでわかりましたが…

: ID:5U/9Z0Js

>>98
こちらの認識に誤りがありました。

>>95にて曲目ファイルを用意することで対応可能と書きましたが、
風神録より前の作品のWEB体験版では音楽ファイル(thbgm.dat)が付属しないため、抜き出しはできません。

紅魔郷~花映塚の音楽を抜き出したい場合は音楽ファイルが同梱されている体験版Plusを入手してください。

: ID:T8Qg0/sn

素敵なツールをありがとうございます。
特に一括設定機能が大変素敵です。

曲目ファイル内の各種ProductInfoは、抜き出しを行う時に実際どのように活用できるものなのでしょうか?
また、ファイル名やタグの記述に使えるワイルドカード(?)にはどのようなものがあるのでしょうか?

フォーマット解説ページで各種ProductInfoについて「これらの情報を使ってタグ付けを行います」と書かれていることと、
「タグの一括設定(T)...」→「出力ファイル名」欄で$tracknoや$titleというワイルドカードが使われていること、
また$tracknoや$titleについての解説情報が見当たらないことから、
ProductInfoも$Creatorみたいな感じで全部同様にファイル名やタグに文字列として記述できるのかな~と思い、

@上海アリス幻樂団\東方天空璋\thbgm.dat,東方天空璋 ~ Hidden Star in Four Seasons.

#=ProductInfo,Creator,上海アリス幻樂団

#=ProductInfo,Prefix,th16
#=ProductInfo,ShortName,東方天空璋
#=ProductInfo,AbbreviatedShortName,天空璋
#=ProductInfo,ShortestName,天

#=ProductInfo,ReleaseDate,2017-08-11
... 以下略}}

上のような曲目ファイルを利用する状態でそのような記法を試したのですが、
ファイル名として有効に使えたのは$Creatorと$Prefixだけで、他はそのままの文字列("$ShortestName"など)となってしまいましたし、
タグにおいては$tracknoや$titleすら一切仕事をせず全てそのままの文字列となりました。

  1. ProductInfoは何に使うのか
  2. ファイル名やタグで使えるワイルドカードは($tracknoと$title以外に)何があるのか
  3. ProductInfoをファイル名やタグで使えないのが現在の仕様なら、使えるようにしていただくことは可能か(要望)

以上3点についておうかがいしたく、書き込みさせていただきました。
宜しくお願いします。
なお、OSはWindows7 Professional 64bitです。

: ID:T8Qg0/sn

…あれ? コードブロックの記法をしくじりました。すみません。

: ID:5U/9Z0Js

>>100
ご質問・ご要望を頂きありがとうございます。 以下頂いた3点について順に回答します。
($tracknoなどの文字列はワイルドカードではなくマクロと呼んでいるので、以後マクロと表記します)

1. ProductInfoは何に使うのか

曲目ファイル内に記載されたProductInfoの情報は、タグ付けの際の情報として使用されるほか、
出力フォルダ名・出力ファイル名を決める際にも使用されます。
(解説ページでは出力フォルダ・ファイル名について記載していなかったため、追記しました)

このうちタグ設定の出力ファイル名では$trackno$creatorなどのマクロが使用でき、マクロの展開(置換)が行われます。

出力ファイル名にマクロを含む文字列を設定すると、マクロが展開された結果が実際の出力ファイル名に
なりますが、この際にProductInfoなどの情報に基づいてマクロが展開されます。 (詳細は次の回答にて)

一方、タグ設定の出力ファイル名以外では$tracknoなどのマクロの展開(置換)はされません

※もともとマクロは出力ファイル名をTHxxBGM等と同じ形式にする(同時に任意の形式にもできるようにする)ことを
目的に導入したものです。 そういった経緯から、マクロが使用できるのはファイル名のみとなっています。

2. ファイル名やタグで使えるワイルドカードは($tracknoと$title以外に)何があるのか

現在version 1.6.4の時点で定義されているマクロについては、下記の場所に追記しましたのでご覧ください。
https://smdn.jp/works/libs/Smdn.Formats.Thbgm/#ThbgmExtractor_Macro

※これらのマクロは、タグの一括設定画面の出力ファイル名欄の横にある[...]をクリックして表示される
ドロップダウンメニューからも入力することができるようになっています。

3. ProductInfoをファイル名やタグで使えないのが現在の仕様なら、使えるようにしていただくことは可能か(要望)

前述の通り、現時点では出力ファイル名でマクロが使えます。
($ShortestNameが展開されなかったのはその名前ではマクロが定義されていないためで、
代わりに$pshortestと指定すれば期待する結果が得られます)

ファイル名以外では現状マクロは使えませんが、使えるように変更することはできます。
ただ、実際に変更するか検討する際の参考として、どのタグにどのような値を設定したいと考えているか、
どのようなマクロが設定できると希望に沿うものとなるのか、具体的な希望をお聞かせください。
利便性があり、既存の機能で実現できないものであれば、変更を検討したいと思います。

タグに設定したい値が現在マクロ(またはProductInfo)で定義されていないものであれば、
それを挙げていただいてもかまいません。

>>101
こちらこそすみません。 記入例が分かりづらかったので改善しました。

: ID:T8Qg0/sn

全体的によく理解できました。ありがとうございました。
特に、ファイル名欄の横の「...」から選べそうという発想が全く抜けていました…!
なまじファイル名を指定する欄なので、てっきり実際のファイルを「参照...」しに行くようなボタンだとばかり思い込んでいました。
可能なら、このボタン名は「マクロ...」などとしていただけるとわかりやすくて良いかと思いました。

希望をお聞かせください

タグについてはファイル名からの流れで一緒に検証しただけなので、私自身がタグに特定のマクロを用いたいというわけではありません。
解説記事の情報追加も含め、大変ご親切にありがとうございます。
強いて言えば、Windowsのファイル名ソートの都合上、
ファイル名の小数点ナンバリングをthXX-X形式としたい(th155でもth15.5でもなくth15-5)という要望はありますが、
これはまあ曲目ファイル側で事前調整しておくことなのかなと思いますのでもし可能ならという感じです。

また、コードブロックなどについての説明の改善もありがとうございます。
「書き込み内容の確認」画面でよくチェックするようにします。

: ID:5U/9Z0Js

>>103
ご意見ありがとうございます。

[...]については確かに誤解しやすい感があるので、[マクロ...]とするか[>>]のようにするか、
今後のバージョンで入力候補的なニュアンスが現れる何らかの表記に変更したいと思います。

小数点ナンバリングについては、出力ファイル名形式を"th15-5 $trackno.wav"のように
直接文字列で記述すれば対応できますし、また曲目ファイル側で指定すれば$prefixマクロで
記述することもできます。 このため現在の機能で不足はなく、またThbgmExtractorとして
対応するほどの必要性もさほどないかなと思っています。

また、タグでマクロを使いたいという希望ではないとのことから、マクロの扱いは現状のままと
させていただきたいと思います。

今後またご要望がありましたらこちらで受け付けますので、お気軽にお問い合わせください。

: ID:RaEPwSV/

東方神霊廟の霊界トランスのBGMが倍速になってしまうのですが、、、
曲目ファイルはあま茶さんのものを使っています。

: ID:RaEPwSV/

>>105
すみません別の曲目ファイル(あま茶さん作じゃないもの)を使ったら治りました。

: ID:5U/9Z0Js

>>105 >>106
すでに解決したようですが、他ユーザーへの情報共有のため原因と対処法について記載しておきます。

まず原因について。 確認したところ、使用された曲目ファイルの霊界トランスBGMに
サンプリングレートの指定が書かれていませんでした。

倍速で再生されたのは、サンプリングレート22050Hzで抜き出されるべきところが、
デフォルトの44100Hzで抜き出されたためです。

次に対処法について。 霊界トランスBGMでは曲目ファイルでサンプリングレートを
22050Hzと指定するようにする必要があります。

具体的には曲目ファイルで次のように記述します。

#=SamplingRate,22050,開始位置,イントロ部の長さ,ループ部の長さ,(霊界トランスBGM)

代わりに使用したとされる曲目ファイルではこのような記述となっていたと思われ、これにより
適切なサンプリングレートで抜き出しが行われ、再生時も正常な速度になったと思われます。

  • 書き込み完了後に投稿内容を編集することは出来ません。
  • >>1と入力すると1番へのアンカーになります。
  • 投稿内容はPukiWiki記法で整形されます。
    • 以下のPukiWiki記法が使えます。
      • 引用文
      • 番号付きリスト、番号なしリスト、定義リスト
      • 整形済みテキスト
        • 複数行のコードブロックを書き込むには次のように記入してください。
          #code{{
          int x = 2;
          int y = 3;
          }}
        • 複数行のコマンド出力を書き込むには次のように記入してください。
          #prompt{{
          C:\> echo "foo"
          "foo"
          }}
      • 表組み
      • 見出し
      • 強調・斜体、取り消し線・下線
      • 文字色(&color)、文字サイズ(&size)
      • 注釈
    • URL・メールアドレスは自動的にリンクになります。
    • 詳しくはPukiWikiのFormattingRulesを参照してください。