[solved] XRNI specification - How to uniquely identify a sample?

Hi there,

I’m looking into adding Renoise/XRNI support to ConvertWithMoss.
Looking at the XML document of a Renoise instrument, I’m a bit puzzled though. It looks like there are two tags than can be used to identify the sample file (in the archive): Name and FileName. Neither contains the actual name in the archive though. FileName corresponds to the path of the source of the file. This is an absolute path and basically only useful on the host of the original author of the instrument.
The Name only contains the basename of the source file but since the files in the archive are prefixed with “Sample XY(basename).Z”, it does not uniquely identify a sample in some cases. So matching any filename that contains “basename” can result in multiple matches.

If the instrument author used two samples with the same basename (that is possible), how does Renoise/Redux (or any interpreter of the instrument file) uniquely identify the sample in the XRNI? Is there another tag/attribute/method I should use? Are the sample tags interpreted in order as they appear in the XML, e.g. first Sample tag corresponds to SampleData/Sample00, second to SampleData/Sample01? In which case the tags above would become almost meaningless.

Sorry if I posted to the wrong corner of the forum.

Going out on a limb, quickly looking I think that might be how it is encoded. Not an expert though.

[I’ve seen Renoise put its temporary path of the sample in the FileName tag…Which can be even more meaningless :slight_smile: ]

They are resolved by index only, which is specified by the instrument’s and sample’s file name postfix in the archive:

In the archive SampleData/InstrumentXX (SomeTitle)/SampleYY (SomeTitle).flac is the Ys sample in the Xs instrument, where X and Y are numbers >= 0. The (SomeTitle) part is completely ignored and only there to ease browsing the contents manually.

1 Like

Thank you both for chiming in. I think this covers my question.