-
-
Notifications
You must be signed in to change notification settings - Fork 16.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Notes: Introduce alternate pacing timer, based on total presentation time #2400
Conversation
@aspiers, since you're the original author of this feature, would you be so kind to take a look and see if you think this is useful? |
Brilliant idea, I love it! Couple of thoughts:
|
@aspiers Thanks for looking into this!
That's a good point.
Right, in the future; I'll leave the elliptic-curve implementation involving lambda calculus to you. ;) I do have a couple of lower-hanging fruit though that I might still want to fix, after sleeping on this for a night:
¹ What's a good default? Probably 0, because people might use Lessig style slide decks and go really really fast. |
@aspiers: patch updated.
|
@fghaas commented on May 10, 2019 8:52 AM:
Makes sense.
IIUC the former feels like a regression in behaviour, and would make decreasing amounts of sense the further through the deck you are when you click. If
Well, 0 seconds per slide is infinitely fast, so that doesn't make much sense to me ;-) I'd suggest 2 seconds per slide as a minimum, since that gives a speaker just about enough time to load a slide (including heavy images etc.) and make a split-second decision to skip it.
I thought I only made an observation rather than any helpful suggestion, but OK :-)
Yeah IMHO that's too hidden.
If it always appears as soon as the deck loads then shouldn't this be fine, assuming that any sane presenter will try loading their deck at least once before the actual live presentation? But even if that still worries you for some reason:
Yes, I think that could be an OK place for it, maybe even in addition to the Either way, the important thing is to phrase the warning in a way which makes it clear how to fix the issue. |
@aspiers Having run through some talk rehearsals using this, I have come to the conclusion that the click behaviour needs no changes at all. It's perfectly useful as-is, particularly during practice runs.
No it wouldn't appear right when the deck loads but when you open the speaker view — but your comment still applies; any sane speaker would rehearse with notes at least once before presenting. |
…time The current pacing timer operates on the assumption that there is a default amount of time to be allocated to each slide, and that individual slides can deviate from that default by specifying their own data-timing attribute. This patch introduces an alternate pacing method: by specifying the totalTime configuration option, the presenter can set the total time available to present. The pacing timer will then continue to allocate the exact pacing time for slides that do have data-timing set, as before. However, rather than applying the defaultTiming constant to all others, it will - Add up the time already allocated to slides via data-timing; - subtract that from totalTime; - divide the difference by the number of slides without data-timing set; - apply the thus-calculated average to those slides. totalTime has no default, and if both defaultTiming and totalTime are set, totalTime wins. This preserves backward compatibility: if a presenter has set defaultTiming and updates reveal.js, totalTime will be null and defaultTiming is still applied to all slides without a data-timing attribute. The presenter can then switch to the automatic calculation, if desired, by setting a value for totalTime.
@fghaas commented on May 12, 2019 3:54 PM:
Cool :-)
Ah OK, that sounds fine: if they don't rehearse with notes then I guess they aren't planning to use them at all, in which case timing is irrelevant anyway. |
Completely agree. |
@hakimel Courtesy ping here, in case you want to consider merging this. Thank you! |
This is great! Will test it out and merge soon. |
When using the totalTime-based pacing calculation, a presenter may inadvertently set totalTime and per-slide data-timing attributes in such a way that the pacing time for some slides is impossibly low or even negative. Add a check to ensure that the pacing on a slide never falls below a configurable minimum, defaulting to 0. Display an alert if the pacing for any slide(s) falls below the threshold.
@hakimel, I added one more force-push that removes the word "calculated" from the pop-up alert, because the alert does (intentionally) also complain if any diff --git a/plugin/notes/notes.html b/plugin/notes/notes.html
index ac6b11d..fdb81ad 100644
--- a/plugin/notes/notes.html
+++ b/plugin/notes/notes.html
@@ -577,7 +577,7 @@
}
var slidesUnderMinimum = timings.filter( function(x) { return (x < minTimePerSlide) } ).length
if ( slidesUnderMinimum ) {
- message = "The calculated pacing time for " + slidesUnderMinimum + " slide(s) is under the configured minimum of " + minTimePerSlide + " seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).";
+ message = "The pacing time for " + slidesUnderMinimum + " slide(s) is under the configured minimum of " + minTimePerSlide + " seconds. Check the data-timing attribute on individual slides, or consider increasing the totalTime or minimumTimePerSlide configuration options (or removing some slides).";
alert(message);
}
callback( timings ); |
Merged! Thanks for a great PR @fghaas. I recently added support for total time to the slides.com speaker view as well. My goal is to bring over some of that design to the reveal.js speaker view. More specifically;
|
Now that hakimel/reveal.js#2400 has landed, this no longer needs to point to my personal fork.
Now that hakimel/reveal.js#2400 has landed, this no longer needs to point to my personal fork.
The current pacing timer, introduced in 715cf0b (#1564), operates on the assumption that there is a default amount of time to be allocated to each slide, and that individual slides can deviate from that default by specifying their own
data-timing
attribute.This patch introduces an alternate pacing method: by specifying the
totalTime
configuration option, the presenter can set the total time available to present. The pacing timer will then continue to allocate the exact pacing time for slides that do havedata-timing
set, as before. However, rather than applying thedefaultTiming
constant to all others, it willdata-timing
;data-timing
set;totalTime
has no default, and if bothdefaultTiming
andtotalTime
are set,totalTime wins
. This preserves backward compatibility: if a presenter has setdefaultTiming
and updates reveal.js,totalTime
will benull
anddefaultTiming
is still applied to all slides without adata-timing
attribute. The presenter can then switch to the automatic calculation, if desired, by setting a value fortotalTime
.