quelea-projection / Quelea

Open source projection software for churches.
https://quelea.org
GNU General Public License v3.0
156 stars 145 forks source link

Margins in themes #145

Open dallonf opened 5 years ago

dallonf commented 5 years ago

Looking for feedback on a pretty major feature I'd like to try to implement: theme margins.

Here's a mockup of what it might look like to set this:

image

You can set a certain percentage of the screen to be "dead space" where text wouldn't render.

Here are some cases I can think of where this might be useful:

*Videos, slideshows, the "logo" display mode, and possibly a few other things aren't currently affected by theme; to make this use case work, they would have to change to at least take the margins of the current theme into account. Maybe margin options in Display settings would be a better solution for these particular problems? Now that I think about it, I'm leaning towards that instead for these two particular bullet points.

What do you think? Would this be a useful addition that I could work on? Would it over-complicate the UI?

berry120 commented 5 years ago

Thanks for this - a really interesting idea, and one we've talked about previously!

My only initial comment would be that I think we should split this so we have a "theme" based margin (as you've shown there) which only applies to individual themes, and a display based margin (set in the display tab of settings) which applies to everything.

The theme based margin definitely makes sense for different themes not showing text in places where it would be distracting (such as in a part of an image you want to become visible), but in the case that you want to block off part of the projector screen, you'd want to apply that to all themes all the time, and also apply that to the logo button (I don't think just using the last theme margin as a precedent for the logo would be a good idea, as that may be specific to the background image being displayed, so wouldn't make much sense to restrict the logo to that area.)

Does that make sense?

On Wed, 29 May 2019 at 20:15, Dallon Feldner notifications@github.com wrote:

Looking for feedback on a pretty major feature I'd like to try to implement: theme margins.

Here's a mockup of what it might look like to set this:

[image: image] https://user-images.githubusercontent.com/346300/58584283-93fbee80-821b-11e9-9a51-20428f7b8361.png

You can set a certain percentage of the screen to be "dead space" where text wouldn't render.

Here are some cases I can think of where this might be useful:

  • Your background has a "frame" or interesting visuals around the outside that you don't want text to overlap with
  • You'd like a small countdown timer https://github.com/quelea-projection/Quelea/issues/141 in the corner of the screen while the rest of the display shows an announcement slide video
  • Your projector setup has "dead zones" around the edges where text is cut off or projected onto physical objects that are hard to read*
  • You'd like to use a different projector screen size at different times. For example, at my church, the building we're renting has the projector screen drop down in front of the stage - so we only drop it halfway while singing so that you can still see the band, then drop it down fully during the sermon while the pastor stands in front of it.*

*Videos, slideshows, the "logo" display mode, and possibly a few other things aren't currently affected by theme; to make this use case work, they would have to change to at least take the margins of the current theme into account. Maybe margin options in Display settings would be a better solution for these particular problems? Now that I think about it, I'm leaning towards that instead for these two particular bullet points.

What do you think? Would this be a useful addition that I could work on? Would it over-complicate the UI?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/quelea-projection/Quelea/issues/145?email_source=notifications&email_token=ABZ6JDPKGQPQ4YAKOTIZVNTPX3I6DA5CNFSM4HQRPVZKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GWSDDVQ, or mute the thread https://github.com/notifications/unsubscribe-auth/ABZ6JDMBVNUOFC5XJDJX5VTPX3I6DANCNFSM4HQRPVZA .

-- Thanks,

Michael

berry120 commented 5 years ago

Marking this as help wanted so others can give feedback if they like.

@ArvidNy may also have some ideas.

You could also post this in https://quelea.discourse.group/ for some feedback from the guys there as well 👍

ArvidNy commented 5 years ago

I like it, I could definitely see why the would be useful if you use background images/videos. A few years ago I was playing with the idea of putting the preview text in a re-sizable and movable box instead of the nine boxes which would give you more control over both the margins and the placement, but I never got around to trying to solve that. That approach would probably be more intuitive from a user perspective, but from a programmer perspective I think this approach requires less work and is still user friendly.

By the way, I believe Ben added global margins a while back that you can set with advanced settings.

berry120 commented 5 years ago

Ah, so he did - I forgot about that. In that case I think the best course of action for those global margins would be to provide an interface around that rather than implementing new ones, unless there's a compelling case for doing so.

The per-theme margins are of course still something we could implement however :-)

On Mon, 10 Jun 2019 at 15:24, Arvid Nyström notifications@github.com wrote:

I like it, I could definitely see why the would be useful if you use background images/videos. A few years ago I was playing with the idea of putting the preview text in a re-sizable and movable box instead of the nine boxes which would give you more control over both the margins and the placement, but I never got around to trying to solve that. That approach would probably be more intuitive from a user perspective, but from a programmer perspective I think this approach requires less work and is still user friendly.

By the way, I believe Ben added global margins a while back that you can set with advanced settings https://quelea-projection.github.io/docs/Advanced_settings#margins.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/quelea-projection/Quelea/issues/145?email_source=notifications&email_token=ABZ6JDMSYB4WSJCF7BFH3B3PZZP3RA5CNFSM4HQRPVZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXKAXDY#issuecomment-500435855, or mute the thread https://github.com/notifications/unsubscribe-auth/ABZ6JDOVXNNSKP52RGISHLTPZZP3RANCNFSM4HQRPVZA .

-- Thanks,

Michael

berry120 commented 5 years ago

@beng92 is generally rather busy at the mo and hasn't had Quelea dev time for a while, but tagging in case he has any other ideas or comments.

beng92 commented 5 years ago

Yep, this was originally asked for by a church who wanted to use a live video stream and overlay text over the bottom 40% of the screen only. I quickly shoved it in a settings file thinking it was a fairly niche use case probably around 4 or more years ago now! The rise of live video streaming and even service recording had definitely made this a more desirable feature.

I think it is worth while to have this set up, and margins rather than height and width is probably a more user friendly way to do this. Though might still be worth including it in a 'show advanced options'.

For now, the link @arvidNy should still work, but without the complete flexibility your suggestion offers. It uses the 3x3 grid but reduces the size on a percentage basis only, so you can have middle 50% but not 10/60/30 split for example.

On Mon, 10 Jun 2019, 15:38 Michael Berry, notifications@github.com wrote:

@beng92 https://github.com/beng92 is generally rather busy at the mo and hasn't had Quelea dev time for a while, but tagging in case he has any other ideas or comments.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/quelea-projection/Quelea/issues/145?email_source=notifications&email_token=AAMOWERXDK5R5BSEWLYS7ITPZZROLA5CNFSM4HQRPVZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXKB52A#issuecomment-500440808, or mute the thread https://github.com/notifications/unsubscribe-auth/AAMOWEU3FOOL4OWUFENZPZLPZZROLANCNFSM4HQRPVZA .

dallonf commented 5 years ago

Thanks for the info! I think I'm going to start a branch to work on this, starting with a UI for the global margins.

dallonf commented 5 years ago

Hmm, looks like the margins feature mentioned only affects lyrics and not images, slides, videos, or even song information in the corner of the screen. I'm probably better off hooking into the dimensions of the canvas itself, as if the user had configured a "Custom Position" (which is what we actually do currently at my church, which mostly works, but is cumbersome).

beng92 commented 5 years ago

Hi @dallonf, I've been looking at this again - sorry for the delay! I think I understand you correctly, you want a per-theme method of shrinking the canvas. I'm not sure we could make this possible in any meaningful way that's different to using the custom screen position settings in the global settings, as you have been currently doing. By default, the canvas when created is a black rectangle the size designated by the global settings and shrinking this is the same as shrinking the entire canvas. If it is a mathematical approach, such as changing it from offset x,y and width,height to offset top,bottom,left,right then that may be an easy to include hidden option.

If I'm misunderstanding, please feel free to describe a use case that you foresee.

dallonf commented 5 years ago

The primary use case of the per-theme margins I think would be for fitting content within a background - like making sure the content doesn't overlap with a visual frame, or the use case I described of playing a countdown timer in the corner of a looping announcement slideshow.

I do agree the global margins are a more immediately useful feature, though!

apac2527 commented 4 years ago

Here's a thought. Instead of marginalising one of possibly 2 screens how about allowing/duplicating the feed (akin to stage screen without chords) to any number of named borderless windows. Broadcast and streaming apps eg. OBS can take as inputs any number of open windows as a web camera equivilant multiplied on a scene in any position and zoom size or as chroma key overlay. This would allow song text for example to be sent to the screen in the church direct from Quelea and similtaneously output as a ticker overlay on camera from church's live stream presentation. As a use case example I am currently using a presentation software that can really only present to a singe extended desktop screen. But I need to present to church screen, and send an unadorned text stream as overlay to our ATEM livestream to YouTube. I got around the screen limitation by the following: My PC has 3 screens, S3 is the control, the Desktop is then extended to S1 and S1 is mirrored on S2. S1 is connected to the ATEM (Multi camera livestream system) and S2 is connected to our Video Projector. It would be nice to be able to split S1 and S2 so that the feed to S1(ATEM) has black background (Keyed out) and the feed to S2 could have an image or video background. Something not possible with my current software but when I saw the Stage View on Quelea I started thinking of the possibilities if I had a 3rd Presentation screen. This arrangement would enable one screen to present a verse 2 lines at a time centered to a colourful screen for local presentation and bottom aligned for ticker type overlay on live stream.