Whorld Help

Contents

Getting Started
Introduction
License
Requirements
Installing
Uninstalling
Viewing the demo
Parameters
Parameters
Ring Growth
Ring Spacing
Line Width
Ring Sides
Rotate Speed
Aspect Ratio
Skew Radius
Skew Angle
Star Factor
Pinwheel
Color Speed
Lightness
Saturation
Background Hue
Background Lightness
Background Saturation
Even Curve
Odd Curve
Even Shear
Odd Shear
Global Parameters
Patches
Patches
Parameters dialog
Edit Selection
Oscillators
Waveforms
Master Offsets
Oscillator Override
Numbers dialog
Crossfader
Crossfader dialog
Interpolation
Random patches
Playlists
Playlists
Playlist dialog
Editing playlists
Assigning keys
Playing patches
Crossfading patches
Autoplay
MIDI Mapping
Missing Files
Replace Files
Thumbnails
Modes
Signal Flow
View Mix
Origin Motion
Full Screen
Veejay Mode
Mouse Modes
Dual-Monitor
Demo Mode
Pause
Patch mode
Effects
Mirror
Fill
Outline
X-Ray
Reverse
Convex
Master Controls
Speed
Zoom
Damping
Trail
Rings
Tempo
Hue loop length
Canvas scale
Copies
Spread
Color
Color Model
Loop Hue
Rotate Hue
Invert Color
Snapshots
Snapshots
Take Snapshot
Load Snapshot
Snapshot Mode
Slide Show
Export All
Editing Snapshots
Movies
Movies
Recording movies
Playing movies
Exporting movies
Movie Export dialog
Resizing movies
Video Overlay
Video overlay
Playing videos
Video cache
Video blending
Cycling videos
Encoding videos
Linked videos
Video origin
MIDI
MIDI Setup
Property list
Learn mode
Auto-assign
Zero Controllers
Options
Display
DirectDraw
Frame rate
Print from bitmap
Input
Mouse sensitivity
Wheel sensitivity
Tempo nudge
MIDI
MIDI device
MIDI sync
Folder
Default output folder
Use default folder
Loose Ends
Selecting items
Tap Tempo
Export
Panic
Tearing
Performance
Troubleshooting
Main Shortcuts
Playlist Shortcuts

Getting Started

Introduction

Whorld is a free, open-source visualizer for sacred geometry. It uses math to create a seamless animation of mesmerizing psychedelic images. You can VJ with it, make unique digital artwork with it, or sit back and watch it like a screensaver.

Whorld's visualization is controlled via parameters which can be adjusted manually, or modulated by oscillators. A given setting of the parameters and their oscillators form a patch. You can use the demo patches, or create your own.

Patches can be grouped together in a playlist. You can play patches manually, or Whorld can autoplay them for you. Whorld also includes a crossfader, which allows you to interpolate between two patches.

Whorld is optimized for performing. All of its functions can be accessed in full-screen mode, via shortcut keys, mouse or trackball, or MIDI controllers. Whorld can be synchronized to music, using tap tempo, or MIDI clocks.

Still frames can be captured as snapshots, printed, or exported as bitmaps. Whorld can also record movies, and export them as AVI files or numbered bitmaps.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.

Requirements

Minimum:

Pentium III 833MHz
256MB RAM
3-button mouse
Windows 2000 SP4
DirectX 8.1
640 x 480 / 16-bit color

Recommended:

AMD Athlon 64 4000+ San Diego 1GHz FSB
Foxconn NF4K8MC-EKRS Socket 939 Micro ATX
2GB OCZ 184-Pin DDR SDRAM
ATI Radeon X800XL 256MB GDDR3 PCI Express x16
Western Digital SE WD2000JD 200GB 7200 RPM Serial ATA150
ASPIRE X-QPACK-AL/420 MicroATX Case 420W Power Supply
Microsoft Explorer 1.0 optical trackball
X-Session MIDI controller
Windows XP SP2
DirectX 9
1024 x 768 / 32-bit color

Installing

Installing for the first time:

Whorld is distributed as a .zip file. Unzip the distribution file, using WinZip or an equivalent program, and then double-click on Whorld.msi to launch the installer. The installer is about as simple as an installer can be: just keep hitting "Next."

Note that by default, Whorld is installed for the current user only. This means additional users must manually create desktop and start menu shortcuts to Whorld. If this is inconvenient, you may prefer to install Whorld for all users, using the following procedure:

  1. If Whorld is already installed, uninstall it.
  2. Unzip the distribution file into a folder, if you haven't already.
  3. In that folder, double-click AllUsers.bat to launch the installer, and then proceed as usual.

Whorld is optimized for 1024 x 768 resolution, with 32-bit color. At higher resolutions, lines may look too thin, and performance may suffer, especially in full-screen and Veejay mode. At lower resolutions, lines may look jagged, though performance may improve. Whorld does not change the display resolution; you must change it yourself, using the Windows Control Panel.

Upgrading a previous installation:

  1. Unzip the distribution file to a folder, if you haven't already.
  2. In that folder, double-click Upgrade.bat to launch the installer.
  3. In the installer, select the "Repair" option.

Note that double-clicking Whorld.msi won't work: you will get the message "Another version of this product is already installed".

Uninstalling

To uninstall Whorld, use Add/Remove Programs in the Control Panel, or double-click on Whorld.msi and select the "Remove" option.

Viewing the demo

When you run Whorld, you'll see a dialog asking if you want to view the demo. This dialog can be permanently suppressed by checking the "don't show me this again" checkbox. The demo can be viewed later, by selecting View/Demo from the main menu. To stop the demo, select View/Demo again.

During the demo, you can experiment with Whorld's effects. For example, try pressing:

Note that fill and X-Ray may cause the animation to slow down or become jerky; see performance.

Parameters

Parameters

A parameter is a numerical value that affects an aspect of the visualization. Parameters can be adjusted manually, via the parameters dialog, or via MIDI, but they also can be programmed to change automatically, using oscillators.

The visualization is based on rings. A ring is a regular polygon (e.g. a triangle, square, or pentagon) with various distortions applied to it. Rings are born, grow away from the center (or shrink towards it), and eventually die.

Note that almost all of the parameters only affect new rings. The only exceptions are Ring Growth, and the background color parameters. Parameter changes propagate through the image gradually as new rings are born; in this respect Whorld behaves somewhat like a digital delay. To affect all existing rings at once, use the global parameters.

Ring Growth

Ring Growth determines how quickly rings expand, in pixels per frame. It also determines the rate at which new rings are born (the birth rate). Ring Growth can be positive, negative, or zero, as shown below:

positiveRings are born in the center, and grow outward, towards the edges of the canvas; a ring dies when all of its vertices are outside the canvas.
negativeRings are born at the edges of the canvas, and grow inward, towards the center; a ring dies when its radius reaches zero.
zeroRings don't expand or contract, no new rings are born, and none die.

The direction of ring growth can also be reversed using Image/Reverse or the Backspace key.

Ring Spacing

Ring Spacing is the amount of space between each ring, in pixels. Ring Spacing can be as big as you like, but it can't be less than one. It's one of several methods for controlling image complexity, and it's often necessary to increase it when using wide lines or fill, to avoid performance problems.

Line Width

Line Width is the width of each ring, in pixels. It's displayed as a real number, but internally it's rounded to an integer. Note that the default line width of one is a special case: one-pixel-wide lines are typically drawn by hardware and execute much faster than other line widths. Line widths greater than one may cause performance problems. As Line Width is increased, the rings begin to overlap unless Ring Spacing is also increased.

Ring Sides

Ring Sides is the number of sides each ring has. It's displayed as a real number, but internally it's rounded to an integer. It can range from 3 (a triangle) to 50 (an approximation of a circle). Note that large numbers of sides may reduce performance.

Rotate Speed

Rotate Speed is the amount each ring rotates per frame, in degrees. Positive is counterclockwise, and negative is clockwise. Pleasing values typically range from −1 to 1; larger values may cause dizziness.

Aspect Ratio

Aspect Ratio stretches the rings horizontally or vertically. Positive values make the rings wider; negative values make the rings taller. At zero, Aspect Ratio has no effect. Aspect Ratio is exponential, and normalized so that at 1, the rings are twice as wide, at 2 they're four times as wide, and at three, they're eight times as wide.

Skew Radius

Skew Radius is the amount that each ring's origin shifts per frame, in pixels. The direction of the shift is determined by Skew Angle. In small amounts, skew makes the image appear to have depth, or resemble a tunnel. In large amounts, Skew causes the image to be completely biased to one side of the screen, leaving the remainder of the screen empty.

Skew Angle

Skew Angle is the direction of the per-frame origin shift, in degrees. At zero degrees, the skew direction is due south; at 90 degrees, it's due east. The magnitude of the shift is determined by Skew Radius.

Star Factor

Star Factor causes the sides of a ring to bulge outward, or collapse inward, forming a star shape, as illustrated in the following diagram:

Star Factor is normalized such that at 1, a hexagon becomes a Star of David, a square becomes a diamond, and a triangle becomes a hexagon. At Star Factor = −1, a triangle becomes the Mercedes symbol. At zero, Star Factor has no effect.

A ring is composed of two alternating sets of vertices, called even and odd. The even vertices are the "real" polygon. The odd vertices are normally hidden, but they become the points of the star when Star Factor is positive, or the inner angles when Star Factor is negative.

The odd vertices collectively form a second polygon, which can be independently rotated; see Pinwheel. Note that when Star Factor has a large negative value, the odd vertices stay visible for a long time, which may reduce performance.

Pinwheel

Pinwheel rotates the points of a star, causing the overall shape to resemble a pinwheel or turbine, as illustrated in the following diagram:

Pinwheel is normalized such that at 1, each "tooth" has one of its edges (the "cutting" edge) positioned on a line that passes through the center. At −1, the teeth face clockwise instead of counterclockwise. At zero, Pinwheel has no effect.

Pinwheel is typically used in combination with Star Factor, but it has an effect even when Star Factor is zero. Pinwheel's range is twice the ring's number of sides, i.e. for a six-sided ring, Pinwheel = 6 is the most extreme value, and Pinwheel = 12 is the same as Pinwheel = 0. Extreme values cause the ring to overlap itself in interesting ways, but may also reduce performance.

Color Speed

Color Speed determines how fast the ring color's hue cycles around the color wheel, in degrees per frame. The color's lightness and saturation are controlled separately; if lightness is 0 or 1, or saturation is 0, hue has no effect. The hue normally cycles a full 360°, but hue cycling can also be limited to a range, using the Loop Hue command.

Lightness

This is the lightness of the ring color, ranging from 0 (black) to 1 (white). The color's hue and saturation are controlled separately.

Saturation

This is the saturation of the ring color, ranging from 0 (monochrome) to 1 (full saturation). The color's hue and lightness are controlled separately.

Background Hue

This is the hue of the background color, in degrees. The color's lightness and saturation are controlled separately; if lightness is 0 or 1, or saturation is 0, hue has no effect. The background color is also used as the outline color in Fill mode.

Note that hue is implemented differently for rings than for the background: for rings, hue is controlled indirectly via Color Speed, whereas background hue is an absolute setting. As a result, hue cycling for the background color requires an oscillator. For 360° cycling, set the waveform to "Ramp Up", the amplitude to 180, and the frequency non-zero.

Background Lightness

This is the lightness of the background color, ranging from 0 (black) to 1 (white). The color's hue and saturation are controlled separately. The background color is also used as the outline color in Fill mode.

Background Saturation

This is the saturation of the background color, ranging from 0 (monochrome) to 1 (full saturation). The color's hue and lightness are controlled separately. The background color is also used as the outline color in Fill mode.

Even Curve

This is the curvature at even vertices, i.e. the vertices that are NOT affected by Star Factor and Pinwheel. The curvature at odd vertices is controlled separately, via the Odd Curve parameter. Curvatures are normalized such that positive values produce simple curves, negative values produce loops or curls, and at zero, there's no curvature. Note that curves require considerably more processing power than straight lines, and may reduce performance.

Each pair of adjacent vertices forms a Bézier curve, with a control point at either end. The control points are constrained such that the vector between a control point and its corresponding vertex is always tangent. The vector's length is the ring's radius multiplied by the appropriate curvature (odd or even). Thus curvature doesn't vary with radius.

The following diagram shows the shapes that result from various combinations of odd and even positive curvature, with Star Factor = 1. An arbitrary curvature of 1/3 is used in all cases, to simplify the illustration.

The following diagram shows the shapes that result from various combinations of odd and even negative curvature.

Odd Curve

This is the curvature at odd vertices, i.e. the vertices that are affected by Star Factor and Pinwheel. The curvature at even vertices is controlled separately; see the Even Curve parameter for details.

Even Shear

Even Shear makes the curvature at even vertices asymmetrical. Curve asymmetry at odd vertices is controlled separately, via the Odd Shear parameter. The two curve control points at each vertex are normally contrained to be equidistant from the vertex. Removing this constraint yields two distinct distances, one between the counterclockwise point (A) and the vertex, and the other between the clockwise point (B) and the vertex. Shear changes the ratio of these two distances. Shear is normalized so that at zero, the control points are equidistant as usual, while at −1, the counterclockwise point coincides with the vertex, eliminating curvature on that side. Note that for Even Shear to have any effect, Even Curve must have a nonzero value.

Odd Shear

Odd Shear makes the curvature at odd vertices asymmetrical. Curve asymmetry at even vertices is controlled separately; see the Even Shear parameter for details. Note that for Odd Shear to have any effect, Odd Curve must have a nonzero value.

Global Parameters

Changing a regular parameter only affects new rings. A global parameter corresponds to a regular parameter, and has the same effect, except that it operates on all existing rings at once. For example, Global Aspect Ratio is identical to Aspect Ratio, except that it stretches the entire image, not just new rings. The global parameters are accessed in the Parameters dialog by selecting Edit/Global Params.

A global parameter doesn't override its corresponding regular parameter; rather, it adds to it. Thus global parameters can be combined with regular parameters, e.g. global parameters can modify the behavior of patches. Global parameters aren't saved in patches, but they are saved in playlists.

Global parameters have their own oscillators, which are independent of the regular parameter oscillators. A given parameter can be modulated by both oscillators simultaneously: one affects new rings, while the other affects existing rings.

Regular parameter changes propagate gradually, depending on the rate of Ring Growth, which causes the output to lag behind the parameter changes. This lag (AKA hysteresis) is essential to Whorld's look, but it has a down side: if you try to control regular parameters via MIDI, the controls can feel sluggish because they're not having enough impact. Since global parameters affect the whole image at once, they give a stronger impression of realtime control.

When global parameters are controlled via MIDI, they are affected by damping. This allows you to make a tradeoff between responsiveness and smoothness. It's particularly useful for avoiding jerkiness when controlling global parameters with a noisy MIDI device.

Most of the parameters have global equivalents; the only ones that don't are Ring Growth, Ring Spacing, and the six color parameters. Global hue can already be controlled via mouse and MIDI, and the background color is global by definition.

Patches

Patches

A patch is a particular setting of the parameters and their oscillators. A patch can be saved to a file, and then restored from the file later. To open a patch, use File/Open. To save the current patch, use File/Save or File/Save As.

Patches are edited using the parameters dialog. Whorld has various buffers in which patches can be edited. The parameters dialog operates on one of these buffers at a time; see edit selection.

In addition to the parameters and their oscillators, a patch also contains other settings, which may or may not be restored, depending on the patch mode.

Parameters dialog

This dialog allows you to edit the parameters and their oscillators. It typically operates on the document, but it can also operate on the crossfader inputs or mix, or the master offsets; see edit selection. To show or hide the dialog, use View/Parameters or Shift+P. The dialog consists of a two-dimensional table, containing one row for each parameter. The columns are described below.

Value Slider
This slider allows you to quickly change the parameter, but it also limits the parameter to a preset range. To enter values outside that range, use the value edit box instead (see below).
Value
This edit box is useful for entering specific parameter values, or values that are beyond the range of the value slider.
Waveform
This drop-list allows you to specify the type of waveform that the parameter's oscillator uses.
Amplitude
This edit box allows you to specify the amplitude of the parameter's oscillator. Both amplitude and frequency must be non-zero for the oscillator to have any effect.
Frequency
This edit box allows you to specify the frequency of the parameter's oscillator, in Hertz. Negative values are not permitted. Both amplitude and frequency must be non-zero for the oscillator to have any effect.
Pulse Width
When the waveform is "Pulse", this edit box allows you to specify the pulse width, ranging from 0 to 1. At .5, the result is identical to a square wave.

Edit Selection

Whorld has various buffers in which patches can be edited. The edit selection determines which one of these buffers the parameters dialog operates on. To change the edit selection, use the Edit menu, or the parameters dialog's system menu (left-click the icon in the dialog's upper-left corner). The choices are as follows:

DocumentThe patch that the File menu opens and saves, and the name of which appears in the main window's caption.
Crossfader AThe crossfader's input patch 'A'; can be loaded, edited, and saved via the crossfader dialog.
Crossfader BThe crossfader's input patch 'B'; can be loaded, edited, and saved via the crossfader dialog.
Crossfader MixThe crossfader's output patch; can be edited and saved, but note that edits are overwritten without warning if the crossfader position or inputs change.
Master OffsetsThis pseudo-patch contains offsets which are added to the parameters from the document or crossfader mix; for a schematic, see Signal Flow. It also includes an optional oscillator override for each parameter.
Global ParamsThis pseudo-patch contains the global parameters, which affect all existing rings, unlike regular parameters, which only affect new rings.

The animation is always controlled by either the document, or the crossfader mix; the View Mix setting determines which one. Edits made via the parameters dialog may or may not affect the animation, depending on the combination of View Mix and edit selection, as shown below:

Do parameters dialog edits affect the animation?View
DocumentMix
EditDocumentYesNo
Crossfader ANoMaybe
Crossfader BNoMaybe
Crossfader MixNoYes
Master OffsetsYesYes
Global ParamsYesYes

For normal patch editing, the edit selection should be "Document", and View Mix should be off, so you can see the effect of your edits. If some cases you may want to edit the crossfader inputs or mix. More likely you'll want to edit the master offsets.

Oscillators

Each parameter has an oscillator (modulator) associated with it. The oscillator generates a repeating waveform (e.g. a sine wave), which is then used to modulate (change) the corresponding parameter's value. Oscillator waveforms are normalized, such that they always range from −1 to 1. An oscillator has the following properties:

Waveform The type of waveform the oscillator generates: Triangle, Sine, Ramp Up, Ramp Down, Square, Pulse, or Random.
Amplitude The width of the modulation. The oscillator's waveform, which ranges from −1 to 1, is scaled (multiplied) by Amplitude before being added to its parameter.
Frequency The rate at which the oscillator's waveform is repeated, in Hertz (cycles per second). The frequency must be greater than zero, otherwise the oscillator has no effect.
Pulse Width When the oscillator's waveform is "Pulse", this value sets the pulse wave's duty cycle (ratio of low to high), ranging from 0 to 1. At .5, the result is identical to a square wave. For other waveforms, Pulse Width has no effect.

In algebraic terms, an oscillator's behavior is:
Result = Parameter + (Waveform × Amplitude).

Note that when the amplitude is zero, the parameter is unchanged.

Since oscillators always swing both positive and negative, in some cases it may be necessary to offset a parameter to achieve the desired effect. For example, to make Ring Sides vary between 3 and 7, you would need to set Ring Sides to 5, and its oscillator's amplitude to 2:

5 + (−1 × 2) = 3
5 + (1 × 2) = 7

While programming oscillators, it may be helpful to view the numbers dialog, because it displays the modulated values of the parameters.

Waveforms

Master Offsets

Each parameter has a master offset associated with it. The master offset is added to its corresponding parameter, and shifts it by some amount, which can be positive, negative, or zero. If the parameter is being modulated by an oscillator, the master offset shifts the modulated value.

Master offsets are applied after all other processing, just before the frame is drawn, and they affect the animation at all times, regardless of what patch is loaded, and regardless of whether you're viewing the document or the mix. For a schematic, see Signal Flow.

The master offsets can be edited via the parameters dialog; to do this, set the edit selection to "Master Offsets". The master offsets can also be changed via MIDI: when a controller is assigned to a parameter, it actually modifies the parameter's master offset. To zero all of the master offsets at once, use Edit/Zero Controllers or Shift+Z.

Master offsets are saved as part of the playlist. If any master offsets are non-zero while you're editing a patch, the patch may not look the same when it's inserted into a different playlist. To avoid confusion, keep master offsets zero while editing patches. To save the current mix as a new patch, including the master offsets, use File/Save Mix or Shift+S.

Oscillator Override

Each parameter is modulated by its associated oscillator. An oscillator behaves according to its properties (e.g. waveform, amplitude, frequency, pulse width) which it normally obtains from the document, or when View Mix is enabled, from the crossfader mix (see Signal Flow). It's also possible to override an oscillator's properties with alternate values, which the oscillator then obeys regardless of what document is loaded, or what patch is played. Put another way, overriding an oscillator disables its default behavior, allowing you to control the oscillator manually in all situations.

To create or edit oscillator overrides, display the Parameters dialog, and set the edit selection to "Master Offsets". The waveform, amplitude, frequency, and pulse width columns now display the override values for each oscillator. Note that an override is only enabled when its frequency is non-zero; if the frequency is zero, changing the other override properties has no effect. This feature allows you to preset an override, by adjusting its waveform, amplitude, or pulse width, but leaving its frequency zero. The override can then be enabled and disabled live, by controlling the override frequency via MIDI. Oscillator overrides and their MIDI assignments are saved in the playlist.

It's theoretically possible to control all properties of all oscillators via MIDI, but controllers are typically a limited resource. In most cases, you'll want to override selected oscillators, and assign MIDI to their amplitudes and frequencies, or in some cases, only to their frequencies, using preset waveforms and amplitudes. For example, to control Background Hue cycling manually via a single MIDI control, follow these steps:

  1. Show the Parameters dialog, and set the edit selection to "Master Offsets".
  2. In the "Bk Hue" row, set the waveform to "Ramp Up", and the amplitude to 180 (assuming you want the hue to cycle a full 360°), but leave the frequency zero. You may also need to set the Background Lightness master offset to .5 so that the background color isn't always black.
  3. Show the MIDI Setup dialog, and check the "Advanced" checkbox in the upper-right corner.
  4. Scroll down to the "Bk Hue Freq" row, and enter the desired MIDI event, channel, and controller number; this can also be accomplished via learn mode. Note that the Range defaults to 1, which means the controller varies the override frequency from 0 to 1 Hz. Setting Range to a smaller value gives you finer control, at the expense of a lower maximum frequency.
  5. Twiddle the controller. You should see the override frequency changing in the Parameters dialog. When the controller is at its minimum position, the override frequency is zero, and the background hue behaves as usual; otherwise, the background hue cycles at a rate proportional to the controller position, regardless of what document or patch is loaded.

Numbers dialog

This dialog continuously displays the current values of the parameters, as well as the current hue, origin, and ring count. The parameters are captured just before they're passed to the rendering engine, so the displayed values include any modulations via oscillators, and also take into account the master offsets and master speed. To show or hide the dialog, use View/Numbers, or Shift+N.

Crossfader

Crossfader dialog

The crossfader allows you to interpolate between two input patches, called 'A' and 'B'. The result is a new patch, called the crossfader mix, which varies between 'A' and 'B', depending on the position of the crossfader. The position can be adjusted manually, or automated, so that it moves by itself. Note that the crossfader has no effect on the animation unless View Mix is enabled. To show or hide the crossfader dialog, use View/Crossfader, or Shift+X.

Position
This is the current position of the crossfader. It ranges from 0 to 1, where 0 is all 'A', 1 is all 'B', and .5 is an equal mix. The position can be set by entering a number in the edit box, by moving the slider, or via MIDI. Note that the position can't be set during an auto-fade; see below.
Seconds
This is the auto-fade length; it specifies how long the crossfader thumb takes to move from one end of its range to the other, in seconds.
Play
This button starts an automated fade. The crossfader thumb moves by itself, until it reaches end-of-travel (unless Loop is pressed), or you press Stop. The auto-fade length (see above) determines how quickly it moves. Which direction it moves depends on its current position, and whether you've moved it manually since you last pressed Stop, as shown below:

At end-of-travel?Moved since Stop?Result
YesN/AMoves towards opposite end.
NoYesMoves from left to right.
NoNoMoves in same direction it was moving before.

Stop
This button stops an automated fade.
Loop
An automated fade normally stops when the fader reaches end-of-travel. When this button is pressed, the fader continues to move back and forth between 'A' and 'B' until you press Stop.
Name
This pair of drop-lists allows you to select a patch for either input. Each list contains three special selections, followed by the patches from the current bank of your playlist. The special selections are as follows:

DocumentLoads the patch currently being edited.
Crossfader A/BLoads the other input's patch.
Crossfader MixLoads the current crossfader mix.

Open
This pair of buttons allows you to load either input from a file.
Save
This pair of buttons allows you save either input to a file.
Edit A/B/Mix
These buttons set the edit selection to input 'A', input 'B', or the crossfader mix, and also show the parameters dialog if it's not already visible. Selecting "Mix" allows you to watch the parameters and oscillator settings change as the crossfader moves. It's also possible to edit the mix, but note that moving the crossfader or changing either input overwrites your edits without warning. It's safer to save the mix to a file, and then open the file for editing; see Save Mix below.
View Mix
This button duplicates the View Mix setting; when pressed, Whorld's image is controlled by the crossfader, otherwise it's controlled by the document.
Save Mix
This button allows you to save the current mix to a file. Note that the resulting patch does not include the master offsets, and may not look the same when reloaded unless all master offsets are zero. To include the master offsets, use File/Save Mix instead.
Waveform
This sets the type of waveform that's used to control automated fading. For normal behavior, select "Triangle".

Interpolation

Interpolation is a type of mixing, but it's different from audio or video mixing: it's similar to "tweening" in animation, which is shorthand for "generating in-between values." In Whorld, the crossfader is used to interpolate between two patches. The interpolation affects the parameters and their oscillators, as shown below:

VariableInterpolation
ParameterLinear
Oscillator WaveformSwitches halfway
Oscillator AmplitudeLinear
Oscillator FrequencyLinear
Oscillator Pulse WidthLinear

Each variable has a value in patch 'A', and a corresponding value in patch 'B'. If the two values are the same, crossfading has no effect on that variable. Otherwise, moving the crossfader from left to right changes the variable continuously from its 'A' value to its 'B' value, such that the variable is halfway between its 'A' and 'B' values when the crossfader is in middle. This is linear interpolation, and it's used for all variables except the waveforms. The waveforms don't change continuously: they switch from their 'A' value to their 'B' value when the crossfader reaches the middle.

For example, if Ring Spacing is 5 in patch A, and 10 in patch B, the output Ring Spacing will be 7.5 when the crossfader is in the middle.

Random patches

The crossfader can be used to generate random patches. Inputs 'A' and 'B' are hybridized, creating a new patch with a random mix of attributes from both inputs. The result is output to the crossfader mix. Note that the result will not be visible unless View Mix is enabled. To generate a random patch, use Edit/Random Patch or F10. To save the patch, use File/Save Mix or Shift+S. Until the patch is saved, be careful not to change the crossfader position, otherwise the patch will be overwritten.

The process affects the parameters and their oscillators, in a manner similar to interpolation. Each variable has a value in patch 'A', and a corresponding value in patch 'B'. If the two values are the same, that variable is unaffected. Otherwise, the variable's output value is a random number somewhere between the two input values. In effect, only the differences between the two inputs are randomized, which means that the more similar the inputs are, the less random the results will be.

Playlists

Playlists

A playlist is a list of patches. As of version 1.5, a playlist may also contain videos. Playlists are created and edited via the playlist dialog. To open a playlist, use File/Playlist/Open; to save it, use File/Playlist/Save. Playlists can also be opened and saved from within the playlist dialog, which has its own menus.

You can play patches from the playlist manually, via the keyboard or MIDI, or Whorld can autoplay the patches, like a jukebox. The transitions can be made gradual, using automated crossfades.

Patches can be assigned shortcut keys, which allow them to be played via the keyboard in Veejay mode. Patches can also be organized into banks. A playlist has twenty banks, and each bank can hold an unlimited number of patches.

A playlist doesn't actually store patches; instead, it stores links to patches. Consequently, when you modify a patch, any playlists that include that patch get the new version automatically. If patches are moved or renamed, broken links can occur; see missing files.

Playlists also store other data, including the effects, master dialog settings, and MIDI setup. In general, all non-patch settings are stored in the playlist, except for the options, which are stored in the registry.

Playlist dialog

This dialog allows you to create and edit playlists, play patches, assign keys to patches, and control autoplay. To show or hide the dialog, use View/Playlist or Shift+L. The dialog has its own menus, which differ from the main window's menus, e.g. the File menu opens and saves playlists instead of patches. The dialog's controls are as follows:

Playlist
This is the list of patches in the current bank. To play a patch, double-click its name in the list. The list can be edited, using cut and paste or dragging; for details, see editing playlists.
Bank
This drop-list allows you to select a bank. Banks that contain patches can also be selected via the numeric keys, but to select an empty bank, you must use the drop-list.
Assign key
This hotkey control allows you to assign a shortcut key to a patch; for details, see assigning keys.
Shuffle
This button affects autoplay mode. When it's pressed, the patches are played in random order; otherwise, they're played sequentially.
Play
This button enables autoplay mode. When it's pressed, Whorld plays the patches automatically, like a jukebox. The order depends on the Shuffle setting (see above). The duration of each patch is determined by Patch seconds (see below).
Patch seconds
This edit box affects autoplay mode: it sets the duration of each patch, i.e. the interval between patch changes, in seconds. It also sets the range of the Crossfade seconds slider (see below).
Crossfade seconds
These controls allow you to specify the playlist's crossfade time, in seconds. When the time is non-zero, each patch change starts an automated crossfade to the new patch.

Editing playlists

Playlists are created and edited using the playlist dialog. The playlist dialog has its own menus, which differ from the main window's menus. This topic refers to the playlist dialog's menus, and their shortcuts.

To insert patches into a playlist, use File/Insert Patches, or press Insert. A file dialog is displayed, allowing you select the patches. Press "Open" to insert the patches; they're inserted before the list's current position. To use the context menu instead, right-click the insert position, and choose Insert Patches. Patches can also be inserted by dragging them onto the playlist from Windows Explorer.

The playlist dialog has clipboard support, and the standard editing commands (copy, cut, paste, delete) behave as usual. For example, to copy patches to a different bank:

  1. Select the desired patches.
  2. Copy them to the clipboard, via Edit/Copy or Ctrl+C.
  3. Use the Bank drop-list to select the destination bank.
  4. Paste the patches, via Edit/Paste or Ctrl+V.

To use the context menu instead, select the desired patches, right-click one of them, choose Copy, select the destination bank, right-click the insert position, and choose Paste.

Patches can also be moved around within the list by dragging them. To move multiple patches at once, select them, and then drag the entire selection.

Assigning keys

Before you can play patches from the keyboard, you must first assign keys to them, using the playlist dialog. You can assign keys individually, or let Whorld make the assignments for you. Each bank of patches has its own key assignments, but within a given bank, a key can only be assigned to one patch at a time.

To let Whorld make the assignments, choose Edit/Auto-Assign Keys from the playlist dialog's menus. This assigns keys A..Z to the first 26 patches, in QWERTY order.

Individual assignments are made using one of two methods: the "Assign key" hotkey control, or the Shift key. To use the hotkey control, do the following:

  1. Select the desired patch in the playlist, by left-clicking it.
  2. Left-click the hotkey control.
  3. Press the key you want to assign to the patch. Only keys A..Z are accepted. If the key is already assigned to another patch in the current bank, a warning dialog is displayed.
  4. Press Enter or Tab to complete the assignment.

The Shift key method is considerably easier: select the desired patch in the playlist, and while holding down the Shift key, press the key you want to assign. Again, only keys A..Z are accepted.

To remove one or more key assignments, first select the patches, and then choose Edit/Remove Key from the playlist dialog's menus, or press Backspace. You can also do this via the context menu: select one or more patches, right-click one of them, and then choose Remove Key.

Playing patches

The main reason it's useful to group patches together in playlists is because this allows you to easily switch from one patch to another. The changes can be manual, or automated; in either case, you're playing patches.

Patches can be played manually in various ways. One way is by double-clicking them in the playlist dialog, but this requires the dialog to be visible. In Veejay mode, patches are played via the keyboard, or MIDI.

To play patches via the keyboard, you must first assign keys to them. The assignments are stored as part of the playlist. Only the keys A..Z can be assigned to patches.

Patches can be organized into banks. A playlist has twenty banks, and they can be selected via the keyboard's numeric keys: 1..9 select the first nine banks, and 0 selects the tenth bank. The upper ten banks are selected in the same way, but while holding down the Shift key. The keys A..Z can be assigned to different patches in each bank, so the maximum number of patches that can be played via the keyboard is 520.

When playing a patch in a different bank, always select the bank first, and then the patch. For example, if you're currently in bank 1, and you want to play patch F in bank 2, press '2', and then 'F', not the other way around.

Patches that work well together should be placed in the same bank, to minimize the need for bank-switching. Note that to avoid confusion, empty banks can't be selected via the numeric keys; they can only be selected via the playlist dialog.

Crossfading patches

When patches are played from a playlist, the transitions can be made gradual, using automated crossfades; this works whether the patches are played manually, or via autoplay.

Playing a patch causes it to be loaded into one of the crossfader inputs. Typically the crossfader is stopped on one input or the other, in which case the new patch is loaded into the opposite input. If the crossfade time is non-zero, the crossfader auto-fades to the new patch, otherwise it simply jumps to the new patch.

If an auto-fade is already in progress when the patch is played, the current mix is copied to one of the inputs, and crossfader is moved to that input; then the new patch is copied to the other input, and a new auto-fade begins. This keeps the transition smooth, even though the first auto-fade was aborted.

The crossfade time can be set in the playlist dialog, using either a slider or an edit box. It can also be set via the mouse (Ctrl+wheel), or MIDI. The unit varies, depending on the method used, as shown below:

MethodUnit
slider or mousefraction of Patch seconds
edit box or MIDIabsolute time, in seconds

Patch seconds is the interval between patch changes in autoplay; it has its own edit box in the playlist dialog, and can also be set via MIDI. Note that setting the crossfade time via any of the above methods won't affect an auto-fade that's already in progress; the new time affects the next auto-fade.

It's possible to make the crossfade time longer than Patch seconds, and this has a curious effect in autoplay: each patch change occurs while the previous auto-fade is still in progress, so the mix accrues and becomes a synthesis of many patches. To demonstrate this, set Patch seconds to 5 and Crossfade seconds to 20.

Autoplay

Whorld can play patches from a playlist automatically, like a jukebox; this is autoplay mode. Autoplay reduces the need for user interaction; it's how the demo works. Note that autoplay can only play patches in the current bank. Autoplay can be configured, as follows:

MIDI Mapping

This dialog lets you map MIDI messages to your playlist, so that you can play its patches via MIDI. To show this dialog, choose Edit/MIDI Mapping from the playlist dialog's menus. Two mapping schemes are supported: one uses program change messages, and the other uses a range of notes. Use the dialog's radio buttons to choose a scheme, as follows:

None
Select this option to disable playing patches via MIDI.
Program changes
Select this option to play patches via MIDI program change messages. Use the Channel edit box to specify which channel you're sending the messages on. The First and Last edit boxes are ignored. The program change messages are sequentially mapped to the current bank's patches: program 0 plays the first patch, program 1 plays the second patch, and so forth.
Range of notes
Select this option to play patches via a range of MIDI notes. Use the Channel edit box to specify which channel you're sending the notes on, and the First and Last edit boxes to specify the range of notes. The notes are sequentially mapped to the current bank's patches: the first note plays the first patch, the second note plays the second patch, and so forth. It's possible to choose notes that are also assigned to properties in the MIDI setup dialog, in which case the notes will have both functions. To avoid this, use a different range of notes, or specify a different channel.

Note that you can only play patches in the current bank. To play patches in a different bank, you must select the bank first. Banks can also be selected via MIDI.

By default, Whorld responds normally to controller 0 (bank select MSB): data values 0..19 select one of Whorld's twenty banks, and other values are ignored. If you prefer, you can assign a different MIDI message to the bank property, using the MIDI Setup dialog. Since up to 128 patches can be addressed per bank, the maximum number of MIDI-playable patches in a playlist is 2,560.

Missing Files

A playlist contains links to patches. If a playlist's patches are moved or renamed, broken links can occur. Broken links must be repaired before the playlist can be opened. If you try to open a playlist with broken links, Whorld displays the Missing Files dialog, which gives you the following options:

Search & Proceed
Searches ALL folders of ALL hard disks for the missing patches. This could take a long time, so only use this option when you have no idea where the missing patches are. If you know where they are, even approximately, it's much faster to use the "Open Dialog" option instead. When the search is complete, the playlist is opened. Patches that aren't found are removed from the playlist; see the warning below.
Proceed
Opens the playlist immediately, regardless of broken links. The missing patches are removed from the playlist; see the warning below.
Open Dialog
Displays the Replace Files dialog, which lists the names of the missing patches, and allows you to browse for them individually, or search for them in specific folders. If you want more control over the repair process, or if you know where the missing patches are, even approximately, use this option instead of "Search & Proceed".
Cancel
Cancels opening the playlist.

Warning: In all of the above cases except "Cancel", it's possible to open the playlist with patches still missing. If you save the playlist in this situation, the missing patches are permanently deleted from the playlist. To avoid doing this accidentally, save the playlist under a new name (using File/Playlist/Save As) before proceeding.

Replace Files

If "Open Dialog" is selected in the Missing Files dialog, the Replace Files dialog is displayed. It lists the name and current status of each missing patch, and gives you the following options:

Browse
Allows broken links to be repaired individually. This is useful if a patch has been renamed rather than moved. To repair a link, select it in the list (left-click its name), and press Browse. A file dialog is displayed. Locate the patch, select it, and press Open. The link's status is updated from "Missing" to "Replaced".
Search Folder
Allows you to search for missing patches in a specific folder. The search is recursive, i.e. subfolders of the specified folder are also searched. Use this option when you know where the missing patches are, even approximately. When you press the button, a folder dialog is displayed; select a folder, and press "OK" to begin searching. As links are repaired, their status changes from "Missing" to "Replaced". The search can be repeated in different folders, until all the missing patches have been found.
Search All
Searches for missing patches in ALL folders of ALL hard disks. This can take a long time, so you should only do this if you have no idea where the missing patches are.
OK
Ends the dialog and opens the playlist. Patches that are still missing are removed from the playlist; see the warning below.
Cancel
Ends the dialog and cancels opening the playlist.

Warning: If patches are still missing when you press "OK", they are removed from the playlist. If you save the playlist in this situation, the missing patches are permanently deleted from the playlist. To avoid doing this accidentally, save the playlist under a new name (using File/Playlist/Save As) before proceeding.

Thumbnails

As of version 1.5, the playlist dialog can display a preview image for each patch or video in your playlist. These preview images are called thumbnails. To show thumbnails, choose View/Thumbnails from the playlist dialog's menus. To hide thumbnails, choose View/Details.

The first time you view thumbnails, they have to be created, and depending on the size of your playlist, this can take a while, so a progress dialog is displayed. Once the thumbnails have been created, you can switch back and forth freely between the thumbnail and detail views, without recreating the thumbnails each time. Note that if you add patches or videos to your playlist while in thumbnail view, there may be a pause while the new thumbnails are created.

Thumbnails can be created in a range of sizes. To change the thumbnail size, choose View/Thumbnail Size and select a size. If you're currently in thumbnail view, the thumbnails are recreated immediately; otherwise, they're recreated the next time you switch to thumbnail view. To explicitly recreate the thumbnails without changing their size, use View/Refresh Thumbnails.

A video thumbnail is created by simply extracting the video's first frame. A patch thumbnail is more complicated: it's created by stepping the patch forward in time until it draws a fixed number of rings. The result is identical to what you would see if you played the patch. Note that a patch thumbnail may vary slightly each time it's created, due to the unpredictable nature of the oscillators.

Patch thumbnails are affected by the patch mode. In Full mode, each patch thumbnail is drawn using the effects and master settings stored in that patch. By contrast, in Geometry mode, all patch thumbnails are drawn using the current effects and master settings. This feature allows you to preview an effect or master setting on all of your patches at once. For example, while in Geometry mode, if you enable mirroring, and then recreate the thumbnails, all of the patch thumbnails will be mirrored.

Modes

Signal Flow

View Mix

This setting determines whether the animation is controlled by the document, or the crossfader. When View Mix is off, the animation is controlled by the document. When View Mix is on, the animation is controlled by the crossfader. To toggle this setting, use View/Mix or Ctrl+M.

Edits made via the parameters dialog may or may not affect the animation, depending on the combination of View Mix and edit selection. If you're editing the document, View Mix should be off, so you can see the effect of your edits. If you're playing patches from a playlist, View Mix should be on, because the playlist sends its output to the crossfader; see Signal Flow.

Note that playing a patch from a playlist automatically turns View Mix on. If you're editing a patch and the image isn't changing accordingly, it's probably because you turned View Mix on without realizing it.

Origin Motion

The origin is the center of the Whorld image. It's the point from which the rings emanate, or in Reverse, the point towards which they converge. The origin can move, and the types of motion are as follows:

None The origin stays put.
Drag The origin follows the mouse.
Random The origin jumps to random locations.

In Random mode, the jumps occurs at evenly spaced intervals, and the time between jumps is determined by the tempo. The tempo can be entered manually, via the Master dialog's tempo slider, or by tapping the Tab key along with the beat (see tap tempo). The tempo can also be synchronized to MIDI clocks.

Origin motion can be enabled via Image/Origin or the toolbar, using the commands listed below. In Veejay mode, F1 toggles between drag and random.

Center Shift+C Stops the origin and centers it within the window.
Drag Shift+D Enables drag, or if it's already enabled, disables it.
Random Shift+R Enables random, or if it's already enabled, disables it.

Origin motion is affected by damping. Damping controls how precisely the origin tracks new positions, whether drag-generated or random. When damping is zero, the origin tracks precisely. As damping increases, the origin lags behind new positions, and catches up gradually, slowing down as it gets closer.

Origin motion is also affected by trail. Trail determines whether the rings stay together, or spread themselves out. When trail is zero, the rings stay together; as trail increases, rings further from the origin lag behind, creating a slinky effect. When trail is at maximum, rings don't move from their birth positions.

Full Screen

In full-screen mode, the window is maximized, and the frame, menus and toolbars are hidden, so that the Whorld image fills the entire screen. Whorld's dialogs remain visible however, so it's possible to edit a patch or playlist in full-screen mode. Note that full-screen differs from Veejay mode, which is similar but optimized for live performances.

To enable/disable full-screen mode, use Window/Full Screen or F11.

Veejay Mode

Veejay mode is intended for live performances. It's similar to full-screen (again, the Whorld image fills the entire screen) but with an important difference: no other windows of any kind are allowed. Veejay mode "locks out" (disables) any feature or key that could cause Whorld, another application, or Windows itself to display a dialog, menu, or other window. Even the standard Windows task-switching keys are disabled, except Ctrl+Alt+Delete. This prevents accidental disruptions, e.g. showing the desktop, exiting the application, etc.

Veejay mode also eliminates tearing, provided DirectDraw and Exclusive mode are enabled in the DirectDraw options.

To enter Veejay mode, use Window/Veejay or Ctrl+F11. Note that the ONLY way to exit Veejay mode is by pressing Ctrl+F11. In a new installation, entering Veejay mode causes a warning dialog to appear. To permanently disable this warning, check the "don't show me this again" checkbox.

The following commands are disabled in Veejay mode:

File/New
File/Open
File/Save
File/Save As
File/Print
File/Print Preview
File/Print Setup
File/Export Bitmap
File/Load Snapshot
File/Movie/Play
File/Movie/Export
File/Exit
View/Parms
View/Numbers
View/Crossfader
View/Playlist
View/Master
View/Options
View/Midi Setup
Window/Full Screen
Window/Detach

The following commands, which normally display a file dialog, use the default output folder instead:

File/Save Mix
File/Take Snapshot
File/Movie/Record

Mouse Modes

The mouse has the following functions:

No modifiers Drag Origin In drag mode, the origin (center) of the image follows the mouse. How precisely the origin tracks the mouse is affected by the amount of damping. Drag mode is enabled via Image/Origin/Drag or Shift+D.
Left button held down Zoom Vertical motion changes the zoom; up zooms in, down zooms out. Horizontal motion is ignored. How precisely the zoom tracks the mouse is affected by the amount of damping.
Right button held down Rotate Hue Vertical motion rotates the hue; up is clockwise (red to green), down is counterclockwise (red to blue). Horizontal motion is ignored.
Middle button held down Master Speed Vertical motion changes the master speed; up is faster, down is slower. Horizontal motion is ignored.
Alt key held down Rings This works in Veejay mode ONLY. Vertical motion changes the maximum number of rings; up is more, down is less. Horizontal motion is ignored.

The wheel has the following functions:

No modifiers Damping The wheel sets the amount of damping for origin motion and zoom. Moving the wheel up increases damping; moving it down decreases damping. When damping is zero, origin motion and zoom follow mouse motion exactly; as damping increases, tracking becomes less precise, and motion becomes more fluid.
Shift key held down Trail The wheel sets the amount of trail for origin motion. Moving the wheel up increases trail; moving it down decreases trail. When trail is zero, the rings stay together; as trail increases, rings further from the origin lag behind, creating a slinky effect.
Ctrl key held down Crossfade Time The wheel sets the amount of time the crossfader takes to auto-fade from one patch to another. If the crossfade time is zero when a new patch is played, the image parameters jump from their current values to the new ones; otherwise, the parameters are interpolated. The time isn't absolute: it's a percentage of Patch Seconds in the playlist dialog.

Note that since the middle button is usually also the wheel, both master speed and damping must be adjusted with some care.

To change the master speed, press the wheel, and while keeping it pressed, move the mouse or trackball. Be careful not to spin the wheel, or you might unintentionally change the damping.

To change the damping, gently spin the wheel. Be careful not to press the wheel, or you might unintentionally change the master speed.

Dual-Monitor

The animation is normally displayed in Whorld's main window, but in dual-monitor mode, a secondary window, called a detached view, is created for the animation. The detached view can be displayed on a different monitor than the main window. This allows you interact with Whorld's GUI (graphical user interface) on one monitor, while viewing the animation full-screen on another. Note that this feature may not work under Windows 2000.

To run Whorld dual-monitor:

  1. Extend the Windows desktop onto the secondary monitor. The procedure for doing this depends on the type of graphics card you have; see below.
  2. Select Window/Detach.
  3. Drag the detached view onto the secondary monitor.
  4. Select Window/Full Screen or press F11.

To exit dual-monitor mode, press F11 to exit full-screen, and then close the detached view, or select Window/Detach again.

Here's how to extend the Windows desktop with an ATI Radeon X800XL. Other graphics cards will have a similar procedure.

  1. Connect the secondary monitor, turn it on, and power on the PC.
  2. Run ATI's Catalyst Control Center, and select "Displays Manager".
  3. Look for a monitor icon in the box under "Attached displays currently disabled". If it isn't there, something's wrong.
  4. Drag the monitor icon into the empty gray box above it, and to the right of the box containing the main monitor's icon. A pop-up menu should be displayed. Select the menu's last item, "Extend Main onto CRT".
  5. When asked if you want to keep the changes, select 'Yes'.

Demo Mode

In demo mode, Whorld loads a playlist called "demo.whl" from the program folder. This playlist includes patches that demonstrate some of Whorld's capabilities. There's nothing magical about the demo playlist except its name: it's just another playlist, and you're free to modify it, but don't rename it or move it to a different folder. To enable or disable demo mode, select View/Demo. While watching the demo, you can experiment with some of Whorld's effects; see Viewing the demo.

Pause

Pause freeze-frames the animation. To pause, select Window/Pause or press Space. To resume animating, select Window/Pause or press Space again.

While paused, no rings are born or die, the crossfader and oscillators are frozen, and editing parameters has no effect. The features that do work while paused are listed below. Note that these restrictions also apply to Snapshot Mode, which is an extension of pause.

Patch mode

The patch mode determines what settings are affected when a patch is played. The available modes are as follows:

Full
In this mode, all settings are affected, so that the patch appears exactly as it did when you saved it. This is the default mode. To select Full mode, use Edit/Patch Mode/Full or Shift+F. For a complete list of settings that are stored in a patch, see the table below.
Geometry
In this mode, only the parameters and their oscillators are affected. This mode is useful for performing, and particularly when crossfading, because it allows you to alter the geometry without disturbing your effects and master controls. To select Geometry mode, use Edit/Patch Mode/Geometry or Shift+G.

Full mode is recommended for beginners, and for editing patches, but it may not always be what you want. For example, if you're controlling the effects manually during a performance, you might not want your patches to modify the effects. Ask yourself this: if mirroring is on, and I play a patch that doesn't use mirroring, should mirroring automatically turn off? If the answer is yes, use Full mode, otherwise use Geometry mode.

The patch mode can be changed live via keyboard or MIDI, so another option is to switch back and forth, e.g. you could use Geometry mode for jamming, and Full mode for dramatic changes. Playing a patch in Full mode puts all the settings in a known state, which can be helpful if you get confused while using Geometry mode. The patch mode is saved in the playlist.

GroupSettingsAffected in
GeometryParameters, OscillatorsAll modes
Master ControlsSpeed, Zoom, Damping, Trail, Rings, Tempo, Hue Loop Length, Canvas ScaleFull mode only
EffectsOrigin, Draw Mode (Fill/Outline/X-Ray), Origin Motion, Hue, Mirror, Reverse, Convex, Invert Color, Loop Hue, Pause, Zoom TypeFull mode only

Effects

Mirror

This effect causes the output window to be divided equally into four rectangles or quadrants. Only the upper-left quadrant is drawn to in this mode; the other three quadrants are mirror images of the upper-left, as shown below:

upper leftunmodified
upper rightupper left, flipped horizontally
lower leftupper left, flipped vertically
lower rightupper left, flipped horizontally and vertically

The result is similar to a kaleidoscope. Note that since origin motion still ranges over the entire canvas, it's possible to hide some or all of the Whorld image, by placing the origin in any quadrant other than the upper-left. Pleasing results can often be obtained by moving the origin along the edges of the upper-left quadrant, especially when damping is used.

To enable/disable mirroring, use Image/Mirror or F5.

Mirroring performance depends almost entirely on the capabilities of your graphics card. Most 2000/XP-era PCs should be able to handle it acceptably, but if not, try upgrading your graphics card first before upgrading anything else. Mirroring may also be affected by the DirectDraw options.

Fill

This effect causes rings to appear as filled areas instead of lines. For each ring, the area bounded by it and the previous ring is filled, using the same color that would have been used to draw the line. A ring can be both filled and drawn as a line; see Outline.

To enable/disable fill for new rings only, use Image/Fill or F6. Since existing rings are unaffected, the change occurs gradually. To enable/disable fill for both new and existing rings, use Image/Invert/Fill or Shift+F6.

Fill increases graphics overhead and may reduce performance.

Outline

This effect causes filled rings to be outlined (i.e. drawn as lines), using the background color. Rings that aren't filled are unaffected.

Generally, filled rings tend to look gaseous without outlining, and faceted with it. Note that without outlining, neighboring filled rings of the same color are indistinguishable, though this isn't necessarily a problem.

To enable/disable outlining for new rings only, use Image/Outline or F7. Since existing rings are unaffected, the change occurs gradually. To enable/disable outlining for both new and existing rings, use Image/Invert/Outline or Shift+F7.

Outline increases graphics overhead and may reduce performance.

X-Ray

This effect causes rings to appear translucent, by drawing them in a special mode. Normally when an image is drawn, the corresponding pixels of video memory are simply overwritten; whatever image they previously contained is lost. In X-Ray mode, the pixels are modified, instead of being overwritten: the new image is superimposed onto the background, so that the background has transformed colors, but remains visible.

To enable/disable X-Ray for new rings only, use Image/X-Ray or F8. Since existing rings are unaffected, the change occurs gradually. To enable/disable outlining for both new and existing rings, use Image/Invert/X-Ray or Shift+F8.

The X-Ray effect depends entirely on your graphics card's support for XOR operations (eXclusive OR is an operation in boolean math). Note that X-Ray requires the video memory to be read as well as written, and can therefore greatly increase graphics overhead, particularly when combined with fill, outline, and wide lines; see performance. Using X-Ray with fill but without mirroring can make the application unresponsive. If this occurs, try pressing Panic (Esc). In this specific case it may help to locate the back buffer in system memory, rather than video memory; see the DirectDraw options.

Reverse

This effect reverses the direction of ring growth. If the rings were expanding, they immediately begin contracting at the same speed, and vice versa. A similar effect can be achieved by changing the sign of the Ring Growth parameter, but the Reverse command is much more convenient.

Reverse is handled separately from the Ring Growth parameter, and does not alter it; they combine to determine ring behavior, as shown below:

Ring GrowthReverseresult
positivenoexpansion
positiveyescontraction
negativenocontraction
negativeyesexpansion
zeroN/Afrozen

Convex

This effect reverses the order in which rings are drawn. By default, rings are drawn in ascending order by size, i.e. the smallest ring is drawn first. When Convex is enabled, the smallest ring is drawn last. This makes little difference if the rings are drawn as lines, but if the rings are filled, it typically causes the resulting image to appear convex instead of concave (more like a worm and less like a tunnel).

In 3D terms, Convex is a change of perspective: it moves the observer behind the image. When the rings are seen from the opposite side, they overlap differently, which reverses the illusion of depth.

Convex is especially useful when filled rings are moved with trail. Trail causes the outer rings to lag behind the inner ones, so that the rings spread out as they move. If the image is concave, the inner rings are often hidden, which can make the trail hard to see. Convex makes the trail more obvious, by keeping the inner rings visible.

Master Controls

Speed

This setting controls the speed of the entire animation. The value is a percentage of normal speed, ranging from 5 (1/20 of normal) to 2000 (20 times normal). The default setting is 100 (normal). Note that at the lowest speed, the animation still moves, though very slowly; to freeze-frame it, use Pause.

Speed is implemented as a scaling factor. The following items are scaled (multiplied) by it: Ring Growth, Color Speed, and the oscillator frequencies for all parameters.

As speed is increased, the animation may appear jerky, because objects are moving further per frame. Jerkiness may also indicate performance problems. Jerkiness can sometimes be improved by increasing Frame Rate. Note that increasing the frame rate also speeds up the animation. To compensate for this, decrease the master speed proportionally.

Speed can be changed via the Master dialog or MIDI, or by moving the mouse vertically while holding down the middle button.

Zoom

This setting controls the magnification at which the image is displayed. The value is a percentage of normal zoom, ranging from 10 (1/10 of normal) to 1000 (10 times normal). The default setting is 100 (normal).

Zoom is affected by damping. As damping increases, zoom becomes more fluid, but less precise. With too little damping, zoom feels jerky; with too much, it reacts slowly and tends to overshoot the target.

Zoom scales the canvas as well as the image, and therefore also affects origin motion. Origin dragging is limited to either the zoomed canvas or the window, whichever is bigger.

Note that zooming in may reduce performance, particularly when fill or wide lines are used. The performance hit is roughly proportional to the amount of zoom, so it may be possible to manage the problem by zooming in cautiously, and backing off if the animation starts to slow down.

Zoom can be changed via the Master dialog or MIDI, or by moving the mouse vertically while holding down the left button.

Two types of zoom are available: origin zoom, and window-centered zoom, as described below. To toggle between them, use Window/Zoom Center (Shift+W).

Zoom TypeBehavior
Origin zoomZooms into or out of the current ring origin. This is the default.
Window-centered zoomZooms into or out of the center of the window. This is useful for magnifying an arbitrary portion of the image: drag the image until the portion of interest is in the center of the window, and then zoom. It's also useful in mirror mode, because it allows you to zoom without altering the reflections.

Damping

Damping affects origin motion and zoom, as well as global parameters: it makes them more fluid, but less precise. Damping acts like a low-pass filter: it reduces the high-frequency components (jerkiness) of motions, making them smoother. Damping ranges from 0 (none) to nearly 100 (maximum). Note that when damping is set to its maximum value, the origin and zoom respond to changes very slowly, and may appear to be stuck.

Damping can be changed via the Master dialog, MIDI, or the mouse wheel. It can be also be changed via Image/Damping/More (Up Arrow) and Image/Damping/Less (Down Arrow); the arrow shortcuts are handy if the mouse has no wheel.

Trail

This setting determines whether origin motion keeps the rings together, or spreads them out. Trail ranges from 0 (none) to 100 (maximum). When trail is zero, the rings stay together; as trail increases, rings further from the origin lag behind, creating a slinky effect. When trail is at maximum, rings don't move from their birth positions. In short, trail controls how long it takes for the rings to recenter themselves around a new origin.

Trail is essential for simulating elastic motion, e.g. jellyfish, worms, etc. The best results are achieved by combining trail with damping, and limiting the number of rings, via the rings setting. Random origin motion works well, because the pauses give the rings a chance to catch up periodically, instead of remaining spread out all the time. If the rings are filled, it may be more effective to draw them in convex mode, so that the innermost rings are always visible.

Trail can be changed via the Master dialog, MIDI, or by moving the mouse wheel while holding down the Shift key.

Rings

This setting limits the number of rings to a specific value, ranging from 0 to 999. A value of 1000 disables the limiting, and the value is displayed as "MAX" to indicate this. The default value is "MAX".

The number of rings is also limited by the canvas size. Setting Rings to "MAX" allows rings to die "naturally", i.e. when their all vertices are off-canvas. Setting Rings below "MAX" can cause rings to die before their time.

Limiting the number of rings is essential for solving performance problems, but it's also interesting as a special effect, because it provides a means of simplifying the composition.

The ring limit can be changed via the Master dialog, via MIDI, or in Veejay mode ONLY, by moving the mouse vertically while holding down the Alt key.

Tempo

This setting controls the tempo, in beats per minute (BPM). When origin motion is set to Random, the tempo determines how frequently the origin jumps to a new position. If origin motion isn't set to Random, tempo has no effect on the origin. As of version 1.5, the tempo also controls the rate of video cycling.

The origin jumps can be synchronized to music by adjusting the tempo appropriately. This is particularly effective when the animation is mirrored. It's also interesting to smooth the jumps, using damping.

The tempo is typically synchronized manually, via tap tempo, though it can also be synchronized to MIDI clocks. The Master dialog's tempo controls aren't useful for synchronization, but they do allow a specific tempo to be entered directly.

Hue loop length

The image color normally cycles around the entire hue wheel, at the speed and direction dictated by the Color Speed parameter. In Loop Hue mode, cycling is limited to a subset of the hue wheel; hue loop length is the size of the subset, in degrees. Loop Hue must be enabled for hue loop length to have any effect.

If the loop length is zero, Loop Hue makes the image monochromatic: all rings will have the same hue, though they may differ in lightness or saturation. With a small length (e.g. 30°), Loop Hue makes the image nearly monochromatic, but still allows rings to be distinguished from one another by hue.

Hue loop length can be changed via the Master dialog, or MIDI.

Canvas scale

The canvas is the rectangular area within which rings can exist. A ring normally grows outward from the origin, and when it gets big enough so that all of its vertices are outside the canvas, it dies (i.e. it's deleted from the ring list). In reverse, a ring grows inward from the edges of the canvas, and dies when its radius reaches zero.

Canvas Scale is the size of the canvas, expressed as a percentage of the current window size. It ranges from 100 to 300. The default value (140) ensures that in almost all cases, rings will die (or be born, in reverse) entirely off-screen. At 100, the canvas is the same size as the window, in which case ring deaths (or births) may be visible.

Canvas scale also interacts with zoom to determine how far outside the window the origin can be dragged. Origin dragging is limited to either the zoomed canvas or the window, whichever is bigger. If both canvas scale and zoom are 100%, origin dragging is limited to the window.

Canvas scale and window size both affect performance, because the bigger they are, the more rings can exist at once. Performance can be improved by reducing canvas scale, the window size, or both. The number of rings can also be limited explicitly, via the master Rings setting.

Canvas scale can be changed via the Master dialog, or MIDI.

Copies

This setting, combined with the Spread setting, allows you to draw multiple groups of rings at once. Copies is the number of groups to draw, and Spread is their distance from the origin, in pixels. The groups are evenly spaced along a circular path around the origin: e.g. if Copies is 5, the groups will form a pentagon, centered on the origin, with a radius of Spread.

The resulting effect is different from mirroring: the groups may interleave, and usually aren't identical. As new rings are born, each group takes a turn to receive a ring, in round-robin fashion, similar to dealing cards. The groups usually have subtle differences from each other, because in a typical patch, the ring parameters are gradually changing as the rings are dealt.

The amount of interleaving depends on how far apart the groups are spread, and the ring limit. Using Trail with multiple groups of rings and a low ring limit results in an effect somewhat like a swarm of bees, or airplanes flying in formation. If the number of copies is large, the effect will be perceived as a circular origin motion rather than distinct groups.

Note that as the number of copies increases, the distance between rings within each group also increases proportionally. This occurs because the same number of rings that would normally form a single group are now being divided among multiple groups. If this is a problem, you can compensate for it by decreasing Ring Spacing.

Also note that large Spread values can cause new rings to die immediately as soon as they're born. This is probably a bug, but you can work around it by increasing Canvas Scale, or by decreasing Spread.

Spread

This setting, combined with the Copies setting, allows you to draw multiple groups of rings at once. Copies is the number of groups to draw, and Spread is their distance from the origin, in pixels. See Copies for details.

Color

Color Model

Whorld uses the HLS color model, which stands for Hue, Lightness, Saturation. HLS organizes the visible spectrum into a double cone, with the two cones joined at their bases and pointing north and south respectively. Black is at the tip of the south cone; white is at the tip of the north cone. The vertical axis is lightness; distance from the center is saturation; angle is hue.

The model can be viewed in cross-section as a series of discs which increase in diameter until they reach the middle, and then decrease again. Each disc corresponds to a level of lightness. At each level, fully saturated colors occur on the rim of the corresponding disc. Movement within the color model can be summarized as follows:

Hue changeMoving clockwise or counterclockwise, while maintaining a constant radius.
Saturation changeMoving towards or away from the center, while maintaining a constant angle.
Lightness changeMoving to a higher or lower disc.

The center of any disc is a pure gray; if a straight line is drawn from black to white, through the center of the model, all pure grays lie along this line. The middle disc contains the largest number of colors, and the pure primaries and secondaries occur on the rim of the middle disc, at 60° intervals.

The values are normalized as follows: lightness ranges from 0 (black) to 1 (white), with middle gray at .5; saturation ranges from 0 (monochrome) to 1 (full saturation); hue ranges from 0 to 360, with red at 0°, yellow at 60°, green at 120°, etc. Note that at saturation = 0, hue is irrelevant, and at lightness = 0 or lightness = 1, both saturation AND hue are irrelevant.

Loop Hue

The image color normally cycles around the entire hue wheel, at the speed and direction dictated by the Color Speed parameter. In Loop Hue mode, cycling is limited to a subset of the hue wheel. The size of the subset is determined by Hue Loop Length. Loop Hue affects new rings only; existing rings are unaffected.

Enabling Loop Hue causes the hue to immediately reverse direction: the current hue becomes one end of the loop, and the loop length determines the other end. For example, suppose the hue is currently 240° (blue), Color Speed is positive (clockwise), and the loop length is 60°. In this case, enabling Loop Hue causes the hue to cycle counterclockwise until it reaches 180° (cyan), at which point it reverses direction again and heads back towards blue.

A hue loop can be moved around the hue wheel, using the mouse or the Rotate Hue command. Manual hue changes are more dramatic when cycling is limited; 360° cycling tends to upstage them.

Rotate Hue

This command rotates the hues of both new and existing rings by 90°. The background color is not affected. The rotation is cumulative, so after four repetitions you're back where you started. Only hues are affected, not lightness or saturation. The effect is more dramatic when hue cycling is limited; see Loop Hue.

Hues can be changed gradually via MIDI, or by moving the mouse vertically while holding down the right button.

Invert Color

While this mode is enabled, the colors of both new and existing rings are inverted. The background color is not affected. Inversion is not the same as rotating the hue 180° (e.g. by doing two Rotate Hue commands), because it's done in RGB space, and therefore flips the lightness as well as the hue. Note that in Invert Color mode, the direction of the Lightness parameter is reversed: increasing it makes the image darker.

Snapshots

Snapshots

A snapshot is a file that captures a still frame of the animation, so that it can be restored later exactly as it was, with no loss of information. Snapshots are captured using Take Snapshot, and restored using Load Snapshot.

Snapshots are vector-based: they store ring data, rather than pixels. This makes them much more compact than bitmaps, and resolution-independent, i.e. a snapshot can be zoomed without becoming pixelated.

Still frames should always be saved as snapshots, rather than bitmaps, because snapshots are non-lossy, save space, and are much more flexible. Snapshots can be printed, viewed as a slide show, or exported as bitmaps. Snapshots can also be edited to some extent. They can't be opened by other applications, but you can't have everything.

Still not convinced? Suppose you capture some frames by exporting bitmaps. They look fine on the screen, but when you print them, they're too small, and enlarging them makes them pixelated. You can't redo the exports, because the original frames are gone. If you had captured them as snapshots, you could restore and re-export them.

Take Snapshot

This command captures the current image as a snapshot. To take a snapshot, use File/Take Snapshot or Ctrl+T. The command freezes the current frame, and displays a file dialog, allowing you to specify the output file's name and location.

Note that in Veejay mode, the file dialog is not displayed; in this case the snapshot is created in the default output folder, and its name is generated automatically. If the Use default folder option is set to "Always", taking a snapshot never displays a file dialog.

Load Snapshot

This command restores one or more snapshots that were previously captured using the Take Snapshot command. To load snapshots, use File/Load Snapshot or Ctrl+L. The command displays a special file dialog that allows multiple files to be selected, and also allows snapshots to be previewed.

To preview the snapshots, check the "Preview" box in the lower-left corner of the file dialog, and select the files one at a time; note that preview doesn't work with multiple selections.

To load the snapshots, press "Open" in the file dialog. Loading snapshots causes Whorld to enter Snapshot Mode, which allows the snapshots to be viewed, printed, exported, etc.

Snapshot Mode

In this mode, the window displays the current snapshot, instead of the usual animation. The animation is frozen, and doesn't resume until you exit snapshot mode. Snapshot mode is an extension of pause, and has the same restrictions. To enter snapshot mode, load one or more snapshots; to exit snapshot mode and resume animating, select Window/Pause, or press Space.

While in snapshot mode, Whorld displays a Snapshot menu, between the File and Edit menus. This menu allows you to access commands that are only meaningful in snapshot mode:

CommandShortcutAction
PreviousPage UpGo to previous snapshot
NextPage DownGo to next snapshot
FirstHomeGo to first snapshot
LastEndGo to last snapshot
Slide Show(none)Display a slide show of the snapshots
Export All(none)Export the snapshots as bitmaps

Slide Show

To display Snapshots as a slide show, first load them, and then select Snapshot/Slide Show. Whorld displays the Slide Show dialog. Configure its options as desired (see below), and press "OK" to start the show. After the show begins, it can be canceled by pressing any key, or left-clicking in the window.

Seconds per slide
This sets how long each snapshot will be displayed for, in seconds.
Loop
If checked, the show loops until you end it, by pressing any key, or left-clicking in the window. Otherwise, the show ends after the last snapshot is displayed.
Full screen
If checked, the show is displayed full-screen; otherwise, the existing window size is used.

Export All

To open snapshots in other applications, you must first export them as bitmaps. It's possible to export them one at a time using File/Export, but for large numbers of snapshots this becomes tedious. Export All allows you to export multiple snapshots at once, using the same settings for all of them.

To export multiple snapshots, first load them, and then select Snapshot/Export All. Whorld displays a folder dialog, allowing you to choose a destination for the bitmaps. After you select a folder and press "OK", the Export dialog is displayed; configure the options as desired, and press "OK" to begin the export.

Editing Snapshots

A snapshot can be edited to a limited extent, e.g. by changing its origin, effects, zoom, and colors, though rings can't be added or deleted. To edit a snapshot, you must first load it. After editing it, save your changes by taking another snapshot. Note that you will not be prompted to save your changes, so to avoid confusion, only edit one snapshot at a time. For a complete list of the edits that can be performed on a snapshot, see Pause.

Movies

Movies

A movie is a file containing a sequence of frames from Whorld's animation. After a movie has been recorded, it can be played in Whorld, but to use it in another application, it must be exported first.

Movie frames are stored in a non-lossy format, so that the animation can be restored later exactly as it was, with no loss of information. Movies are implemented using snapshots, so they're vector-based, rather than pixel-based.

Movie files can be quite large. Typical data rates range from 0.5 to 3.0 MB per second, which means a 1-hour recording can require anywhere from 1.5 to 10 GB. In practice, movies are often at the low end of this range. A movie stores the ring data for each frame, which means a movie's size is proportional to the average number of rings. Various factors can affect the number of rings; see performance.

Recording movies

To record a movie, use File/Movie/Record or Ctrl+R. The command displays a file dialog, allowing you to specify the output file's name and location. Press "Save" to begin recording.

Note that in Veejay mode, the file dialog is not displayed; in this case the movie is created in the default output folder, and its name is generated automatically. If the Use default folder option is set to "Always", recording a movie never displays a file dialog.

The movie is recorded at the current Frame Rate. The frame rate defaults to 25, which is fine for PAL, but not for NTSC. If you intend to encode the movie for an NTSC medium (e.g. NTSC DVD), you should change the frame rate to 30, otherwise the encoding may distort the movie, or speed it up.

A movie includes a frame size, which is set to the window size when you start recording. If you start recording before switching to full-screen or Veejay mode, the frame size will be incorrect. The movie can be resized later, but to avoid this step, go full-screen first, and then start recording.

The keyboard Scroll Lock LED blinks periodically while you're recording a movie. This allows you to verify that you're actually recording, even when Whorld is full-screen. Note that the blinking may not work on USB keyboards.

To stop recording, select File/Movie/Record or press Ctrl+R again. The animation may pause briefly when you stop recording.

Playing movies

To play a movie, use File/Movie/Play. The command displays a file dialog, allowing you to browse for the movie. Press "Open" to begin playback.

During playback, the Movie Player dialog is displayed. This dialog includes the standard transport buttons (Play, Pause, Stop, and Loop), and a position slider. To skip around in the movie, left-click in the position slider, or drag its thumb.

The dialog also allows you to select a range of frames. Buttons are provided for marking the range's in and out points, and for jumping to the start or end of the range. If a frame range exists while the player is looping, the selected frames are repeated. The frame range is also passed to the export dialog (see below).

The Save button brings up the Movie Export dialog. Note that if a frame range exists, it's passed to the export dialog, so that by default, only the selected frames are exported. This allows you to select an export range visually in the player, instead of entering it numerically in the export dialog.

The dialog also includes a Take Snapshot button, which exports the current frame as a snapshot.

The dialog's minimize and maximize buttons have special meanings, as follows. Minimize hides the dialog; to show it again, left-click on the window, or press any key. Maximize causes the main window (not the dialog) to become full-screen, and also hides the dialog; to exit full-screen mode, press any key.

To exit playback mode, close the Movie Player dialog, or press Esc. The normal animation resumes.

Exporting movies

Movies must be exported before they can used by other applications. A movie can be exported as a compressed or uncompressed AVI file, or as a numbered sequence of bitmaps.

To export a movie, use File/Movie/Export. The command displays a series of dialogs, as shown below.

  1. Open Movie: This file dialog allows you to browse for the movie. Select the movie to be exported and press "Open" to continue.
  2. Save As: This file dialog allows you to specify the name and location of the output file. Select an output file and press "Save" to continue. Note that when you're exporting numbered bitmaps, you still must specify a name and location here; the name is ignored.
  3. Movie Export: This dialog allows you to configure the export options. Set the options as desired and press "OK" to continue.
  4. Video Compression: This dialog allows you to choose and configure a compressor. Various options will be available, depending on what codecs you have installed. If you're using external encoding software, uncompressed video typically gives the best results. To export uncompressed video, select "Full Frames (Uncompressed). Otherwise, the best choice is usually "Microsoft Windows Media Video". To configure the compressor, press the "Configure" button. Press "OK" to begin the export. The export may take a while, so a progress bar with a cancel button is displayed.

Movie Export dialog

Input size
This is the original frame size of the recorded movie. If this size isn't correct, it can be repaired; see resizing movies.
Output size
This is the output frame size. The standard options are 320 x 240 and 640 x 480. To specify a different size, select "Custom". The frames are either cropped or scaled, depending on the Resizing option (see below).
Width
This is the width of the output frame in pixels. It's only enabled when the Output size is "Custom".
Height
This is the height of the output frame in pixels. It's is only enabled when the Output size is "Custom".
Resizing
This option determines the resizing method. The methods are as follows:

Crop
The frames are cropped to the output size. If the output size is bigger than the input size, previously hidden portions of the frames may become visible; if the output size is smaller, portions of the frames are cut away or "cropped".
Scale to fit
The frames are scaled up or down to the output size, without changing the cropping. If the output size is bigger than the input size, nothing is lost, but if the output size is smaller, details may be obscured. The scaling is isotropic, i.e. the original ratio of width to height is preserved.

Input frame rate
This is the frame rate at which the movie was originally recorded. It can't be changed.
Output frame rate
This is the frame rate of the output file. It should normally be the same as the input frame rate. Setting it to a different value causes the output file to appear speeded up or slowed down. In effect you're lying to whatever software plays the file, by telling it the movie was recorded at a different frame rate than it actually was. Note that as of version 1.6, the output frame rate can be fractional, so for NTSC you can specify 29.97 instead of 30.
Input length
This is the original length of the recorded movie. It can't be changed.
Output length
This is the length of the output movie. It reflects changes to the output frame rate and the frame range.
Frame range
If this is set to "All", the entire movie is exported. If it's set to "Subset", only the range defined by First frame and Last frame is exported.
Export bitmaps
If checked, the export creates a numbered sequence of bitmaps instead of an AVI file. The bitmaps are created in the same folder that the AVI file would have been created in.
Display output frames
If checked, the output frames are displayed in the main window as they're being exported. The export may run faster if this option is unchecked.

Resizing movies

Movies include a frame size, which is the width and height of each frame, in pixels. Frame size doesn't affect playback, but it can affect exporting: it's needed to calculate the scaling factor when you export a movie with the "Scale to fit" option. Typically you're exporting to a smaller format, and you want the original frames scaled down so they fit. If the frame size is incorrect, frames may be cropped unintentionally.

The frame size is set to the window size when you start recording. If you start recording before switching to full-screen or Veejay mode, the frame size will be incorrect.

To correct the frame size, use File/Movie/Resize. The command displays a file dialog, allowing you to browse for the movie. After you press "Open", the Resize Movie dialog is displayed. Enter the correct width and height, and press "OK" to save your change.

Video Overlay

Video overlay

As of version 1.5, a video clip can be overlaid onto the animation, using various types of blending. Videos are handled in much the same way as patches, and must be inserted into a playlist beforehand, using the playlist dialog. Videos can be played via shortcut keys or MIDI, or automatically cycled in sync with the master tempo. The most recently played videos are cached for easy access.

Note that only AVI files are supported; other video formats, including MPEG, Quicktime, Windows Media, etc. are NOT supported. The appropriate codec(s) must be installed on your PC, and other restrictions may apply; see encoding. The free, open-source XVID codec is recommended.

Playing videos

Before videos can be played, they must be inserted into a playlist, in the same manner as patches, via the playlist dialog. Patches and videos are interchangeable in terms of playlist editing, and can be mixed freely within the same playlist bank. Playing videos is similar to playing patches, except that the crossfader isn't affected. Videos can have keys assigned to them, or MIDI messages mapped to them. Videos can also be played from within the playlist dialog, by simply double-clicking them.

Videos are always looped; once a video is played, it continues looping until a different video is played, or video is disabled via Image/Video/Select/None, the numeric keypad's decimal (Del) key, or the Video Select MIDI property.

The most recently played videos are cached for easy access. When a video is played, if it's found in the cache, it normally plays from wherever it last stopped, rather than from the beginning. This feature allows you to step through several videos at once, either by manually alternating between them, or automatically cycling them. If you prefer your videos to always play from the beginning, you can enable auto-rewind, using Image/Video/Auto-Rewind or Shift+Home. To explicitly rewind the currently playing video, use Image/Video/Rewind or Home.

Video cache

The ten most recently played videos are cached, and can be selected via Image/Video/Select, keys 0..9 on the numeric keypad, or the Video Select MIDI property. This provides you with a dynamic "working set" of videos that can be accessed easily, without having to remember where they are in your playlist. The cache is kept in ascending order by age, i.e. Num0 is always the most recently played video, Num1 is the second most recently played video, and so on.

Note that a distinction is made between selecting cached videos, and playing videos, which may or may not be already cached. Cached videos are selected as described above; videos are played via the playlist dialog, assigned keys, or MIDI mapping. Selecting a cached video doesn't affect the cache order, whereas playing a video changes the order as follows:

The following diagram illustrates both cases, using names to represent the videos. Bold indicates the currently playing video.

Initial cache state: After playing "karl": After playing "fred":

7
cody
8
burt
9
adam
4
fred
5
eddy
6
doug
1
ivan
2
hank
3
greg
0
jack
 

7
doug
8
cody
9
burt
4
greg
5
fred
6
eddy
1
jack
2
ivan
3
hank
0
karl
 

7
doug
8
cody
9
burt
4
hank
5
greg
6
eddy
1
karl
2
jack
3
ivan
0
fred
 

The following table associates cached videos with keys and MIDI. Note that a value of 127 disables video. If this is undesirable, set the range of the Video Select MIDI property to 4.99 instead of 5.

KeyMIDIVideo
Num00..120
Num113..251
Num226..382
Num339..513
Num452..634
Num564..765
Num677..896
Num790..1017
Num8102..1148
Num9115..1269
Num.127None

Video blending

The video is blended with the animation, such that both the video and the animation are partially visible. The available blending modes are listed in the table below. Each blending mode corresponds to a Windows GDI Raster Operation (ROP). A raster operation is a boolean operator (OR, AND, XOR) optionally combined with an inversion of the source (the video) or the destination (the animation).

KeyMIDIBlendingDescriptionROP codeCommon name
Ctrl+Num00..12~Src & DstAND inverted source with destinationDSna 
Ctrl+Num113..25~Src | DstOR inverted source with destinationDSnoMERGEPAINT
Ctrl+Num226..38Src & ~DstAND source with inverted destinationSDnaSRCERASE
Ctrl+Num339..51Src & ~DstOR source with inverted destinationSDno 
Ctrl+Num452..63Src & DstAND source with destinationDSaSRCAND
Ctrl+Num564..76Src | DstOR source with destinationDSoSRCPAINT
Ctrl+Num677..89Src ^ DstXOR source with destinationDSxSRCINVERT
Ctrl+Num790..101~(Src & Dst)AND source with destination, invert resultDSan 
Ctrl+Num8102..114~(Src | Dst)OR source with destination, invert resultDSonNOTSRCERASE
Ctrl+Num9115..127~(Src ^ Dst)XOR source with destination, invert resultDSxn 

The XOR modes alter the colors drastically, giving a psychedelic effect. The other modes don't alter the colors as much, but they're also more sensitive to very dark or very light inputs. SRCPAINT is similar to transparency, and causes the least amount of color distortion. SRCAND is similar to luma-keying: the video is only visible in non-black portions of the animation. The default blending mode is SRCINVERT.

The blending mode can be changed via Image/Video/Blending, or by pressing a number on the numeric keypad while holding down the Ctrl key, or via MIDI. Changing the blending mode is a dramatic effect, but caution is advised since extreme changes in brightness may result. Note that the MIDI values given above assume that the Video Blending MIDI property has its default range (five).

Cycling videos

Whorld can automatically step through the cached videos, while synchronizing the transitions with the master tempo. This feature is called video cycling. The cycling continues sequentially until the last video is reached, and then begins again with the first video. The order and contents of the cache can be changed during cycling, simply by playing videos. To enable or disable video cycling, use Image/Video/Cycle or Ctrl+J.

By default, the cycle includes all cached videos, but it's also possible to limit cycling to the N most recent videos, where N is the cycle length. To specify a cycle length, use Image/Video/Cycle Length, or press a number on the numeric keypad while holding down the Alt key, or use the Video Cycle Length MIDI property.

The cycle always starts with video 0, i.e. the video that corresponds to the Num0 key. For example, if a cycle length of four is specifed, the cycle will consist of videos 0, 1, 2, and 3. Note that if the cache isn't full, the cycle may be shorter than the specified length, because empty cache slots are skipped. The following table associates cycle lengths with keys and MIDI.

KeyMIDICycle length
Alt+Num10..12most recent 1 videos
Alt+Num213..25most recent 2 videos
Alt+Num326..38most recent 3 videos
Alt+Num439..51most recent 4 videos
Alt+Num552..63most recent 5 videos
Alt+Num664..76most recent 6 videos
Alt+Num777..89most recent 7 videos
Alt+Num890..101most recent 8 videos
Alt+Num9102..114most recent 9 videos
Alt+Num0115..127all videos

Encoding videos

Videos must be AVI files with 16-bit, 24-bit or 32-bit color depth; 8-bit files are not supported. For optimal performance, the videos should have the same color depth as your display mode, i.e. if your display is configured for 24-bit color, your videos should also have 24-bit color. It's also recommended to use a standard frame size, e.g. 320 x 240 or 640 x 480.

The frame rates of the videos are ignored. Videos are always displayed at Whorld's frame rate; frames are never dropped or added. If the videos have different frame rates than Whorld's, they will play faster or slower than expected. To avoid this, encode at Whorld's frame rate, or change Whorld's frame rate to match the videos.

Since Whorld doesn't support audio, the videos needn't contain audio streams. Eliminating audio can reduce the size of your videos by as much as 20%, and may substantially improve performance. If you're ripping from DVD to VOBs, and then using VirtualDubMod to export AVI files from the VOBs, it's easier to eliminate audio during ripping; e.g. in DVD Decrypter, use IFO mode, enable Stream Processing, and uncheck the audio stream(s).

You'll need to experiment to determine an optimal bit rate, since this depends on various factors including your hardware, which codec you use, and how you set the codec. Excessive bit rates will cause jerky animation, particularly if the CPU is already overloaded due to other factors. Good results were achieved on the recommended hardware by encoding at 640 x 480, 24-bit color, and 25 FPS, using XVID 1.1.0 with the default settings. The source material was DVD VOBs with the audio removed, as described above. The output AVIs had bit rates in the range of 100 to 500 kbps.

Most codecs use temporal compression, i.e. they only store the differences between consecutive frames, and this can cause problems, particularly with linked videos. Performance may be improved by avoiding temporal compression, either by making every frame a key frame, or by using a codec that doesn't do temporal compression, e.g. MJPEG. Note however that this is a trade-off, since the resulting video files may be considerably larger. Playing video without temporal compression typically requires less CPU power, but more disk bandwidth.

Linked videos

The video overlay is captured in snapshots, but instead of embedding the video frame in the snapshot, the snapshot contains an external link to the video file. This saves a substantial amount of disk space, but it also means that in order to load or export the snapshot, the video file must exist at the correct location on your disk. If the video is not found, a missing files dialog is displayed.

The video overlay is also captured in recorded movies, again via external links to the video files. If you move, rename or delete the linked videos, attempting to play or export the movie causes a missing files dialog to be displayed.

Note that depending on how you encode your video, you may experience delays when playing back a recorded movie that contains video links. The delays only affect playback within Whorld: if you export the movie, the delays will NOT appear in the exported AVI file. The delays are likely to be worse with long video clips, and typically occur in the following situations:

The delays occur because codecs often exhibit very slow seeking to any position other than the start of the video. The slow seeking is a side effect of temporal compression. You may be able to avoid the delays by encoding your video without temporal compression.

Video origin

The video overlay has its own origin, which is independent of the drawing origin. The video origin only has an effect when the output is mirrored. In mirror mode, only a quarter of the video frame is used. The video origin allows you to continuously change which portion of the video is used as the mirror source. By default the video origin is (0, 0), i.e. the upper-left quadrant of the video.

To change the video origin manually, move the mouse while holding down the Shift key. The video origin can also be automated, so that it makes random jumps in sync with the tempo; to enable or disable random jumps, use Image/Video/Random Origin, or Ctrl+Shift+R. Note that in either case, video origin motion is affected by Damping.

MIDI

MIDI Setup

This dialog allows you to assign MIDI messages to Whorld's properties. To show or hide the dialog, use View/MIDI Setup or Shift+I. The dialog consists of a two-dimensional table, called the property list. Assignments can be made by editing the property list, or via Learn mode or Auto-assign. Note that you must select a MIDI device before MIDI will work.

Each row in the property list displays information about the MIDI message that's assigned to the corresponding property, including the message's range, type, channel, and controller/note number. This information can be edited, and the edits take effect immediately.

For example, to assign controller 1 on channel 12 to Ring Spacing, go to the appropriate row, change the event type to "CTRL", the channel to 12, and the controller to 1. Twiddling the controller should now affect both the ring spacing and the number in the "Value" column.

If nothing happens, open the Options dialog and check your MIDI device selection. Also check your cables and connections. If necessary, use a different application to verify that your PC is receiving MIDI messages.

Note that a given MIDI message can only be assigned to one property at a time. If you assign a message that's already assigned to another property, the other property loses its assignment, and its event type is set to "OFF" to indicate this.

MIDI assignments are saved as part of the playlist. If you already have a playlist with the desired MIDI setup, you can copy the setup into the current playlist, by choosing File/Import MIDI Setup from the playlist dialog's menus.

Property list

Whorld has various properties to which MIDI messages can be assigned. The property list is a two-dimensional table that shows the current assignments, and allows you to edit them. Each row in the table displays information about the MIDI message that's assigned to the corresponding property. The columns are described below.

Range
This determines how much effect a MIDI message has on its property. Signed MIDI values are mapped to the specified range, such that −63 corresponds to the range's first value, +64 corresponds to the range's second value, and 0 corresponds to the midpoint between them.

Range lets you make a trade-off between the precision and magnitude of a MIDI control: making the range smaller allows finer adjustments, but reduces the control's overall effect. The range's first value can be greater than the second, in which case the control's effect is inverted.

Whorld's properties can be divided into four groups, as shown below:

Parameters
When a MIDI control is assigned to a parameter, it controls that parameter's Master Offset, which is added to the parameter's current value.
Other continuous values
These are properties such as Zoom, which aren't parameters, but are also continuous, i.e. they can have many values. Unlike parameters, these properties don't have master offsets: when you move the MIDI control, you're directly setting the property, not adding an offset to it.
Switches
These are boolean properties, i.e. properties that are either "on" or "off", such as Mirror. The Range for these properties should always be 0..1 for normal operation, or 1..0 for inverted operation. Other values may give incorrect results.
Oscillator properties
These properties allow you to control the oscillator override for each parameter, as well as the global oscillators. Note that the oscillator properties are normally hidden. To assign MIDI messages to these properties, you must first check the "Advanced" checkbox in the MIDI setup dialog's upper-right corner. The default ranges are listed below:

PropertyRangeComment
Waveform0..8Distributes waveforms evenly along controller's sweep.
Amplitude?Range depends on the parameter.
Frequency0..1Oscillator frequency in Hertz.
Pulse Width0..1Fractional duty cycle; ignored unless waveform is "Pulse".

Event
This is the type of MIDI message assigned to the property. The possible values are as follows:

OFFNo message is assigned to the property.
CTRLA continuous controller message is assigned to the property; the controller edit box specifies the controller number.
NOTEA note is assigned to the property. In this case the controller edit box displays and understands MIDI note numbers, e.g. F#4. Pressing the note toggles the property, i.e. flips it back and forth between +Range and −Range. Releasing the note has no effect. Notes are useful for controlling switches (see above).
PITCHThe pitch bend message is assigned to the property. In this case the controller edit box is ignored.

Channel
This is the channel on which the property's MIDI message is expected to arrive, ranging from 1 to 16.
Controller
For controller messages, this is the controller number, from 0 to 127; note that controllers above 120 are normally reserved for channel mode messages. For note messages, this is the note number, from C0 to G10. For pitch bend messages, this value is ignored.
Value
This is the actual data byte from the property's most recently received message, which can be helpful when debugging MIDI problems. It's displayed as a read-only signed value from −64 to +63.

Learn mode

Assigning MIDI messages via editing requires you to know which messages your device sends, and on which channels. Whorld can also "learn" the MIDI assignments, in which case you don't need to worry about those details. To use "learn" mode, do the following:

  1. Check the "Learn" box in the upper-left corner of the MIDI Setup dialog.
  2. Left-click an edit box of the property you want to control; it doesn't matter which edit box, so long as the edit cursor is somewhere in that row.
  3. On your MIDI device, twiddle the control that you want to assign to that property. To assign a note to the property, press and release the note. The property's message type, channel, and controller number should "snap" to the correct value. Be careful not to accidentally touch controls or notes that you've already assigned to other properties, otherwise those assignments will have to be redone.
  4. Repeat steps 2 and 3 for each property you want to control.
  5. Uncheck the "Learn" box.

Auto-assign

This dialog allows you to assign MIDI messages to multiple properties at once, as opposed to editing the properties one by one in the MIDI Setup dialog. This can save time in situations where the device sends a contiguous range of messages, and you want to assign them to a contiguous group of properties. To take advantage of this feature, you have to know which messages your device sends; otherwise, use Learn mode instead.

For example, suppose your device sends controllers 20 through 35 on channel 1, and you want to assign them to the parameters. The assignments can be made as follows:

  1. In the MIDI Setup dialog, press the "Auto-Assign" button.
  2. Under Properties, select "Range"; then set the First combo box to "Ring Growth", and the Last combo box to "Bk Saturation".
  3. Under Event, select "Controller".
  4. Set Channel to 1; its Range checkbox should be unchecked.
  5. Set Controller to 20; its Range checkbox should be checked.
  6. Press "OK" to make the assignments.

If the device sends a single controller on a range of channels, e.g. controller 20 on channels 1 through 16, the procedure is identical, except that the two Range checkboxes must be reversed.

Range
Use these controls to specify which properties should have messages assigned to them. Select "All" to assign to all properties; otherwise, select "Range", and use the First and Last combo boxes to specify the range.
Event
Use this control to specify the type of message to assign to the selected properties: "Controller" to assign continuous controllers, or "Note" to assign notes. To remove existing assignments, select "Off".
Channel
Use these controls to specify which channel(s) to assign to the selected properties. If the Range checkbox is checked, a sequential range of channels is assigned, starting from the specified channel; otherwise the specified channel is assigned to all of the selected properties.
Controller
Use these controls to specify which controller/note number(s) to assign to the selected properties. If the Range checkbox is checked, a sequential range of numbers is assigned, starting from the specified number; otherwise the specified number is assigned to all of the selected properties. If Event is set to "Note", the edit box displays and understands MIDI note numbers, e.g. F#4.
Set channel only
If this box is checked, only the channels are assigned; message type and controller/note number are not affected. This option is useful for moving an existing MIDI setup to a different channel.

Zero Controllers

This command resets the Master Offsets to zero, thereby eliminating their influence on the parameters, and returning the animation to its "natural" state. The change may be drastic, depending on how far from zero the master offsets are at the time. To execute the command, use Edit/Zero Controllers or Shift+Z. Note that Panic also resets the master offsets, along with other critical settings.

If the offsets were being manipulated via MIDI controllers, the positions of the knobs (or sliders, or whatever) are no longer meaningful. To fix this, move the controls to their default positions. These moves may disrupt the animation unless you power off or disconnect the MIDI device before making them.

In addition, any oscillator override properties that have been changed via MIDI are reset. In typical configurations, this effectively disables all oscillator overrides.

Options

Display

DirectDraw

Windows includes two systems for drawing 2D graphics: GDI and DirectDraw. Whorld can use either, but DirectDraw is more hardware-oriented and typically gives much better performance than GDI. The following options allow you to control Whorld's usage of DirectDraw.

Use DirectDraw
If checked, Whorld uses DirectDraw, otherwise it uses GDI and ignores the other DirectDraw settings. This option should be checked unless DirectDraw causes problems. Note that if you change this option, you must restart Whorld for the change to take effect.
Mirror to back buffer
If checked, Whorld mirrors to an intermediate back buffer, and then blits the resulting image to the front buffer; otherwise it mirrors directly to the front buffer. Mirroring directly to the front buffer is slightly faster, but allows the mirror quadrants to become misaligned. This option should be checked unless mirroring causes problems.
Allow Exclusive mode
If checked, Whorld uses DirectDraw's Exclusive mode in the following situations: in Veejay mode, in full-screen dual-monitor configuration, and when playing back a Whorld movie full-screen. Exclusive mode is more efficient and eliminates tearing, so this option should be checked unless Exclusive mode causes problems.
Back buffer location
Frames are drawn in off-screen memory (the "back buffer") and then copied to the screen (the "front buffer"). The back buffer can be located in either video or system memory. You can force Whorld to always use one or the other, but it's usually best to let it choose the optimal location, by leaving this option set to "Auto". Selecting "System" should always be safe, but may reduce performance. Selecting "Video" may interfere with mirrored and X-ray modes, because they require the back buffer to be read as well as written; reading from video memory is typically very slow.

Frame rate

This is the number of frames generated per second, ranging from 24 to 60. Higher frame rates theoretically result in smoother animation, but only if the computer can handle the increased CPU and graphics load. On an underpowered machine, increasing the frame rate may have no effect, or may even make the animation less smooth, particularly if expensive effects (e.g. fill, X-ray) are used. Whorld never drops (omits) frames, but it can get behind, in which case the actual frame rate can be considerably lower than the desired rate. If it gets too far behind, it may become unresponsive; see performance.

Note that the frame rate selected here has an important side-effect: it's also used as the frame rate for recorded movies. The default frame rate (25) is ideal in countries that use PAL (e.g. Europe), but may be inconvenient in countries that use NTSC (e.g. USA, Japan). Since NTSC runs at approximately 30 FPS, a movie recorded at 25 FPS, and then output to an NTSC medium (e.g. NTSC DVD) will speed up by 20%. Frame-rate conversion is possible but typically causes unacceptable artifacts. Setting the frame rate to 30 eliminates the speed-up for NTSC, but also requires 20% more CPU and graphics power.

Note that increasing the frame rate also speeds up the animation. To compensate for this, decrease the master speed proportionally.

Print from bitmap

The print command normally draws directly to the printer's device context; when this option is checked, the print command draws to an intermediate bitmap instead, and then blits (copies) the bitmap to the printer's device context. The option should normally be unchecked, because drawing directly to the printer takes advantage of the printer's resolution, which is usually much better than screen resolution.

The only down side of drawing directly to the printer is that images drawn in X-Ray mode may have slightly different colors in the printout than they do on the screen. Checking "Print from bitmap" fixes this, but at the cost of using screen resolution, which causes stairstepping (jaggedness) on lines and edges.

Input

Mouse sensitivity

This setting changes the sensitivity of the pointing device to horizontal and vertical motion. The larger the value, the more effect motion has. The value is a percentage of normal sensitivity, ranging from 25 (a quarter as sensitive) to 400 (four times as sensitive). The default setting is 100 (normal). Note that this setting only affects Whorld, as opposed to the system mouse settings in the Control Panel, which affect all applications.

Wheel sensitivity

This setting changes the sensitivity of the pointing device's wheel. The larger the value, the more effect motion has. The value is a percentage of normal sensitivity, ranging from 25 (a quarter as sensitive) to 400 (four times as sensitive). The default setting is 100 (normal). Note that this setting only affects Whorld, as opposed to the system mouse settings in the Control Panel, which affect all applications.

Tempo nudge

This setting is the percentage that the nudge tempo commands increase or decrease the tempo by. The nudge tempo commands are Image/Tempo/Nudge Up (+ key) and Image/Tempo/Nudge Down (- key). The setting ranges from 0.1% to 0.9%.

For example, if Tempo Nudge is set to 0.25% (the default) and the tempo is 120, pressing the + key once makes the tempo 120.3 (120 × 1.0025 = 120.3).

Tempo nudge is a trade-off (precision versus speed) and a matter of taste. If it's too small, you won't be able to adjust the tempo quickly enough. If it's too big, you won't be able to get close enough to the desired tempo.

MIDI

MIDI device

This option allows you to select a MIDI device. The list of devices varies, depending on what MIDI hardware is installed. If your PC doesn't have a MIDI device, the only option is "No MIDI input", which disables Whorld's MIDI support.

The default value is "No MIDI input", which means that in order to use MIDI, you must select a MIDI device at least once. Typically, you'll also need to assign specific MIDI messages to Whorld's functions, using the MIDI Setup dialog.

If you're using a USB MIDI interface, always connect it to the PC before launching Whorld. If you launch Whorld while the interface is disconnected, your device selection will be lost, and connecting the interface won't make it appear in the device list: you must first exit Whorld, and then connect the interface, re-launch Whorld, and reselect the device.

MIDI sync

When this option is checked, Whorld synchronizes the tempo to MIDI clocks. Unlike manual synchronization, MIDI sync doesn't drift, even if the tempo changes. Note that tempo has no visible effect unless origin motion is set to Random.

The PC must be connected to a device that sends MIDI clocks for this option to work. While MIDI sync is checked, the origin will not jump unless Whorld is receiving MIDI clocks. Not all MIDI devices send clocks. If necessary, use a different application to verify that the PC is receiving MIDI clocks.

In MIDI sync mode, the usual methods of setting the tempo (Master dialog's tempo controls, Tab key, tempo nudge keys) have no effect. Other tempo functions have subtly different meanings, as shown below:

Name Key Function
Tap Tab No effect: tempo set by MIDI.
Nudge Up + No effect: tempo set by MIDI.
Nudge Down - No effect: tempo set by MIDI.
Resync Enter Restarts the tempo loop.
Double ] Doubles the meter.
Half [ Halves the meter.

MIDI sync mode introduces the concept of meter, which governs the relationship between the MIDI tempo, and how often the origin jumps. Tempo is measured in beats per minute (BPM). When the meter is 1/4, the origin jumps once per beat, e.g. at 120 BPM, the origin jumps 120 times a minute, or twice per second. The meter is changed via the [ and ] keys. The available meters are listed below. Note that in MIDI sync mode, the status bar displays the meter instead of the tempo.

MeterJumpsBPM
4/1every sixteen beats/ 16
2/1every eight beats/ 8
1/1every four beats/ 4
1/2every other beat/ 2
1/4every beat× 1
1/8twice per beat× 2
1/16four times per beat× 4

Folder

Default output folder

In Veejay mode, dialogs aren't permitted, and as a result, certain commands that create output files behave differently. These commands normally display a file dialog, which prompts the user for the name and location of the output file, but in Veejay mode, the output file is silently created in the default output folder, using a filename that's synthesized from the date and time. The commands that behave this way are:

File/Save Mix
File/Take Snapshot
File/Movie/Record

This setting allows you to change the location of the default output folder. The default location is a subfolder called "Whorld" in "My Documents". The full path of the default location varies, but it typically has the form:

C:\Documents and Settings\foo\My Documents\Whorld

where foo is a substitute for the current username. The default location has advantages: since it's within your profile, you're guaranteed to have access to it, and it's also guaranteed to be a unique location for each user. If you change the location, make sure you have access to whatever folder you specify. Note that if you specify an invalid folder, or one that you don't have access to, you may not see any error messages, because Veejay mode doesn't allow dialogs.

It's possible to make these commands always create their output files silently; see Use default folder.

Use default folder

In Veejay mode, certain commands create their output files silently in the default output folder, instead of displaying file dialogs. You may find it more convenient for these commands to never display file dialogs; if so, change the "Use default folder" option from "In VJ mode" to "Always". Selecting "Always" is a trade-off: you can create files quickly without stopping the animation each time, but the files won't have meaningful names, unless you go back and rename them later.

Loose Ends

Selecting items

Some of Whorld's dialogs allow multiple items to be selected at once. The interface is common to all Windows applications, but it's described here anyway.

Single itemLeft-click it.
Contiguous groupLeft-click the first item, and then Shift+left-click the last item. Shift+left-click can also expand or trim an existing selection.
Non-contiguous groupCtrl+left-click each item. To remove a item from the selection, Ctrl+left-click it again.
All itemsLeft-click any item, and press Ctrl+A.

Tap Tempo

Tap tempo is a method of manually synchronizing Whorld's tempo to music, by tapping a special key along with the beat. This initial synchronization typically has to be corrected, by nudging the tempo up or down slightly. The tap tempo functions are as follows:

Name Key Function
Tap Tab Sets the tempo when tapped repeatedly in rhythm.
Nudge Up + Increases the tempo by the tempo nudge percentage.
Nudge Down - Decreases the tempo by the tempo nudge percentage.
Resync Enter Restarts the tempo loop, without changing the tempo.
Double ] Doubles the tempo.
Half [ Halves the tempo.

The tempo can be entered simply by tapping the Tab key twice: Whorld measures the elapsed time between the taps, and sets the tempo accordingly. Note that tempo has no visible effect unless origin motion is set to Random.

More accurate results can be achieved by increasing the number of taps. Each additional tap provides another elapsed time measurement, or sample. The tempo is calculated by averaging the samples, but only so long as they stay within 10% of the average. If a sample is off by more than 10%, the history is flushed, and averaging starts over again from that sample.

You can tap on any evenly-spaced subdivision of the music, not only the main beat. You may prefer to tap on longer subdivisions (e.g. half notes, whole notes, every other measure) so the origin doesn't jump as often.

After tapping the tempo, watch the origin, to see if its jumps are in sync with the music. It's is easier to see when damping is low. If they seem out of sync, try tapping the Enter key once, right on the beat, or slightly ahead of it. This shifts the jumps onto the beat, but doesn't change the tempo. The sync should improve, at least temporarily. If it stays good for a while, you're done.

Otherwise, when the sync starts to drift, try to determine which way it's drifting. If the jumps are falling behind, the tempo is too slow, so nudge it up. If they're getting ahead, the tempo is too fast, so nudge it down. Be careful not to overcompensate. If you're way off, it may be easier to start over, by tapping the tempo again. It's beat-matching, and it takes some practice.

Without MIDI sync, drift is unavoidable; the question is just how quickly it gets big enough to bother you. Assuming the music has a fixed tempo, you shouldn't have to resync more than once or twice a minute. If you do, either the DJ has his thumb on the record, or you haven't got the tempo right. It may help to play with the tempo nudge percentage.

Export

The export command creates a Windows bitmap (BMP file) from the current image. The command freezes the current frame, and displays a file dialog, allowing you to specify the output file's name and location. The command then displays the Export dialog, which allows you to configure the Export options, as described below. To do an export, use File/Export or Ctrl+E.

Still frames should initially be saved as snapshots, and exported later, because snapshots are much more compact than bitmaps, and can be zoomed and edited without loss of quality.

Use window size
If checked, the bitmap will be identical to the current image: it will have exactly the same size, resolution and cropping. The other options are irrelevant in this case, and are therefore disabled.
Width
This allows you to specify the bitmap's width, in pixels. Changing the width causes the image to be either cropped, or scaled, depending on the Resizing option; see below.
Height
This allows you to specify the bitmap's height, in pixels. Changing the height causes the image to be either cropped, or scaled, depending on the Resizing option; see below.
Resolution
This allows you to specify the bitmap's resolution, in DPI (dots per inch). Resolution is the relationship between pixels and inches; changing it affects the bitmap's size in inches, but doesn't affect its size in pixels at all, and therefore doesn't affect its cropping or scaling either. DPI is usually only noticeable when the bitmap is printed or imported into another application. The default resolution (72 DPI) is good for web graphics; for printing, the bitmap should match the printer's resolution, which is typically much higher.
Resizing
This option determines the resizing method. It only has an effect when "Use window size" is unchecked and the specified Width and Height differ from the window size. The methods are as follows:

Crop
The image is cropped to the specified size. If the size is bigger than the window, previously hidden portions of the image may become visible; if the size is smaller, portions of the image are cut away or "cropped".
Scale to fit
The image is scaled up or down to the specified size, without changing the cropping. If the size is bigger than the window, nothing is lost, but if the size is smaller, details may be obscured. The scaling is isotropic, i.e. the image's original ratio of width to height is preserved.

Panic

This command restores critical settings to reasonable values. The affected settings all have the potential to cause confusion or degrade performance. Panic can rescue you from a variety of problems, but the transition can be a bit jarring. To execute this command, use Window/Panic or press Esc.

Panic takes the following actions:

Panic also exits from full-screen, but not from Veejay mode.

Note that if you're using a MIDI controller, after pressing Panic, the positions of your knobs (or sliders, or whatever) are no longer meaningful. To fix this, move the knobs to their default positions, and then Zero Controllers, or press Panic again.

Tearing

Tearing is a distracting visual artifact. It typically looks like horizontal lines running up and down the image. Tearing occurs if the display is refreshed while the CPU is in the middle of writing a new frame to the graphics hardware. At that moment, both the old and new frames are partially visible, and if they differ (as is likely), the eye perceives a discontinuity (a tear) in the image.

Tearing can be prevented by using Veejay mode to make the image full-screen; this causes Whorld to use DirectDraw's Exclusive mode, which synchronizes access to the graphics hardware. Note that both DirectDraw and Exclusive mode must be enabled; see DirectDraw options. In normal windowed and full-screen modes, tearing is unavoidable.

Performance

Performance problems typically manifest themselves as a slowing-down or jerkiness of the animation, with visible pauses between frames. In extreme cases, the user interface may become unresponsive. Should this occur during a performance, pressing Panic will usually resolve the situation.

The best solution is a more powerful computer. Whorld is graphics-bound, which means that upgrading the graphics card will probably make more difference than adding memory or upgrading the CPU. On the other hand, a cutting-edge graphics card may not perform optimally (or at all) without upgrades to other components, so it might be easier to start from scratch. The recommended system cost approximately $1300 in Q3 2005, not including the trackball and MIDI controller. It's a medium-duty gamer-style system, and it manages to avoid slowdowns in almost all cases, even while recording a movie.

Note that the recommended system is housed in a SFF (Small Form-Factor) Micro-ATX case, not a laptop. This has obvious disadvantages (it's not as portable as a laptop, and there's no built-in screen or keyboard/mouse) but at the time of this writing, there are no PC laptops powerful enough to run Whorld optimally, and even if there were, they would be absurdly expensive. For the moment, if you want Whorld to run smoothly in all modes, be prepared to lug a SFF machine to your gigs. It weighs about 20 pounds and fits in a gym bag.

The other performance solutions can be divided into two categories: less rings, and less effects.

Less rings means keeping the ring count low, and there are various ways to achieve this. The most direct method is the master Rings setting. This allows you to place an absolute limit on the number of rings. The downside is that you may drastically simplify the composition, though this could be a plus in some cases.

Decreasing the canvas size also helps keep the ring count low. The downside is that at values below 140%, rings may die (or be born) on-screen. Also there will be less hidden stuff to see when you zoom all the way out.

Increasing Ring Spacing is another way to reduce the ring count. The downside is that the composition becomes more spread-out and sparse.

The ring count can also be reduced by decreasing the window size and/or the screen resolution. For VJs, decreasing the window size isn't an option, because performing is always done full-screen. However, lowering the screen resolution to 1024x768 or less makes good sense. At higher resolutions, 1-pixel-wide lines start to look too thin anyway, and increasing the line width above 1 pixel is a major performance hit (see below). In addition, the native resolution of most projectors is currently 1024x768 or less, so drawing at higher resolutions is wasted work.

Less effects means being careful about any of the following: Fill mode, Outline mode, X-Ray mode, Line Widths greater than one, and zooming in. All of these caused increased graphics overhead, and in combination they can be deadly. X-Ray is by far the worst offender. Using X-Ray with wide lines, fill and outline can bring even the mighty Radeon X800XL to its knees. To use all of these effects at once, you may have to give up something else, e.g. limit the number of rings, increase the ring spacing, zoom out, etc.

Extreme negative Star Factor can also create performance problems, because it causes some of a ring's vertices to remain visible for much longer than others. Since a ring is only deleted when all of its vertices are off-canvas, extreme negative Star Factor prolongs the ring's life, thereby increasing the average ring count.

Troubleshooting

Horizontal lines are running up and down the image.
This is tearing. The only solution is to use Veejay mode; ordinary full-screen mode won't fix it.
The image flickers on a laptop or flat-panel display.
Try using Veejay mode. If that doesn't help, turn off any fluorescent lights, and try changing the Frame Rate. To isolate the problem, hook up an external monitor (a CRT, not a flat-panel) and see if the flicker goes away.
Whorld is non-responsive.
Try pressing Panic (Esc). If that works, it's a performance problem; get a better computer, or avoid using features that cause trouble. Otherwise, it could be a bug.
The animation slows down, or gets jerky or stuck.
See above.
The origin moves slowly, or gets stuck.
If the animation is OK, most likely Damping is set too high. If the animation is also slow or stuck, see above.
The image is frozen.
You might be in Pause: try pressing Space. Also Master Speed or Ring Growth could be zero, otherwise it could be a performance problem.
Editing parameters doesn't affect the image.
You're probably viewing the crossfader mix instead of the document; see View Mix. It also could be you're inadvertently editing something other than the document; see Edit Selection.
The cursor disappeared.
This is normal behavior in Drag Origin mode. Press Shift+D or Esc to make it reappear.
The origin is jumping around by itself.
You're in Random Origin mode. Use Image/Origin/Random (Shift+R) to stop it.
Whorld is switching to different patches by itself.
You're in Autoplay mode, or possibly Demo Mode.
The colors aren't cycling anymore.
You've created a hue loop; use Image/Loop Hue (F2) to clear it.
Increasing Lightness makes the image darker.
You're in Invert Color mode; use Image/Invert/Color (F4) to reset it.
The rings are contracting, but Ring Growth is positive.
You're in Reverse mode; use Image/Reverse (Backspace) to switch direction.
My MIDI controller is connected, but nothing's happening.
You must select your MIDI device, via the MIDI device setting in the Options dialog. Also you must assign properties to your controllers; see MIDI setup.
The scroll lock LED is flashing.
This indicates that you're recording a movie. Use File/Movie/Record or Ctrl+R to stop. If it was unintentional, you might want to delete the movie, because movies can be very large.
I lost some changes I made to my playlist.
The main menu's File/Save (Ctrl+S) saves the current patch, not the current playlist. To save the playlist, use File/Playlist/Save, or File/Save from the playlist dialog's menus.
I saved some files and now I can't find them.
They could be in the default output folder.
I get a DirectDraw error.
Make sure you have DirectX 8.1 or higher installed; you can check this by running dxdiag from the Windows Run prompt. In Display Properties (Control Panel/Display), select Settings, Advanced, Troubleshooting, and make sure the hardware acceleration slider is set to "Full". Also make sure you're using High color (16-bit) or True color (32-bit). If it's an older PC, try upgrading the graphics card.
I have some problem that's not addressed above.
Try viewing the demo; if that works, there could be something wrong with one of your patches, or your playlist. Otherwise, try resetting all options: open the Options dialog (View/Options or Shift+O), press the "Reset All" button, and then exit Whorld and restart it.

Main Shortcuts

+Tempo Nudge UpIncrease tempo by nudge percentage
-Tempo Nudge DownDecrease tempo by nudge percentage
=Tempo Nudge UpIncrease tempo by nudge percentage
Ctrl+AAutoplayPlay the current playlist
Ctrl+CCopyCopy the selection and put it on the Clipboard
Shift+CCenter OriginCenter origin within window
Shift+DDrag OriginEnable origin dragging
Ctrl+EExport BitmapExport the current image to a bitmap file
Ctrl+Shift+EExport AllExport all snapshots
Shift+FPatch FullLoading a patch affects all settings
Shift+GPatch GeometryLoading a patch affects geometry only
Shift+IMIDI SetupShow or hide the MIDI setup dialog
Ctrl+JCycle VideoCycle video clips in sync with tempo
Ctrl+LLoad SnapshotRestore one or more captured images
Shift+LPlaylistShow or hide the playlist dialog
Ctrl+MView MixView crossfader mix
Shift+MMaster SpeedShow or hide the master speed dialog
Ctrl+NNewCreate a new patch
Shift+NNumbersShow or hide the numbers dialog
Ctrl+Shift+NPlaylist NewCreate a new playlist
Ctrl+OOpenOpen an existing document
Shift+OOptionsShow the options dialog
Ctrl+Shift+OPlaylist OpenOpen an existing playlist
Ctrl+PPrintPrint the current image
Shift+PParametersShow or hide the parameters dialog
Ctrl+RRecord MovieRecord a movie
Shift+RRandom OriginEnable random origin
Ctrl+Shift+RVideo Random OriginRandomize video origin when mirrored
Ctrl+SSaveSave the current patch
Shift+SMake PatchSave the current mix as a new patch
Ctrl+Shift+SPlaylist SaveSave the current playlist
Ctrl+TTake SnapshotCapture the current image
Ctrl+VPasteInsert Clipboard contents
Shift+VPrint PreviewDisplay full pages
BackspaceReverseGrow rings inward
Alt+BackspaceUndoUndo the last action
Shift+BackspaceStep BackwardStep rings backward
Num DelVideo OffDisable video
DeleteClearClear window
Shift+DeleteCutCut the selection and put it on the Clipboard
DownLess DampingDecrease damping
Ctrl+DownShorter CrossfadeDecrease crossfade time
EndLastGo to last item
EscPanicRestore default settings
F1HelpList Help topics
F10Random PatchGenerate a random patch from crossfader inputs
F11Full ScreenToggle full screen mode
Ctrl+F11VeejayToggle live performance mode
F12Auto FadeStart/stop automated crossfade
Shift+F12LoopEnable/disable looping of automated crossfade
F2Loop HueLimit hue cycling
F3Rotate HueRotate hue 90 degrees
F4Invert ColorInvert color
F5MirrorMirror image
F6FillFill area between rings
Shift+F6Invert FillToggle fill for all rings
F7OutlineOutline filled rings
Shift+F7Invert OutlineToggle outline for all rings
F8X-RayDraw rings with XOR pen
Shift+F8Invert X-RayToggle XOR pen for all rings
F9Random PhaseRandomize modulator phases
HomeFirstGo to first item
Shift+HomeRewind VideoAutomatically rewind clips before playing them
Ctrl+InsertCopyCopy the selection and put it on the Clipboard
Shift+InsertPasteInsert Clipboard contents
LeftNext Patch ALoad playlist's next patch into crossfader input A
Page DownNextGo to next item
Num 0Clip 0Select video clip 0
Ctrl+Num 0ROP DSnaAND inverted source with destination
Alt+Num 0Cycle 10Cycle most recent 10 video clips
Num 1Clip 1Select video clip 1
Ctrl+Num 1ROP DSnoOR inverted source with destination
Alt+Num 1Cycle 1Cycle most recent 1 video clips
Num 2Clip 2Select video clip 2
Ctrl+Num 2ROP SDnaAND source with inverted destination
Alt+Num 2Cycle 2Cycle most recent 2 video clips
Num 3Clip 3Select video clip 3
Ctrl+Num 3ROP SDnoOR source with inverted destination
Alt+Num 3Cycle 3Cycle most recent 3 video clips
Num 4Clip 4Select video clip 4
Ctrl+Num 4ROP DSaAND source with destination
Alt+Num 4Cycle 4Cycle most recent 4 video clips
Num 5Clip 5Select video clip 5
Ctrl+Num 5ROP DSoOR source with destination
Alt+Num 5Cycle 5Cycle most recent 5 video clips
Num 6Clip 6Select video clip 6
Ctrl+Num 6ROP DSxXOR source with destination
Alt+Num 6Cycle 6Cycle most recent 6 video clips
Num 7Clip 7Select video clip 7
Ctrl+Num 7ROP DSanAND source with destination, invert result
Alt+Num 7Cycle 7Cycle most recent 7 video clips
Num 8Clip 8Select video clip 8
Ctrl+Num 8ROP DSonOR source with destination, invert result
Alt+Num 8Cycle 8Cycle most recent 8 video clips
Num 9Clip 9Select video clip 9
Ctrl+Num 9ROP DSxnXOR source with destination, invert result
Alt+Num 9Cycle 9Cycle most recent 9 video clips
Page UpPreviousGo to previous item
EnterTempo ResyncResynchronize tempo
Shift+EnterStep ForwardStep rings forward
RightNext Patch BLoad playlist's next patch into crossfader input B
SpacePauseFreeze current frame
Shift+SpaceStepStep forward one frame at a time
UpMore DampingIncrease damping
Ctrl+UpLonger CrossfadeIncrease crossfade time
Shift+WWindow ZoomEnable window-centered zoom
Ctrl+XCutCut the selection and put it on the Clipboard
Shift+XCrossfaderShow or hide the crossfader dialog
Ctrl+ZUndoUndo the last action
Shift+ZZero ControllersReset all MIDI controllers to zero
[Tempo HalfDivide current tempo by two
\ConvexDraw rings in descending size order
]Tempo DoubleMultiply current tempo by two
_Tempo Nudge DownDecrease tempo by nudge percentage

Playlist Shortcuts

Ctrl+ASelect AllSelect the entire playlist
Ctrl+CCopyCopy the selection and put it on the Clipboard
Ctrl+NPlaylist NewCreate a new playlist
Ctrl+OPlaylist OpenOpen an existing playlist
Ctrl+SPlaylist SaveSave the current playlist
Ctrl+VPasteInsert Clipboard contents
DeleteDeleteDelete the current selection
InsertInsert PatchInsert one or more patches into the playlist
Ctrl+XCutCut the selection and put it on the Clipboard