Give Me 3 Synths, Part 2
In this second installment I'll profile Minicomputer, a subtractive synthesizer with some familiar aspects, unique characteristics, and terrific sounds. Let's take a look under its hood and see what makes the Minicomputer run.
Malte Steiner is no stranger to audio software development. His hYdra program was one of the earliest graphic editors for the files produced by the Csound hetro audio analysis utility, and a version for Java (hYdraJ) is still available. Recently he has turned his talents towards the software profiled in this article, his Minicomputer software synthesizer for Linux.
According to the description on its Web page, Minicomputer is designed especially for making sounds typically associated with experimental music in the industrial and grindcore styles. It is essentially a monophonic subtractive synthesizer architecture similar to amSynth, but with a considerably expanded design. Minicomputer is fully controllable with MIDI and employs JACK for its realtime audio output.
Alas, it's unlikely that your favorite Linux distribution currently includes Minicomputer in its repositories, so you'll need to fire up your development environment and compile the synth yourself. Thankfully the process is quite simple and the synth's dependencies are minimal. You'll need the library and development packages for JACK and ALSA, along with the FLTK GUI toolkit, liblo (for communication using OSC), the pthreads package, and the Scons build utility. All these dependencies should be available in your distribution's primary repositories.
When the necessary parts are in place simply issue the scons command in the Minicomputer top level directory and within a few moments you'll have a complete Minicomputer system. The build process creates two programs, the minicomputer engine and the miniEdit GUI. By separating the synthesis engine from the user interface independent developers can make custom GUIs for the program or enable it for no GUI at all. In my opinion this client/server distinction is a most valuable design consideration, one I'd like to see more synths use.
As of version 1.1 Minicomputer has no install routine. You may copy the engine and GUI components anywhere in your system PATH, or you can run those components from the Minicomputer top level directory. Create a $HOME/.minicomputer directory, populate it with the files found in the Minicomputer source code's factoryPresets (sic) directory, and now this synth is ready to roar.
Making Sound: The Basics
To make sounds with Minicomputer you need to start the engine first and then fire up the GUI. Open a terminal window, start the minicomputer engine, then open another window and start the miniEdit GUI (Figure 1). If you use a JACK connection utility such as QJackCtl you should see Minicomputer's connections appear in the utility's Audio and ALSA MIDI connection panels (JACK MIDI connectivity is planned but not implemented yet). In QJackCtl you can simply connect the the top level port names to achieve the results seen in Figures 2 and 3. By default the synth routes each sound tab to its own audio output port and MIDI channel. Thus, sound 1 is automatically connected to the first ALSA playback port and MIDI channel 1, sound 2 is routed to playback port 2 and MIDI channel 2, and so forth. Of course, the JACK audio connections may be switched freely, but the MIDI channelization is hard-coded. If needed, MIDI channel workarounds are available with midirgui or Pure Data.
The default audio routing may cause some confusion. For example, if you have only a pair of outputs in JACK (i.e. stereo out) you won't hear the sounds created on tabs 3 through 8. Reroute the output from thoes tabs to your stereo ports and you should hear their sounds added to the sounds from tabs 1 and 2. Figure 4 shows how I hook up Minicomputer to my M-Audio Delta 66 to hear a layered sound made from all eight sound tabs. The process may seem a bit tedious, but it does have great flexibility. On the MIDI side, you can choose to create big layered sounds by driving all channels with a single sequence. Alternately, you can create a multitimbral (albeit monophonic) synthesizer by routing a different MIDI sequence to each sound tab.
When the miniEdit GUI appears it will automatically load the contents of your $HOME/.minicomputer presets directory. Minicomputer's memory holds up to 512 single sounds and 128 Multis. Thirty-two preset single sounds are included along with one demonstration Multi.
Minicomputer's lowest level is the single sound tab. Each tab consists of a pair of oscillators whose combined output is routed into a complex system of filters and rich modulation capabilities. The filter configuration is especially notable, with three filters working in parallel. This system can add vocal-like characteristics to your sounds quite easily, and each filter is capable of resonance (i.e. the filter overdrives itself into oscillation). Resonance must be managed closely else the sound quickly reaches distortion levels, but the GUI makes it easy to control.
The modulation capabilities are impressive, with seventeen possible modulation sources. These sources include the synth's own envelope generators (EGs, of which there are six) and oscillators, MIDI note-on and velocity values, MIDI controllers, and so forth. Each oscillator accepts up to four modulation sources, and the output amplitude and delay line can each take one source. The synth is very responsive to these sources, so be sure to remember to employ them in your Minicomputer programming sessions.
Advanced Sound Creation
The top level of Minicomputer's synthesis method is the Multi. This level is simply a layered sound consisting of the sound tabs you wish to include, from one up to all eight tabs. Obviously this capability lends itself to the creation of rich and animated layered sounds, or you can address each sound separately by its own MIDI channel. Given its output flexibility, you can further process each sound by routing it to its own external processor before sending it to your final audio output ports.
I made my first Multi simply by using eight of the supplied single sounds that weren't used in the Demo Multi. I left all single characteristics at their default values and tweaked everything in realtime while a sequencer played a single looping sequence sent to all eight sounds to create an eight-sound layer for monophonic play. As I mentioned earlier, I could also route eight separate MIDI streams into Minicomputer for monophonic multitimbral fun and games.
When I was happy with my design I stored the Multi as DPs 1st. I closed the synth, then re-opened it to check whether the save process worked correctly. It did, I opened my Multi without troubles and with all my settings intact.
Help And Documentation
The author can be reached directly by email or on the Linux Audio Developers mail list. He welcomes user input and suggestions for improvement, and I imagine that he wouldn't mind if you send him some custom patches.
Documentation comes in the form of a 10-page user's manual in PDF format. English is not Malte's native language, but he more than adequately describes the program's modes of operation and its internal architecture. All users should consider the manual required reading, regardless of experience. Minicomputer has many unique features, some of which may be overlooked in casual use.
Minicomputer is a relatvely new addition to the Linux audio arsenal, so it's not surprising that it has a few problematic aspects. The GUI can't be resized, though you can set its colors and a few other FLTK options from the command prompt. As I mentioned, JACK MIDI is not supported, but it is a planned improvement. An installer will also be added to future packages, but at this time the user will need to build the program from its source code.
I'd like to see a separate mixer section, perhaps with support for LADSPA plugins. Of course, the connectivity capabilties of JACK can route Minicomputer's output to any other JACK client, including effects processors such as the JACK Rack.
Minicomputer is an excellent synth with some great possibilities. While its author emphasizes its effectiveness in hardcore sound styles I found it to be an excellent straightforward subtractive synth with some uncommon filtering capabilities. The variety of modulation sources guarantees hours of experimentation with rock-steady performance (0 xruns) under JACK After overcoming some initial confusion I can now sail smoothly through a Minicomputer programming session, and I plan to exploit its many features for sounds in future compositions. In sum, Minicomputer makes great sounds and I like it. Recommended++ Linux audio software.
Similis sum folio de quo ludunt venti.
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- Client-Side Performance
- Tibbo Technology's Tibbo Project System
- Sony Settles in Linux Battle
- July 2016 Issue of Linux Journal
- Peppermint 7 Released
- Libarchive Security Flaw Discovered
- The Giant Zero, Part 0.x
- Profiles and RC Files
- Git 2.9 Released
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide