Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_uie_lyrics3 (Read 873383 times) previous topic - next topic
0 Members and 3 Guests are viewing this topic.

foo_uie_lyrics3

Reply #625
@quisvir:
I might be able to allow saving to multiple locations using a ';' to separate.

@JJForums:
Make sure you configure Minilyrics to only download time-stamped lyrics as Minilyrics will guess the timestamps for unsynchronised lyrics, which is often inaccurate.

@realign:
Not for a while. I'm extremely busy. Probably looking at early/mid April.

foo_uie_lyrics3

Reply #626
@The vern

if path contains semicolon ";", lyrics files cannot be found.
looks like a bug

setup
f:\songs\wonder of the sky「sky;melody」\a.cue
f:\songs\wonder of the sky「sky;melody」\a.ape
f:\songs\wonder of the sky「sky;melody」\lyrics\season.lrc
f:\songs\wonder of the sky「sky;melody」\lyrics\dawn.lrc

foo_uie_lyrics3

Reply #627
@quisvir:
Although the vern has indicated that he might be able to allow saving to multiple locations using a ';' to separate, I am not sure that this will help you as the current behaviour of the plugin is to save the lyrics at the end of track playback. Thus saving to a currentlyric.txt file as you suggest will occur too late for the lyrics of the now playing track to be accessed by networked devices.

You asked if a wsh panel mod script would be able to pick up on an existing lyric being loaded from file. If I understand you correctly, then this is achievable by a simple script. An example is below, that will need configuring to suit your file locations.

Code: [Select]
var fso = new ActiveXObject("Scripting.FileSystemObject");

// Configure source and destination folders; use \\ not \ for new folders
var lyr_source_folder = "c:\\lyrics\\";
var lyr_destination_folder = "c:\\copy\\lyrics\\";
//

var curr_txt;
var curr_lrc;

function on_playback_new_track(metadb) {
// Configure source filenames (also if any part of the file path changes on playing a new track it will need to go here instead of above)
curr_txt = lyr_source_folder + fb.TitleFormat("%artist% - %title%.txt").Eval();
curr_lrc = lyr_source_folder + fb.TitleFormat("%artist% - %title%.lrc").Eval();
//

if (fso.FileExists(curr_txt)) fso.CopyFile(curr_txt, lyr_destination_folder + "current_lyric.txt");
if (fso.FileExists(curr_lrc)) fso.CopyFile(curr_lrc, lyr_destination_folder + "current_lyric.lrc");

//fb.trace(curr_lrc,fso.FileExists(curr_lrc))
}

foo_uie_lyrics3

Reply #628
I like the plugin but is there any way to queue lyric searches for an entire playlist rather than do it song-by-song?

And I don't know if this was mentioned before but enabling the custom directory for saved lyrics does not copy that same directory to 'local file search' properties in lyric searching config.

 

foo_uie_lyrics3

Reply #630
@syrupbuccaneer:
You can't batch download lyrics in the current version, but I may consider it in the future (depending on how complex it would end up being). Also see [a href='index.php?act=findpost&pid=783626']#523[/a] for a work around using a WSH panel.
I know that the local file search custom directory and save-to locations do not work very well together, plans have already been made to correct this.

@BrutuZ:
The file search location accepts multiple values, whereas the save location doesn't. So for example if your lyrics are scattered in several different places, then it can still work properly.

foo_uie_lyrics3

Reply #631
Hey

I like this PLugin much, finally there`s a working lyrics plugin

But one thing I miss, is the possibility to deactivate the AUTOMATIC lyric search and to start search manually.

Everytime I listen to a song, wether the lyrics panal is active or not, it searches for lyrics automatically and sends to all the servers of the lyric search engines the information when I listen to which music (I think its very likely that these servers earn their money by creating listening-profiles of users and selling them).
I wish al little more self-determination about my personal information.

It can't be that much work, to add an "deactivate atomatic search"-option and a context menu entry like "start search" or "search online" when you right klick on the lyrics panel.


What do you think?



(sorry for my bad english)

foo_uie_lyrics3

Reply #632
Just reporting that lyrics.wikia.com is returning truncated lyrics. Example:
Quote
Artist : Michael Jackson
Title : Heal the world

Think about the generations and say we wanna make it a better place
For our children and our children's children
So that they know what's a better world for them
And think they can make it a better place

There's a place in your heart and I know that it is love
And this place could be much brighter than tomorrow
And if you really try, you'll find there's no need to cry
In this place you'll feel there's no hurt[...]
It includes and actually ends on that [...]


foo_uie_lyrics3

Reply #634
In regard to his argumentation frank86 must be German. That's so typical here!

foo_uie_lyrics3

Reply #635
@BrutuZ:
That's just how they appear on wiki lyrics. http://lyrics.wikia.com/Michael_Jackson:Heal_The_World

Not a plugin fault, lyrics.wikia's fault indeed. I posted because it was the second lyric to appear truncated that way so figured it could be a Plugin problem. But after checking the link it's just another case of goddamn licensing 
Quote
Unfortunately, we are not licensed to display the full lyrics for this song at the moment. Hopefully we will be able to in the future.


Sorry about the fuzz 

foo_uie_lyrics3

Reply #636
First thanks vern for your work!

Nice component, I have used this great plunging since lyric show panel 1, thanks for the effort.

I got a problem, I want to save lyric as "01 - my first song.lrc" , so I changed the save parameter as : "$if(%tracknumber%,%tracknumber% - )$if2(%title%,%_filename%)", it works fine,
but how it could search the lyric from "Local File Search"?

I tried to change the search parameters artist as "$if(%tracknumber%,%tracknumber%)", it solve my problem, but once I want to search lyrics from online DB it will become useless.

how should I do? thanks.



This issue has been dealt with by a number of posts in this thread. Please see, e.g., posts 522, 523, 546, 590, 591, 594, 595, 601 and 602.

The bottom line is that currently the saved lyric name must contain the artist and title to be found (although it is planned to change this behaviour). As a workaround in your case you can put a space as the artist name; this should find your local file but will break internet searching - see above posts for more info.


@arst, I have the exact same setup with you about the lrc file. I'd like to request vern to add an option to separate the local search option also. But for now, my workaround is use
Code: [Select]
$if(%ispaused%,%artist%, )
in Artist search parameter. This way, when you want to do online search, just paused the song and do a manual search. It's not perfect, but for me I rarely get a hit anyway. Most of my collections are anime songs, I do wonder why lyrics2 seem to get much more results. Probably something to do with database I guess.

foo_uie_lyrics3

Reply #637
Is it possible to display in the panel whether it is still searching for lyrics?  E.g., I want to add a line "Searching..." if it's still looking, and then maybe "Done" when it's done.  (possible via a %tag%?)

foo_uie_lyrics3

Reply #638
@Hypernova:
As I have said previously the next version will not require the artist name if the lyric is saved in the same folder as the track.

@neothe0ne:
I have plans to create a titleformatting variable in the fallback text which contains the search progress (as a percent), then that variable can be used however the user wishes.

Hope that helps.



foo_uie_lyrics3

Reply #639
@Hypernova:
As I have said previously the next version will not require the artist name if the lyric is saved in the same folder as the track.

@neothe0ne:
I have plans to create a titleformatting variable in the fallback text which contains the search progress (as a percent), then that variable can be used however the user wishes.

Hope that helps.



maybe adding a debug option to enable print to fb2k console (available from view -> console) for each searched string on an repository (online database, local file search directories...) ex. searched pattern/string "abc.lrc" at local file search -> g:\abc album\lyrics
this would allow us to debug the search string pattern on our own.

foo_uie_lyrics3

Reply #640
Just to be clear, it doesn't have any particular search pattern, it just searches for the artist and title names within the filename. I'll see about adding debug info (although I can't see it being particularly useful).

foo_uie_lyrics3

Reply #641
Hi,
first of all thx for your great work.
I have a question how can I avoid that the minilyrics window pops up?
I want it to completely run in the background.
I just want to see my foobar window and not the minilyrics window.
Here's a video that shows what I mean: http://youtu.be/h3H4njDOePc
Thx!

foo_uie_lyrics3

Reply #642
see [a href='index.php?act=findpost&pid=779681']#403-407[/a].

Hope that helps.

foo_uie_lyrics3

Reply #643
Thx for the reply.
I already figured this out.
The thing is I wouldn't want to minimize minilyrics everytime I start foobar.
Is this possible to achieve?

foo_uie_lyrics3

Reply #644
Not as far as I'm aware. You can make the window smaller so that it's less annoying but beyond that I cant help, sorry!

foo_uie_lyrics3

Reply #645
I didn't change anything but now the program works as I imagined it.
Amazing!
€: Got the solution.
Push ctrl+alt+m once and be happy for ever!

foo_uie_lyrics3

Reply #646
@The Vern:
Thanks for the offer of allowing multiple save locations. But my case is rather tricky (as WilB rightly pointed out), in that it would require the second copy to have a static filename, and it would have to be saved at the start of the song. But if such a thing is possible at all, I would very much welcome it

@WilB:
Thanks so much for providing that script! I hadn't considered using a script to copy pre-existing lyrics files, as opposed to getting the loaded lyrics from the plugin itself. It still leaves the songs without saved lyrics of course, but it does take care of all regularly played songs.

I've changed the script to suit my particular case, so I've added it below in case anyone is interested. A few notes:
- It copies .txt lyrics if present, otherwise .lrc is converted. Conversion is very 'dirty', so it won't work on files that contain errors. For instance, timestamps are recognized with a few simple charAt tests instead of a proper regexp (for performance reasons).
- File operations are optimised for using a local source, and network destination. Hence, reading .lrc files is done line by line, but writing is done in one go.
- Suggestions for improvements are always welcome

Code: [Select]
//
// Script to copy current song lyrics to a static location.
//
// Copies .txt if present, otherwise .lrc is converted (quick 'n dirty).
// File operations optimised for using a local source, and network destination.

var fso = new ActiveXObject("Scripting.FileSystemObject");

var source = fb.FoobarPath + "lyrics\\";
var dest = "m:\\current_lyric.txt";

function on_playback_new_track(metadb) {
var curr, f, line, lyric, end, text, i, c;
var lines = [];

curr = source + fb.TitleFormat("%artist% - %title%").Eval();

try {
if (fso.FileExists(curr + ".txt")) {
fso.CopyFile(curr + ".txt", dest);
} else if (fso.FileExists(curr + ".lrc")) {
f = fso.OpenTextFile(curr + ".lrc", 1);
while (!f.AtEndOfStream) {
line = f.ReadLine();
lyric = line.slice(line.lastIndexOf("]") + 1);
while (line.charAt(0) === "[" && !isNaN(line.charAt(1))) {
end = line.indexOf("]", 8);
lines.push([lyric, line.slice(1, end - 1)]);
line = line.slice(end + 1);
}
}
f.Close();

lines.sort(function (a, b) {
if (a[1] < b[1]) return -1;
if (a[1] > b[1]) return 1;
return 0;
});

text = "";
for (i = 0, c = lines.length; i < c; i++) {
text += lines[i][0] + "\r\n";
}
f = fso.OpenTextFile(dest, 2, true);
f.Write(text);
f.Close();
}
} catch (e) {
if (f) f.Close();
}
}
PS: My apologies for replying so late, real life got the better of me for a while

foo_uie_lyrics3

Reply #647
Hi,

great plugin, I'm just missing one little thing:

Normally I want the lyrics to be saved in configuration folder, but I'm looking for an easy way to save lyrics to file-tags after I checked/corrected them. Of course, changing the save method in preferences (and changing it back afterwards) is possible, but not very convenient. My idea would be a simple "save to tag"-entry in context menu.

Is there a way to get this? Or another - maybe even easier - way I overlooked?

One more thing: Is it possible to use the seekbar while editing lyrics?

foo_uie_lyrics3

Reply #648
It seems as Minilyrics fetching doesn't always works.
Sometimes it just snatches from other sources though the tool is configured to fetch the songtext from minilyrics first.
Is this a known bug?

foo_uie_lyrics3

Reply #649
@xbrtll:
There is currently no independent save to tag option, but one way round it would be as follows: As lyrics are saved at the end of the song, you can do your editing while the song is playing and have the automatic save always saving to tag. This of course assumes that you want to go round checking/correcting the lyrics all throughout playback, which you may not want to do. It should also be noted that editing a pre-existing lyric (either in the tag or file) using the built in editor triggers a re-save at the end of the song (or apply/OK if the checkbox is ticked). Put simply, you could save them to the tag automatically and edit them later.
You can't use the fb2k seekbar whilst the editor is open, but that is why I provided the fast-forward and rewind buttons (which skips by 5s).

@McBag:
The Minilyrics program restricts access to it's servers - if you query too frequently. Does the actual minilyrics app display lyrics for the songs in question?

Hope this helps