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:

  1. You can play with a few parameters of preset synthesizer patches, already having been confugured for your enjoyment.
  2. You can play with a more-or-less unfettered version of the program, allowing unbridled creativity LIMITED ONLY BY YOUR IMAGINATION.
  3. 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.
  4. 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.
  5. 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. [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.

[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. [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). [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! [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. [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. [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