Add support for storing highlevel data from AcousticBrainz

Issue #107 resolved
IJabz repo owner created an issue

Want to define somewhere to store AcousticBrainz high level data for example I would like to store tonality, which can be tonal or atonal and has a probability. Will store as a percentage [0-100] value so for tonality a value greater than 50 would be more likely to be tonal and less than 50 would be atonal. Stored as integral only so can be useful for end users, calculations are not accurate enough anyway to warrant the extra complication dealing with floating points

So I propose we use: ID3: TXXX:Tonality

VorbisComment: TONALITY

Mp4 ----:com.apple.iTunes:TONALITY

WMA WM/Tonalility

For some values need to prefix with mood so clearer what is, so for ID3 would have

TXXX:MoodAggressive TXXX:MoodRelaxed TXXX:MoodSad TXXX:MoodHappy TXXX:MoodParty TXXX:MoodDanceability

and then the more obvious

TXXX:Instrumental TXXX:Acoustic TXXX:Electronic TXXX:Timbre TXXX:Tonaility

(use same pattern as above for converting to other formats)

Comments (5)

  1. alastairp

    Cool idea. Are I wonder if it's worth prefixing these with an AcousticBrainz identifier so that you could add the same values from other services if (when?) they exist.

    Do you have an idea how you could represent fields that have multiple values? e.g. something like genre could be 60% rock, 20% pop 20% jazz.

  2. IJabz reporter

    I think the problem with having separate identifiers per provider is that then you if you have PROVIDER1_MOOD_HAPPY, PROVIDER2_MOOD_HAPPY etc you'll never get any support for these tags in other apps whereas if you just have MOOD_HAPPY you might, and it doesn't fit it with the existing way things work, all fields be it Bpm or Artist could be filled in from different sources be we only have one BPM field.

    The existing Genre field (TCON for ID3) can hold multiple genres, but if you want to store the values as well I think you are best to keep as separate fields, if we talking about the different genre classicifications here Dortmond, Rosameric they should just be stored separately such as TXXX:GENRE_DORTMOND with value Electronic or Electronic:22 if we need to keep the value.

  3. IJabz reporter

    Going to change TImbre to TimbreBrightness as not not clear with just TImbre what measure of timbre is being done here and what a high/low value means, I assume it is the proportion of highfrequency notes, higherfrequency relating to brightness (rather than darkness)

  4. Log in to comment