(Add)
Adds the contents of two waves. If
inputs are different lengths, output
length is the longer of the two.
Watch out for clipping at 255!!!
(Alternate)
Uses one to four inputs, which get
shuffled out round-robin style.
Produces neat patterns. If all four
Inputs were hooked up, the Output
would look like this: Port0.Data0,
Port1.Data0, Port2.Data0,
Port3.Data0,
Port0.Data1,Port1.Data1, etc...
Alternate is the OPPOSITE of Splitter
(AltTune)
A very unusual module; converts a
wave into any tonality. Top Output
port is a re-tuned wave and bottom
Output port is a whammybar output.
Top cycle is number of notes per
octave, bottom is the 'Bias'. The
input wave is re-scaled using this
Bias note as a reference limit.
Ideally, top Output should be hooked
to ToMidi's top Input, and bottom
Output should be hooked to ToMidi's
3rd (whammy) input. The output MIDI device
device should have its Bend Range
set to 1 half-tones.
(And)
"Ands" the contents of two waves. If
inputs are different lengths, output
length is the shorter of the two.
(Arpeggiate)
Takes the pattern present at the top
Input port, and repeatedly adds it
to the Wave coming into the bottom
Input port. The Band determines the
section of the pattern to use, the
bottom two controls are not used at
this date...
(AutoColor)
This is a "bell and whistle"
function. When enabled, (by default
at startup time), AutoColor changes
the background color of the main
window whenever a module is moved,
and also changes the color of
Graphics plots. The options are
Enabled, Disabled, and Frozen. If
Frozen is selected, the background
color stays fixed. This color is
also saved with the network.
(AutoFire)
When set, forces a Network to fire
upon loading. The Keyword Control sets the
enable/disable flag.
(AutoSwitch)
Switches data from one of four Input
Ports to the Output Port. Every time
the network is fired, a new Input
Port is selected. The top Numeric Control
shows which Input Port is switched
in. It is updated AUTOMATICALLY
depending on the setting of the
bottom Numeric Control, which selects either
Forward, Backward, or Random
progression. The center Numeric Control turns
the switching on or off.
(BkgdImage)
Sets the image used in Revvie's
background. Must be a SGI RGB image.
Images which are less than 300 pixels
wide are tiled, larger images are
centered.
(BlankData)
Produces an all-zero Wave of a
desired length. This output can be
used to insert blanks into other
Wave streams. The Numeric Control sets the
length.
(ChainLink)
Concatenates up to 4 waves
end-to-end. Output can be very long;
order is from top port down.
(Clip)
Trims leading and/or trailing events
from a wave. Output size always less
than or equal to Input size. Output
can be trimmed to fit, or Output can
be padded with zeroes to fit
original Input wave's X domain. The
horizontal Band controls the
percentage of the Input to pass
through.
(Comments)
Provides a type-in field where a
brief comment may be entered.
Comments get saved with the Network.
Sorry, this is a one-line text
field, at least for now.
(ConeWorld)(RainWorld)(RampWorld)
These Modules use an Image to produce Waves.
there is a little crosshair which you can
place over the image with the mouse; the
data under the crosshairs is scanned both
across and down, and these two scans produce
two Waves, which correspond to the two Module
outputs.
ConeWorld produces a set of random Cones.
Its controls set the number of Cones, and
the random seed.
RampWorld produces a
series of randomly generated ramps
in the X and Y directions;
RampWorld's controls set the
number of ramps and the random seed.
RainWorld produces a random 2D array of dot
patterns. Its controls set the amount
of rain and the random seed.
Ripples (not implemented yet) produces a series
of ripple patterns. Ripples' controls
set the number of ripples, the
wavelength (in pixels) and the
random seed.
(Constant)
Creates an output which has only one
value; the length of this output is
determined by the size of the input.
(Delay)
Padds a wave with zero-amplitude
values at the beginning. The cycle
selects the offset in events. If
Delay value is non-zero, Output size
is larger than Input.
(DrawIt)
Shows a little Graph of what a wave
looks like. Basically used for
diagnosis and testing, or for
experimentation with intermediate
wave results.
(DrawLines)
Lets you draw a set of lines; the X
and Y values along those lines are
converted into Waves at the two
output ports. The top Numeric Control sets
how many Events are produced for
each Line Segment. The 2nd Numeric Control is
currently unused. To Draw a Line,
hold the mouse over the drawing area
until a little yellow cross appears.
The area behind the cross becomes
dim purple after that, indicating
you can make a new vertex. Hold the
mouse still to enter a new point;
the back- ground will turn black.
Now move the mouse, and a new
rubberband line will appear. To quit
creating lines, move the mouse out
of the drawing area. To clobber the
lines, move the mouse over the Red
box at the right of the drawing
area. To break to a new line, move
the mouse over the Blue Box and hold
it there until a new line jumps over
to your mouse.
(DumpIt)
Dumps ASCII output to a shell window
or to the Console. Lists size of
Wave and then each piece of data in
the Wave.
(DumpMidi)
Dumps all MIDI output to a shell
window. Very verbose! Can also cause
glitches in the MIDI stream timing,
so use it only as a debug tool.
(DynSwitch)
Has three inputs: Control, In0, and
In1. For each zero value from
Control, a value from In0 is passed
through. For each nonzero value of
Control, a value from In1 is passed
thru, making this a dynamic
switcher. Output length is the
MINIMUM of the 3 input lengths.
(Entropy)
Entropy is a very special Module. It
can change the values of controls in
other Modules, producing random,
unpredictable results. Its mode is
set by the Top Keyword Control. Its simplest
mode, 'Seed', produces a noise
output, whose seed and noisiness
changes each time the network is
fired (see Noise for more info) The
other modes are
Sources,Sinks,Opers,All, and None.
These modes affect the values of
controls on the different types of
modules. Controls are randomly set
within legal limits. Type-in fields
Draw and Image fields are not
affected. The middle Numeric Control is the
seed value, which changes each time
the network is fired. The bottom
Keyword Control enables or disables the
Entropy function. If you find an
Entropic Result you like, Disable
the Entropy module and write your
network out ASAP.
(EscapeKey)
Controls the function of the Escape
Key. If set to Exit, then pressing
Escape will exit the program, or halt
MIDI output if firing.
If set to Clobber, only the MIDI halt
function is enabled. If set to None,
the Escape key does nothing.
(Fade)
Linear Fade-In or Fade-Out. Tapers
Wave amplitude to zero from Input
level. The horizontal Band selects
portion of Input Wave where the Fade
actually occurs.
(FitX)
Takes up to four waves, and sets their
lengths to the value in the Numeric Control.
Each wave is interpolated to fit to the desired length.
(Fractals)
Produces a Fractal Bitmap. Produces Z=Z**2 + C
(Mandel2) or a special Fractal,
(Mandel3). More fractals to come.
The first Numeric Control sets the Fractal
type. The 2nd Numeric Control selects the
number of iterations; smaller means
faster. The 3rd and 4th controls set
the X or the i offset, multiplied by
0.001. The 5th Numeric Control sets the zoom
factor.
---see ConeWorld for more info
(FromFile)
Loads a Wave from an ASCII file. The
format is one record per line; the
first record is the number of events
in the Wave, followed by Wave data.
The Numeric Control determines the file to
load from. The files are named
frakrawxx.asc, where xx is 00 - 99.
The amplitude range is from 0 to
255, but if the Wave has been scaled
to fit into a Musical range, it may
be from 24 to 96.
(FromMIDFile)
Loads a .MID file, sends output
DIRECTLY to MIDI. Network output
still under construction, don't use
the output port unless you like
weirdness... Top field is filename
(full path or it assumes the local
directory where Revvie started up)
Bottom Numeric Control is output MIDI
channel(s). 'AsIs' plays MIDI data
unaltered; a numeric value forces
MIDI data to a particular channel.
(FromTextFile)
Loads the contents of an ASCII text
file. Characters become Wave values.
Top field is filename (full path or
it assumes the local directory where
Revvie started up) The two Numeric Controls
control start and end character
position from the beginning of the
file.
(Gap)
Carves a "notch" out of a Wave,
filling in zeroes. The horizontal
Band selects portion of Input Wave
where the Gap actually occurs.
(GMPatch)
Causes a MIDI Patch Change to be
sent; this is performed ONCE at the
START of Network Firing. The Bottom
control sets the MIDI Channel on
which the patch change is sent.
(HowBig)
Displays the size (in single events)
of the input Wave; useful in
troubleshooting to see if any data
is present at an Output Port.
(IClipX)
Trims leading and trailing events
from a Wave. Only works for events
in the 0...1024 X domain. The Top
control sets the left (starting)
event, and the Bottom Numeric sets
the right (ending) event. As an
example, if the input contained 256
events, this setting the Numeric Control
controls to 0 annd 128 would pass
through only the first half of the
data.
(Immunity)
A very important module. When connected
to other modules (input OR output ports!),
Immunity protects
them from being changed by Entropy.
All modules downstream from protected
modules are also made immune.
(Invert)
Flips amplitude values in a wave.
High values become low and low
values become high. Formula: output
= 255 - input. Output size is same
as Input. Handles up to 4 Waves.
(IZoomX)
Stretches a Wave by an integer value.
Setting the numeric control to
2 would make the wave twice
as long. No smoothing or interpolation is done.
(IScaleY)
Works on up to 4 waves at once.
Scales Inputs to fit within the
upper and lower ranges specified by
the two Numeric Controls. These values should
be different! Output sizes are
identical to Input sizes, but each
Port may have a different size.
(IShiftXY)
Shifts incoming events in both the X
and Y domains. Top Numeric Control changes X
or time values, and Bottom Numeric Control
changes Y or amplitude values. Both
can be set to positive or negative
offsets. This module is similar to
the Shift Module, but is more
precise.
(Juggle)
Takes sections of the input wave, and
switches them with other sections of the
same wave. This can be used to produce
a very complex result.
The top two controls set the number of sections
and the random seed.
The bottom Keyword Control sets the type
of Juggling: Constant sized sections, or Variable
size sections.
(KBFit)
Squeezes or Stretches the Input Wave
Amplitudes to fit into the desired
range on a Keyboard; C3 is the same
as "Middle C" on a Piano. There are
two special Numeric sets, which
select the lower and upper notes of
this keyboard range. Works with up
to 4 Waves simultaneously.
(MaxMeasures)
Used to truncate MIDI output.
If set to 16, then all MIDI output will
stop after 16 beats. Independant of tempo.
(Melody)
Produces a crude algorithmic melody,
which is a combination of noise and random
percussiveness.
The first control is the Clumpsize, or
average size of musical passage.
The second control is the Spread, which
determines how many notes the melody is
spread across.
The third control sets the random seed.
The fourth control sets the Key Intonation
---see ToKey
(MidiCapture)
Writes any outgoing MIDI to a .MID
file; Captures Notes, Controller
events, patch changes, and tempo.
The MID filename is entered in top
control. Bottom Control allows you
to override MIDI output to the MIDI
port, for capturing MIDI data
silently.
(MidiPatch)
Causes a MIDI Patch Change to be
sent; this is performed ONCE at the
START of Network Firing. The Bottom
control sets the MIDI Channel on
which the patch change is sent.
(Mix)
Mixes the contents of two waves. If
inputs are different lengths, output
length is the longer of the two. The
Numeric sets top/bottom Input Port
mixing; negative numbers mix more of
the top Input Port, positive numbers
mix more of the bottom Port.
(Modulate)
Alters the timing of a Wave,
compressing or expanding the length
between different Event values based
on the Modulation, from the bottom
Input Port. The Wave input is thru
the Top Port. The control sets the
amplitude of modulation; the largest
possible modulation is a full Event
tick in either direction.
(MultiPatch)
Sets MIDI Patches on Multiple
channels simultaneously. Similar to
MidiPatch, but patches are typed in.
You may type in up to 16 patches,
one for each channel. These must be
separated by spaces. To leave a
patch unchanged, use an 'x'. In the
example, only channels 1,2,3,5,and 6
are set, the others are unchanged.
(Multiply)
Multiplies two waves linearly.
The first control sets the amount of multiplication,
in percent, and the second control sets the
bias.
The bias is subtracted from the top wave,
which is then multiplied by the bottom wave
times the percent. The bias is then added back on.
Try a sine wave for the top input and a ramp for the
bottom to see a good example.
(NewNetwork)
When Enabled, reads in a New Network
after firing is completed. If firing
is aborted, no new network is
loaded. Old Network is erased from
memory. The top Edit Field sets up
the Filename. The bottom Keyword Control sets
the Disable/Enable flag, which also
includes Enab/NoFire, allowing a new
Network to be loaded WITHOUT firing
the old net.
(Noise)
This Source Module produces a Wave
which has a Random Noise Pattern.
The Output Length is always 256
events. The Top control sets the
Noisiness, while the Bottom Numeric Control is
the Random Seed. The Seed allows up
to 1000 random patterns.
(Percussion)
Allows rudimentary Percussion. The
small arrays of bars are used to
trigger beat events; there are 32
on/off switches in each array. Each
array has a matching Music Note
Widget, which determines which
keyboard Note is struck on each beat
for that particular array. The Top
Numeric sets how many Event ticks
occur between the 32 'beatlets'
represented by a full array of
switches. There is one output for
each array/NoteWidget pair.
(Ramp)
This Source Module produces a Ramp
Wave pattern. The Output Length is
always 256 events. The Graphic
Display shows what the data looks
like. The control sets the number
of Ramps .
(RandBlanks)
Interrupts a wave with blank (zero
data) segments, each of which has
random placement and length. Top
Numeric Control is average size of the random
segments, Middle Numeric Control is the random
seed. Bottom Keyword Control is the mode:
Constant size of Variable Size.
(RandNetwork)
When enabled, causes a Random Network
from the current default directory
to be loaded. Works like NewNetwork,
the Keyword Control may be set to Disabled,
Enabled, or Enabled/NoFire.
(RandPatch)
Basically a holding area for up to 8
patch numbers, one for each of 8
consecutive channels. When used in
conjunction with Entropy (set to
perturb Sources) this can generate
random patch assignments. The top
Numeric Control is the Offset, used to jiggle
all 8 patches at once. Sorry, MIDI
channels 9-16 aren't here.
(Repeat)
Repeats a Wave a number of times.
Output is at least as large as
Input. The control sets the number
of repetitions.
(Reverse)
Reverses a Wave. Output is same
length as Input. The Keyword Control
determines normal/reverse operation.
(RevSlice)
Reverses subsections of a Wave; size
of sections reversed is determined
by bottom Numeric Control control. Output is
same length as Input. Top Keyword Control
determines normal/reverse operation.
(Saw)
This Source Module produces a
Sawtooth Wave pattern. The Output
Length is always 256 events. The
Graphic Display shows what the data
looks like. The control sets the
number of Saw Numeric Controls .
(Scale)
Stretches or Shrinks the Amplitude of
a Wave. When shrinking, the vertical
Band represents the percentage AFTER
shrinking; otherwise it represents
the INVERSE. The Numeric Control selects
Shrinking or Stretching. Works with
up to 4 Waves Simultaneously.
(Shift)
Shifts Wave data in both X and Y
directions. The X shift wraps
around, so the Output is always full
of data and is the same size as the
Input. Works with up to 4 Waves
SImultaneously.
(Sine)
This Source Module produces a Sine
Wave pattern. The Output Length is
always 256 events. The Graphic
Display shows what the data looks
like. The control sets the number
of Sine Numeric Controls.
(SinoSine)
This Source Module produces a Wave
which is the multiplied product of a
Sine and Cosine (or Sine and Sine)
pattern. The Output
Length is always 256 events. The
Graphic Display shows what the data
looks like. The top Numeric sets
the number of Sine Numeric Controls, the
bottom control sets the number of
Cosines. The 2nd
control sets the amount of Warble,
and the 3rd control sets the
Warble Speed.
(SinxCosy)(SinxSiny)
This Source Module produces a Wave
which is the multiplied product of a
Sine and Cosine pattern. The Output
Length is always 256 events. The
Graphic Display shows what the data
looks like. The top Numeric sets
the number of Sine Numeric Controls, the
bottom control sets the number of
Cosines. SinxSiny is similar, but
returns the Sin x Sin product.
(Smooth)
Smooths Wave Data, performing an
averaging operation whose binsize is
determined by the Numeric Control. Larger
values result in smoother Output.
Output size is same as Input size.
(Spigot)
Turns each of four Channels Off or
On. Also can be used to turn ALL
FOUR On or Off. When Off, a length
of zero is passed for that
particular Channel. Top four Keyword Controls
are used turn individual Channels On
or Off; Bottom Keyword Control is Manual/All
On/All Off.
(Splitter)
Splits a wave up, slicing it up into
'clumps' and sending each clump out
through a different port,
Round-Robin style. The Top Numeric Control
sets the number of ports to use, and
the Bottom Numeric Control sets the clumpsize.
Splitter is the OPPOSITE of
Alternate.
(Square)
This Source Module produces a Square
Wave pattern. The Output Length is
always 256 events. The Graphic
Display shows what the data looks
like. The control sets the number
of Square cycles. The Band controls
the Duty Numeric Control's start and End
points within one Square wave cycle.
A very narrow selection produces a
more 'spikey' ON period.
(Storage)
This Module contains four 'Bins'
where waves may be stored. All four
Output Ports may contain valid data
at once. The Numeric sets which
Bin the Input data goes into. All
data stored gets saved along with
the network, in ASCII format. Be
careful storing large waves!
(Stretch)
Stretches each event in a wave,
producing a series of long,
plateau-like chains of values. The
Numeric Control sets the expansion factor.
(Subtract)
Subtracts one Wave from another.
Bottom Port's data is subtracted
from the Top Port's data. Since
Revvie doesn't support negative
data, you must watch for zero
amplitude clipping!!!
(Syncopation)
Allows a Wave to have 'holes' punched
in it, to create gaps in its timing,
or X-domain. It works on 32 events
only, but can be offset into the
Wave using the Numeric Control. The 32 Bit
Switches on the top are used to turn
on or off each of the 32 events. So,
if the 32 Switches are alternating
on/off, on/off, there will be 16
events passed, with a 'hole' between
each event.
(Tempo)
Sets the Tempo of ALL output to MIDI.
Tempo governs the duration of a
Quarter Note (see ToMidi modules) in
beats per minute. The Numeric Control sets the
Tempo.
(Throttle)
Throttle works a little like Square, in
that it produces a on/off wave, but
you can use the 32 bitswitches to make
up to 16on/off segments, each of which
is 1/32nd of the total wave length.
This wave length is controlled by the
bottom control; or if a wave is hooked
to the input port, its length will be
used instead. Throttle can be used
in conjunction with the And module
to make a syncopated melody from a
continuous wave, like a Sine. It can
also be used for sudden controller
on/off changes
(ToFile)
Writes one Wave out to an ASCII file.
See FromFile for a description of
the file format. The Numeric Control determines
which file is read from; see
FromFile for more info.
(ToKey)
Modifies Wave data so that each
event's amplitude value, when
converted to a MIDI note, falls into
a certain musical key and
intonation. The 1st Numeric Control sets the
intonation (Major Minor, etc). The
2nd Numeric Control sets the Key. The 3rd
Numeric Control weeds out duplicate notes
(NoDup) or passes all data through
(Dups), or, if set to Thru, passes
notes through without duplicate
checking OR range conversion. The
bottom two Numeric Controls set the low and
high keyboard range; the input range
is scaled to fit in this smaller
range.
(Transpose)
Shifts contents of a wave up or down
by semitones (single steps) or by
Octaves (12 steps). Top Numeric
sets the type of shifting. Bottom
Numeric controls amount of shift.
(TriggerKey)
Not implemented yet.
(ToController)
Sends out MIDI Controller signals only.
No note on/off events are produced. This
can be used to add effects or panning to
your output.
The top control sets the channel; the
second control sets the beat value.
The bottom control sets the phase.
(ToFile)
Writes one Wave out to an ASCII file.
See FromFile for a description of
the file format. The Numeric sets
which file is read from; see
FromFile for more info.
(ToMIDFile)
Writes out a .MID file; stores the
contents of up to four waves, one
per track, into this file. Top
type-in field is the filename to
save. There is NO confirmation
prompt if this file already exists!
Use left/right arrow keys to scroll
long filenames; there is no
middle-button 'send' support yet for
text entry. Bottom two fields are
the same as for all ToMidi modules.
(ToMidi>>)
This merges up to four Waves into a
complex MIDI signal. The Input Ports
(top to bottom), when hooked up,
control the Note, Velocity, Bend,
and Phase. Any unhooked ports result
in default values in the MIDI
stream: Velocity 64, no Bend. The
Numeric Controls (top to bottom) set the
Velocity, Channel, Beat Value (beats
per measure). The bottom Band
controls the Phase, which sets the
relative on/off times of each note
within a beat. At least the 1st or
3rd Ports must be hooked up for any
MIDI output to be produced (Note or
Bend Ports)
(ToMidi0>)
These are reduced versions of
ToMidi>. They only allow manual
control of the Beat Value and Phase,
and the two Input Ports allow Wave
data to control the Note and
Velocity. The "0" in ToMidi0 means
that it broadcasts on Channel 0.
There are 3 other modules with
canned Channels 1-3.
ToMidiX4 is a VERY simple module; it routes
four inputs out to MIDI; the controls set the
channel, the beat value and the phase.