Author Topic: How to display your local pictures on Theater Mode  (Read 12686 times)

redwing

  • Guest
You can display and rotate multiple custom images of yours using theater mode in various ways.

Using "Default" view

- Add your local images into MusicBee\Plugins\TheaterMode.List\Default.Rotation\ folder.
- If you run "Default" view, you will see those images as background images.
- You can adjust rotation period by editing the file. For instance, <settings rotationPeriod="EndOfTrack" /> will change the background image for each track.

Using "Landscapes" view

- Create MusicBee\Plugins\TheaterMode.List\SharedArtwork\Landscapes folder and add your local images into it.
- Open Landscapes.xml file with a text editor
- Find the fourth line looking like this
Code
<settings backgroundImage="Default Landscape.jpg" />
- Add the following code just below it
Code
<settings rotationFolder="Landscapes" />
- Find the following code in 14~15th line and remove it.
Code
<element type="Gallery" x="1" y="1" widthDock="Panel" width="-2" heightDock="Panel" height="-2" aspectRatio="stretch" interval="60" tags="Landscape" ></element>
- Now run the "Landscapes" view, and you will see your local images as the background.
- If you want to change the background image too with your local image, find MusicBee\Plugins\TheaterMode.List\SharedArtwork\Default Landscape.jpg and replace it with your own. If you have changed the filename too, adjust the image name in the third line "<settings backgroundImage="

Using Soundtrack picture folder

- You can also display your local images on the theater mode gallery or artist panel of main player.
- Name your image files as starting with an album name you want to listen to (like Abbey Road_01.jpg, etc.) and store in your soundtrack picture folder. Then while the album is playing MB will show those images instead of the usual artist pictures.
- So you could create a custom album with your favorite songs and rename your custom image files following that album name.
Last Edit: March 08, 2018, 11:58:04 PM by redwing

Albert

  • Newbie
  • *
  • Posts: 11
Hallo,  

Als ik de map TheaterMode.list open krijg ik drie submappen:
1- Default.Rotation
2- Images
3- ShareArtwork

Daar onder staan diverse bestanden met o.a. Landcapes.xml

In de map ShareArtwork vind ik dit bestand niet terug?

Als ik het bestand open met de kladblok en wijzig kan ik het niet opslaan. Als admin lukt het ook niet, omdat ik niet bevoegd ben?

Mag ik a.u.b. een juiste instructie want ik wil dat gebruiken voor een bruiloft.


Bij voorbaat dank,
Albert

redwing

  • Guest
Hallo,  

Als ik de map TheaterMode.list open krijg ik drie submappen:
1- Default.Rotation
2- Images
3- ShareArtwork

Daar onder staan diverse bestanden met o.a. Landcapes.xml

In de map ShareArtwork vind ik dit bestand niet terug?

Als ik het bestand open met de kladblok en wijzig kan ik het niet opslaan. Als admin lukt het ook niet, omdat ik niet bevoegd ben?

Mag ik a.u.b. een juiste instructie want ik wil dat gebruiken voor een bruiloft.


Bij voorbaat dank,
Albert

Sorry, I can't help you as I don't speak Dutch.
Also please post any questions on Questions board.

aabcommish

  • Newbie
  • *
  • Posts: 8
Redwing,

'Hope you see this sometime soon - seems you know Musicbee inside out.  :-)

I am rather new to it, and am determined to finally be done with WMP as my music player of "choice" (more like a bad habit).

Anyway, I really want to be able to use your Landscapes solution for displaying local images.  I have made the coding change you advise... but have run into a glitch.

After I start Theater Mode, I *DO* get *one single* image from the files I've copied to the "MusicBee\Plugins\TheaterMode.List\SharedArtwork\Landscapes" folder... but outside of that one image, I'm then getting nothing but the usual Musicbee Landscape images after that.

Any idea what I might have done wrong?

BTW #1 - I had to *create* the "Landscapes" folder under the SharedArtwork folder; there wasn't one already there.

BTW #2 - I fully endorse your wishlist item for enabling Musicbee to point to an already existing local folder to grab images from.

Thanks in advance,

RS
Last Edit: March 08, 2018, 10:24:01 PM by aabcommish

redwing

  • Guest
@aabcommish;

Thanks for the report! I have fixed the guide and hope it now works properly. Note that the default rotation period is set to 300 sec in fifth line, so change it to 10 for a quick test.

aabcommish

  • Newbie
  • *
  • Posts: 8
Redwing,

Thanks for getting back to me so quickly!  Eliminating that line of code does indeed fix the problem.  At the risk of pushing it, I'd like to say I'm 95% to where I want to be with this and hope you might help get me to 100%.

Upfront let me say, I do not do this kind of coding with ANY level of expertise - BUT... I have done just enough playing with xml to be dangerous.  (as in yeah... even before your advice to change rotation period to 10, I'd changed it to 4 for the test :-).  Anyway...

Here's my quibble with how it now stands:
It appears pictures are *stretched* to fit the full screen of HD (16:9) monitors.  This stretching distorts - sometimes severely - any picture whose aspect ratio is not 16:9.

I've tinkered with the landscapes.xml file and after several attempts to fix the "stretching", here's where I'm at:

The changes in/around line 4 as per your updated solution are there, BUT... I've left in the code line you had me remove and changed it to THIS:

<element type="Gallery" x="1" y="1" widthDock="Panel" width="-2" heightDock="Panel" height="-2" aspectRatio="fit" interval="4" ></element>

Note the aspectRatio of "fit" (which one like myself "gets" from just messing with Windows backgrounds), and the removal of tags="Landscape".

I'd hoped this might work, but the result is the same as when the line is removed. I don't want to mess with any other parameters without asking, once again, for your help.  Anything you can think of would be MOST appreciated.

Thanks!

AABcommish










redwing

  • Guest
No, I don't think it's possible to control the aspect ratio of the background image. When it comes to background images or the use of local pictures, TM's support is quite limited. You should post a wishlist item and hope for others' support.

As you noted, gallery element has a aspect ratio setting. To display your local pictures on the gallery element, you should try the third method. Then use any TM view with a big gallery element like the original Landscapes view or Cine View, etc. Let me know how it went for you.

aabcommish

  • Newbie
  • *
  • Posts: 8
Got it.

I'm assuming by "third method" you mean the Soundtrack folder that associates pictures with specific albums.  I'm going for something more random as I've accumulated over 2,500 images that I just want popping up over a long evening of entertaining.

I will indeed post a wishlist item for this.

I like the ability to have a picture slideshow *combined* with album/song information being shown - and from what I can see with my less-than-24 hours use of MusicBee so far, I prefer the Landscapes method over the Default one.  Default sticks the album cover in the upper left quadrant of the picture, blocking out a lot of it; while the Landscapes theater mode keep the album/song info down at the bottom of the screen.

I may tinker some more with the xml - but I fear what I'd backed up and labelled as the "Landscapes - Original" xml file has been altered.  Worst case scenario, I'll uninstall and reinstall MusicBee again to start from square one - unless you know of a better way for me to get my hands on an original.

In the meantime, I will certainly let you know where I wind up.

Thanks, yet again, VERY much.

AABcommish

aabcommish

  • Newbie
  • *
  • Posts: 8
Interestingly, when making just the change to aspectRatio from stretched to fit, the first local picture and all the subsequent landscape pictures do indeed get displayed *without* the stretch distortion...


redwing

  • Guest
As I said, gallery element has aspect ratio setting. And use "keep" instead of "fit":

- new aspectRatio attribute for the ArtistPicture and PictureGallery elements
  aspectRatio="keep/stretch/zoomKeep/zoomStretch"
  - stretch=the picture is stretched to fill the entire area;
  - keep=keep aspect ratio and fillColor="200,0,0,0" defines the colour to be used to fill the gaps (if any);
  - zoomKeep=keeps the apspect ratio but allows the sides of the image to be cut off so no vertical gaps (suited to artist pictures);
  - zoomStretch=similar to zoomKeep, but stretches rather than keeps the apect ratio (works with landscapes)

Sounds like you're confused about background images and gallery element probably because Landscapes view has a full-screen-size gallery. If you try Cine View, you will see the differences between the gallery and background image.

aabcommish

  • Newbie
  • *
  • Posts: 8
Thanks for continuing to stay with me, Redwing.  

As I'd mentioned, I have next-to-nil in regards to understanding xml coding.  What I *have* managed to do is to successfully move all the elements of the lower information bar and Album cover down a bit so as to intrude that much less on the upper portion of the image being displayed - but that's been just a lot of trial and error.

When it comes to MusicBee, its components and even xml, I am learning - if you'd call it that - on the fly, so please pardon me if the statements and questions I raise are somewhat ill-formed... and if I'm unable to quite grasp your last reply.

Taking a step back (as I must) and trying to get away from code reading to grasp your points, I'd submit this:

1. I think, based on the use of some print software products, I might have a very basic understanding of the difference between "gallery" images and background images in MB: Gallery images are housed within the core product whereas what we're calling background images (or at least what *I* am alluding to) can be supplied and manipulated by the end-user.  Hence, aspectRatio change to element gallery impacts the display of the MB core gallery images, but does *not* impact display of my own supplied pictures.

2. I must admit that just looking at the cine xml does not really help me see the difference; but am I correct in concluding that you are *not* advising me that the cine view.xml might be a means for accomplishing my goal? (again ,that goal is to : randomly display a picture, every 20 seconds or so and with correct aspect ratio, from my trove of about 2500 picture files - not binding the pictures to specific artists ?

Sorry for the wordiness... am doing my best to try to keep up with you.  Not being able to "speak the language" has me doing a lot of "expanding".

AABcommish
Last Edit: March 09, 2018, 07:29:41 PM by aabcommish

redwing

  • Guest
Just as an exercise, remove the original gallery element in the Landscapes.xml file and add this:

Code
<element type="Gallery" x="200" y="100" width="1000" height="500" fillColor="200,0,0,0" aspectRatio="keep" interval="60" tags="Artist"></element>
Run the view, play any song. Now you will see the gallery is drawn over background image, showing artist picture slideshow. That's what I meant.

You can try any TM view for the third method as long as it has a gallery element. But only for the original Landscapes view, you need to change gallery element's "tags" setting from "Landscape" to "Artist" like the previous example.

Also if you're not familiar with soundtrack picture feature, see this guide and try it first for some time to understand how it works:
https://getmusicbee.com/forum/index.php?topic=13437.0

aabcommish

  • Newbie
  • *
  • Posts: 8
I do think your last reply has pulled it together for me.  

I see - from running MB with this code in place and the code itself - that the gallery images are drawn into a *fixed box* and that within that fixed box, pictures are displayed to fill the height of the box and that the sides are filled in with a solid color.  AND... that this is on top of the background image - or image rotation as the case may be.  Got it!

Further, from my reading of the soundtrack picture feature, I see where one CAN then create a local folder of pictures to be used *by the gallery element* instead of being tied to background images.  All good, BUT...

... it still seems that local pictures must be tied to specific *albums* (not "artists" as I'd posted earlier) via picture renaming and/or music file tag info changing.  I really prefer not to change tag info and again, do not want to tie specific pictures to specific albums.  

My goal is to: "randomly display any one of a LOT (up to 2500) of my local pictures, every 20 seconds or so and with correct aspect ratio - regardless of which one of my 20,000 music files might be playing".

That goal would also seem to eliminate the picture-renaming part of any solution.

So after all of this - the bottom line still seems that I'd need a *background image* rotation to do that - and that with a background rotation, there's no way to emulate the aspect control and color-filling that gallery displaying can have (via xml changes).  ** am I correct on this point? **

You've been so very patient and accommodating.  I myself am keeping at this because I can already see that MB is a WAY better product than WMP.  You have little to gain other than helping "create a convert" here - truly the "Hero Member".  :-)

THANK YOU!

AABcommish

redwing

  • Guest
Yes, each method has some downsides and what you want is not possible with TM's current functionality.
You may have read it but I have posted a wish that could easily resolve the issue and would make this guide pretty concise: https://getmusicbee.com/forum/index.php?topic=23190.0

aabcommish

  • Newbie
  • *
  • Posts: 8
OK - thanks for the many pointers today.  I do hope an enhancement *is* forthcoming.  Enjoy the rest of your Friday night.