15.11. AlsaModularSynth — Synthesizer and Effect Processor

AlsaModularSynth (from the package alsamodular) is a digital replica of an analog modular synthesizer. The program has a JACK interface and can load all kinds of LADSPA effect plug-ins. Thus, it can also be used as a versatile effect processor.

Enter ams to start AlsaModularSynth from the command line. The parameter -j activates the JACK mode, provided the JACK engine jackd is running (see 15.5. “The JACK Audio Connection Kit”). The required port connections can be established with QJackConnect. Individual ports are generated for each PCM module in the JACK mode. AlsaModularSynth only appears in the list of QJackConnect if at least one PCM module exists.

Figure 15.14. The AlsaModularSynth Main Panel

The AlsaModularSynth Main Panel

The directory usr/share/doc/packages/alsamodular contains numerous example patches that demonstrate the various possibilities. Detailed documentation is available in the subdirectory html.

15.11.1. Synthesizer Patch Examples

The application package for AlsaModularSynth provides a selection of patch examples to allow the user to start working with the application right away. The folder demos is located in the directory /usr/share/doc/packages/alsamodular. A few autonomous patches are contained there that generate interesting random sound loops. The files concerned begin with example_ams_demo. Patches containing scope and spectrum in their name feature corresponding modules whose visualization can be opened by right-clicking the module title. Experiment a little, for example, and experience how the character of the music changes when the quantization of the Quantizer module (ID 7) is changed from pentatonic to 1/6 (full range scale). Complete instruments can be found in the folder instruments. The patches miniams.ams as well as phaser_instrument.ams are actually quite versatile. These patches are supplied with a number of presets that can be called with MIDI program changes. A few of the presets are defined with the Parameter View dialog available from View. A systematic guide to the creation of custom patches is provided in the tutorial folder.

15.11.2. AlsaModularSynth as an Effect Processor

Figure 15.15. The Ladspa Browser

The Ladspa Browser

Especially in the JACK mode, AlsaModularSynth can be used as a versatile effect processor. One example for this is example_capture.ams. If you connect an external sound source to your sound card and use alsamixer to specify the correct settings for the capture, the example will work even without JACK. With the Ladspa Browser, started with Module+Show Ladspa Browser, generate modules for LADSPA effects. Plug-ins should always be created with Create Plugin, unless you use AlsaModularSynth as a polyphonic synthesizer. Create Poly Plugin generates a separate plug-in instance for each part.

15.11.3. AlsaModularSynth as a Synthesizer

After having used the MIDI patchbay kaconnect to connect AlsaModularSynth with a master keyboard (vkeybd or an external keyboard), you can use the program as a synthesizer. If polyphony is not explicitly activated with the parameter --poly, AlsaModularSynth will be monophonic, just like its classical model. The envelope modules are single-triggered, as is often the case with analog synthesizers. This means that they are not restarted during legato play. This allows interesting phrasing. Multitriggering is activated by connecting the trigger output signal of the MCV module to the retrigger input port of the envelope module.

A few LADSPA plug-ins greatly enhance the virtual analog sound of AlsaModularSynth. The plug-ins “Saw-VCO”, “Mvclpf-3”, “Mvclpf-4”, and “Phaser1” by Fons Andersen deserve special attention. “Saw-VCO” is designed to resemble an analog saw-toothed wave generator. “Mvclpf-3” and “Mvclpf-4” are very realistic reproductions of the filter cascade invented by R. A. Moog. These plug-ins represent a milestone in the digital reproduction of this legendary low-pass filter. An effect module frequently featured in a classic modular system is the Bode Frequency Shifter. The plug-in of the same name implemented by Steve Harris allows experimenting with frequency shifting.

15.11.4. Keeping Track with the Control Center

Select the MIDI channel in the Control Center, build connections between the MIDI controllers and the module parameters, and create individually operable user interfaces, for example, for live performances. Range limitations for the sliders can also be set here.

Figure 15.16. MIDI Controllers and Module Parameters in the Control Center

MIDI Controllers and Module Parameters in the Control Center

The list to the left displays the MIDI controllers used in a patch. In this tree view, the parameters associated with a controller are shown under the respective controller. As soon as a controller event that does not exist in the list is received via MIDI, it is added to the list. The list to the right shows the modules and their parameters. If you select a parameter here, the respective control appears, enabling modification of the parameter and range limits.

To create a MIDI binding, select a controller in the list to the left and a parameter in the list to the right. Then click Bind. To clear a MIDI binding, simply select the respective parameter in the list to the left under the controller and click Clear Binding. Clear All clears the entire list of MIDI controllers and bindings. With Toggle MIDI Sign, determine whether a parameter should increase or decrease with rising controller values. The settings of these MIDI controllers become effective only when the current parameter value has been attained. This prevents sudden parameter jolts.

Add to Parameter View adds the currently marked module parameter to the Parameter View dialog. The parameters can be easily arranged into tabulators and labeled frames.

15.11.5. The MIDI Out Module

The output of the MIDI events generated by a MIDI Out module is realized by way of the two readable MIDI ports of AlsaModularSynth in the left list of kaconnect. If several MIDI Out modules are used simultaneously, the MIDI events are merged accordingly. As both notation and controller events can be sent, the module can also be used to control all kinds of parameters via control voltage. To do this, the readable MIDI ports must be connected with the writable MIDI port. The example example_midiout_controller.ams shows the change in an envelope with autogenerated controller events. Easily follow the movement of the envelope by opening the configuration dialog of the ENV module (ID 5) with the right mouse button. The option Follow MIDI in the Control Center should be deactivated while this patch is running.

If you connect the readable MIDI ports of AlsaModularSynth with a MIDI sound generator, example_midiout_note.ams plays scales controlled by an LFO. example_midiout_note_velocity.ams shows that the velocity data can also be autogenerated. example_midiout_random.ams generates random music with drums.

15.11.6. Writing WAV Files with the WAV Out Module

Using the WAV Out module, directly record the signals generated or processed by AlsaModularSynth as a WAV file in CD quality. In the configuration dialog of the module, select New File to open a file browser. If the file displayed under File is successfully generated, the buttons under Record are activated and can be used.