python - Propellerheads 的 NN-XT 文件格式 : Problems with REFE chunk

标签 python c file-format chunks

我正在阅读 Propellerheads 的 NN-XT 文件格式,但我在使用 REFE block 时遇到问题。 NN-XT 规范指出, block 的结构如下:

<小时/>

There is a REFE chunk for every sample referenced by the NN-XT patch. (If a patch has no samples it does not have any REFE chunks.)

  • block 名称
  • block 大小
  • 版本
  • 样本的相对路径
  • 示例的数据库路径
  • 样本的绝对路径
  • 示例名称
  • 重新填写姓名
  • 重新填写网址
  • 保留(检查点)
  • 包名称

The Refill Name is the name of the ReFill as it appears in the Reason Browser, not the file name. A Package is a ReFill, a REX file or a SoundFont file. If the REX or SoundFont file is inside a ReFill, the Package Name should contain the name of the REX or SoundFont file.

<小时/>

读取这个 block 确实运行良好,但是在读取包名称之后,仍然有属于这个 block 的字节(我知道这一点是因为这个 block 出现多次,下一个“REFE”距离文件中的当前位置大约 378 个字节[当然在这种特殊情况下])。

文档没有提及最终跟随的字节等。您知道这些附加字节可能是什么吗?

我正在使用 Python 处理 NN-XT 文件。以下是上述 block 结构的示例输出。

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 block 开始。

我认为我不被允许分发该规范,但如果您确实感兴趣,您可以在simple registration之后下载它。在 Propellerheads 的主页上。

非常非常感谢, 尼克拉斯·R

PS:如果您不知道,也许您知道开发者可以向其发送电子邮件的电子邮件地址,但我找不到。

最佳答案

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

在原因 4 中,新数据被添加到该 block 中。如果版本等于或晚于(1, 3, 0),则后面跟着另外4个值,如果不是,则已到达 block 的末尾。

  • 物理样本名称(字符串)
  • 样本的相对路径(相对路径)
  • 样本的相对路径(数据库路径)
  • 样本的相对路径(绝对路径)

关于python - Propellerheads 的 NN-XT 文件格式 : Problems with REFE chunk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9218208/

相关文章:

javascript - MySQL 数据库中上传文件夹的 Multer 文件地址格式不正确

python - PyCharm noinspection 对整个文件?

python - 使用 pandas 将日期列转换为标准格式

c - `execl` 是否需要 NULL 作为最后一个参数?

c++ - 标准头文件中的错误

windows - 如何创建容器文件?

python - 对于具有一列键和一列值的 Pandas 数据框,制作另一列字典

python - tempfile 模块的使用

c - 在 printf 函数中使用增量运算符 (++) 时出现奇怪的结果

python - PNG block 类型代码位 #5