watsonbox / exportify

Export/Backup Spotify playlists using the Web API
https://exportify.app/
MIT License
3.17k stars 436 forks source link

Camelot Key Calculation #186

Open kasper77pl opened 1 month ago

kasper77pl commented 1 month ago

First of all - Thanks for the app. It's great !

I've got some idea for the feature. Is it possible to add additional "Camelot Key" column for all exports which will be calculated using (Key,Mode) column based on below pattern?

camelotWheel(0, 0) = "8B": camelotWheel(0, 1) = "5A" ' C Major -> 8B, C Minor -> 5A camelotWheel(1, 0) = "3B": camelotWheel(1, 1) = "12A" ' C#/Db Major -> 3B, C#/Db Minor -> 12A camelotWheel(2, 0) = "10B": camelotWheel(2, 1) = "7A" ' D Major -> 10B, D Minor -> 7A camelotWheel(3, 0) = "5B": camelotWheel(3, 1) = "2A" ' D#/Eb Major -> 5B, D#/Eb Minor -> 2A camelotWheel(4, 0) = "12B": camelotWheel(4, 1) = "9A" ' E Major -> 12B, E Minor -> 9A camelotWheel(5, 0) = "7B": camelotWheel(5, 1) = "4A" ' F Major -> 7B, F Minor -> 4A camelotWheel(6, 0) = "2B": camelotWheel(6, 1) = "11A" ' F#/Gb Major -> 2B, F#/Gb Minor -> 11A camelotWheel(7, 0) = "9B": camelotWheel(7, 1) = "6A" ' G Major -> 9B, G Minor -> 6A camelotWheel(8, 0) = "4B": camelotWheel(8, 1) = "1A" ' G#/Ab Major -> 4B, G#/Ab Minor -> 1A camelotWheel(9, 0) = "11B": camelotWheel(9, 1) = "8A" ' A Major -> 11B, A Minor -> 8A camelotWheel(10, 0) = "6B": camelotWheel(10, 1) = "3A" ' A#/Bb Major -> 6B, A#/Bb Minor -> 3A camelotWheel(11, 0) = "1B": camelotWheel(11, 1) = "10A" ' B Major -> 1B, B Minor -> 10A

Documentation for (Key,Mode) below: https://developer.spotify.com/documentation/web-api/reference/get-audio-features

Sure, it can be done manually after each export, but all DJs will be grateful because they could use exports to import to any dj's program very easily, without additional math ;)

Thanks in advance & best regards !