Improve Wave / Aiff Sample Loading

note: edited after the comment from Jonas below and also after some further investigation

As you may or may not be aware, I have been working on a Tool which would enable Renoise to use 3rd-party sampler library patches.

The most common (and modern) formats are just small files which explain the midi mapping and modulation of the samples, while the samples themselves are stored in seperate wav or aiff files.

I have implemented two different instrument formats to varying amounts of success (Akai S5000/S6000 and Logic EXS).

These load the samples through the .sample_buffer:load_from() function in the API. This appears to call the Renoise code sample loading functions, which is very helpful for my tool.

However, I have noticed shortcomings with the Renoise sample loader.

The sample loader does not parse some of the information chunks in the files. For example, many samplers store the loop points and base note of the sample inside the sample file itself. This applies to both Akai samplers and soft samplers such as EXS24.

While the 1st point above is annoying as it means some EXS patches cannot be loaded, the 2nd point has effectively stopped development of the FileFormats tool.

The development version of the tool can read (perfectly) Akai S5000/S6000 patches and fully understand all the midi maps etc, but with no loop points or base notes (which are stored in the samples) this functionality is not very useful.

Can improvements in the area of sample loading (with reference to the above) please be considered for a future version of Renoise?



The Renoise sample handler will automatically read the loop points if the sample is loaded from the GUI, but not from the Lua API. Therefore I think this is actually a bug rather than a feature request.

The base note extraction is still stands as a feature request.

Using the wav file format specifications (I used this one) I have created a small Lua file to handle the loop points (start/end/type) and base note extraction.

Everyone feel free to use this code in your own tools if you require until a permanent fix is available.


Maybe you need to disable ‘ignore loop points’ in the preferences / files / wav import settings?