Introduction and Requirements

Using gAlan is much like setting up an effects-chain for, say, a guitar. You choose the effects units you wish to use, lay them out, and then connect them to each other, starting with the guitar, threading through the effects, and ending up at the amplifier (and ultimately the speakers).

It's not just limited to acting as an effects-chain, though. You can also configure it (using the same basic principles) to act as a mixer, a sample-sequencer or drum machine, or a synthesiser capable of emulating various analogue systems. The examples page and the tutorial provide some descriptions of some of the ways gAlan can be used. The User Guide has a section on common motifs in mesh design which may also give an impression of how gAlan works.

What do I need to run gAlan?

You will need

  • a working Linux, Windows 9x or Windows NT system
  • GTK+ 1.2.x or newer (and the associated version of GLib, of course)
  • Michael Pruett's audiofile library
  • a soundcard which can manage 16-bit stereo at 44100 Hz (full duplex is nice, too)
  • a reasonably fast Pentium processor (this is not enforced - but a P166 or better is recommended. DSP is heavy going!)
  • some patience while development progresses

Currently gAlan is known to build and run on these systems:

  • RedHat 6.0 (glibc 2.1.1) - Linux 2.2.10 - egcs 2.91.66 - ES1371 OSS sound driver
  • Windows 95a - egcs 2.95 / mingw32 - ES1371 with Creative drivers

If you try compiling gAlan on a different system configuration, and it's not on the list, please let me know about it (see here for contact details) - including any special action you had to take to get it running, any problems you couldn't surmount, and (if everything compiled and ran OK for you), any problems you can see or areas where gAlan could be improved.

A RedHat Linux 6.0 system should have all the required libraries installed out-of-the-box. gAlan was developed using RH6.

Note that gAlan currently uses floating-point internally, so a processor with an FPU is more-or-less mandated. Most 486s and all Pentiums have an FPU.

The Win32 support is still very much alpha. Please see the README.w32 file in the source distribution and the news page for recent announcements regarding Win32 support.

gAlan currently only works with the OSS drivers on Linux - if ALSA worked on my soundcard (ES1371) properly, there'd be ALSA support too. Elliot Lee has contributed basic ESounD (ESD) support - there are still a few problems with latency, but that's more ESD's problem than gAlan's.

NOTE: Once the GTK+ port to BeOS stabilises a little, I may do some work on porting gAlan to BeOS. Anyone interested?
(Yes, Jason, I know you're interested ;-) )

Show me the code!

You can download gAlan from this page. Both full source-code and binary distributions are available.

gAlan is distributed under the GNU General Public License. As a special exception, the plugins are not required to be licensed under the GPL. The writer gets to choose a license for each plugin he/she writes. So if any third party vendor wants to distribute a plugin for gAlan with a different license, that's fine - and if they're a little touchy about their source-code, they're welcome to distribute the plugin as a binary only.

How do I use it?

First, you read the User Guide.

Seriously though, how does it work?

When you start the application, you are presented with a blank sheet. You right-click on the sheet and a menu pops up, from which you select the class of component you want to instantiate. You can link components together by dragging from one connector-handle to another. The handles on the top and bottom of each component are event connectors, and the handles on the sides are audio connectors, so events flow from the top of the screen to the bottom, and audio flows from the left to the right. (Have a look at the screenshots if you're confused.)

When you have the connections set up the way you want them, you instruct some of the components you have placed on the sheet to manifest their controls (by using the pop-up menu and choosing a control from the "New Control" menu). The controls appear in a separate window - the control panel. (You make the control panel visible from the "Window" menu on the menu bar.) Drag the controls around until they're laid out the way you want them.


If you'd like to contact me, you can find my contact details here.

I'd love to hear what people are doing with gAlan - if you use it, and produce something interesting, I'd really enjoy hearing it! (I'd be especially thrilled if people like, say, Jason Spaceman of Spiritualized, or Massive Attack were to let me know they'd had a look at gAlan... ;-) )

Any improvements you can think of, or problems you can see, let me know. I'll need constructive feedback to shape the software for the next major release. Please check the main website before you email me, just to check that your idea is not already known to me.

If you're building on a system not mentioned in the list of known-good systems above, I'd like to hear about any problems you have, and whether you make it to a running system in the end.

If you develop a plugin for gAlan, I'd love to hear from you! I'd like to collect more plugins that I can either include with future releases or link to from these pages for gAlan users to download.