Kodi Community Forum
Release CU LRC Lyrics - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Add-on Support (https://forum.kodi.tv/forumdisplay.php?fid=27)
+---- Forum: Lyrics Add-ons (https://forum.kodi.tv/forumdisplay.php?fid=146)
+---- Thread: Release CU LRC Lyrics (/showthread.php?tid=147340)



RE: CU LRC Lyrics - Elias Alves - 2016-09-28

Is something related to python version ? My goal is to get lyrics this funny way :

https://vimeo.com/178077249


RE: CU LRC Lyrics - manfeed - 2016-09-28

(2016-09-28, 01:34)Elias Alves Wrote: Is something related to python version ? My goal is to get lyrics this funny way :

CU LRC Lyrics script is needed to provide the lyrics but that effect is coded in the skin... I'm still working on it... now it's getting much better than in the video...Wink

Stay tuned...


RE: CU LRC Lyrics - manfeed - 2016-10-01

Well, I think it's time to share what I got until now...



...tomorrow the bad news...


RE: CU LRC Lyrics - ronie - 2016-10-01

simply amazing! :-)


RE: CU LRC Lyrics - bry - 2016-10-01

Uh. Thats pretty damn sweet. @manfeed. Awesome. It reminds me of typography videos on YouTube.


RE: CU LRC Lyrics - Elias Alves - 2016-10-01

It is a pitty it doesnt work with kodi jarvis / skin aeon mq7 (Ubuntu linux 16.04 x64 ) .Got an error xbmc.python versão 2.25.0 could not be satisfied .


RE: CU LRC Lyrics - manfeed - 2016-10-01

Thanks!... I've spent more time on this project than I dare to admit Laugh finally I got it working (I'm of the stubborn kind) but I know the method I'm using is not the right one and I need some help. I knew beforehand that what I wanted to get was not possible with kodi alone, I would need a python addon, so I tried to learn at least a bit. The method that I'm using is putting a button inside the focusedlayout, then an onfocus condition makes a call to an addon that breaks the line of the lyric into 4 parts: first word - second word - third word - rest of the line. The code that I'm using is like this:

Code:
        pal2 = xbmc.getInfoLabel("Container(110).ListItem.Label").translate(None, "\,;./")
        palas = pal2 + " _ _ _"
        palas = palas.split(' ',3)
        pala1 = palas[0].rstrip(' _')
        pala2 = palas[1].rstrip(' _')
        pala3 = palas[2].rstrip(' _')
        pala4 = palas[3].rstrip(' _')
        para21 = '21_line'
        para22 = '22_line'
        para23 = '23_line'
        para24 = '24_line'
        xbmc.executebuiltin("SetProperty(%s,%s)" %(para21,pala1))
        xbmc.executebuiltin("SetProperty(%s,%s)" %(para22,pala2))
        xbmc.executebuiltin("SetProperty(%s,%s)" %(para23,pala3))
        xbmc.executebuiltin("SetProperty(%s,%s)" %(para24,pala4))

With this I get to have the four parts in four windows properties that then I use to show each line with animations like in the video. I have tried several variations of this approach but it doesn't work completely well.

I think a better solution would be to break all lines at once and put them in a container. To have something like Container(110).ListItem.Label1; Container(110).ListItem.Label2; Container(110).ListItem.Label3; Container(110).ListItem.Label4 directly from CU LRC Lyrics script would be great, that way other skinners could use them too, but if not possible then maybe someone could tell me another way?

Thanks!


RE: CU LRC Lyrics - ronie - 2016-10-01

(2016-10-01, 22:30)manfeed Wrote: With this I get to have the four parts in four windows properties that then I use to show each line with animations like in the video. I have tried several variations of this approach but it doesn't work completely well.
what issues are you running into?

(2016-10-01, 22:30)manfeed Wrote: I think a better solution would be to break all lines at once and put them in a container. To have something like Container(110).ListItem.Label1; Container(110).ListItem.Label2; Container(110).ListItem.Label3; Container(110).ListItem.Label4 directly from CU LRC Lyrics script would be great, that way other skinners could use them too, but if not possible then maybe someone could tell me another way?

i assume you mean Container(110).ListItem.Property(Part1) ... Container(110).ListItem.Property(Part4) ?
there's no such thing as ListItem.Label3 and ListItem.Label4 in kodi ;-)


RE: CU LRC Lyrics - manfeed - 2016-10-02

(2016-10-01, 22:44)ronie Wrote: what issues are you running into?

I work with a set of 10 different effects, triggered by visibility conditions with SubString(Container(110).Currentitem,x,Right) where x stands for 1,2,3,4...0. If the Python script is called with every change of lyrics lane then some tenths of second are lost before the splitting is ready and the animations can't keep pace... Then I thought of only calling the script in odd lines and take advantage to calculate some lines in advance... this somehow worked better but has other unwanted side effects, for instance with manual lyrics and at the start of the songs...

(2016-10-01, 22:44)ronie Wrote: i assume you mean Container(110).ListItem.Property(Part1) ... Container(110).ListItem.Property(Part4) ?
there's no such thing as ListItem.Label3 and ListItem.Label4 in kodi ;-)

Anything would make do... I was only making a suggestion that I thought of, but there are many things of kodi that I still don't know... you know better... Wink

Thanks!


RE: CU LRC Lyrics - ronie - 2016-10-02

please test the current version in my repo.
it adds:
  • Container(110).ListItem.Property(part1)
  • Container(110).ListItem.Property(part2)
  • Container(110).ListItem.Property(part3)
  • Container(110).ListItem.Property(part4)



RE: CU LRC Lyrics - manfeed - 2016-10-02

(2016-10-02, 02:37)ronie Wrote: please test the current version in my repo.
it adds:
  • Container(110).ListItem.Property(part1)
  • Container(110).ListItem.Property(part2)
  • Container(110).ListItem.Property(part3)
  • Container(110).ListItem.Property(part4)

Thanks ronie, you made my dreams come true!
It works fine, only a minor issue, actually the script doesn't return...

[*]Container(110).ListItem.Property(part1)
[*]Container(110).ListItem.Property(part2)
[*]Container(110).ListItem.Property(part3)
[*]Container(110).ListItem.Property(part4)

...but...

[*]Container(110).ListItem.Property(part0)
[*]Container(110).ListItem.Property(part1)
[*]Container(110).ListItem.Property(part2)
[*]Container(110).ListItem.Property(part3)

...only a matter of correcting the readme.txt.

Thanks again, now I can concentrate in the artistic part...Wink


RE: CU LRC Lyrics - ronie - 2016-10-02

great thanx for the headsup!
i'll change the script to return part1-4 ;-)


edit: done.


RE: CU LRC Lyrics - manfeed - 2016-10-03

Hi ronie! Your last changes work exceedingly well, I can't thank you enough...

I've been playing a lot of songs and have come to realize that there's one thing that could come in handy to improve the looks (I'm of the perfectionist kind, you know...). Let's say one animation takes 1000 ms to complete, that's fine with many lines, but now and then there are lines that are shown for a shorter time; in those cases you end up losing some of the words. I was wondering if it would be possible to have an additional property, let's say ListItem.Property(duration) or something similar; that would provide the time (in miliseconds) that line is going to be shown; that way an alternative shorter animation could be triggered with a visibility condition based on !IntegerGreaterThan...

Sorry if I'm asking for too much, maybe it's not possible to get that, I would understand it perfectly. Thanks anyway, you have already done much more that I hoped for...

Thanks!


RE: CU LRC Lyrics - ronie - 2016-10-03

i thinks that's already available:
https://github.com/ronie/script.cu.lrclyrics/blob/master/resources/lib/gui.py#L446

not sure if the format is is seconds or milliseconds... mind checking?


RE: CU LRC Lyrics - manfeed - 2016-10-03

I guess you mean Container(110).ListItem.Property(time), isn'it?

In my tests that property returns the time in the song that line must be shown (in seconds) (60.47, 63.88, 65.27, 69,14...) so it's not what I was thinking of. I would need a property that would subtract the time of the next line from the current one and return it in ms. It would be something like: Current line - 60.47 / Next line - 63.88. Property duration = (63.88 - 60,47) * 1000 = 3410 ms. Or maybe (as always) you know a better way to achieve that ;-)

Thanks for your interest!