-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Description
Software Carpentry is moving its Python lessons (and eventually other content as well) over to the IPython Notebook. As part of that, we would like to replace our video screencasts with something that replays a Notebook session in the browser, in sync with an audio voiceover. We want to do this because:
- People can't pause a video, then copy and paste its text, because there is no text: there are just pixels arranged to look like letters.
- For the same reason, the code in videos is invisible to search engines.
- We also can't diff and merge videos in version control the way we can diff and merge source code and Notebooks.
- And video is inherently less adaptable to new platforms (e.g., tablets and smart phones) than first-class content that's rendered in the best way for whatever device the user has.
In the long run, we'd like users to be able to:
- Press "Play".
- Watch the Notebook reconstruct itself in sync with a voiceover.
- Press "Pause".
- Do some experimenting (e.g., fill in a short exercise, play with parameters for graphs, etc.).
- Press "Reset" to put things back the way they were.
- Press "Play" again to continue with the "main line" of the presentation.
Implementing this kind of "what if?" will be difficult, because we'd have to clone and restore the state of the back-end engine, but a "replay only" tool would still be very useful: at least as useful as our existing screencasts. From discussion with Brian Granger, Min RK, and Bobby Richter (of Mozilla), it looks like "replay only" could be done as a plugin without any changes to the Notebook itself:
- Popcorn.js and a little bit of custom Javascript can be used to synchronize a soundtrack (e.g., an MP3 voiceover) with updates to the Notebook's cells.
- The Notebook now allows per-cell metadata, so timing information (e.g., when to start displaying this cell and how long to take filling it in) can be embedded without format changes.
The workflow we envision is:
- Author spends minutes, hours, or days incrementally building up the notebook.
- Author puts notebook in "mark time" mode.
- Author records audio her favorite desktop tool while clicking "next" in the notebook to insert time marks into metadata.
- Author saves audio and inserts URL into notebook.
- Time passes.
- Audience opens notebook in browser (either local or web copy---audio file may be local or web as well).
- Audience presses "Play".
- Notebook incrementally reconstructs itself in sync with voiceover.
- Audience can use "Rewind", "Fast Forward", "Pause", "Go To Cell" (jumps the audio) or "Go To Time" (jumps the notebook) at will.
Please add comments on this ticket if you have suggestions or design ideas, or want to help build, test, and use this widget.