mihaiolteanu / vuiet

The music player and explorer for Emacs
https://mihaiolteanu.me/vuiet
GNU General Public License v3.0
278 stars 15 forks source link

Feature request: Track looping? #52

Closed LemonBreezes closed 3 years ago

LemonBreezes commented 3 years ago

Often times when I play a single track, I like to loop the song. It would be nice if there were a variable that made tracks auto-loop. :)

mihaiolteanu commented 3 years ago

Rather like a command, I would guess. It could happen that you're listening a whole album, or random tracks or something similar. And you find a song that you want to play over and over again. Would that be a reasonable scenario? Would vuiet-replay not be enough? (yes, you need to call it every-time, but at least it replays the same track).

I haven't had that urge, to be honest. So, we'll see. :)

LemonBreezes commented 3 years ago

A command would be alright too. The problem with vuiet-replay is that I often get really focused on my work so when the song ends I work in silence, fearing that if I replay the song I will lose that fleeting thesis solution.

Wow, I can't believe this entire time I have only been playing single tracks. :laughing:

mihaiolteanu commented 3 years ago

:)) You really need to read the complete functionality, then, https://github.com/mihaiolteanu/vuiet#complete-functionality

There are some nice bits in there.

mihaiolteanu commented 3 years ago

@firmart what do you think?

firmart commented 3 years ago

Maybe we can bring here some ideas of ncmpcpp. It has some key bindings among other allowing to toggle

By combining them, one can loop a track or a whole playlist. Precisely,

It would not be too hard to implement this feature. My only concern is that I don't know how to detect elegantly the event "playback of the current track has ended" to thus be able to decide the next track to play.

mihaiolteanu commented 3 years ago

True, figuring out when a track has ended is a bit of a challenge. I'm currently using the file-loaded event from mpv to figure out when the next track has started playing (which would mean the previous one has just ended), and start preloading the next track, and so on and so forth. But I guess you're already familiar with that.

Maybe there are some other events in there that I haven't tried, https://mpv.io/manual/master/#list-of-events

mihaiolteanu commented 3 years ago

No go due to the added complexity for little gain.