JavE - JMOV Specification

 
 
 
 
 

JMOV (JavE Movie) file format specification V1.2

A jmov-file is a plain text file. To save space and reduce download time jmov-files can be ZIP-compressed. The JavE player and any other software supporting the JMOV format should recognize and load the file regardless of the file name or ending (so you can also rename the compressed file to *.jmov).

Example

Here is an example with three frames:
J:A80 50 %0%0%0
T:Freehand Generic
A:resize plate

J:A80 50 %0%0%0%0%0%31 .%0%30 / \%0%29 ;%3 :
T:Ellipse Algorithmic
A:draw ellipse

J:A80 50 %0%0%0
S:24 15 A16 7 %7 .%0%6 / \%0%5 ;%3 :%0%5 |%3 |
T:Selection
A:select

Each frame starts with "J:" as this is the command for a new frame. The lines after a new frame contain optional commands and information for this frame.

Have a look at the table below for a list of all the commands currently specified. Empty lines or lines that do not start with an unknown command are being ignored.

However you can always add new commands to the specification - just let me know so I can update the table.

JMOV Commands

Command and Syntax Description Example
J:CODE A frame of Ascii characters.
  • CODE: the compressed frame of Ascii characters. You don't have to care about compression/uncompression, for there is a class AsciiPacker.java that does all the work for you with two simple methodes.
    Have a look at the source code for more information about compression.
When CODE is empty the content is the same as in the frame before without change.
J:A7 3  \-/%0J|a|V|E%0 /-\
S:X Y CODE A selection placed over the current frame:
  • X, Y: the coordinates for the rectangular selection.
  • CODE: the compressed content of Ascii characters in the selection.
S:15 8 A3 3 __/%0\,/%0_|_
|:CURSOR_X CURSOR_Y Cursor coordinates. Those might only be of interest when using a JavE Movie to show how an ASCII art image has been drawn.
  • CURSOR_X: x coordinate of the cursor
  • CURSOR_Y: y coordinate of the cursor
|:8 12
^:SCROLL_X SCROLL_Y Coordinates of the upper left character the editor window has been scrolled to. This information is used by JavE but it does not seem to be important for player software.
  • SCROLL_X: x coordinate.
  • SCROLL_Y: y coordinate.
^:2 3
T:TOOL The editing tool that has been used to get to this frame.
  • TOOL: a string describing the tool.
T:Freehand
A:ACTION The editing action that has been performed to get to this frame.
  • ACTION: a string describing the editing action.
A:draw rectangle
@:EMAIL Information about the author of this file.
  • EMAIL: the author's email address
Only the first appearance of this command in a JMOV file is being used.
@:markus@jave.de
N:NAME Information about the author of this file.
  • NAME: The author's name(s)
Only the first appearance of this command in a JMOV file is being used.
N:Markus Gebhard
*:INFORMATION Information about the software that has been used to create this JavE Movie.
  • INFORMATION: a string describing the software.
Only the first appearance of this command in a JMOV file is being used.
*:JavE1.1 http://www.jave.de
D:DATE The date this JavE Movie has been created.
  • DATE: a string describing the date.
Only the first appearance of this command in a JMOV file is being used.
D:28th June 2001
C:BACKGROUND FOREGROUND Color information for foreground (font) and background.
  • BACKGROUND: hexadecimal description of the background color (like in html)
  • FOREGROUND: hexadecimal description of the foreground color (like in html)

The color will also be used for all subsequent frames - until it is overwritten by a new "C:" command.

If there is no "C:" command in the JMOV file a viewer will use black on white as default value (or the applet parameter when using the JavE Player Applet).

C:#000000 #FFFFFF
+:DURATION Timing information: for how long the current frame is visible at normal speed.
  • DURATION: time in milliseconds

The time will also be used for all subsequent frames that do not have timing information - until it is overwritten by a new "+:" command.

If there is no "+:" command in the JMOV file, a viewer will use about 66ms (15 frames per second) as default value (or the applet parameter when using the JavE Player Applet).

+:200
# Sound trigger. This will trigger the playback of an audioclip (if there is one attached by using the applet parameter for this frame.
  • #

The trigger is only set for the current frame. You can set it to multiple frames to trigger the same sound more often than once.

Sound triggers are not neccessary if you want to start playback when playing the movie.

#

Applet Parameters

There are some options for the JavE Player Applet that can be specified in the html source code.

Suppose your JavE movie has the name "movie.jmov" your html document must at least contain this code:

<APPLET CODE="JavePlayerApplet.class" archive="javeplayer.jar" WIDTH=570 HEIGHT=497>
  <PARAM NAME="FILE" VALUE="movie.jmov">
  <h3>!!! Your browser is not not configured or able to run Java Applets !!!</h3>
</APPLET>
Parameter Description Example
FILE The file name of the JMOV file to show in the player.

This is the only parameter that has to be specified - all the others are optional.

<PARAM NAME="FILE" VALUE="movie.jmov">
FOREGROUND The foreground color of the player in html syntax.

Will only be used if there is no color specified in the JMOV file.

<PARAM NAME="FOREGROUND" VALUE="#FFFFFF">
BACKGROUND The background color of the player in html syntax.

Will only be used if there is no color specified in the JMOV file.

<PARAM NAME="BACKGROUND" VALUE="#000000">
DURATION Timing information: for how long (in milliseconds) each frame is visible at normal speed.

Will only be used if there is no timing information specified in the JMOV file.

<PARAM NAME="DURATION" VALUE="100">
AUTOSTART The player will start playing the movie if the value is 1. By default it will wait for the user to click "play". <PARAM NAME="AUTOSTART" VALUE="1">
LOOP The player will repeat the movie infinite times if the value is 1. By default it will only show it once. <PARAM NAME="LOOP" VALUE="1">
CONTROLS Specifies the number of control buttons and additional information the player will show:
  • 0: Do not show any controls (play/pause works by mouseclick on the window)
  • 1: Only show the buttons for play/pause/stop/...
  • 2: Show all controls (default)
<PARAM NAME="CONTROLS" VALUE="1">
SOUND Name of a sound file to be played at play().

To work with any available browser the audio file must be in *.au format, recorded at 8 KHz, mono, in mu-law encoding. If your audio clip is in a different format (e.g., .wav) or a different frequency it must be converted to the exact specifications above before Java can play it. To convert files from different formats search your favorite for GoldWave for Windows, sox for Unix and similar conversion utilities for other systems.

<PARAM NAME="SOUND" VALUE="waltz.au">
SOUNDSTART Specifies when to play the sound file:
  • ONCE: Plays the audioclip once when playing the movie.
  • LOOP: Loops the audioclip during playback of the movie.
  • EVENT: Plays the audioclip whenever there is a sound trigger frame in the movie file
<PARAM NAME="SOUNDSTART" VALUE="EVENT">
Valid XHTML 1.0!
© Markus Gebhard (markus@jave.de), 2000 - 2009
last modified: Apr 10, 2009