QCShow Player
Download Free QCShow Player

Using the Player

The Philosophy of QCShow


Create Your Own Presentations
Create Your Own Presentations with QCShow Author

Download a 30-day Trial of QCShow Author

Pricing and Ordering

Instruction Manual


Examples
Public Lectures on Natural History and Exploration

Pathology Residency Training

Lectures Created by High School Students

"Mark Twain," a Demonstration of What Can Be Done in QCShow


Technical Notes
How QCShow Works

How to Build Your Own Authoring Tool


Support
Support Contact Information


How QCShow Works

A QCShow presentation is built as a series of independent frames, which we call "slides." At their simplest, a slide consists of only one image and one sound file, choreographed by a governing script file. You'll see this structure in the sample script below.

The advantages of constructing QCShow in this manner are several:

  • The sound files can never become desynchronized from the image slides that they're describing.
  • This construct allows for the very high speed search mechanism in QCShow Player, allowing you to very easily flip between slides.
  • Downloading the lecture in pieces allows the presentation to begin before the entire file is downloaded.

The communications aspect of QCShow is built around the protocol of the web browser, HTTP (hypertext transfer protocol). There are several compelling reasons for this choice, all of which center around convenience, ease-of-use and familiarity. Each of these reasons works to greatly reduce your costs in putting your own lectures up on the web.

The specific reasons for choosing the HTTP protocol are:

  • Almost every organization now has a webserver, either situated physically on their property or contracted from web hosting organization. Inserting a QCShow-formatted lecture onto this server is no more difficult than putting up a very basic web page. It's simply a matter of FTP'ing the lecture's material to the appropriate location on the server.
  • As the intensity of cyberattacks has increased, many corporate firewalls have become very restrictive. HTTP and email are often the only two internet protocols that remain allowed through most firewalls nowadays.
  • Web server access is simple and quite secure. A lecture in QCShow, like the simplest static web pages, only retrieves information. QCShow never attempts to upload anything to the server, nor could it even if it wanted to. The remote web server won't allow it, and for this reason, HTTP is considered to be the safest of all of the existing internet protocols.
Although you might not think of it immediately after watching a QCShow lecture, QCShow Player acts very much like a web browser.

The similarities in the basic architecture of the two processes are obvious when once explained however. Both applications work off of a script. For a web browser, the script is written in HTML (hypertext markup language). In QCShow, the script language is called van Gogh. The purpose of the script in both applications is to (i) act as a directory, telling the application where to find the various files necessary to draw the page, and (ii) as a layout orchestrator, specifying how the page is to be drawn.

In both applications, the first item downloaded from the remote server is the script. In a classic web browser, the outline of the page is drawn as soon as the script is present. The image and sound files are then downloaded and populate the page as they arrive. In QCShow Player, the process is reversed. The "pages" are not displayed until all of the component pieces specified for a slide have been downloaded.


A Sample Script


The van Gogh script below is an actual script file for a QCShow lecture. The file is complete, with the exception of some very similar code that has been excised for clarity in the middle of the script. Each section of the script will be explained in detail below.

%info
    /name {em-clifford.qcshow}
    /version {1.0}
    /title {Evolution of the Early Martian}
    /title {Hydrosphere and Climate}
    /author {Stephen Clifford}
    /organization {Lunar and Planetary Institute,}
    /organization {Houston, Texas}
    /comments {Second Conference on Early Mars}
    /comments {Jackson Hole, Wyoming}
    /comments {October 14, 2004}
    /data {kbps 46 length 1541 filesize 7231972}
%endinfo
==========================================
%resource
    /resource {em-clifford001.jpg [71898] em-clifford001.ogg [18811]}
    /resource {em-clifford002.jpg [91392] em-clifford002.ogg [77838]}
    /resource {em-clifford003.jpg [51160] em-clifford003.ogg [82915]}
    /resource {em-clifford004.jpg [132201] em-clifford004.ogg [126728]}
    /resource {em-clifford005.jpg [54038] em-clifford005.ogg [64412]}
    /resource {em-clifford006.jpg [180114] em-clifford006.ogg [63392]}
    /resource {em-clifford007.jpg [138848] em-clifford007.ogg [88644]}
    /resource {em-clifford008.jpg [77415] em-clifford008.ogg [42291]}
    /resource {em-clifford009.jpg [74382] em-clifford009.ogg [176096]}
    /resource {em-clifford010.jpg [46386] em-clifford010.ogg [138152]}
    /resource {em-clifford011.jpg [58442] em-clifford011.ogg [87365]}
    /resource {em-clifford012.jpg [126423] em-clifford012.ogg [201968]}
    /resource {em-clifford013.jpg [152650] em-clifford013.ogg [91239]}
    /resource {em-clifford014.jpg [115436] em-clifford014.ogg [173416]}
    /resource {em-clifford015.jpg [125701] em-clifford015.ogg [80501]}
    /resource {em-clifford016.jpg [134063] em-clifford016.ogg [173636]}
    /resource {em-clifford017.jpg [70116] em-clifford017.ogg [366280]}
    /resource {em-clifford018.jpg [126423] em-clifford018.ogg [60778]}
    /resource {em-clifford019.jpg [54038] em-clifford019.ogg [73550]}
    /resource {em-clifford020.jpg [71229] em-clifford020.ogg [234340]}
    /resource {em-clifford021.jpg [93866] em-clifford021.ogg [23534]}
    /resource {em-clifford022.jpg [152085] em-clifford022.ogg [28045]}
    /resource {em-clifford023.jpg [72457] em-clifford023.ogg [73711]}
    /resource {em-clifford024.jpg [83248] em-clifford024.ogg [41770]}
    /resource {em-clifford025.jpg [79170] em-clifford025.ogg [28677]}
    /resource {em-clifford026.jpg [77415] em-clifford026.ogg [23598]}
    /resource {em-clifford027.jpg [69462] em-clifford027.ogg [88888]}
    /resource {em-clifford028.jpg [58731] em-clifford028.ogg [182034]}
    /resource {em-clifford029.jpg [52810] em-clifford029.ogg [115375]}
    /resource {em-clifford030.jpg [66229] em-clifford030.ogg [54237]}
    /resource {em-clifford031.jpg [65091] em-clifford031.ogg [97519]}
    /resource {em-clifford032.jpg [101090] em-clifford032.ogg [95421]}
    /resource {em-clifford033.jpg [122403] em-clifford033.ogg [50452]}
    /resource {em-clifford034.jpg [75653] em-clifford034.ogg [180235]}
    /resource {em-clifford035.jpg [127430] em-clifford035.ogg [158243]}
    /resource {em-clifford036.jpg [127381] em-clifford036.ogg [191005]}
    /resourceserver {http://www.myserver.org/lectures/earlymars/em-clifford/resources/}
%endresource
==========================================
%slide
    /play {em-clifford001.ogg}
    /image {0 0 em-clifford001.jpg}
%endslide
==========================================
%slide
    /play {em-clifford002.ogg}
    /image {0 0 em-clifford002.jpg}
%endslide
==========================================
%slide
    /play {em-clifford003.ogg}
    /image {0 0 em-clifford003.jpg}
%endslide
==========================================
%slide
    /play {em-clifford004.ogg}
    /image {0 0 em-clifford004.jpg}
%endslide
==========================================
%slide
    /play {em-clifford005.ogg}
    /image {0 0 em-clifford005.jpg}
%endslide
==========================================
        •
        •
        •
        •
==========================================
%slide
    /play {em-clifford034.ogg}
    /image {0 0 em-clifford034.jpg}
%endslide
==========================================
%slide
    /play {em-clifford035.ogg}
    /image {0 0 em-clifford035.jpg}
%endslide
==========================================
%slide
    /play {em-clifford036.ogg}
    /image {0 0 em-clifford036.jpg}
%endslide
==========================================


The Syntax and Structure of a van Gogh Script


These few rules govern the syntax of a van Gogh script:
  • Lines that begin with any character other a "%" or a "/" are regarded as comments. Blank lines in the script thus do no harm.
  • Code sections are specified by "%" symbols.
  • Verbs (commands) are specified by a leading "/". The operands of the verb are enclosed within matching braces "{ }".
  • Multi-line commands are not allowed in van Gogh. All commands must be completed on one line (of unlimited length) and terminated by a carriage return character.
  • All leading and trailing blanks are trimmed before the line is interpreted. Indentions, of any depth, are present only for readability. They are otherwise unnecessary.
A van Gogh script has three major divisions:
  • The Info Section, which is specified by the "%info" and "%endinfo" markers, provides details about the lecture. This is the only section whose inclusion is optional, but the information provided is valuable not only to the Player but to the viewer as well. The verbs used in this section will be explained below.
  • The Resource Section, specified by the "%resource" and "%endresource" markers, outlines the complete list of sound, image and font files that will be required by the current lecture. This section also specifies the URL of the remote server where these files may be found if they are not already locally present.
  • The Slides Specification Section, specified by the "%slide" and "%endslide" markers, lists the components necessary to draw each individual slide and how the slide is to be assembled. In the simple script example shown above, one full-screen image and one sound slice comprises each slide.


The Info Section


%info
    /name {em-clifford.qcshow}
    /version {1.0}
    /title {Evolution of the Early Martian}
    /title {Hydrosphere and Climate}
    /author {Stephen Clifford}
    /organization {Lunar and Planetary Institute,}
    /organization {Houston, Texas}
    /comments {Second Conference on Early Mars}
    /comments {Jackson Hole, Wyoming}
    /comments {October 14, 2004}
    /data {kbps 46 length 1541 filesize 7231972}
%endinfo

The following verbs are used in the Info Section. Their order of appearance in the script is generally irrelevant except for those verbs which accumulate text (/title, /author, /organization, and /comments. The text for each of these verbs represents one printed line in the information display and will be presented in the order in which the verbs appear).

/name {save name}
If this verb is not present, QCShow will attempt to create its own file save name, but due to the vagaries of the several web browsers, the name can occasionally be quite strange. With this verb present, the specified name takes precedence and will be the name of the script file created on the local PC.

Example:
    /name {em-clifford.qcshow}
/version {version number}
The version number specifies the minimum release version of the Player that will support all of the features used in the current presentation. If the user's Player version is less than the value specified, then the user will be asked to download a newer version of the Player software before he view the current talk.

Example:
    /version {1.5}
/title {text}
The text specified by the title verb will be displayed verbatim on the information display screen, in the order that the verbs appear. Text should be limited to 40 characters or less.

Example:
    /title {Evolution of the Early Martian}
/author {text}
The text specified by the author verb will be displayed verbatim on the information display screen, in the order in which the text lines appear. Text should be limited to 40 characters or less.

Example:
    /author {Stephen Clifford}
/organization {text}
The text specified by the organization verb will be displayed verbatim on the information display screen, in the order in which the text lines appear. Text should be limited to 40 characters or less.

Example:
    /organization {Lunar and Planetary Institute}
/comments {text}
The text specified by the comments verb will be displayed verbatim on the information display screen, in the order in which the text lines appear. Text should be limited to 40 characters or less.

Example:
    /comments {October 14, 2004}
/data {kbps bitrate length seconds filesize bytes}
The data verb has three parameters, length, filesize and kbps, which may appear in any order. The run time of the lecture in seconds is specified by the length parameter; the file size of the complete lecture is specified in bytes; and the estimated bit rate is specified in kilobits/second and is calculated by the formula:

bitrate = filesize/length * 8 / 1000 bits/bytes
+ 8 kbps

Example:
    /data {kbps 46 length 1541 filesize 7231972}


The Resource Section


%resource
    /resource {em-clifford001.jpg [71898] em-clifford001.ogg [18811]}
    /resource {em-clifford002.jpg [91392] em-clifford002.ogg [77838]}
    /resource {em-clifford003.jpg [51160] em-clifford003.ogg [82915]}
        •
        •
        •
        •
    /resource {em-clifford035.jpg [127430] em-clifford035.ogg [158243]}
    /resource {em-clifford036.jpg [127381] em-clifford036.ogg [191005]}
    /resourceserver {http://www.myserver.org/lectures/earlymars/em-clifford/resources/} *
%endresource

Only two verbs are used in the Resource Section, /resource and /resourceserver. The resource list is a compilation of all of the image, sound and font files that appear in the current lecture. The list is considered terminated once the /resourceserver verb is encountered. Both verbs are mandatory.

/resource {filename [optional filesize]}
The list of image, sound and font files used in the current lecture is specified by a series of /resource verbs. Any number of files can be specified within the braces of a single verb, and any number of /resource verbs may be used to complete the list. The size of each file is optionally specified in bytes in brackets "[ ]" immediately following the file's name.

If all of the files in the resource list have a filesize specified, the Player can calculate how many files must be downloaded before play can safely begin. If any single file is absent its filesize, the Player will simply resort to beginning play after all of the components of the first two slides have been downloaded. This latter strategy may not prove sufficient under low-bandwidth conditions. In this circumstance, the Player may need to pause frequently to gather more data before it can continue.

If the specified files are not already locally present on the local PC, they are downloaded in the order in which appear in the /resource list. For optimal performance, that order should recapitulate the order in which they are called in the Slide Section below.

The acceptable formats for image files are GIF, JPEG and BMP. The acceptable formats for audio files are OGG and WAV.

Example:
    /resource {em-clifford036.jpg [127381]}
/resourceserver {directory URL}
If any of the image, sound and font files used in the current lecture (as specified above in the /resource list) are not present on the local machine, either in the Player's cache or as part of a lecture folder, then the specified URL (universal resource locator) is used to indicate the directory on a remote server from which the missing files may be downloaded.

The URL in this case is not specifying a single file but rather a directory (a "folder"), thus the URL will always end in a "/", the mark of a directory.

Example:
    /resourceserver {http://www.myserver.org/lectures/earlymars/em-clifford/resources/} *

* Please note that although this example may wrap on your browser's display, it must be written onto the script as a single line.


The Slides Section


==========================================
%slide
    /play {em-clifford001.ogg}
    /image {0 0 em-clifford001.jpg}
%endslide
==========================================
%slide
    /play {em-clifford002.ogg}
    /image {0 0 em-clifford002.jpg}
%endslide
==========================================
%slide
    /play {em-clifford003.ogg}
    /image {0 0 em-clifford003.jpg}
%endslide
==========================================

Slides are defined as independent entities. All of the information necessary to create and play a slide is contained within the %slide declaration. The slide declarations are not numbered. They simply play in the order listed.

In QCShow, a lecture that contains 36 slides is broken into 36 separate audio files. The length of each sound file determines the display time of its respective slide. When the audio file for Slide 14 comes to an end, Slide 15 begins to play immediately.

The discretization of the slides into separate sound files is the mechanism by which high-speed searches are allowed. In order to insure that the sound and images never become desynchronized, all of the timings associated with a slide are derived from the sound file. Although multiple images may populate a slide, only one sound file exists for each slide.

A slide will not begin play until all of the components listed in the slide's declaration have been downloaded and decoded. As soon as the current slide begins to play, the sound and image files associated with next slide are begun to be decoded in background.

If everything specified for the next slide is decoded by the end of the current slide, the next slide begins immediately. If not, the Player will pause until either the necessary files have been downloaded or decompressed.

The van Gogh script language that forms the backbone of QCShow is not only a sequencer script but also a full graphics description language, not unlike PostScript, but designed for graphical display (in pixels) rather than printed output (in points).

van Gogh operates against an 800 x 600 pixel graphical canvas, with the origin (0,0) appearing in the upper left corner of the display. A minimal slide definition must contain at least one image file and one sound file, and that is the architecture of the slides shown above. The image files shown are 800 x 600 pixels. They thus fill the display screen.

Although the van Gogh language is graphically rich, only two of its verbs are used in the script above, /play and /image:

/play {audiofilename}
The specified sound file is begun to play. The acceptable formats for sound file are OGG and WAV, although a WAVE file would never likely be transmitted through the internet, simply due to its size.

Example:
    /play {em-clifford036.ogg}
/image {x y imagefilename}
The upper-left corner of the image is placed on the screen at the specified x,y coordinates. The acceptable formats for an image file are GIF, JPG, JPEG and BMP, although a BMP bitmap would likely never be transmitted through the internet, simply due to its size.

Example:
    /image {0 0 em-clifford036.jpg}
The 800 x 600 pixel canvas is used for two reasons:
  • the size of the image file that must be downloaded is proportional to the square of the ratio in screen resolutions, thus the size of the files is greatly reduced when a smaller screen resolution is used.
  • a higher screen resolution is not necessary. For a JPEG image presented at 800 x 600 screen resolution, more pixels exist in the image than most monitors can display. Higher screen resolutions simply result in information being discarded.
The Player automatically sets the PC display to an 800 x 600 screen resolution when in full-screen mode.


QCShow Player   QCShow   AICS Research

Top    Atmar    Hosted by 3kRanger.com    email 3kRanger    Updated