Intone and lyrics with album art;)

Laszlo KREKACS laszlo.krekacs.list at gmail.com
Wed Sep 2 12:12:16 CEST 2009


On Wed, Sep 2, 2009 at 11:53 AM, Laszlo
KREKACS<laszlo.krekacs.list at gmail.com> wrote:
> I have many problems with your lyrics implementation (minor issues mostly),
> I will write in the lyrics thread, as I have started it.

Doh, my mistake. This is the lyrics thread....

Ok, current problems with lyrics implementation:
1. It seems you always brute force load the lyrics text to a
elementary.Entry (textbox)
widget. And it is SLOOOW. Especially when changing tracks.

proposed solution:
have two elementary.Entry widget, and load the next text of lyrics to the other
Entry, which is hided. When changing track, you simple hide the current Entry,
and show the other. In the background you reload the text into the hided Entry.

Most of the time the next track can be determined easily.

2. Entry does not wrap lines. (I already written about it)

3. Entry does not scroll at the beginning when it loads a new entry text.
Its rather confusing. So when the track changes and a new musics gets played
i see on the display the same part of text just from the new lyrics
(ie. from line 30-40)

There should be an entry scrolling function, If you have difficulty to find it,
just signal, and I try to digg it more.

4. The scrollbar is disabled. Would be nice to see visually where Im
in the lyrics.

Again, if you dont find it, I can search for you, I know paroli
disable/enable it, just
Mirko wrote it not me. I can digg it more if required.

5. Disable horizontal scrolling. (so no padding freely the text)

It is doable, paroli do it too. In msgs app, Im sure. (again Mirko
wrote it, so I
need to find it in the code). If you dont find me, just signal, and I
look it up.

6. Although not only lyrics related, but it seems, when I change back
to the list view, you regenerate the elementary.List. So there is glitch.
I see the newly generated list, and after a sec, it flash a bit, and scroll
down where the current track is.
I think you should simply hide the Elementary list, when you change between
list, album art, lyrics. But Im just guessing here.

7.
>>> Ahh, I see it displays the text in a textbox as is.
>>> No advanced feature, like karaoke....;)
>>>
>>  Do you have any ideas on how to implement karaoke without using up too
>> much CPU? I thought that the basic DSP stuff (being floating point) would
>> kill the Neo.
>>  I could divide the time by the no of lines and shift selected lime to get
>> a rough indication - but that wont work for most of rock and metal.
>
>I have plenty of ideas, I always have. I will write to the lyrics thread.

Ok here is my idea:
You can use in elementary.Entry html formatted text. So some
formatting is possible. Maybe elementary.Anchorview is required
too for working.

Once you can change the text to bold, you can mark the actual
word/line to bold. It should be pretty fast.
I think we should begin with marking the whole line, it is much easier.

>>  I could divide the time by the no of lines and shift selected lime to get
>> a rough indication - but that wont work for most of rock and metal.

There is karaoke format too, where it marks the current char. Dunno
the exact format my past mp3 player supported it, but really badly.
(it truncated lines, only displayed the first x lines, so was pretty much
useless)

What I propose is use the movie subtitle format. It is or .srt or .sub format.
There is time based format and frame based format too.
It looks like this:
[00:00.00.0000-00:00.01.0200] This is the first line to display
[00:00.02.0000-00:00.03.0300] This is the second line to display

You can also use the mplayer own subtitle format, which works
relative and not absolute timings:
[(time to wait) (time to display)] line
[1 2] It wait one sec after the precedent line, and displays 2 sec long
[1 1] It wait one sec, and displays for one sec
[4 2] wait 4 sec, and displays for 2 sec.

You need a simple text processor, and mark the text in entry (but dont
reload it each time!).

I hope this helps.

Best regards,
 Laszlo



More information about the community mailing list