Jugran / lyrics-in-terminal

Python curses application to view lyrics of current playing song in terminal.
MIT License
241 stars 19 forks source link

Add time sync for lyrics. #29

Open sophronesis opened 1 year ago

sophronesis commented 1 year ago

It is possible to get track length and current position of track from mpris/dbus and this can be used to highlight current position in lyrics. Would be really interesting to see something like this implemented.

M1ndo commented 1 year ago

@sophronesis i'm sure you came from "ncspot" for not adding lyrics options. Altho this requests is possible,Timing position can be inconsistent and requires some work. I'll try to implement this, whenever i get some free time.

iconoclasthero commented 1 month ago

Should be able to integrate this with mpd using the mpd idle feature and mpd's unix socket.

eadmaster commented 1 month ago

i've made a similar script recently.

demo

iconoclasthero commented 1 month ago

i've made a similar script recently.

demo

Really cool. ChatGPT says that it doesn't natively support mpd via the dbus interface?

So, bottom line this for me. I'm listening to

  Playing: Sugaree - Gov't Mule with Bob Weir
           2007-06-16: Bonnaroo Music Festival, Manchester, TN
           05-new.music/Gov't Mule -- 2007-06-16: Bonnaroo Music Festival, Manchester, TN (2007)/
           01-05 - Gov't Mule with Bob Weir -- Sugaree.mp

I mean, objectively this is a pretty interesting track, what with Haynes and Weir at Bonnaroo doing a traditional that the Dead worked over for decades...but I'm not sure that lyrics files are going to exist with timing to match the performance.

How far off is being able to have AI listen and adjust the timing?

eadmaster commented 1 month ago

doesn't natively support mpd via the dbus interface

dbus with mpd is optional.

How far off is being able to have AI listen and adjust the timing?

there are some projects for this, but i still haven't tried any of them:

btw if you have only a few songs to resync, you could simply fix them manually with SubtitleEdit.