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: Georgia: A dynamically generated fb2k theme (Read 94920 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: Georgia: A dynamically generated fb2k theme

Reply #175
I'll take a look at the globals.js, but it'd be better if you uploaded an audio file that shows this behavior.

https://imgur.com/a/np2S6X4

Does this help? I suppose I could upload some files to mediafire, but I think some screenshots of the metadata and Georgia display should be enough, right? Let me know if you'd like a .zip with the files from the screenshots

Re: Georgia: A dynamically generated fb2k theme

Reply #176
I have two feature suggestions:  I may take a crack at them and issue a PR if that's okay

1) If the song playing has a blank or lyrics file that does not exist, but the lyrics are enabled, hide the backdrop as if lyrics didn't exist but don't cancel out of lyrics mode in case the next song has them. I cannot speak for the lyrics engine but I think it reloads itself and could potentially re-enable it if it suddenly finds it by itself.
2) Add a global menu setting that if you play a song, optionally it will go into the full view after n seconds automatically. (e.g. if you're in the library, double click an album, and go AFK, in 5 seconds it will take you to the full view with the CDart and other stuff.

Re: Georgia: A dynamically generated fb2k theme

Reply #177
The problem with doing #1 is that there's not a good visual indicator in the UI that lyrics mode is enabled, unless the backdrop is there. Even highlighting the lyrics button isn't obvious enough because the highlights are relatively subtile.

#2 is interesting, but I don't know how many people would actually want that. It also creates a weird situation where I play a song, the library hides, and then I reopen the library, but don't do anything for a few seconds while I'm trying to remember the name of an artist... does the library hide again? It becomes pretty difficult to determine intent. Now I *might* be okay with a situation where if you move the mouse off of the playlist/library and wait X seconds without user input, then they auto hide. I think that's a better situation than just no user input.

Re: Georgia: A dynamically generated fb2k theme

Reply #178
Definitely valid points.

1) Maybe the event could only fire if it previously had lyrics, the mode didn't change, and the song it has now is missing lyrics. That kind of solidifies that the user knows whats going on. Otherwise the 'Display Lyrics' tooltip could be a toggle based text instead. Like Show Lyrics, Hide Lyrics. Then people know what state its in anyways. It could even flash the backdrop to show that it is missing for a second, if the state goes from hasLyrics = true to hasLyrics = false. This is something I noticed when playing games; I'll set a song, forget to change the mode, and look on my other monitor and wish it was in the play mode.
2) I would suggest a median timer of 60 seconds. In theory, the library would hide based on the trigger of double clicking a song in the playlist or library. After you do that, it starts the timer. If you switch tabs, or click something in the current tab, before the timer goes off, the timer is nullified. The event will not be started again unless it has the same trigger (double click)

Re: Georgia: A dynamically generated fb2k theme

Reply #179
https://imgur.com/a/np2S6X4

Does this help? I suppose I could upload some files to mediafire, but I think some screenshots of the metadata and Georgia display should be enough, right? Let me know if you'd like a .zip with the files from the screenshots
That does help. BTW, I forgot a little about how some of this stuff works, so I apologize for not steering you to the answer directly earlier.

What you should do now is stop using both LABEL and PUBLISHER. Just pick one. Using both works for images because I'm generous like that but it will only show the values of one or the other everywhere else. That won't be changing.

Let's say you decide to standardize on LABEL. Open up Foobar's preferences, select Advanced at the very bottom, and then expand Display >> Properties Dialog and edit the values under Multivalue fields to add LABEL (or PUBLISHER if you want!)



(You can also add "Label=LABEL;" to the Standard Fields input which will make your properties dialog look much cleaner).

Now, go to a file that you want to have multiple labels, and go to the properties pane. Enter the values as "Roc-a-Fella Records; Freeze Records; Priority Records" (don't add a trailing ; as that might screw things up). Hit okay, and now you will have a single LABEL field with 3 multiple values in it. Everything will be separated with bullets and all 3 logos (if images exist) will show up.

Re: Georgia: A dynamically generated fb2k theme

Reply #180
Hi.  I've just noticed another issue with Georgia and Jscript panel 2.4.  Tool tips on the main panel only work 3 or 4 times, then stop working until I do a reload.  Then they work another 3 or 4 times before I have to reload again.  This happens regardless of the Foobar version I am on.  Frankly, I think I'm going to stick with Foobar 1.5.5 anyway for other reasons.  But I thought you should know.

Re: Georgia: A dynamically generated fb2k theme

Reply #181
What you should do now is stop using both LABEL and PUBLISHER. Just pick one. Using both works for images because I'm generous like that but it will only show the values of one or the other everywhere else. That won't be changing.

Let's say you decide to standardize on LABEL. Open up Foobar's preferences, select Advanced at the very bottom, and then expand Display >> Properties Dialog and edit the values under Multivalue fields to add LABEL (or PUBLISHER if you want!)

Ayee it works! Let the court records show that I did not want to use multiple fields in the first place, I was just following the other guy's suggestion. Thanks :)

Re: Georgia: A dynamically generated fb2k theme

Reply #182
Regarding broken tooltips in 2.4.0.... it's crappy docs which have led to the creation of buggy scripts compounded by buggy behaviour in the component as well. *sigh*

Basically, I've always known you're only supposed to call window.CreateTooltip once per panel instance but this rather important fact is missing from the docs. It's not even present in the WSH panel mod docs which is where the original code was inherited from. Unfortunately, library tree misuses it and is the cause of problems in the Georgia theme.

Current options:
If you're migrating to SMP, just ignore it. It will probably work there.
Strip tooltip support from library tree
Update Library tree to use the single g_tooltip instance created in georgia-main.js

Why does it break in v2.4.0 but work in earlier versions....well that's my half arsed attempt at rewriting tooltip support without realising any of the above was an issue. It's more luck than judgement that it "worked" before. The next version will be even less desirable because it's going to throw errors. :o

Re: Georgia: A dynamically generated fb2k theme

Reply #183
If you're migrating to SMP, just ignore it. It will probably work there.

*citation needed* :D

I think SMP handles tooltip exactly the same (iirc, I didn't touch tooltip handling logic at all), so current SMP versions will have the same problem.


Re: Georgia: A dynamically generated fb2k theme

Reply #185
I changed Panel_Library.js  to use g_tooltip,  as suggested by snotlicker, when setting variables tt and but_tt.  So far so good using Jscript panel 2.4 with Foobar 1.6 beta 5.  Thank you very much.  I've made quite a few changes to Georgia and I'm not sure if I'm going to be able to retrofit my changes into the SMP version so I'm hoping to continue using the Jscript version as long as possible.

Re: Georgia: A dynamically generated fb2k theme

Reply #186
I'm having a little trouble trying to customize the library view. In foobar, I've got the following code snippet to group everything into 3 buckets: (Soundtrack, Modern, and Classical). I cut/pasted it from the standard Foobar library views where itworks fine, but it renders strangely in Georgia. Any ideas?
Spoiler (click to show/hide)


Re: Georgia: A dynamically generated fb2k theme

Reply #188
First of all, I wanted to thank you for the recent changes. The tags look fantastic now even when there's a lot.

I have another request/ suggestion.

When playing, the CODEC in the 'now playing' mode seems to be based on the "ENCODER" song tag or something similar? In the playlist, it shows the actual codec of the file.  (e.g. if I play 24bit flac, it shows "flac 24bit/44.1khz" in the playlist, and in the CODEC field, it shows 'FLAC'.) most of my files that dont have many tags dont show any 'CODEC'

I guess from a design perspective, what is there makes sense; it scrapes the music tags, but for the codec wouldn't it make sense to dig into the file itself? Maybe a preference to enable/disable scraping vs respecting tags if it would be something best left toggled?

This also happens under the album year under the menu buttons... e.g the album year says "1999" "flac", and I'd expect either one place or the other to specify what kind of flac.

Re: Georgia: A dynamically generated fb2k theme

Reply #189
If you're migrating to SMP, just ignore it. It will probably work there.

*citation needed* :D

I think SMP handles tooltip exactly the same (iirc, I didn't touch tooltip handling logic at all), so current SMP versions will have the same problem.
FTR, I started migration to SMP yesterday and tooltips are completely messed up all over the place :) Not sure if it was related to the JSP issues or not though. I'll have to sort through it all.

Re: Georgia: A dynamically generated fb2k theme

Reply #190
First of all, I wanted to thank you for the recent changes. The tags look fantastic now even when there's a lot.

I have another request/ suggestion.

When playing, the CODEC in the 'now playing' mode seems to be based on the "ENCODER" song tag or something similar? In the playlist, it shows the actual codec of the file.  (e.g. if I play 24bit flac, it shows "flac 24bit/44.1khz" in the playlist, and in the CODEC field, it shows 'FLAC'.) most of my files that dont have many tags dont show any 'CODEC'

I guess from a design perspective, what is there makes sense; it scrapes the music tags, but for the codec wouldn't it make sense to dig into the file itself? Maybe a preference to enable/disable scraping vs respecting tags if it would be something best left toggled?

This also happens under the album year under the menu buttons... e.g the album year says "1999" "flac", and I'd expect either one place or the other to specify what kind of flac.
So this the Codec definition:

[$if($not($strstr(%codec%,'MP3')),$replace($if2(%codec_profile%,%codec%),ATSC A/52,Dolby Digital)[ $replace($replace($replace($info(channel_mode), + LFE,),' front, ','/'),' rear surround channels',$if($strstr($info(channel_mode),' + LFE'),.1,.0))])]

Basically all I really use it for is correctly showing friendly names channels for multi-channel music. It doesn't use the ENCODER field at all. I don't listen to FLAC on my system, so it's obviously pretty overlooked. I'm assuming you'd want to see something like what the playlist does. I need to do more to reuse that code through the UI. I"ll add it to the TODO list.

Re: Georgia: A dynamically generated fb2k theme

Reply #191
What am I doing? Oh, just rewriting all lyrics handling from the ground up....



...this process might be driving me crazy. At least the code will make sense and it'll be possible to fix bugs. No idea where I got the current lyrics code, but it was... not great.

Anyway, migration to Spider Monkey is going well. There'll be some really cool things coming down the pike that I think everybody will be excited about. Installation and upgrades are going to get simpler, changing settings/options will be easier (and there will be more of them!), the theme is faster and more responsive than before thanks to FSM, and the code will be maintainable. I keep finding things to change and improve though so we're probably a 3-4 weeks out before a beta release is available. Adventurous folks can pull down the spidermonkey branch and see what I'm working on as it's relatively stable now, but at the moment I'll be ignoring all bug/request/PRs on that branch. It's too in flux right now.

Re: Georgia: A dynamically generated fb2k theme

Reply #192
DELETED

Re: Georgia: A dynamically generated fb2k theme

Reply #193
NM, I'm an idiot. Figured out my problem as being a few other cut/paste things that I missed.
Corrected version below works great and now I have my albums sorted by release date that way I like them.

Spoiler (click to show/hide)

Re: Georgia: A dynamically generated fb2k theme

Reply #194
Hi.  I've been playing around with your SMP version and so far so good except loading lyrics crashed with a "gLyrics undefined" message.  You had recently removed the two gLyrics lines below.  I added them back and lyrics load fine now.  I know you still have a lot of work to do and I won't be bugging you, but just wanted to let you know what I found.

function refresh_lyrics() {
   if (fb.IsPlaying || fb.IsPaused) {
      gLyrics = new Lyrics(fb.GetNowPlaying());
           gLyrics.on_size(albumart_size.x, albumart_size.y, albumart_size.w, albumart_size.h);
      let refreshLyricsProfiler = null;


Re: Georgia: A dynamically generated fb2k theme

Reply #196
Lyrics load fine now with your latest changes.  After I changed the spider monkey panel to load georgia-theme.js instead of georgia-configuration.js, which is still in Georgia.txt.  Oops.

Re: Georgia: A dynamically generated fb2k theme

Reply #197
Nitpick: fb.IsPaused can never be true if fb.IsPlaying is false so there is no point checking for it.
That's old code that someone else wrote. It's all going away shortly :)

Re: Georgia: A dynamically generated fb2k theme

Reply #198
Lyrics load fine now with your latest changes.  After I changed the spider monkey panel to load georgia-theme.js instead of georgia-configuration.js, which is still in Georgia.txt.  Oops.
Dangers of not committing every file I have checked out. You'll have to bear with me :D

BTW, check out the configuration stuff in georgia-config.jsonc. It's completely worthless since it gets rewritten each time the theme loads (you can temporarily prevent this by removing the "|| true" from line 289 of globals.js), but let me know if it at least makes sense.

I'm pretty excited to stop using panelProperties for most things.

Re: Georgia: A dynamically generated fb2k theme

Reply #199
The JSONC file worked great once I figured out the syntax differences.  Using $meta_sep instead of $replace threw me for a loop at first because SMP evidently doesn't like $replace at all.  But, hey, I learned something new.  I'm getting really anxious to see the "new" Georgia once you release the beta.  I know it will be worth the wait.