0

我正在阅读 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:如果您不知道,也许您知道开发人员可以发送电子邮件到的电子邮件地址,我找不到。

4

1 回答 1

0

我收到了官方开发者支持(development@proppellerheads.se)的答复。他们告诉我,我显然使用了过时的文件格式规范,但是我最近才从他们的服务器上下载了它。他们告诉我他们会解决这个问题并提供最新的文档。

在原因 4 中,新数据被添加到这个块中。如果Version等于或晚于(1, 3, 0),则附加 4 个值,如果不是,则到达块的末尾。

  • 物理样本名称(字符串)
  • 样本的相对路径(Relative Path)
  • 样本的相对路径(数据库路径)
  • 样本的相对路径(绝对路径)
于 2012-02-18T22:21:16.513 回答