dagargo / elektroid

Sample and MIDI device manager
https://dagargo.github.io/elektroid/
GNU General Public License v3.0
213 stars 28 forks source link

Wav file metadata and sample cataloging #134

Open szszoke opened 2 months ago

szszoke commented 2 months ago

I'm wondering if it would make sense for Elektroid to allow reading/writing WAV file metadata and allow tagging of the samples which then could be used for cataloging.

Think of the Loopcloud integration but offline.

dagargo commented 2 months ago

This has been on the table since version 2. In fact, you can use Elektroid as a pure sample manager by hiding the left browser. This was done to get more users traction although I wouldn't say I achieved.

I've previously done some research on tags. In particular, the LIST chunk item used in WAV files. But I haven't gone far as I have little time and no knowledge on this matter. In my mind it should be as simple as adding a text tag with labels but what I've found it's far from simple and unified. (I'm talking from memory.)

If you're interested, we can give it a try together. The first thing to know is which RIFF tag to use; official or not.

By the way, that is what the search button is for too.

szszoke commented 2 months ago

I don't know if there are RIFF tags that are specifically tailored for samples.

This is a list of them that I found: https://exiftool.org/TagNames/RIFF.html#Info

I also don't know if any sample packs would already have some tags populated.

If there is no existing compatibility that could be broken by not using existing tags then I'd say it's better to make up new ones with fitting names.

I also assumed that there is some library that could deal with writing/reading the tags.

dagargo commented 2 months ago

I came across that list at some point but was unable to find anything conclusive about tags and labels and providing the MIDI note extracted from the smpl tag is as far as I got.

https://exiftool.org/TagNames/RIFF.html#Sampler

I also assumed that there is some library that could deal with writing/reading the tags.

This is already provided by libsndfile for WAV files.