我正在阅读 Propellerheads 的 NN-XT 文件格式,但我遇到了REFE块的问题。NN-XT 规范说,块的结构如下:
NN-XT 补丁引用的每个样本都有一个 REFE 块。(如果补丁没有样本,则它没有任何 REFE 块。)
- 块名称
- 块大小
- 版本
- 样本的相对路径
- 样本的数据库路径
- 采样的绝对路径
- 样品名称
- 重新填写名称
- 重新填写网址
- 保留(检查点)
- 包裹名字
Refill Name 是 ReFill 在原因浏览器中显示的名称,而不是文件名。包是 ReFill、REX 文件或 SoundFont 文件。如果 REX 或 SoundFont 文件位于 ReFill 中,则包名称应包含 REX 或 SoundFont 文件的名称。
读取这个块确实运行良好,但是在读取包名称之后,仍然有属于这个块的字节(我知道这是因为这个块出现多次,下一个“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:如果您不知道,也许您知道开发人员可以发送电子邮件到的电子邮件地址,我找不到。