README FOR ELE 0.1
ELE = Excellent Low-latency Effects. When I make a logo, it will be an elephant!
ELE 0.1 is copyright 2000 by Morris Slutsky. This program is licensed under the GPL. This license is included in the file COPYING.
WHAT IT DOES:
Realtime effects - currently implements distortion
and reverb. Allows effects to be looped through
each other in arbitrary and very interesting ways.
Latency is so low that you can use this to play
guitar or sing through. Future plans include
creation of many, many, more effects such as EQ,
resonance, pitch shifting, modulators, oscillators,
envelope filters, sample loops, and all kinds of
fun stuff.
SYSTEM REQUIREMENTS:
Should work on most recent 2.2 kernels. Hasn't been
tested on anything besides x86. Requires GTK+ to be
installed. Has been tested on GTK 1.2.3.
Requires a full-duplex 16-bit 44100 Hz sound card -
AWE 64 will NOT work! In fact, probably no ISA card
can work fast enough anyway. It is assumed that there
will be a /dev/dsp device for the card. I'm using
a Sound Blaster Live with the open-source driver.
It's not a memory hog, but will probably require a
fast CPU. My K6-2 400 has no trouble with this -
your mileage may vary.
- INSTALLATION
I guess you must have untarred it to be reading
this, so just run make! A binary called ele is
produced, just run it. There is no fancy installer
at this point in time. Someday I will learn how to
make one.
- OPERATION
If you run ele as root, it will claim realtime priority for the audio processing thread. This is not necessary, but the audio will be glitch-free. When running ele as an ordinary user, there may be annoying, though non-fatal, glitches in the audio when windows are resized and things like that.
The only thing that works in the File menu is the Exit command. You cannot save your work at this time, sorry! The Help menu is also nonfunctional. The other menus actually work and do stuff.
Upon starting ele, you will see two boxes in the window, labeled LINE IN and LINE OUT. These are effect modules, and they actually perform the reading and writing from the sound card. You should have your mixer set so that the recording source is selected and the volume is set to zero on the source channel, while WAVE output should be turned on and all the way up. Now your input source will not be echoed through the speakers.
The boxes have colored squares on them - these are terminals. The terminals on the left side of a box are inputs to the module, while the terminals on the right side are outputs from the module.
If you click on a line-in terminal and then on a line-out terminal, a wire will be created and you should hear your source channel through the speakers. Both Line-In and Line-Out have a left and a right terminal, so you can hook them up normally or crosswise. You may notice that creation of a new wire destroys any wires that previously have existed on either terminal - this is intentional. If you wish to simply destroy a wire without connecting a new one, click on one of the terminals connected to it and choose Disconnect from the menu.
You can insert effect modules from the Insert menu. Should you wish to delete one of the modules, make sure it has no wires connected to it. Then click on one of its terminals and choose Remove from the menu.
So, let's say that you pull down a Reverb, Distortion, and Splitter. You connect a Line In channel to the distortion, the distortion to the Reverb, the reverb to the splitter, and the splitter to both Line Out channels. Yet, you don't hear anything! Why?
You have to set the parameters on the Reverb and Distortion modules. Right-click on the Reverb module and a dialog box will pop up showing you Delay, Wet, Dry, and Regeneration parameters. Right-click on the Distortion module and you will see Drive, Saturation, and Level. Pull Dry all the way down, pull Drive to about 40, pull Level all the way down, and you should hear sound! Now you can play with the parameters and listen to how the sound changes. Maybe go get your guitar and some sort of a preamp, and play it through your computer....
If you want to do something cool, set up Line In to a Mixer, Mixer to a Reverb, Reverb to a Splitter, Splitter to Line Out and Distortion, and Distortion back into the Mixer. By playing with the settings, you can get some REALLY EXCELLENT LOW-LATENCY EFFECTS!
WHAT'S THAT WEIRD TEXTBOX FOR (OPTIONAL) :
That is a command line interface which can do everything the menus can, but in a more user-unfriendly manner. Some people may prefer it. It is case-insensitive. These are the commands:
- (add) SYNTAX: A type EXAMPLE: A5 <cr> inserts a new Reverb module
- (remove) SYNTAX: R ID EXAMPLE: R102 <cr> removes the module with ID number 102, provided that this module exists and has no connections to it.
- (connect) SYNTAX: C ID-ID terminal terminal EXAMPLE: C100-101 ab <cr> will connect the first output of Line In to the second input of Line Out. The output module is stated first, both as ID and terminal letter. The terminals are denoted as abcd.
- (disconnect) SYNTAX: D ID terminal EXAMPLE: D100A <cr> will undo the connection made in the last example. The output terminal must be specified, not the input, so D101B will not work and will produce an error message on the console output. This is in order to eliminate ambiguity - does B mean the second OUTPUT terminal, or the second INPUT terminal on a Passthrough box, for example.
@: (debugging commands)
SYNTAX: DON'T EVER USE THIS
EXAMPLE: @-1 will cause an assert to fail and the
program will terminate in an ugly messy way.
