CD2WAV32 for Windows11 Revision 4.00jpをリリースしました

なんとこっそりBlogにあげた2009年のパッチから約16年ぶりのアップデートです。正式のバージョンから数えると20年ぶりぐらいでしょうか。

ダウンロードは、サイトのDelphiソフトのページからお願いします。

ブログにも書きましたが、たまたまゴールデンウィークにメインマシンをハード含めてWindows11に入れ替えた関係で、最新のDelphi CE 12.1をPCに入れたので、せっかく時間があるので試しに最新のDelphiはどんな感じになってるかな?と、サンプルでCD2WAVのプロジェクトを読ませて手を付けたら、修正の手が止まらなくなってしまったのでちゃんと更新することにしました。

今回から Windows11 (24H2) のみに対応します。理由は作者の環境が今は主にコレしかないから。
特に凝ったことはしてないのでWindows10でもちゃんと動くとは思いますが、保証はしません。すごく昔に買ったWindows10のタブ兼用のATOMマシンしか残ってないので、軽くそれで動くことはみてはいますが、詳細なテストはできないためです。

前回の16年前(この頃はWindows7でした・・)は仮対応程度でしたが、今回は大幅に修正して最新のWindowsに対応する形に修正しています。機能的には特に向上していませんが、最近のPC環境に合わせた修正を色々しています。あと、細々としたOS依存のバグも直っているかと。

まぁ、もうこのソフトを使ってる人もいないとは思うので(配信も増えましたしね)、完全に自己満足かもしれませんが下記のような修正を入れています。

根本的な部分に手を入れていますので、メジャーバージョンを1あげて、Revision 4.00としました。

・コンパイラーをWindows11に対応した最新のDelphi 12.1 Community Editionに変更しました。
 これに伴い、内部の文字コード処理は概ねUnicodeベースに置き換えられました。その結果、絵文字や中国語など特殊な文字でも正しく表示するようになりました。この修正が一番面倒なので、ちょっと放置していてしまったという・・・これで更新止まったフリーソフトって結構ありますよね。
 
・ID3Tag関連もShift-JISベースから完全にUnicodeベースになりました。ID3V1とID3V2タグで、従来はV1が基本で拡張でV2を使う感じだったのが、逆にV2が基本でV1にはV2のデータを元にダウングレードして読み書きします。これが面倒くさい。デフォルトはV2タグのみの対応にしました。タグの記録も以前はSHIFT-JISにしていましたが、基本はUnicodeのタグを入れられるようにしてます(ジャンルや年度などASCIIにしかならないものは従来通りです)。ただ、これを固定にすると不都合のあるプレイヤーもありそうなので、設定で従来通りにするかは選択可能です。デフォルトはUnicode記録です。foobar2000などの有名ソフトもUnicodeがデフォルトなので、たぶんこれで普通は問題ないでしょう。

・トラック番号を作るときに、トラック番号/全トラック番号になっていたのをトラック番号だけに
直しました。なんでこうしてたんだっけ・・・(もう忘れてる

・コンパイラー更新に伴い、コモンコントロールなどGUIは、Windows11ベースに変わっています。見た目がまともに見えるように、フォントはMSPゴシック 9ptからメイリオの10ptをメインで使うように直しました。ちょっとフォントが大きくなりましたので、4Kディスプレイでも見やすくなりました。

・ファイラー関連でファイルサイズ等が32bit処理になっていたのを64bitベースに修正されました。 このため桁あふれがなくなり、大きなファイルのサイズや空きディスクサイズがマイナスで出るようなことがなくなりました。またテラバイトサイズのHDDを考慮した表示にしました。

・歴史的に残っていた裏機能をコードレベルで削除しました(偽春名との通信機能など)。
同じく歴史的経緯から設定メニューがとにかくごちゃごちゃしてたので、バッサリ使いそうにないものなどを整理しておきました。基本は出力ファイルのタブだけで完結するように修正。

・Windows11から64bitOSのみになったため、もう使えないMSCDEXの16ビットコード呼び出し機能は削除しました。また、もう使われてない&テストするのが面倒なTwinVQの圧縮などは機能ごと削除しました(多少設定メニューがすっきり)
 WinASPI32の対応もWindowsがSCSIをまともに対応しなくなったので削除してしまおうかと思いましたがいまのところは残しています。ただ、ASPIが使えないときにレジストリを内部で書き換えようとする処理は、ゼロデイ脆弱性のウイルスチェックでひっかけられそうなので、コードごと削除しました。従って、内部処理ではレジストリを書き直す処理は完全になくなりました(Delphiのシステムライブラリの国際化対応周りでレジストリを触っているので、あるとしたらそれぐらい)
 
 !ASPIは自宅でもすでに動作確認できる環境がないので、関連する機能も動作確認していません(バースト読み出しなど)

・WMAを確認しているときにいまだとMP3はMedia Foundation APIで作れることがわかったので、ACMの代わりにこれでエンコードするオプションに入れ替えました。圧縮のデフォルトはこれに変えてます。 また、ACMのエンコードも正直わかりにくいのとたぶん役に立ってないのでこちらも削除しました。RMPファイルなんてもう誰も覚えてないですよね? そんなわけで、さらに設定画面がスッキリ。
 FLACとかAACのエンコードも同じAPIでできるのですが、タグの打ち込みとかが独自で実装が面倒くさいので対応しません。+自分が使ってないのでやる気があまりなし。変換はパラメータ変えるだけなのでカンタンなんですけど、タグを合わせた統合環境が構築するのがめんどいので。
 WMAも誰も使ってないかもしれませんが、Windows11でサポートされている生成方法に変更しましたので、MP3同様に何かDLLを追加することなく、普通に生成できるようになりました。
 ただ、内蔵のMP3のエンコーダを使うとコメントに不明なデータを付けてしまうのですが、いまのところ回避方法がわからないので放置です。なお、CDDB-Rip-Encode-タグ付けの自動シーケンスの際は勝手にこの不明コメントを上書きして消してしまいますので、通常は特に困らないとは思います(iTUNのヘッダがついてるのでAppleの何かが悪さしてるかと思いきや、特にそんなものが入ってないPCでも同様なので、ちょっとよくわからず)。
 ちなみにMedia Foundation APIってDelphiだと例のごとくAPI定義がないので自前で作りましたが、巨大で全部作り直す気力ゼロなので、今回使うAPIでの必要最低限だけPascal化しました。
 必要最低限なので400行程度ですんだのは助かりましたが・・・
 
 しかし、Media Foundation APIってMP3とかWMAの圧縮をすると5分ぐらいのWAVも一瞬で変換終わってる気がするんですが、こんなに高速でしたっけ・・・Ryzen 5 9600Xの力でしょうか。

・ヘルプファイルを削除しました。もうOS側でHLPファイルが排除されちゃってるので、付けておいても意味ないので。そこからchmファイルを作り直すのは面倒なので、代わりにヘルプファイルの元のRTFファイルをベースにPDFファイルにしました(一番楽だったので)。
 表示をいろいろ変えてるので、新しい画面をキャプチャして差し替えてます。Windows11向けの注意書きなども記載してます。

CD-ROMドライブが全く存在していなくても起動できるようにしました。起動後に後付けでドライブを付けても大丈夫になりました(昨今はドライブを普段付けないパターンも多いと思いますので対応)。エンコードのみの目的でも起動可能になってます(そのために使う人はいないとは思いますが)

・スプラッシュウィンドウの表示を完全に削除し、Aboutウィンドウにあるグラフィックをアイコンファイルに差し替えました。WebページのURLなどが変わったので、グラフィックを直すのが面倒なのと、PCの性能が向上してスプラッシュウィンドウを出す必要がなくなったと判断しました。

メッセージはリソース文字列から固定文字列に変更し、一部に残っていたリソース切り替えの処理も削除しました(多言語対応の完全削除:Delphi12.1のコミュニティエディションは多言語対応がないようなので、対応不能というのが大きな理由)

・CDDBがなんかもう完全にサービス止まってました(時の流れを感じます・・・)。いまは有志の方が日本語向けのをサービスしているらしいので、動くようにしておきました(なんか3.xxだとたぶん最初にリクエストする部分でCR/LFを分割してるのが悪いっぽくてうまくアクセスできないです)。もうデフォルトはこのサーバーを指すようにしてます(freedbtest.dyndns.org)
 ただ、データの新規登録が正しくできるかはわからないので、いまのところは登録機能は塞いでます。 今回は上記のように文字コード周りが完全に変わっているので、まともに動くか保証はできないので
 (変な登録しちゃうとサーバー運営する人に迷惑かけてしまうので・・ 
 ちなみにコンパイラー変更でUnicodeに中途半端に対応になったおかげでかなり影響受けてて、ビルドが通った直後はCDDB周りもかなりバグが発生してました。そのために、まずは禁止状態にしてます。
 
 受信データもUTF-8からUnicodeにしたあと、3.xxでは最終的にShift-JISに変換していたのを、Unicodeにしたままで内部処理していますので、以前と違ってShiftJISにない文字での文字化けが解消されているはずです。
 
 以前のバージョンでも同様ですが cd2wav32n.iniの設定ファイルの[CDDB]のセクションにEnableLog=Yes を記述しておけば、ソフトのあるカレントフォルダにCD2WAV32.Logという通信ログを吐きますので、CDDBでなんかおかしいときはログと一緒に連絡ください。なおログは通常はUTF-8のテキストなのでUTF-8が読めるテキストエディタならそのまま読めます(cddbのサーバーがUTF-8をサポートしていれば。通常はサポートしているはずなので、Protocol Level 6でアクセスしてます)
 海外のソフトだと、日本語のデータを登録してしまうと、エンコーディングをミスして文字化けして登録されてしまってる場合があるので、ログの段階で化けてると登録データ自体に問題があるパターンです(通信ログは送受信したデータをそのまま記録していますので、このログの段階でおかしいとアウトです)

・CDDBのフォームに入っていたローカルDB関連の機能は削除しました。Windows95/98でしか使えないものでしたので。

・インストールは以前と同様に適当なフォルダにソフトを解凍するだけです。設定は全部cd2wav32n.iniに書き出したり読み出したりするだけなので、ファイルを削除すればアンインストール完了です。


Unicodeベースになったことで、何か色々問題が出ると思うので、もし何かあればこちらの記事にコメントしていただけたら基本は対応します。

配布条件は従来通りです。基本は自由に転載してかまいませんが、配布時にはオリジナルのZIPアーカイブを修正するようなことはしないでください。詳細な条件はPDFを参照ください。

ZIPファイルとEXEファイルのSHA1ハッシュをサイトに載せておきますので、真贋判定に使ってください。リリース前にはWindows11のDefenderのウイルスチェックでひっかからないことを確認しています。

ZIPファイルには、タイトルヘッダのテキストファイルとPDFとソフト本体の3ファイルのみが含まれます。それ以外が含まれていたら怪しいブツなので捨ててください:)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です