DINF Seminar on Development of DAISY LimSee2
LimSee2
an open-source, cross-platform SMIL2.0 authoring tool
The problem:
SMIL is a very powerfull rich-media language, featuring support for:
- graphical layout (hierarchical, with z-index capabilities...)
- timing and synchronization (including user interactivity and other types of events...)
- adaptivity (to user settings, system configuration...)
- hyperlinking (to external as well as embedded objects...)
- transitions
- animations (for graphical and timing attributes as well)
- etc...
SMIL is XML-based, so:
- SMIL doesn't embbed media objects (images, video/audio clips, text...etc): instead, a SMIL presentation consists in at least one XML file and some external media files (which can be distant or available locally)
- SMIL presentation source code can be edited using a simple text editor or a more sophisticated generic XML editor (maybe DTD-driven)
- SMIL content can be automatically generated using scripts or XML transformation technologies (XSLT)
SMIL is a complex language, because the size of its specification (the extent of its rich-media capabilities).
=> So it needs editing tools that can handle various aspects of the authoring process: layout design, timing specification, encoding support, document preview...
The solution:
LimSee2 is:
- soon going to reach its 2 years of existence.
- an open-source software.
- a cross-platform application that runs on Windows, Linux, and MacOSX.
- distributed as an easy-to-use installer (InstallAnywhere), and can be launched online (Java Web Start)
- It has a website, mailing lists, documentation
[DEMO BEGIN]
Opening of the website pages
[DEMO END]
It has a rich user interface[DEMO BEGIN]
Opening of 2 SMIL presentations in order to present the GUI organisation:
- the ambulant welcome page (very short and simple)
- the "father christmas" presentation (complex, with animations and transitions)
This gives the opportunity to introduce
- drag and drop file open (from local file browser and web browser)
- the tabbed interface (multiple documents open)
- each of the 4 edition views and their specificities:
Although each view provide a particular abstraction level to the SMIL language, they all feature edition functions that alter the SMIL source code direclty.
As a result, all views are synchronized: they show the current state of the SMIL document, and selections in one view will be reflected in all other counterpart views.
[DEMO END]
## LimSee2 is a challenging software project with 3 main objectives, targeting 3 particular use-cases:
- Objective 1:
Ability to create new SMIL presentations from scratch, so that users can rapidely produce rich-media content, from design, test, adjustment, to final delivery.
[DEMO BEGIN]
- Opening of an existing presentation with accessibility features (video captioning, in several languages), and hyperlinking => play in external player (with system captions on, language preferences...etc)
- Creation of the presentation from an empty new document
=> automatic ID creation for video, but manual edition for subtitles
=> automatic creation of regions when inserting new medias, or use of existing regions.
[DEMO END]
- Objective 2:
Ability to open existing presentations (whatever method was used to create this content in the first place), so that refactorings/fine-tuning/enhancements can be made to the document.
[DEMO BEGIN]
Opening of an existing SMIL presentation that contains errors (not-well formed XML, SMIL validation).
Here we focus on:
- - the incremental open function for not-well-formed XML documents
- - the source view which provides a simple text editor with syntax hilighting, search/replace with token hilighting, and pretty-formating. (This view is not structured, so only selections of XML elements are reflected to/from the other views)
- - Change doctype, encoding
Draw attention to the design of the slide show:
- - menu entries are images
- - menu bullet shows current presentation advancement (and is made of several images)
- - menu hyperlinking uses source links '<a href="..."/>' pointing to target links '<anchor id="..."/>' located within the video.
=> clicking a menu changes the video time offset, and the player takes care of synchronizing the slide that match the corresponding time stamp.
=> from the authoring standpoint, this introduces an issue: linking and slide timing are separated.
[DEMO END]
- Objective 3:
Ability to generate SMIL content using template-based methods, so that repetitive authoring tasks can be automated.
[DEMO BEGIN]
This capability introduces a key benefit for content maintenance issues: some sort of meta-language stores the "core" presentation data, and a template function inputs this data to generate the actual SMIL content.
LimSee2 provides a dedicated user interface to edit the core data.
As a result, maintenance is made on the core data, not on the SMIL content.
This 2-stage authoring technique allows the separation of content description and custom presentation caracteristics (visual layout, timing, linking ...).
Draw attention to the design of the slide show:
- menu entries are formatted text (external RealText files were created)
- menu bullet shows current presentation advancement (and is made of a single image moving from one region to the next)
- menu hyperlinking uses source links '<a href="..."/>' pointing to target elements corresponding to specific slides
=> as a result, changes a slide timing will automatically update the link destination within the global presentation time.
[DEMO END]
Conclusion, perspectives:
LimSee2 fulfills major authoring requirements, but we have plenty of ideas for new developments:
indeed, there are still many unimplemented use-cases such as automatic generation of accessible presentations, using captioning for example.
LimSee2 in fact welcomes suggestions, remarks, and development task force as well !
LimSee2 is an active project, releases are frequent. Please make sure to check the website regularly.
Thank you for your attention, I hope you enjoyed this presentation.
Daniel WECK
Technical project manager
Main developer
Nabil Layaida
Senior research officer
Scientific leader