The Internet Synthesizer
Fourth Incarnation
by J H H Lowengard
How This Works:
The Internet Synthesizer (Sinth) creates audio samples based on the responses
from a form filled out by YOU, THE USER. In a small way, it simulates
the experience of patching together analog synthizer modules in the
days of yore (or Moog, Buchla, Serge, ARP, ElectroComp, EMS and other
fine analog manufacturers). You will hear nothing if your
computer cannot play .au "mu-law 8Khz 8bit" style audio samples.
There are a number of interfaces you can use:
- You can play with a few parameters of preset synthesizer patches,
already having been confugured for your enjoyment.
- You can play with a more-or-less unfettered version of the program,
allowing unbridled creativity LIMITED ONLY BY YOUR IMAGINATION.
- You can torture your copy of Netscape with the special NETSCAPE
TORTURE version. This page puts up a very large Table of checkboxes
and input fields. HTML stretched to its limits! P.S. Also tortures Internet
Explorer and other browsers as well.
- You can type in the Sinth control files directly (or paste them from
some other file), and get the synthesized results. Rough 'n' ready
for the EXTRA GEEKY! Read the docs first, or you will have no success.
- You, the ultra-up-to-date cyber-snorkler, can run the Java front end
as well! Compact and speedy! Slightly kludgy in the URL department
due to Java's lack of a decent POST method.
If you are a person with access to a C compiler and sufficient programming
chops, you can also obtain the source from me, free of charge, by
repeated sycophantic flattery via e-mail. The underlying program is
fairly adaptable for other synthesis experiments.
Important Note: The popular browser Netscape, and possibly
other browsers, has the annoying habit of caching the newly generated sound
because it always has the same name . This shows up mostly when using the
documentation feature, where the sound is accessed by bopping a button.
You can turn the caching off in
the Network Options menu, but then, you won't be able to page back to
old patches to tweak the numbers. Yet another demonstration of the
half-baked nature of HTTP/HTML and of course, those greedy, bullying pigs
at Netscape. This same Web page works perfectly under Lynx.
Go to the Preset Patches!
Go to the Modules!
Use Ultra-nerdy Control Files!
Special Netscape Torture Screen!
Use the Java version!
Description of Synthesizer Modules:
This synthesizer uses a number of modules, and each module processes
a number of inputs into a number of outputs. There are also some
static parameters, which are mostly switches and parameters you set once
and forget. The way you connect a control signal to a module
is by selecting the control signal via pop-up menus for the appropriate
module input.
Very Important: the output of the synthesizer is taken from the
output of Out, so something had better be plugged into
it in order to be heard!!
Here are the various things you can connect:
- Oscillators: (called O1, O2 and O3)
- Oscillators generally supply repeating signals which are used as sound
sources. They can also provide signals which control other modules'
characteristics. The frequency is a number given either in Hertz for an
accurate frequency, or a real number from -3.0 to 5.0 (roughly) which
corresponds to the logorhythmic "1 unit per octave" standard, based on 0
representing a lowish frequency C.
The amplitude scales the output and is usually connected to an envelope
generator. The duty cycle warps the phase of the signal, which is only
used in the square wave and triangle wave. Valid values for duty cycle
are -1.0 (for 0%) to 0.0 (for 50%) to 1.0 (for 100%) - so you can plug a
unit-scaled signal directly into this parameter. Oscillators' signals can
be plugged into each other to make Amplitude Modulated (AM) or Frequency
Modulated (FM) sounds as well.
- inputs: Freqency (F), Amplitude (A), Duty Cycle (D)
- output: Signal
- parameters: Waveform (Square,Triangle,Up Sawtooth, Down Sawtooth
or Sine),
Frequency Scale: log (1 unit/octave) or linear(Hertz) frequency.
[Oscillators]
- Noise: (called N1)
- Noise is a random signal that sounds like static on the radio. But when
filtered and mixed with other signals, it's quite useful.
- Envelope Generators: (called EG1,EG2 and EG3)
- Envelope generators make commonly used control signals. The EG's themselves
are controlled by a trigger signal. When the trigger starts, the value of
the control starts changing from the Start Level
toward the Attack Level
at the Attack Rate.
When that level is reached, it starts changing toward
the Sustain Level
at the Decay Rate. The signal remains at the Decay level
until the trigger signal turns off, at which point the signal drops again
to the Release Level at the Release Rate.
All these rates are specified as "inverse seconds", i.e. a rate of 10 means
the transition will take place in 1/10 of a second. The higher, the faster.
Because this is complicated,
I supply a number of presets. Organ turns on and off quickly,
with a high sustain level. Guitar turns on a little less rapidly,
with a slow drop to quietness.Swell Has a slow attack and slow
release.Flute has a moderate rise, a fall to a lower sustain and
moderate release.All these levels have a range from 0.0 to 1.0.
- parameters:Start level, Attack rate,Attack level, Decay rate,
Sustain level, Release rate, Release level
- output: Signal
[Envelope]
- Sequencers: (called SQ1,SQ2)
- Sequencers provide a timed series of 8 control signals. The speed that
the sequencer runs at is controlled by a parameter SQnS. The values
can be used to make a very, very short melody.
- parameters: Values (SQnA..SQnH),Speed (SQnS)
- output: Signal
[Sequencer]
- Gates: (called G1,G2)
- Gates modulate the amplitude of an input signal with control signal,
which is usually a signal from an envelope generator, but could be another
Oscillator (for ring-modulator effects).
- inputs: Signal(S),Control(C)
- output: Signal
[Gate]
- Low Pass Filter: (called F1)
- A low pass filter is used to remove high frequencies - those below
frequency "F" - from a signal. The resonance controls both how much the
higher frequencies are attenuated and how much that frequency is boosted.
Helpful tip: keep the frequencies in the audible range!
- inputs: Signal(S), Frequency (F), Resonance (Q)
- output: Signal
[Filter]
- Out: (called Out)
- This is what you plug stuff into to hear it!
[Out]
- Constants:(called C1-C10)
- Sometimes you just want to plug a constant into a control signal.
I give you ten constants named A,B,C,D,E,F,G,H,I and J.
- output: Signal
- Parameter: value
[Constants]
Beside these objects, there are more general settings which should be
adjusted:
- Trigger:(called trig_on,trig_off and trig_rep)
- The trigger provides timing for all the envelope generators.
- Output: (internally used by all Envelope Generators)
- Parameter: On time, Off time, Repeat
[Trigger]
- Duration:(called duration)
- The duration controls how long the sample will end up being, in seconds.
[Duration]
- Output Format:(called format)
- The synthesizer can return a mu-law encoded sample (Au), which is 8 bits
mono at 8012 Hz, or a NeXT/Sun snd file(snd), which is 16 bit mono at
22050 Hz.
[Format]
[Back to the main page]
Henry Lowengard,
jhhl@panix.com / 110 Fair St. / Kingston NY 12401
© 1998 Henry Lowengard