The Linux Softsynth Roundup
Dr Matthias Nagorni has written a variety of useful applications and utilities for ALSA, JACK and LADSPA; however, his current crowning achievement must be his wonderful ALSA Modular Synthesizer (AMS). This software emulates the great modular synths of yesteryear, providing the user with a large selection of modules to choose from.
Figure 2 illustrates AMS in its most basic form. In a subtractive synthesis patch, the routing essentially is identical to that used by amSynth, but the difference lies in the greater flexibility of AMS. Unlike the fixed design of amSynth, AMS is completely flexible with regard to the connections between its various modules.
Most modules cheerfully accept arbitrary input connections and have little or no concern for the destination of their own outputs. But beware; when modules are connected in atypical configurations, the output can be quite unusual or even overpowering, so take care with your system volume control when testing such patches. Each module has its own dialog (shown in Figure 2), which is opened by right-clicking over the module's name.
Dr Nagorni supplied the following informative notes:
AMS implements special features to ensure that all three major synthesis methods [additive, subtractive, FM] can be easily used with it. The module Dynamic Waves implements additive synthesis of up to eight oscillators in one single module. Each harmonic can be shaped with an eight-point envelope, and the envelopes are graphically visualized. To enable easy access to integer harmonic tuning, useful for FM, VCOs have an additional harmonic and subharmonic slider. There is also the required linear FM input port. For subtractive synthesis to work properly, it is crucial that control voltages obey the classical logarithmic convention of 1V/Octave. This way, you can move the filter cutoff wherever you like, and you can still have perfect VCF tracking. Log Frequency is also useful at other places, including vibrato with an LFO.
AMS has been designed for real-time work. It is especially well-suited for MIDI control, and most parameters can be linked to a MIDI controller for real-time changes. AMS can be used equally well as a monophonic or polyphonic synth, and multiple instances of AMS may communicate over JACK to create a multi-timbral setup. Its support for the LADSPA plugins extends its already rich feature set, making AMS an ideal solution for those of us without access to a hardware synthesizer. A complete MIDI composition environment can be built from nothing more than a reasonably fast machine, one of the fine Linux MIDI sequencers, such as MusE or Rosegarden, and AMS.
Some setups will work better than others, so the good doctor has prepared a healthy supply of sample patches for your study and experimentation. You can hear some of them in the demo files available from the AMS home page, but as with all the synths profiled here, I suggest you download and install it yourself to see and hear what really it can do.
First there was SpiralSynth, then there was the SpiralLoops program, a cool looping sequencer, and then there was the SpiralSynthBaby, designed to be a plugin for SpiralLoops. Finally, developer Dave Griffiths decided to roll all of them into one open-ended modular synthesizer construction kit called SpiralSynth Modular (SSM). Like AMS, SpiralSynth Modular provides the user with a canvas and a palette of modules for placement and connection on the canvas, but SSM has its own unique design and sound-producing capabilities.
Figure 3 shows off SSM running its first tutorial patch. This example shows a simple type of synthesis called wavetable synthesis. The wavetable is a predefined stored waveform (sine, square, triangle, pulse, etc.) that is triggered by the virtual keyboard and modified by the envelope generator before heading out to the sound card DAC through the OSS output module. In the example, we can see that the synthesizer is played through the computer keyboard, but SSM also provides a MIDI module for receiving and routing MIDI messages. The keyboard module is a nice touch, and I had great fun with it playing SSM from my laptop's QWERTY keys.
SSM does not function as a native ALSA sequencer client, so it cannot be wired directly to an ALSA port like amSynth or AMS. However, it can be hooked to the standard OSS/Free MIDI device (/dev/midi) for input from any hardware or software connected to that device. If your machine has no MIDI hardware, you can employ ALSA's virmidi virtual MIDI ports by setting the MIDI channel to the appropriate port in the SSM Options (/dev/snd/midiC1D0 for my laptop; see Figure 4). This enables connection to other ALSA-aware processes through aconnect or the ALSA patch bay.
Dave Griffiths has thoughtfully provided some excellent demos of the synth on the SSM home site. Its FLTK interface is pleasant and easy to use, the program includes a generous share of interesting and useful modules, including LADSPA support, and the latest version can be built with support for JACK. Dave plans to include a much-improved plugin version of SpiralLoops for a soon-to-arrive version of SSM, and we can expect more direct support for ALSA as well.
Similis sum folio de quo ludunt venti.
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- Vigilante Malware
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Vagrant Simplified
- Libreboot on an X60, Part I: the Setup
- Bluetooth Hacks
- System Status as SMS Text Messages
- Dealing with Boundary Issues
- Non-Linux FOSS: Code Your Way To Victory!
- October 2015 Issue of Linux Journal: Raspberry Pi
- New Products