cpvalente / ontime

Free, open-source time keeping for live events
https://www.getontime.no
Other
366 stars 43 forks source link

Feature: null clock style #779

Open 5pinDMX opened 3 months ago

5pinDMX commented 3 months ago

An option to customize how a null clock should be displayed. As of version 2.28.17, when a clock ends, it is displayed as "-- : -- : --". An option for this to be displaying "00:00:00" or time of day would be benneficial.

cpvalente commented 3 months ago

Hi @5pinDMX , thank you for taking the time to reach out with a proposal for improvement.

I believe allowing the user to provide a custom text for placeholder times would be good. However, I am unconvinced that 00:00:00 would be a good choice since it is a potentially valid time and it is factually incorrect.

The placeholder time shows up a) before we establish a connection to the server b) when no value exists (ie, there is no timer loaded)

As long as this is in the user's control, I guess they can decide whether or not to agree with me. Meanwhile,

  1. Do you have a suggestion for what could be a better default than --:--:--?
  2. What timers would this affect and which views? Just the running timer in all the views? All clocks?
5pinDMX commented 3 months ago

Currently we are using ontime for a presentation timer. We want the timer to stop at 00:00:00 (using the minimal view with custom css font). Currently using end action none will count into negative time, and stop will show the place holder. To get around this, we have added an event after the countdown with duration of 00:00:00 and set end action to Load Next for the countdown event. I would like an option that stops the clock at 00:00:00. Maybe this is another option under End Action?

cpvalente commented 3 months ago

I understand, this is a good use case, thank you for this.

As a workaround for now, would the End Message field in the Settings > View tab provide what you need?

5pinDMX commented 3 months ago

Without diving into the css file, the styling for the clock appears different than an end message and is not displaying how we'd like it to. Thank you for your quick response and thank you for considering my request.

cpvalente commented 3 months ago

I see.

We are currently working with v3, so this would have to wait until we are at least in beta. There are some good suggestions here and we will make sure to take them into consideration

Meanwhile, you could try and find a selector for the end time and apply styles to match

Thank you again

RasterboxOff commented 2 weeks ago

I second the idea of a clock that stops and freezes at zero. For presenters on stage it is the usual indication that the time is up. The clock that counts up has been causing confusion for some inexperienced presenters on my last events and I had to pause the timer manually at zero and then let it blink (when i missed it with one second left it became a joke for the presenter "haha, I can go on forever now", when I missed the moment or forgot to switch from roll to manual, it switched to the next slot, which caused confusion). To stop at zero and maybe blink a few times is a behavior known by both physical clocks and other software and I think it makes sense.

I used the roll feature to "catch up" and switch back to manual control after that. I think a behavior that is common on stage and should be represented in Ontime is the following:

Imagine several presentations in a row. A slot for a presentation is 30 minutes long and it will start with a short intro by the host and switch over to the presenter. Some presenters might need 20 minutes and have time for questions some might take longer, in any case the host will intervene when the clock hits zero. They will ask for the next presenter and we will now jump back to plan - basically back to roll, but will stick at zero for a moment, which everyone understands as the moment to switch. Once the new presenter starts, we catch up to plan again, it might be 28 minutes, or 26... it doesn't really matter because we have slots that have enough leeway for the changes and presentations.

As for the Message feature: it is a good idea to use that, but in many cases we just have a minimal timer pipped into the presenters view of PowerPoint to indicate time. They might just ignore or overlook that if the clock is replaced with text.

cpvalente commented 2 weeks ago

Hi @5pinDMX and @RasterboxOff

Thank you both for your input.

I see the value in this feature and would like proceed with the development. However I have some doubts on how it should be implemented. I have tried to take the thoughts in steps so that we can discuss these efficiently

Should Ontime pause on 0

From a application for time management perspective, I believe it would be incorrect to actually pause the timer and stop progression.

From my point of view, the real value here is in presentation, ie: we dont want the consumers of the timer (potentially a speaker) to experience a negative timer. With this I would conclude that we want to give certain consumers (eg. presenter) the impression that the time stops counting, while keeping things running for the benefit of the production team.

How to coordinate timers that do not pause

Ontime has a few existing strategies to coordinate how data is treated.

Timer types We could create a new timer type count-down-stop-at-0. This would be an explicit step done by the editor / showrunner and will signal to all consumers of the data which are not part of the production or backstage, that we dont want to show negative timers. The consumers could individually choose what to present when the timer is negative.

The downside I see is that we risk cluttering the dataset with flags that are pure presentational and have no affect to the behaviour of the app.

View parameters We could add a view configuration freeze at 0 in some views like the /timer and /minimal. This means that the behaviour would have to be set per consumer and is not explicitely set by the editor. This gives us more control and flexibility and avoids cluttering the timer types.

This could add to complexity of setting up Ontime and unfortunate issues which would not be caught until it is too late(user got to the wrong URL). The (to my best knowledge) underused URL Presets feature could definitely be a good tool here.

I am personally inclined to prefer this second version

Other stuff

There was some other suggestions here that I would also like to address, although I feel they may be related to other tasks

Once the new presenter starts, we catch up to plan again, it might be 28 minutes, or 26...

Do I understand correctly that you would like the time that was overtime by presenter 1 to be retracted to presenter to? So, in the case of 3 presenters with 30 min slots

Presenter 1 speaks for 20 min Presenter 2, has its 30 min + 10 min of leeway, speaks for 35 minutes Presenter 3 ends up with a timer of 35 minutes

Is this correct?

As for the Message feature: it is a good idea to use that, but in many cases we just have a minimal timer pipped into the presenters view of PowerPoint to indicate time. They might just ignore or overlook that if the clock is replaced with text.

I understand you are likely mentioning message as a way to solve the issue of negative timers. But I thought that maybe you have some feedback on how messages should be improved? Lets make messages great!

RasterboxOff commented 2 weeks ago

Hey Carlos,

Thanks for getting back so quickly. It becomes more complicated quickly and definitely interacts with other features in a way, where I think a whole picture is needed to find the right place to put this feature. I hope it is okay, if I even take one more step back when looking at this and to propose even a third way how to get there.

I think that this all plays into the feature to have one (or more) additional timers and the behaviour of - let‘s call this one ‚speaker timer‘ - could be controlled without interfering with the overall schedule.

On the one hand we have the schedule and its cues. In a tightly knit show this will become the source for the timers we use on stage and backstage. On looser designed shows however, the timer that is shown to presenters and moderators often becomes a tool that we use to basically manipulate the people on stage to keep up with the schedule. In this scenario we constantly weave in and out of the planned time, depending on what‘s happening on stage. Sometimes we target the starting time for the next slot, sometimes we set arbitrary times, because we know someone will just keep talking for 5 minutes even after the time ran out. And for this workflow Ontime it’s not very suitable at the moment, since the editor has to change the schedule and put in delays to reflect that. A timer is needed that is actually in an operators control without altering the schedule.

What I think could work:

A dedicated speaker timer that has the following options:

Setting the time on the dedicated Speaker timer

The following options would immediately set and start the countdown accordingly:

Display options of dedicated speaker timer

Speaker timer controls

| +1 | +5 | +10 | -1 | -5 | -10

All this would have to be fully integrated with companion/OSC. Probably a weblink to just these speaker timer controls would also help a lot.

But why?

I think at the moment the adaptation of Ontime often happens in a way where people try to use it instead of a normal speaker timer like the Irisdown Countdown timer for example. Having a countdown is the feature we always need and it would be the ideal place to start making Ontime more known and getting more technicians familiar with it. Once this works well, it will be easier to make the real and more powerful features seen, because Ontime would already have a purpose on the event, albeit the small one of only sending minutes to the stage. The jump from „we used to have printed excel sheets“ to „let‘s fully digitise our whole workflow and have some digital signage going with it.“ is huuuuuge. By having Ontime capable of replacing the classic timers with ease it will spread like wildfire. At least that‘s my opinion from a corpo event perspective.

Sorry for so much text, it escalated. Al

cpvalente commented 2 weeks ago

Hi @RasterboxOff, thank you for this. We have been speaking about how what the ambition is for auxiliary timers and this plays well into it

In truth, this is something that we will likely plan carefully and is unlikely to be done in the near future. We are currently exploring options to having external sources driving auxiliary timers

Having said that, I wonder if the idea of independent timer from the rundown is mutually exclusive to a configuration of the timer view which would stop timers going negative? The latter is likely something simple we could do immediately to help users

What do you think?

RasterboxOff commented 2 weeks ago

Hey @cpvalente Carlos,

That makes a lot of sense.

I was looking for the "freeze at zero" behavior in the timer types, but I understand if that feels cluttering. So a cosmetic option in the view seems fine from my side. It is unlikely that the user will receive the wrong url. These sources will normally be set up once and stay like that until the end of the event.

I wholeheartedly agree that the schedule should keep running in the background, the question is how to switch back to displaying the timer again. What I've been doing was to pause the timer at zero, keep it like that until the next speaker was up, switch to roll mode, hit play to gain control over the timer again and subtract a few minutes if needed.

Ideally this could be streamlined to a less click intensive process? Also: since v3 is not in the stable companion module, is there a way to do that catching up process with OSC? I couldn't find the command to hit the play button in the timer interface after switching to roll mode. So I always needed the interface and mouse to catch up.

This process of "catching up" would need a workflow and the view would have to understand that it switches back to displaying a countdown. It should be doable from the editor or timer control interface, I think. Reloading the view wouldn't be ideal in my opinion, since the view is most likely on some second screen of a laptop with not much of a preview except for a tiny multiview window somewhere.

Really appreciate the search for a solution here.

What do you think is most feasible as an interim solution?

cpvalente commented 2 weeks ago

Hi @RasterboxOff, I will need to think about a solution for the issues described. I believe we are likely looking at different solutions for simply stopping negative timers and for allowing resumable timers

@5pinDMX, am I right to interpret from your request that the option to not show negative timers in the stage timer are for all timers, not on a timer by timer case?

@RasterboxOff Ontime module v4.0.1 is compatible with v3 and should be included in the latest companion release. Could you confirm this?

RasterboxOff commented 1 week ago

Hey Carlos @cpvalente

Sorry for the wait, it's been busy days.

I can confirm that Ontime is included in the current stable Companion version, I got to work with the latest combination of both releases yesterday. I didn't try all the features, but what I used worked instantly and well.

I'm confident a workable solution for a timer that stops at zero will emerge. I'm not 100% sure anymore though, if creating a workaround in the meantime is the most straightforward way, as it might become a feature that pops up and disappears again a few months later. Some who don't follow the reasoning or release notes on GitHub might get confused by it. But that's just a thought, I would certainly appreciate a workaround, too. ¯_(ツ)_/¯