zachwinter / kaleidosync

A WebGL Spotify visualizer made with Vue, D3, and Three.js.
https://www.kaleidosync.com
807 stars 61 forks source link

Support more beat interval types #91

Open mklein994 opened 1 year ago

mklein994 commented 1 year ago

First off, thank you for writing this so clean. It was a joy to poke around and explore how everything worked. It took some effort to swap out the proprietary components for the free ones, but in the end, I got it.[^1]

I managed to get it running locally, using my own Spotify API keys and so on (including swapping out FontAwesome for the free versions, so that it could compile). As I was tweaking the parameters around a bit, I discovered that when the music is less rhythmic (i.e. rubato), using the sections or segments beat intervals sometimes gave the visualization a bit more "life" (i.e. "awareness"). The beats and (to a lesser degree) tatums intervals don't quite fit when the song doesn't have a definite beat to begin with. Just a thought. Perhaps instead of toggling back and forth with b, it could cycle through them?

TL;DR:

-const beatInterval = setting('beatInterval', 'beats', types.enum(['beats', 'tatums']));
+const beatInterval = setting('beatInterval', 'beats', types.enum(['bars', 'beats', 'sections', 'segments', 'tatums']));

https://github.com/zachwinter/kaleidosync/blob/7256614d3f8002854ff128f334c4c9c7dfec2819/src/store/modules/player.js#L13 (amongst other changes)

[^1]: Speaking of which, what's the license for this project? I looked, but couldn't find one. It appears the @zach.winter/vue-common library is under MIT; would this possibly be using that as well?