Lack Of Invention

Update 2008

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.

Introduction

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.

Requirements

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.

Instalation

Build the server

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.

Build the plugins

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.

Run LOI

Go to the top LOI directory and run ./loi.py. If you're lucky, the program should be running now.

Working with LOI

First impression

After you run loi, you get this screen.

LOI after start

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.

Try it out

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.

LOI running

Conclusion

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.

Download

You can download the program source, including precompiled plugins, here.

TODO

A must

Would be nice

Similar projects

You might want to have a look at these pages