(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.