XRNI library organiser in rnsutils (as well as comments, tags, reencod

Hi,

I’ve expanded the features in my rnsutils ( https://gitlab.com/zeograd/rnsutils ) python application set to include support for comments, tags and xrni organisation based on tags.

I’ve reused principles found in “instrument info” tool from danoise ( https://forum.renoise.com/t/new-tool-3-0-instrument-info/42687 ) to have xrnicomment and xrnitag command line tools to read, change, remove comments and tags on xrni files.

Then, until Renoise receives support for natively lookup instruments via tags, there is a xrniorganise tool which parses one or more xrni file, and create symlinks in a destination directory to have another view at your xrni collection.

Here is an example session (pasted from the documentation) :

# initially, we have some untagged, unsorted xrni files

$ find unsorted_xrni/ sorted_xrni/

unsorted_xrni/
unsorted_xrni/0_Arco Strings.xrni
unsorted_xrni/6_Zip.xrni
unsorted_xrni/0_Flute.xrni
unsorted_xrni/8_Oboe.xrni

sorted_xrni/

# we tag them with xrnitag CLI (or "instrument info" tool)

$ xrnitag -a orchestral unsorted_xrni/0_Arco\ Strings.xrni unsorted_xrni/0_Flute.xrni unsorted_xrni/8_Oboe.xrni
$ xrnitag -a sfx unsorted_xrni/6_Zip.xrni
$ xrnitag -a woodwind unsorted_xrni/0_Flute.xrni unsorted_xrni/8_Oboe.xrni
$ xrnitag -a loop unsorted_xrni/6_Zip.xrni unsorted_xrni/8_Oboe.xrni unsorted_xrni/0_Arco\ Strings.xrni

# them, we create a library view based on those tags

$ xrniorganise -o sorted_xrni/ unsorted_xrni/*

# now, you can see links to actual instruments based on their tags

$ find unsorted_xrni/ sorted_xrni/

unsorted_xrni/
unsorted_xrni/0_Arco Strings.xrni
unsorted_xrni/6_Zip.xrni
unsorted_xrni/0_Flute.xrni
unsorted_xrni/8_Oboe.xrni

sorted_xrni/
sorted_xrni/woodwind
sorted_xrni/woodwind/0_Flute.xrni
sorted_xrni/woodwind/8_Oboe.xrni
sorted_xrni/loop
sorted_xrni/loop/0_Arco Strings.xrni
sorted_xrni/loop/6_Zip.xrni
sorted_xrni/loop/8_Oboe.xrni
sorted_xrni/sfx
sorted_xrni/sfx/6_Zip.xrni
sorted_xrni/orchestral
sorted_xrni/orchestral/0_Arco Strings.xrni
sorted_xrni/orchestral/0_Flute.xrni
sorted_xrni/orchestral/8_Oboe.xrni

I hope you’ll find it as useful as I do (I’m trying to prepare another set of orchestral xrni but I need to sort out those which are good enough and licensed in a way allowing redistribution)

Lastly, I’ve also added a xrnireencode tool to reencode samples inside xrni to flac or ogg, but it overlaps with the existing php scripts for renoise as far as I can tell. It was more for completion as I needed flac and ogg encoding in the sf2 -> xrni and sfz -> xrni converters (also included in rnsutils).

My use case probably doesn’t cover everything, so I’m looking for feedback about those little tools.

Thanks in advance,

Olivier

PS: you can install rnsutils using

pip install --upgrade rnsutils