LOI is not developed anymore, I didn't do anything useful since 2006. I use Rakarrack now, it's a great effects processor, although not exactly what I had on mind when creating LOI.
LOI is a realtime sound processing tool. You can use it as a software guitar pedal or a voice distorter or for any other realtime sound processing purposes you can think of. It uses LADSPA sound processing plugins. The core is written in C, the frontend is written in Python with GTK+ bindings, so it's easy to maintain and extend.
It is far from being complete, but if you meet the requirements, you can try it, it is already working and you may actually like it. See my TODO list for some things I'd like to implement in the future. However, I'm quite busy right now so it may take several months till I do some work on the LOI again.
The program runs under linux only and uses the OSS sound drivers (other drivers are planned). It works in 44100Hz, 16bit mono full duplex mode only, your soundcard must support this(most modern soundcards do). You should have at least 200MHz pentium with 32 MB RAM for the program to be useful. You must have python and pygtk installed. Under debian, install package named python-gtk2. LOI is tested with GTK2 version 2.6. Furthermore, you need libsndfile for reading and writing audio files. In debian, this package is called libsndfile1-dev.
Download the archive and unpack it. Enter directory server and type make. If everything went right, you should have an executable server file main in the server directory. Don't run it directly.
The plugins directory contains precompiled LADSPA plugin libraries. If you wish to compile them yourself, delete the *.so files in plugins directory, build plugins/src packages according to individual instruction and move appropriate binaries to plugins directory. These libraries were taken from various places over the internet, see README files in individual plugin archives.
Go to the top LOI directory and run ./loi.py. If you're lucky, the program should be running now.
After you run loi, you get this screen.
The upper part is a drawing area where you can place individual sound processing plugins, represented by boxes. Soundcard input and output as well as sound file input and output are handled exactly the same way, I'll refer to all of them as plugins.
The lower part is used for spawning new plugins, removing them and controlling their properties.
Go to Audio tab and Spawn new soundcard plugin. With left mouse button, drag'n'drop it in the upper part where you like it. Now go to Libraries tab and spawn Cabinet plugin from the plugins/caps.so library. Again, move it where you like it. Notice there are two squares on the soundcard box, labeled in and out. Those squares are ports through which the sound data flows. Now click with the right mouse button on the in port of the soundcard plugin, hold the button, move over to the out port of the Cabinet and release the button. Now the sound data will flow from the output of the Cabinet plugin to the input of the soundcard plugin (to your loudspeakers). Do the same for the in port if the Cabinet plugin and the out port of the soundcard plugin. Note that you always have to start with the in port. Now, you can press the Start button and LOI will start realtime sound processing. If everything went right and you have some sound source (microphone, guitar in line in or whatever) connected and your loudspeakers turned on, you should hear the sound ran through the cabinet emulation plugin. While LOI is running, you cannot reconnect ports or add or delete plugins, you have to press the Stop button first. Click on the Controls tab, then click on any plugin and adjust it's parameter in realtime to your desire.
Actually, that's about all LOI can do. Similarly you can spawn audio file plugin and record what you have created or mix your guitar riffs with some input sound file. Certainly there is a lot of work to be done on LOI, but the core is done and it suits my basic needs.
You can download the program source, including precompiled plugins, here.
A must
Better Sound files support
Presets loading/saving
Special behaviour for int/log/srate/toggle
Add/Remove libraries on the fly
More soundcard drivers, better OSS driver (at least stereo :-)
Deleting plugins with DEL or some other easy way
Careful selection of the plugin set
Description of the protocol and some docs in general
Initialize all parameters before activating plugin (!)
Snap to ports when dragging connections
Find out why reverbs refuse to work sometimes..
Server should grab realtime priority (SCHED_FIFO)
Some means of asking the server about status (e.g. when fileout runs out of disk space)
some kind of displaying output control ports and implementing io control ports (e.g. seek slider for file plugins)
allow connecting plugins in other than input-output order ?
enable changing font sizes, port distances etc…
Properly destruct all objects on program termination (!)
Enable selection of output file type (au/wav/aiff etc….)
Do something about licences and crap alike
Would be nice
Some kind of inidicators of the sound level, etc..
Some kind of mixer
allow non-connected plugins ?
You might want to have a look at these pages