I have had an ongoing relationship with computer music since I learned how to program PC speaker melodies in the scripting language in the old DOS shareware game ZZT, and while it waxes and wanes (after getting a bachelor's degree in it back around the turn of the millennium I was so burned out on computer music that I got an old reel to reel 8 track and spent the better part of the next decade keeping the computer turned off as much as possible) in the last few years I have found myself doing more and more electronic music production and sound design, and while I work almost entirely out of the box these days I've experimented with every piece of software I can get my hands on. One fairly recent program that I always found myself coming back to was a deceptively simple modular tracker called SunVox.
The work of one Alexander Zolotov, SunVox was first released in early 2008 and has been continually improved since then. It has an almost comical level of cross-platform support, and is free on most platforms (at $5.99, the Android and iOS versions are among the cheapest serious music apps for their respective operating systems while also being among the deepest). Seriously, it will not just run but be fully usable on almost anything made in the last two decades, and versions are available for Windows, MacOS, Linux, Windows Mobile, Maemo, MeeGo, Raspberry Pi and PalmOS (a friend of mine has been happily producing minimal house tracks with it on a $5 Palm Zire from the Good Will this summer). I currently have it residing on a decade-old HP TC1100 tablet that is dedicated to the job, and use it as a synth in part of a larger, hardware-based rig — so far I haven't even broken a 20% CPU load even when doing pretty dense, DSP-heavy arrangements entirely in Sunvox, with most individual modules clocking it at less than 1%.
Although the DSP specs are different on some older platforms, there is complete file compatibility between all versions, so you could take your old Palm Pilot on the road as a composing tool and then open the files up in the full 32 bit floating point desktop version at home for final tweaking an rendering. It is very stable and responsive on every system I've tried, supports a variety of driver protocols including ASIO, and has enough MIDI I/o support that it can be integrated into a more complex setup — indeed, I recently bought an old HP TC1100 tablet on ebay so that I can use it as an additional sampler and MIDI arpeggiator in my hardware setup.
There are a lot of things about the interface that will probably be counter intuitive to someone coming from a more conventional DAW environment but if you've ever used and enjoyed a tracker you will feel right at home, and if you haven't you will find that once you're familiar with some tracker sequencing conventions SunVox has a very efficient work flow with a good balance between depth and usability. There are much deeper modern trackers and modular environments out there, but SunVox has carved out a unique niche that falls between the minimalistic approach of classic trackers and the occasionally overwhelming depth of modern trackers like ReNoise and Jeskola Buzz or modular environments like Usine Hollyhock or Max/MSP. It won't be the heart of many setups but as an addition to your existing work flow, a tool to break you out of your usual work habits, or an impressively powerful but cost effective tool for live audio processing and sound design. Load SunVox onto a tablet PC or iPad (because of multiple limitations in the Android OS itself, it isn't yet suitable for performance with ANY software, as there is serious audio latency and no support for MIDI or external audio interfaces) and you have a powerful, customizable, multichannel modular effects processor.
Tracker Software: A Brief History
A detailed history of tracker software is far beyond the scope of this review, but in brief, trackers are a family of software that were used to make music on home computers, often for games, that originated on home computers in the 1980s and really came into their own in the 90, particularly on the Amiga and Atari ST platforms. The typical old school tracker consists of a vertically scrolling step sequencer for creating patterns, an instrument editor for programming a built-in software sampler, the computer's sound chip (or occasionally both), and a song or playlist sequencer for stringing your patterns together into finished pieces. They are direct ancestors of the modern "sequencer and soft-synths" approach to production that dominates electronic music today.
As computers got more powerful in the late 90s and real time synthesis on a modest desktop became practical, a new wave of "next-gen" trackers started to emerge. These generally fell into one of two categories. Some trackers focused on the interface, particularly the sequencer, usually by dropping the classic tracker layout for some combination of groovebox style step sequencing and possibly piano roll. The most well known of this type is Fruity Loops — in the first two or three major releases, before it expanded into a full-blown DAW, it was the first commercial tracker to really cross over into relatively mainstream use. The second broad category of next-gen trackers kept the traditional patten editor and instead focused on the instrument section, typically by expanding it into some kind of modular patching environment. The archetypal program in this group was Jeskola Buzz, a free modular tracker that had a VAST array of internal and third party modules available already when development halted in 2000, and continued to be maintained by its users until it was officially revived in 2008 with a full rewrite. SunVox is a descendent of this second category, but as a new user it can be helpful to remember that the differences between a classic tracker pattern editor and the pattern sequencing in programs like Fruity Loops are mostly cosmetic, and share a common ancestry. If you are at all familiar with ReNoise — probably the most sophisticated modular tracker today, you could think of SunVox as its touchscreen-oriented little brother.
Making the Jump to a Tracker Interface
When you start SunVox you are presented with the main screen, which is split into four main areas containing the tools you will be using to build patches, sequence patterns and assemble songs. There are a few menus and additional windows (most notably the sample editor and the "touch theremin" XY control window that can be used to play or record microtonal pitches in real time) but the vast majority of your work will be done on the main screen, even if you have another window floating above it. Like nearly all contemporary multimedia programs, the main areas of the workspace can be resized by dragging the borders separating them, and it's easy to sweep the panes you aren't using off the screen entirely to focus on the task at hand. Each pane has an associated drop-down menu near the upper right corner (also available by right clicking anywhere in that pane. These menus have all sorts of functions specific to that pane, from organizational stuff like hiding columns in the sequencer and working with visibility layers in the patcher, to compositional tools such a interpolating control values between two steps in the sequencer, slicing and cloning patterns in the timeline, and so on. There is also a main menu accessible via a button in the upper left corner, harboring the usual load, save, render and preferences as well as access to the touch theremin. From this menu you can also turn on a floating toolbar with buttons for copy/paste and undo/redo functions - handy if you're working on a device that doesn't have a keyboard.
SunVox is a deeper program than the minimal interface and comparatively small number of built in modules would suggest. Because of the more or less clear and thorough documentation, active user forums and availability of nearly 50 video tutorials (of admittedly varying quality, but most quite good) as of this writing I am not going to do a full rundown of all the modules and specs and instead focus on an overview of the interface and some of the features that I particularly like (as well as a few that I don't).
The upper panel is the pattern sequencer, and this is where many new users will take one look and give up, because if you have never used a tracker it looks absolutely impenetrable. By default this is locked, but you can unlock it for editing by clicking the padlock icon in the upper right corner or pressing the space bar. Be aware that whenever you press play the pattern editor will automatically lock again — annoying at first but actually a smart design choice, as it keeps you from accidentally writing data into your sequence while you are experimenting with melodies or tweaking synth parameters, and it quickly becomes second nature to tap the space bar when you want to enter a note or control value.
In keeping with traditional tracker design, the pattern sequencer is a series of vertical tracks with no labeling whatsoever other than track numbers at the top of each, starting at zero. There is actually a more or less standard format for entering notes and control data in the tracks, but it is completely alien to people coming from a more conventional sequencing world.
It can be confusing to new users that all of your notes and parameters are entered as hexadecimal numbers and any step on any track can control any value of any module. The closest thing in a conventional sequencer is editing directly in the MIDI event list. However, fear not — while in the long run you will work faster if you get good at typing values in directly, you don't actually need to do so. Notes can be entered from the computer keyboard, an onscreen keyboard (which switches to a 6-value hex keyboard if you are entering data into a field other than the note value — great for tablet users and also a quick way to learn basic hex), or MIDI input.
Standard tracker effects can be added from the pattern menu, and you can also turn on sliders for editing the parameter value on each step visually. On the subject of parameters, any given step in a track can hold only one parameter value, either a standard tracker effect (I'll leave it to you to learn about these, but they include stuff like arpeggiation, timing offset, slides, portamento, note repeat and so on — they've been a de facto standard across nearly all trackers for decades and there is a wealth of information available online) or any parameter of the module you have set for that step. All of the parameters are labeled in the parameter edit window with their corresponding number, so you don't have to memorize anything, and you can also record these values in real-time. In recent versions, it is now possible to link a step with the corresponding step in the track directly to the left of it which makes it quicker and easier to control multiple parameters than in previous versions.
While tracker pattern editing is the main hurdle for new users it is also one of the big strengths of the program, because once you adjust it's a very efficient way to work and provides immediate access to a lot of fine control that's usually more buried in traditional sequencers. It's also worth noting here that you can also enter MIDI CC values directly in the sequencer, and the note, velocity and CC values being sent to any module can also be routed to your MIDI interface or loopback driver to control your hardware or software. There are also basic controls for setting the probability of a note being triggered and for randomizing parameter values, a nice way to get a little bit of variation in an otherwise static pattern but again very basic — more akin to note-level "humanize" controls than serious generative music tools.
At the bottom of the sequence pane is the onscreen keyboard. As mentioned above, it is either a standard piano keyboard or a hexadecimal numeric keyboard, depending on what you are currently editing. It's very handy if you are working on a tablet but not much use otherwise, and I much prefer using the computer keyboard to input notes. You can resize the onscreen keyboard, but it is proportional, i.e. the bigger you make it the fewer keys you can see onscreen at one time. In a live setting you could get away with using it to play leads or even play an external synth via MIDI.
Patching & Modules
Patching is very fast and intuitive. Below the keyboard are two module panes, with the patching workspace on the right and the parameters for the currently selected module on the left. A new module can be added from the Module menu or by double clicking anywhere in the Module pane, and patching is achieved either by shift+dragging from the source module to the destination module, by clicking the "link" button while the source module is selected and then choosing the destination from a list, or on a multitouch device by simply touching the source module with one finger and the destination module with another. To delete the connection, simply repeat the process. In other words, pretty much the same as any modular software, but there are no inlets or outlets to worry about in this case.
Modules can me individually resized, moved individually or as a group, and every module can display either a level meter or oscilloscope display to help you see what's happening inside of your patches. There is also a basic FFT frequency analysis of the stereo output available at any time by dragging up on the bar graph icon in the lower right corner of the module pane — very handy! Double clicking on a module brings up a window where you can adjust the appearance of that module — size, color, visualization and so on — as well as setting up midi output for that module. Midi note and CC data received by that module can be routed to any MIDI output channel and it is also possible to send bank and program change messages. You can ad a MultiSynth or MultiCtl module (normally used to route note or control data from a single pattern track to multiple destinations in a patch) without connecting it to any modules and use it to route MIDI data from patterns directly to hardware or other software (this could be done with any module in theory, but presumably at the cost of a higher CPU load).
Covering the specifics of every module is beyond the scope of this review, and the documentation, while terse in places, is good enough. Instead, I want to briefly highlight a few modules that are especially useful.
First off, the Metamodule. On the surface, this appears to be a simple subpatch object common in pretty much all modern modular environments, but it actually contains a full instance of SunVox running inside of another instance, so not only can it be used to create subpatches but you can also use the sequencer inside of the metamodule as a sophisticated arpeggiator. I've only just begun to explore the possibilities of the metamodule but the SunVox website has videos showing it being used to build recursive arpeggiators, complex processing networks, and so on. It greatly extends the capabilities of SunVox's otherwise relatively small collection of modules. Metamodule patches can be saved and loaded independently, and the SunVox forums already have a lot of user-built metamodule devices you can load into your own patches.
Almost as exciting as the Metamodule is the fairly new Sound2Ctl module, which is basically an envelope follower that can be used to drive any parameter of any other module. Documentation is pretty sparse, but there is a solid video tutorial available as well as a video showing a pretty solid 5 band vocoder built using only SunVox stock modules.
Sound designers and people interested in integrating SunVox into a larger setup will be happy to hear that there is an audio input module, meaning that you can patch up a fully modular effects processor, a live sampler, and in conjunction with Sound2Ctl you can use live audio input to control synth and effect parameters. All of this can, of course, be done in the same patch. If you already have an iPad with a good audio interface, this feature alone makes it worth the $5.99 as far as I'm concerned.
The compressor module is a pretty straightforward side chain compressor that works and sounds fine. It does have one distinguishing feature that I don't typically see on compressors, which is the way it displays the amount of gain reduction. Rather than a meter like most compressors, it displays the input signal as a real time graph of amplitude over time, with the amount of gain reduction shown as a trace overlaid on the input display. As you adjust the threshold, the line moves on the Y axis, an as soon as any gain reduction is triggered, the trace dips down below the threshold level, giving very clear visual feedback about changes in ratio, attack and release. This description might make it sound kind of confusing but trust me, it is very intuitive in person and would be an excellent learning tool for someone who didn't have any experience with compressors.
In addition to these, you have the standard array of synth and effect modules, including a multisampler with basic sample editing as well as the ability to draw waveforms from scratch. While most of these are pretty bread and butter (if nice sounding) on the surface, the automation capabilities in conjunction with the tracker style sequencer open up a lot more sound shaping potential than you might expect.
It's worth noting here that Sunvox is a closed system — there is no support for existing plugin standards and no SDK for developing your own modules. In my opinion this is a good thing — I think a big part of the success of Sunvox comes from it being a closed system. That said, I have used a VSTi synth in a Sunvox patch using a combination of midi and audio loopback drivers and Hermann Seib's excellent (and free) minimalist VST host SAVIHost. Midi is routed from Sunvox to SAVIHost, and the output from the VSTi is routed back into Sunvox via the audio in module for further processing. It worked well, although offline rendering of audio was no longer an option, so I had to capture the final Sunvox mix in real time.
Traveling downward from the module panes, we come to the timeline. Like the rest of SunVox, the timeline is deceptively simple — no controls to speak of, save for horizontal and vertical scroll bars and a basic menu used to turn snap-to-grid on or off and perform simple cut, paste, clone and slice operations. You can zoom the timeline in and out with the mouse wheel, a pair of buttons in the upper right corner, or by pinching on a multitouch screen. Your patterns are represented by clocks, much like other patten editors, and are identified by two color, 16x16 pixel-art icons (there is a built in icon editor on the right side of the pattern pane for drawing your own icons and choosing the foreground and background colors, and it is recommended hat you use it to draw simple images rather than relying on the random icons that are generated for every new pattern you create). At first this might seem confusing but in practice it is fantastic — the timeline is very much geared toward performance on a tablet or touchscreen, and in that context simple icons with bold colors are much faster to identify than text labels.
You can use the timeline to build up songs from patterns like any pattern based sequencer, of course, but for me it's all about the "loop current pattern" mode. Instead of thinking in terms of a linear song structure, you can build up different groups of layered patterns in different arts of the timeline and, so long as you are in "play selected pattern" mode you can treat any clip on the timeline as a preset loop. While your currently selected pattern is playing, you can select another pattern ad at the end o the previous pattern, playback will jump to the beginning of the newly selected pattern (as well as any patterns or parts of patterns that are above or below it on the Y axis). If this sounds pretty basic that's because it is, but in practice it works VERY well, and lets you select different patterns or fragments of patterns on the fly much like an x0x style sequencer. Of course, you have full access to all of the other features of SunVox while you're doing this, ad can freely edit any pattern, patch or the timeline itself without interrupting playback, making SunVox especially well suited for improvising.
So is there anything about SunVox that I don't like? Well, not much, but there are a few things. For one, while it is possible to record notes and parameter tweaks in real time, there is no way to loop and overdub in the timeline, recording is strictly linear. Some kind of loop-and-overdub functionality would be especially nice for recording parameter changes, since you can only view the parameters of the currently selected module. This is definitely a case of conventional sequencer work flow not being suited to a tracker, and I appreciate that straying too far from the tracker paradigm would quickly start to dilute the purity of design, but I do wish there was some basic method for overdubbing on a loop. I also wish it was possible to control the mute, solo and bypass for each module from a sequence, and to record them in real time like any other parameter change. As it is now, they're useful when patching and sequencing but are a little clunky to use in a live performance or real-time mixing context. I'd go so far as to say that some kind of "performance mode" where you could mute, solo or bypass modules directly from their icons in the patcher would be a huge improvement from a performance standpoint, at least for someone like me who is rooted in the world of mixers and MPCs where soloing and muting is a fundamental arrangement tool.
It is also worth noting that there is no latency compensation for modules. For example, if you set up a simple parallel compression patch, with a single module patched both directly to the master output and through a compressor module in parallel you will get some nasty comb filtering. In practice this has never actually been a problem for me because the type of work I use SunVox for is typically experimentation and sound design rather than conventional mixing, and on the occasion that it does cause trouble it's possible to work around it by including bypassed duplicates of the modules in one of the parallel paths in the other, and vice versa. In the parallel compression example above, you would include a compressor module in the dry pah as will, but keep it bypassed. This should be familiar to people who worked with older DAWs before latency compensation became commonplace. Visibility layers can be used to hide the bypassed modules and keep the patch from getting too cluttered.
Last and probably least, it's kind of a hassle to adjust the master tempo and ticks-per-line for a project, as both are buried in the "song properties" window, accessible from the main menu. For the most part this isn't a huge problem since there are multiple commands available to set the tempo directly in a pattern, but there are some circumstances where I would like to have a master tempo slider in the main workspace. Not really a big deal but it bugs me.
So after all that you might still be wondering if SunVox is worth trying out, so here's the short version: it works well, it sounds good, it will run on almost anything and it costs (almost) nothing. Even if you have your eyes on the iPad version you can download one of the desktop versions for free first so why wouldn't you try it? In fact, I'd say that the free desktop versions are a better introduction to it, since having a keyboard is really handy when you are editing patterns. If you are planning to use it in a live setting a touchscreen is a huge bonus, but I far prefer using it on a laptop when I'm writing patterns.
And once again it is free. So if you do any sort of sound design or electronic music just download it already, and don't give up on it as soon as you see all of those numbers because with a little bit of practice and maybe an hour spent on Youtube there's a good chance you'll be hooked on it, if only as a way to spend time on a long commute.