Propellerheads の NN-XT ファイル形式を読んでいますが、REFEチャンクに問題があります。NN-XT 仕様によると、チャンクは次のように構成されています。
NN-XT パッチによって参照されるすべてのサンプルに REFE チャンクがあります。(パッチにサンプルがない場合、REFE チャンクはありません。)
- チャンク名
- チャンクサイズ
- バージョン
- サンプルへの相対パス
- サンプルへのデータベース パス
- サンプルへの絶対パス
- サンプル名
- リフィル名
- URL の再入力
- 予約済み (チェックポイント)
- パッケージ名
Refill Name は、ファイル名ではなく、Reason Browser に表示される ReFill の名前です。パッケージは ReFill、REX ファイル、または SoundFont ファイルです。REX またはサウンドフォント ファイルが ReFill 内にある場合、パッケージ名には REX またはサウンドフォント ファイルの名前が含まれている必要があります。
このチャンクの読み取りは正常に実行されますが、パッケージ名が読み取られた後も、このチャンクに属するバイトが残っています (このチャンクが複数回表示され、次の「REFE」が現在の位置から約 378 バイト離れているため、これがわかっています)。 [もちろん、この特定のケースでは]))。
ドキュメントには、最終的に続くバイトなどについては何も記載されていません。これらの追加のバイトが何であるかについてのアイデアはありますか?
Python を使用して NN-XT ファイルを処理しています。以下は、上記のチャンク構造の出力例です。
size: 832
version: NNXTVersion(1, 3, 0)
relative path: NNXTRelativePath(NNXTVersion(1, 1, 0), False)
database path: NNXTDatabasePath(NNXTVersion(1, 2, 0), True, 'Reason Factory Sound Bank')
absolute path: NNXTAbsolutePath(NNXTVersion(1, 4, 0), True, 11, NNXTVolume(, 15), True)
sample name: PianoC23.wav
ReFill name: Reason Factory Sound Bank
ReFill Url: www.propellerheads.se
Project name: Reason Factory Sound Bank
処理できないバイトは次のとおりです (エスケープ、最大行幅: 80):
\x00\x00\x00\x0cPianoC23.wav\xbc\x01\x05\x00\x00\x00\xbc\x01\x05\x00\x00\x01\x00\x00\x00\x19Reason Factory Sound Bank\x00\x00\x00
\x06\x00\x00\x00\x19Reason Factory Sound Bank\x00\x00\x00\x15NN-XT Sampler Patches\x00\x00\x00\x05Piano\x00\x00\x00\rPiano samples
\x00\x00\x00\nGrandPiano\x00\x00\x00\x0cPianoC23.wav\x01\xbc\x01\t\x00\x00\x01\x00\x00\x00\x00\x0f\x00\x00\x00\x0b\x00\x00\x00\x08
Computer\x00\x00\x00\x0cwindows (C:)\x00\x00\x00\x0fProgramme (x86)\x00\x00\x00\rPropellerhead\x00\x00\x00\x06Reason\x00\x00\x00\x
16Factory Sound Bank.rfl\x00\x00\x00\x15NN-XT Sampler Patches\x00\x00\x00\x05Piano\x00\x00\x00\rPiano samples\x00\x00\x00\nGrandPi
ano\x00\x00\x00\x0cPianoC23.wav\x01G\x00\x00\x00\x00\x00
このバイトストリームの後、次のREFEチャンクが始まります。
仕様を配布することは許されないと思いますが、本当に興味がある場合は、Propellerheads のホームページで簡単な登録を行ってからダウンロードできます。
どうもありがとう、ニクラスR
PS: わからない場合は、開発者がメールを送信できるメールアドレスを知っているかもしれませんが、見つけられませんでした。