Geometer

From the Destroy FX Labs!
http://destroyfx.org/

-- Geometer: Introduction --

Geometer is a visually-oriented waveform geometry plugin. It lets you redraw your sound in many different ways.

Geometer has a built in help system, where mousing over the various options will bring up explanatory text at the bottom of the plugin. I recommend using that instead of this help text, but it would be a good idea to read the "basic operation" section that follows before jumping in.


-- Geometer: Basic Operation --

The basic operation of Geometer is as follows:

Step 1. Generate some 'landmarks' or 'points' on the waveform. This is just a list of (x,y) coordinates. The parameter called "how to generate landmarks" and the slider below it control how this happens; the various methods will be described later.

Step 2. Do up to three operations on these lists of landmarks. These are controlled by the three buttons next to "how to mess them up" and the three sliders below them.

Step 3. Recreate the waveform using the points. This can also be accomplished in many ways, controlled by the "how to recreate the waveform" button and the slider above it.

The other main thing to know about Geometer is that it processes sound using windows. Basically this means that overlapping segments of the input are processed and then the ends are mixed together (cross-faded) to avoid discontinuities at the edges that can cause clicks. You can adjust the size of this window and the way that windows are cross-faded by using the "window size" and "window shape" buttons. The size of the window is measured in samples. In most hosts (applications that you load your plugins into), you need to stop and restart the sound before changes to the window size will take effect.

At the top of the plugin there's a box that shows what's happening to your sound. The dark green line is the input sound. The purple dots are the landmarks, and the light yellow line is the output waveform. This display uses the input sound as a source, but also operates when the plugin is stopped.

The sliders are labelled with a very short description of what they do for the current effect. If it says "????" then the slider does nothing.

Geometer comes with a load of presets meant to show you how it can be used. Of course, some of these will sound bad if used on the wrong kind of input signal, so if it's not interesting, try it on a different sound. Also be wary that the presets change the window size, and most hosts need you to restart the sound in order for that to take effect.

Most of all, experiment!


-- Geometer: Generating Landmarks --

Here are the different ways to generate landmarks:

ext 'n cross: This detects zero-crossings (when the waveform crosses the x axis) and extremities (highest and lowest points between zero crossings) and places points at those. Sometimes you want to avoid making points on low-volume noise; adjusting the slider changes what range of values is considered 'zero'. Ext 'n Cross is a good all-around point generator.

at freq: This generates points on the waveform at the given frequency. The frequency display is unrelated to normal measures (ie, hertz) and is dependent on the window size, so you'll just have to use your eyes and ears. Because the x values of points generated by 'at freq' don't depend on the input waveform at all, some regeneration styles (especially 'sing') are crummy when fed with 'at freq' points.

random: This places points randomly on the waveform. The slider controls how many points are placed. Using 'random' to generate points will almost always result in noisy output. This is partially because different random points will be chosen when the waveform is processed in separate overlapping windows.

span: Generates a point, and then generates the next point a distance away that's determined by the height of that point. The slider affects how much the height influences the distance. Span is especially good with waveforms that have highly dynamic characteristics, like drums.

dy/dx: Generates a point whenever the derivative (difference between the last and previous samples) is bigger than the amount indicated. The center of the slider is 0, where practically every point meets the criteria. dy/dx is also excellent for dynamic waveforms like drums and guitar strumming.

level: Generates a point whenever the waveform crosses a level (specified by the slider) both above and below the origin.


-- Geometer: Point Operations --

none: If the op shows as an empty green square, then the points are left alone.

x2: Doubles the number of points by placing a point between each adjacent pair. The height of the new points is determined unscientifically by its neighbors and the slider. Sometimes there's no room for points, and those are simply left out.

1/2, 1/4: These thin the number of points by a factor of 1/2 and 1/4. The slider doesn't do anything.

longpass: If the point isn't a certain minimum distance from the previous point, it's dropped. The distance is controlled by the slider. Longpass is extremely useful for making sure that there are no really short intervals (which typically become high frequency noise), especially when used with the waveform recreation option 'sing'.

shortpass: If the point is more than a maximum distance from the previous point, its height is set to zero. Not quite as useful as longpass, but who knows?

slow: This spreads out the points by the factor set by the slider. Some points fall off the end of the window and are discarded. Depending on the window size and size of intervals, this effect can result in a pitch change or a sort of stuttering effect ('dfx Bufferoverride').

fast: This compresses the points along the x-axis, repeating from the beginning when it runs out. The amount of compression and repetition is controlled by the slider. Like slow, this can either change the pitch of the sound or make it stutter.


-- Geometer: Recreating the Waveform --

An "interval" is the space between adjacent pairs of landmarks. When the space is referred to as an interval, it usually doesn't matter what the height values of the endpoints are.

polygon: Draws straight lines between the points. Since the points become corners, this introduces some high frequencies, however, in general this is like a lowpass filter. The slider controls the slope of the lines; throw it all the way to the right to get a square wave.

wrongygon: Like polygon, but the lines are drawn the wrong way. This has huge discontinuities and is much harsher than polygon, but can be 'dimmed' with the slider in the same way.

smoothie: Uses smooth curves to interpolate between points. This results in a nice smooth lowpass. Turning the slider changes the exponent of the curve, which changes its shape dramatically.

reversi: Reverses the contents (from the original wave) of each interval. This can create bizarre phasing artifacts with some window sizes. Try it with a low frequency of points on a large window with singing for input, for instance. (The preset 'atonal singing' is a good example of this. Run it on some vocals and play with the frequency parameter...)

pulse: Each point gets a little pulse, and the rest of the wave is empty. The slider controls the width of the pulses, and overlapping pulses do funny stuff. Generally a digitally harsh lo-fi sound.

friends: Stretches the original wave in each interval to overlap and mix with the next interval (its 'friend'). This can give the impression of lowered pitch (if the points are spaced evenly) or do all sorts of other weird stuff. Try with large but unevenly spaced points for a 'DFX Scrubby' sort of effect.

sing: This replaces each interval with one period of a sine wave. I suggest feeding it with something like 'span' or 'dy/dx' on dynamic input like drums. Also, longpass can be used to reduce the noisiness of the output. Watch out, this setting is loud! If you move the slider to the left, then the sine wave is used for amplitude modulation instead, resulting in a totally different sound. (For this one, feeding with 'at freq' might not be so silly...)

shuffle: This swaps around intervals randomly. The slider controls how far intervals can travel. Sounds best with large intervals and window sizes.


-- Geometer : Trouble --

Due to a bug in Wavelab 3, if you add Geometer to a track while it is playing, you won't hear any output until you stop and restart playing. It will work fine from then on. Other hosts may have this problem too, so try the same solution.

When using really large window sizes (like 2^12 or bigger), Geometer's processing might occur less frequently than the rate at which the host processes audio buffers. This can cause an uneven processing load (spikes) that might max out your CPU. Use a smaller window size if you have this problem.


-- Geometer : Info --

Geometer was mostly made by Tom 7, though Sophia did most of the painful GUI, MIDI learn, and chunk code. She also offered valuable suggestions and debugging help. (Thanks Sophia!)

'span' was suggested by Bram of Smartelectronix.
'friends' was invented when Jason Reed misunderstood what I meant by windowing.
'some other effect' will be invented by you! Suggest away!


You can use this plugin for free in your songs or live performances without paying us anything. You can even share it with your friends (though we prefer that you send them directly to our home page, link below!) or change the source code to make it do things differently. However, we ask that you do the following:

       - Let us know if you use the plugin in a song (use the message board below)
       - Consider making a donation at:
         http://destroyfx.org/donate.php
         (Go there for the cartoon, at least!)


This software comes with absolutely no warranty, express or implied. Use at your own risk. See the file COPYING for full license terms.


If you have comments or suggestions for additions to be made to Geometer, why not leave them on our message board?

http://msg.spacebar.org/f/a/s/msg/disp/10