Home | Java |     Share This Page

A multimedia presentation workshop.

Copyright © 2019, Paul LutusMessage Page

Current Version: 2.2 (03/05/2019)

Description | Download Options | Revision History


MagicLantern is a multimedia presentation workshop written in Java.

MagicLantern is Copyright © 2019, Paul Lutus, and is released under the GPL. For an end user, release under the GPL essentially means MagicLantern is free (as in free speech, not as in free beer).

Because MagicLantern is written in Java, it can be run on virtually any platform — Windows, Linux, Macintosh, and others. This means if you create a multimedia presentation on one platform, it can be transferred and displayed on another, using the same program.

Here are some key MagicLantern features:

  • MagicLantern uses your present library of photographic and other images to create multimedia presentations.
  • MagicLantern has an advanced editor that supports drag & drop methods and accepts images dragged from your system's file browser as well as its own editing windows.
  • MagicLantern supports modern multimedia projectors and is compatible with the majority of multimedia remote controls.
  • MagicLantern is designed to be intuitive and easy to use.
  • MagicLantern can play user-provided sound effects keyed to specific images.
  • MagicLantern creates its own thumbnails and scaled images to optimize presentations.
  • MagicLantern can be programmed to deliver multimedia presentations automatically.
MagicLantern copying policy
Oh, please do ... copy it and give it to your friends.
MagicLantern selling policy
Don't even think about it. MagicLantern is free to everyone, and cannot be sold under any circumstances.


If you are under 30 years of age, you can skip this section — it doesn't apply to you.

MagicLantern is officially and formally released under the GPL license, but it is also a CareWare release. Basically, this means in exchange for MagicLantern, you could be extra nice to someone, or stop whining about how hard your life is, at least for a while. And it's voluntary — I am not the police and CareWare is an idea, not a rule. Ideas aren't laws and there are no idea police — at least, not yet.

My adult readers will now realize why I recommended that those under 30 skip this section. For those under 30, life is totally unfair, and if only life were just, they would be richer, smarter, and better-looking than they are. For those over 30, life is what is, we don't get to tell life how things are supposed to be, and our only job is to figure out how it works.

So ... just be nice. If you are already nice, be a tiny bit nicer, and you will have paid for MagicLantern. And if this idea annoys you, ignore it. MagicLantern is free.


Click here to see a copy of the MagicLantern documentation that ships with the program. The online copy is missing a number of data items that are automatically filled in by the program when it runs. The help page displayed within MagicLantern is in every way better.

Download Options

There are three MagicLantern download packages:

For all these download options, a current Java runtime engine is required, which can be gotten free at http://java.com.

For Linux and other users who have downloaded the JAR archive, a bit of instruction about launching MagicLantern:

  • Install the MagicLantern JAR archive anywhere convenient.
  • Install a current Java runtime engine by visiting http://java.com.
  • Create a shell script that includes this line:
    java -jar (full path to MagicLantern JAR archive)
  • If you experience memory problems while editing large images, change the script like this:
    java -Xmx1000m -jar (full path to MagicLantern JAR archive)

The Memory Issue

Because MagicLantern manages graphic images, I should explain something about their size. I have a typical semi-professional camera by Canon (a 40D). Its best images are 3,888 by 2,592 pixels in size and might occupy 4 megabytes when stored as compressed JPEG images. But when such an image is read by MagicLantern, it must be uncompressed, and an uncompressed full-color image has this size:

Size = width x height x 3 bytes per pixel

Size = 3,888 x 2,592 x 3 = 30,233,088 bytes

So each of my typical modern images require over 30 megabytes of memory while being processed. As it turns out, on Windows and without special instructions, the current Java runtime engine allocates itself just 66 megabytes. That is entirely inadequate and the Java runtime engine won't adjust its behavior without intervention.

For Linux and Macintosh, the remedy is shown above — create a shell script and edit the launch instruction like this:
java -Xmx1000m -jar (full path to MagicLantern JAR archive)

(I should add that this step is probably unnecessary, because the Linux Java runtime allocates itself enough memory by default, if there is enough memory on the system.)

For Windows, the runtime won't allocate sufficient memory, and the remedy is a bit more complex (as everything is on Windows) — you need to do this:

  • Open a file browser.
  • Select "Tools ... Folder Options ... File types"
  • To save time, when confronted by the list of file types, type "j" at the keyboard. In most cases this will jump to "JAR", the file type of interest. If not, scroll down to get to the entry for "JAR".
  • Click "Advanced", then "Edit".
  • After the string "javaw.exe" and before the string "-jar", put this: "-Xmx1000m".
  • The section of interest should now look like this: "(path)/javaw.exe -Xmx1000m -jar (path to MagicLantern)".
  • Click "OK, "OK" and "Close".

MagicLantern has a memory indicator on its configuration panel, so one can easily verify the outcome for a fix like this.

Revision History
  • 03/05/2019 Version 2.2. Added "Enter" key along with existing "Escape" to activate context switch (a way to show a map or table of contents without having to scroll through slides).
  • 02/03/2019 Version 2.1. Fixed a longstanding code problem that prevented smooth slide transitions using the fade effect.
  • 09/25/2012 Version 2.0. Restored the long-lost "beep" feedback sound, fixed an error in the embedded documentation.
  • 06/29/2010 Version 1.9. Fixed a few small, mostly cosmetic reported bugs.
  • 10/29/2009 Version 1.8. Fixed bug that prevented slide duration entry, added desktop icon to Windows setup.
  • 10/23/2009 Version 1.7. Replaced string-based keyboard identifiers with keycodes for the benefit of non-English users.
  • 03/24/2009 Version 1.6. Optimized and improved the performance of the internal MP3 player.
  • 03/22/2009 Version 1.5. Solved a longstanding sound extension issue by adding an internal MP3 sound player.
  • 03/16/2009 Version 1.4. Refactored and optimized some code sections.
  • 03/13/2009 Version 1.3. Optimized the fade transition code for greater efficiency and speed.
  • 02/23/2009 Version 1.2. Rebuilt the help file support code for better performance, fixed a bug in the sound effect code.
  • 02/21/2009 Version 1.1. Initial public release.

Home | Java |     Share This Page