cdrani / chorus

Enhance Spotify with controls to save favourite snips, auto-skip tracks, set global & custom speed/pitch, and equalizer! More to come!
https://chrome.google.com/webstore/detail/chorus-spotify-enhancer/jfnjmnapkhdbaidedlbdcmhiphfjljcd
MIT License
11 stars 6 forks source link

Dedicated snip looping button + allow looping when Chorus menu is open #193

Closed JoelHobson closed 10 months ago

JoelHobson commented 11 months ago

Is your feature request related to a problem? Please describe.

Being able to loop a section is a killer feature for me, but as a new user it took some effort to figure out how to activate it. My assumption on installing the extension was that there would be a button in the menu to loop a snippet, so I was confused as to how to activate it since there weren't explicit instructions in the readme. From looking at the code, I could see the #isLooping method in song-tracker.js, so I copied the body of it and ran it from the browser console. What surprised me was that it only returns true when the main Spotify repeat button is set to repeat the song. Even when I did that, looping still didn't work. I was about to file a bug report until I tried closing the Chorus menu, which I had left open, and then it worked. I didn't see any documentation about this in the readme, so it's conceivable that anyone who doesn't go the extra distance to figure it out would assume the extension doesn't work correctly.

Describe the solution you'd like A couple of things: I'd like a button in the chorus menu that would activate looping mode (and possibly to have looping auto-activate when creating a snippet). I think there are two big advantages to this: It would make it clearer to new users how to use the feature without them having to invest the time to understand how it works, and it would decouple the looping functionality from Spotify's interface, so that the feature won't break if they ever change the interface (or the aria-label or testid attributes). I'd also like it if looping worked while the Chorus menu was open. I had no expectation that it would be necessary to close it in order to loop a snippet. Others might not either, and that could result in less popularity than this extension deserves.

Describe alternatives you've considered A note could be added to the readme to explain how to activate looping. I don't think this is ideal since it requires the user to read the docs first and not everyone will, but it might work as a stopgap if this feature is labour intensive.

As a side-note, I've wanted the features Chorus provides built into Spotify for a long time now and was about to start writing my own solution before I thought I should check if anyone else had built something first. Thank you, you're amazing for building this. As an amateur musician, my main interest is using it to learn songs. I don't know if that was the main purpose you had in mind with it, but I think that's a group that would be very interested in this extension.

cdrani commented 11 months ago

Thanks for raising this up @JoelHobson . It shines a light on how others could potentially be utilizing this tool.

What surprised me was that it only returns true when the main Spotify repeat button is set to repeat the song. Even when I did that, looping still didn't work. I was about to file a bug report until I tried closing the Chorus menu, which I had left open, and then it worked.

The intent for the looping and snippets in general is to keep it Spotify controlled for the most part. In my use case, a snip is the only section of a track I want to hear (verse, chorus, etc) before transitioning to the next track. This is my preferred action as this will be how I want to listen to the track forever. On a few tracks, or perhaps in a melancholy state, I might decide to loop the section, but generally that's after I have already created the snip - not usually during.

This is a new use case (for me), but I can add a checkbox to have the snip auto-loop from the menu. However, I will likely keep the Spotify Interface dictating the looping functionality as the secondary option as looping could also be a spur of the moment thing.

I had no expectation that it would be necessary to close it in order to loop a snippet. Others might not either, and that could result in less popularity than this extension deserves.

The above solution will fix this. Here's some context, though. While the menu is open, it's in an 'editing' mode, and in this state if a user is setting/updating a snip (while the track is playing), there's the possibility that track will have reached the snip endpoint and transition to the next track prior to user saving the snip. I don't expect the user to pause the track while setting/updating a snip. I have a solution for this in mind as well.

As a side-note, I've wanted the features Chorus provides built into Spotify for a long time now and was about to start writing my own solution before I thought I should check if anyone else had built something first. Thank you, you're amazing for building this. As an amateur musician, my main interest is using it to learn songs. I don't know if that was the main purpose you had in mind with it, but I think that's a group that would be very interested in this extension.

Thanks for the kind words, and you are most welcome. Glad this tool reached those looking for it. I've had this project in mind since ~2016, but only this year did I decide to pick it up. It's for music lovers in general - I just want a product I pay for to be the best it could be.