User Tools

Site Tools


sunvox:manual_en

Русская версия

PDF version of this page

What is SunVox

SunVox is a small, fast and powerful modular synthesizer with pattern based sequencer (tracker). It is a tool for those people who like to compose music wherever they are, whenever they wish. On any device. SunVox is available for Windows, OS X, Linux, Maemo, Meego, Raspberry Pi, Windows Mobile (WindowsCE), PalmOS, iOS and Android.

Key features:

  • modular interface;
  • powerful microtonal (ultra-chromatic) sequencer;
  • highly optimized synth algorithms, flexible architecture: SunVox works on a variety of devices with different CPUs;
  • a lot of built-in modules (synths and effects) + ability to make very complex connections between them;
  • support of 16/24/32bit WAV, AIFF and XI samples;
  • multitrack WAV export;
  • MIDI in/out/import/export;
  • XM (FastTracker) and MOD (ProTracker, OctaMED) import.

Official SunVox page: http://www.warmplace.ru/soft/sunvox

Minimum system requirements

Windows:

  • no special requirements.

Linux:

  • any Linux distribution (x86 or x86_64);
  • libsdl1.2;
  • ALSA.

OS X:

  • x86_64 architecture;
  • Mac OS X 10.6.

Android:

  • Android 2.3.

iOS:

  • iOS 7.

Maemo: (tested on Nokia N900)

  • libsdl1.2;
  • libosso1.

Meego:

  • ARM CPU;
  • libsdl1.2;
  • libasound2.

Windows Mobile (WinCE):

  • ARM CPU.

PalmOS:

Installing

Windows:

  1. download SunVox for Windows (ZIP archive);
  2. unpack this archive to any folder (your home directory or some external flash drive);
  3. you will see the new directory sunvox after unpacking - open it, and go to the sunvox/win32 directory;
  4. you will find several files in the win32 folder: sunvox.exe (full 32bit version) and sunvox_lofi_console.exe (version with 16bit audio engine for slow devices); just lauch one of these versions.

Linux:

  1. download SunVox for Linux (ZIP archive);
  2. unpack this archive to the home user directory (/home/username);
  3. you will see the new directory sunvox after unpacking - open it, and go to the sunvox/linux_x86 (for 32bit Linux) or sunvox/linux_x86_64 (for 64bit Linux) directory;
  4. you will find several files in the linux_xxx folder: sunvox, sunvox_lofi, sunvox_no_simd, etc.; just use the most appropriate for your system;
  5. in case of some errors: open Terminal, go to the sunvox directory (use cd command), enter chmod a+x sunvox and then ./sunvox ; if still not working - copy all error messages from the Terminal and send it to nightradio@gmail.com.

OS X:

  1. download SunVox for OS X (ZIP archive);
  2. you will see the new directory sunvox after unpacking - open it, and go to the sunvox/osx directory;
  3. launch SunVox.

Android:

iOS:

Maemo:

  1. download SunVox for Maemo (ZIP archive);
  2. unpack it to any folder on your computer;
  3. you will see the new directory sunvox after unpacking - open it, and go to the sunvox/maemo directory;
  4. you will find the sunvox (in deb format) in the maemo folder - just copy and install this file on the Maemo device.

Meego:

  1. download SunVox for Meego (ZIP archive);
  2. unpack it to any folder on your computer;
  3. you will see the new directory sunvox after unpacking - open it, and go to the sunvox/meego directory;
  4. you will find the sunvox (in deb format) in the meego folder - just copy and install this file on the Meego device.

Windows Mobile (WinCE):

  1. download SunVox for Windows Mobile (ZIP archive);
  2. unpack it to any folder on your computer;
  3. you will see the new directory sunvox after unpacking - open it, and go to the sunvox/wince directory;
  4. you will find the sunvox.cab file in the wince folder - just copy and install this file on the Windows Mobile device.

PalmOS:

  1. download SunVox for PalmOS (ZIP archive);
  2. unpack it to any folder on your computer;
  3. you will see the new directory sunvox after unpacking - open it, and go to the sunvox/palmos directory;
  4. you will find the following files in the palmos folder: sunvox.prc, sunvox_framebuffer.prc - just copy one of them to the SD-card of your PalmOS device (PALM/Launcher directory);
  5. insert the SD-card back to the PalmOS device and you will see that the SunVox is successfully installed.

Comparison of different versions

System Supported architectures Sound quality Real-time recording, MetaModule, Vorbis player Multi-touch MIDI GPIO
Linux x86, x86_64 32-bit YES IN, OUT, Export, Import YES
Maemo (Linux) ARM (armel) 13-bit YES IN, OUT, Export, Import YES
Meego (Linux) ARM (armhf) 13-bit YES IN, OUT, Export, Import YES
Raspberry Pi (Linux) ARM (armhf) 32-bit, 13-bit YES IN, OUT, Export, Import YES
Windows x86 32-bit YES IN, OUT, Export, Import
Windows Mobile ARM 13-bit YES Export, Import
OS X x86, x86_64 32-bit YES IN, OUT, Export, Import
Android ARM, x86 32-bit, 13-bit (on slow CPUs) YES YES Export, Import YES
iOS ARM 32-bit (iOS 7 and higher), 13-bit YES YES IN, OUT, Export, Import
PalmOS ARM 13-bit Export, Import

Some SunVox versions have the fixed point integer audio engine (4.12 bits). This means that you actually will hear the 13-bit sound. Such versions are fast, but the cost of speed is slightly audible quantization noise.

In spite of the 13-bit version noise, 32-bit WAV export may be with better quality due to the absence of audio overflow.

Interface description

The SunVox window is divided into the several rectangular areas (frames): pattern editor, musical keyboard, controllers of the selected module, routing (module view), timeline. Each area has its own menu of available options and functions - use the button with three horizontal lines to open this menu. Click on some area sets the focus on this area.

First click on the Stop button - stop playing. Second click - reset all SunVox activity and switch the engine to standby mode.

Keyboard shortcuts

General:

Keys Description
Q,W,E,R,T,Y,U,I…. notes
F1…F8 set octave number
SHIFT + ) octave up
SHIFT + ( octave down
CTRL + Z UNDO
CTRL + Y or SHIFT + CTRL + Z REDO
CTRL + X cut
SHIFT + DELETE cut
CTRL + C copy
CTRL + V paste
SHIFT + INSERT paste
CTRL + A select all
CTRL + D duplicate / clone
CTRL + N create a new module / create a new pattern
CTRL + O load project
CTRL + S save project
CTRL + B save project to BACKUP.sunvox

Pattern editor:

Keys Description
SPACE edit mode ON/OFF
CAPSLOCK or '~' insert “note OFF”
TAB go to the next track
SHIFT + TAB go to the previous track
INSERT (or Command+I in OSX) insert an empty note and shift the content down
BACKSPACE delete previous note and shift the content up
DELETE (or Fn+Backspace in OSX) delete current note
K insert SP (Set Pitch) command
SHIFT + K insert the “Previous Track” special command
CTRL + ( selection begin
CTRL + ) selection end
CTRL + M paste and mix
CTRL + T select track
CTRL + I interpolate values
CTRL + U interpolate velocity
SHIFT + '+' transpose up (+1 semitone)
SHIFT + '-' transpose down (-1 semitone)
SHIFT + ']' transpose octave up (+12 semitones)
SHIFT + '[' transpose octave down (-12 semitones)
SHIFT + UP/DOWN/LEFT/RIGHT selection
CTRL + '+' increase the edit step
CTRL + '-' decrease the edit step

Routing (module view):

Keys Description
CTRL + R randomize module controllers
SHIFT + MOUSE MOVING module link/unlink
SHIFT + controller value changing write the value to the pattern
SHIFT + > select the next module
SHIFT + < select the previous module
CTRL + > select the next synth
CTRL + < select the previous synth
CTRL + RIGHT next module horizontally
CTRL + LEFT previous module horizontally
CTRL + DOWN next module vertically
CTRL + UP previous module vertically

Timeline:

Keys Description
SHIFT + F9 record start/stop
F9 play/stop
F10 play from beginning
F11 play pattern
F12 stop
SHIFT + F12 go to beginning

Touch Theremin:

Keys Description
SHIFT + Touch Theremin play write the microtone (Set Pitch XXYY command) to the pattern

Basic concepts

Project

A few words about hex numbers. Memory locations and software in today's computers use the hexadecimal (hex) number system which comprises sixteen distinct symbols, digits 0 - 9 and letters A, B, C, D, E, F (or a - f) where the letters represent the numbers 10 - 15. For more detail on the hexadecimal system please visit: http://en.wikipedia.org/wiki/Hexadecimal

Examples of hexadecimal numbers and its decimal (dec) equivalents:

  • 00 = 0;
  • 01 = 1;
  • 09 = 9;
  • 0A = 10;
  • 0B = 11;
  • 0C = 12;
  • 0D = 13;
  • 0E = 14;
  • 0F = 15;
  • 10 = 16;
  • 11 = 17;
  • FF = 255

Pattern

Pattern is a group of simultaneously played tracks that represents some section of the SunVox project.

Any pattern in the SunVox looks like this:

line track 0 track 1 track 2
000 event event event
001 event event event
xxx

event - some music event (something like a MIDI command).

Examples of events:

event of turning note C5 on: C5 80 01 0000 0000
event of turning note A5 on: A5 80 01 0000 0000
event of turning note off: ==

As you can see, an events contain several text/numeric columns (fields). All numbers in the pattern are represented in HEXADECIMAL format.

Event format: NN VV MM CCEE XXYY

Lets see detailed description of each column in the event:

  • NN - some special command code or the note:
    • SP - Set Pitch XXYY, where 0000 - highest possible pitch, 8000 - lowest possible pitch; one semitone = 100 (256dec)
    • « - Previous Track; use it to apply effects to previous track; but the following secondary effects are not allowed: 2x, 40..5F, 1D;
    • == - Note OFF;
    • C0 - С-0 (first note of the lowest octave);
    • c0 - C#0;
    • D0 - D-0;
    • d0 - D#0;
    • E0 - E-0;
    • F0 - F-0;
    • f0 - F#0;
    • G0 - G-0;
    • g0 - G#0;
    • A0 - A-0;
    • a0 - A#0;
    • B0 - B-0;
    • C1 - C-1 (first note of the octave 1);
    • B9 - B-9 (last note of the highest octave);
  • VV - velocity (00..80);
  • MM - module number (00,01,02,03,04,05,06,07,08,09, … FF);
  • CC - number of a controller (01,02,03,04, … FF);
  • EE - effect that will be applied to the last note activated on the current track:
    • 01 - slide up (portamento up; sliding speed = XXYY);
    • 02 - slide down (portamento down; sliding speed = XXYY);
    • 03 - slide to note (sliding speed = XXYY);
    • 04 - vibrato; (XX - frequency; YY - amplitude);
    • 07 - set sample offset (offset in percents = XXYY from 0000 (0%) to 8000 (100%));
    • 08 - arpeggio (XX - second note increment; YY - third note increment);
    • 09 - set sample offset (offset in frames = XXYY * 256dec); one frame lenght = 1 / sampling frequency;
    • 0A - slide velocity up/down (XX - up speed; YY - down speed);
    • 0F - set playing speed (XXYY: 0001..001F - number of ticks per line; 0020..00FF - BPM);
    • 11 - fineslide up;
    • 12 - fineslide down;
    • 13 - set Bypass/Solo/Mute (BSM = XYY) flags; example of mute: 13 0001; example of solo: 13 0010;
    • 14 - reset Bypass/Solo/Mute (BSM = XYY) flags; example of bypass reset: 14 0100;
    • 19 - re-trigger note after XXYY ticks during the line;
    • 1C - cut note after XXYY ticks in the current line;
    • 1D - delays the start of note until tick XXYY in the current line;
    • 1F - set BPM;
    • 20 - note probability;
    • 21 - note probability with random velocity;
    • 22 - set controller value to the random number from 0000 to XXYY;
    • 23 - set controller value to the random number with range from XX (00..FF) to YY (00..FF);
    • 30 - stop playing the song;
    • 40…5F - delay an event for selected fraction of the line (from 40 (0%) to 5F (100%));
  • XXYY - parameter of a selected effect/controller (0000 - min; 8000 - max).

Velocity can be changed dynamically. Example:

NN VV MM CCEE XXYY
C3 10 03 0000 0000
-- 20 -- 0000 0000
-- 30 -- 0000 0000
-- 40 -- 0000 0000
-- 50 -- 0000 0000
-- 60 -- 0000 0000

In this example velocity changed from 10 to 60.

Example of changing cutoff frequency (global controller) of filter from min to max value:

NN VV MM CCEE XXYY
-- -- 01 0200 0000
-- -- 01 0200 1000
-- -- 01 0200 2000
-- -- 01 0200 3000
-- -- 01 0200 4000
-- -- 01 0200 5000
-- -- 01 0200 6000
-- -- 01 0200 7000
-- -- 01 0200 8000

The “Cutoff frequency” controller has a number 2 in the filter.

Some modules have the local controllers. A local controller can be changed for a particular note (sound) on a particular track, independently of the other sounds of the same module.

Example: (changing local controller 2 in the module 1)

NN VV MM CCEE XXYY
C3 80 01 0200 0000  //Set local controller 2 to value 0000. Separate sound begins playing here
-- -- -- 0200 0001  //Set local controller 2 to value 0001
-- -- -- 0200 0002  //Set local controller 2 to value 0002
-- -- -- 0200 0003  //Set local controller 2 to value 0003
-- -- -- 0200 0002  //...
-- -- -- 0200 0001

Pattern effects

01 - Slide up (Portamento Up). This effect will slide up the frequency of the synth being played on the track by XXYY (one semitone = 40) tones for every tick. If a slide rate is not specified (XXYY is zero) then the last slide rate used on the track is used again.

02 - Slide down (Portamento Down). This effect will slide down the frequency of the synth being played on the track by XXYY (one semitone = 40) tones for every tick. If a slide rate is not specified (XXYY is zero) then the last slide rate used on the track is used again.

03 - Slide to note. This effect will slide a note being played on a track to a specified note. The parameter XXYY (one semitone = 40) will states the speed at which a slide will occur. If a slide rate is not specified (XXYY is zero) then the last slide rate used on the track is used again.

04 - Vibrato with parameters XXYY, where the XX - frequency (examples of values: 20 - one period per line; 40 - two periods per line), YY - amplitude (one semitone = 40).

08 - Arpeggio. This effect is normally used to simulate chords. It can also be used to produce a heavy vibrato. Example: Note = C3; XXYY = 0407 (second note increment = 4; third note increment = 7) this is an attempt to produce a C-major chord. At the beginning of a line the C3 note is played, then 1/3 into the line the sound is retriggered at E-3, at 2/3 is retriggered at G3, and at the beginning of the next line (if there are no new notes to be played on the track), it is retriggered at C3 again. Video

09 - Set sample offset. This functionality enables you to start a sample from a specified position rather than the normal beginning position. Multiply value XXYY * 256 to get the position in frames from the beginning of the sample where playback should start. If no sample is specified, the sample currently playing is retriggered to the offset specified. Example: play instrument 2 at note C3, and XXYY = 0023. This would make playback of the sample start at offset 0023 * 0100 = 2300. This offset provides quite a wide range from where you can start playing the sample.

07 - Set sample offset (by percentage). XXYY from 0000 (sample start) to 8000 (sample end). Video

0A - Slide velocity up/down. This effect will change the velocity of the synth being played on a track. The value XXYY the speed of the velocity change. If XX is nonzero the velocity is increased, and if YY is nonzero the velocity is decreased. Example: set XXYY to 0003. This means that at the beginning of the line, the current velocity of the synth is decreased by 3 (because YY = 3). The velocity is decreased by 3 again for every tick on this line.

0F - Set playing speed. This effect changes the speed (number of ticks per line) of playback. Valid values for speed setting are 1 - 1F (1 - 31 in decimal). Values above 1F (31 in decimal), represent a modified speed based on beats per minute, where 4 lines are 1 beat. A speed value of 2A (42 in decimal), equals 42 beats per minute.

11 - Fineslide up. This effect functions just like effect 1, except that the frequency of the note is only modified once (at the beginning of a line).

12 - Fineslide down. This effect functions just like effect 2, except that the frequency of the note is only modified once (at the beginning of a line).

13 - Set Bypass/Solo/Mute flags. BSM = XYY; Example of mute: 13 0001; example of solo: 13 0010.

14 - Reset Bypass/Solo/Mute flags. BSM = XYY. Example of bypass reset: 14 0100.

19 - Re-trigger. Effect 19 allows you to re-trigger a note after XXYY ticks during the line. For example, let's specify note C3 and set XXYY = 2 when the speed (TPL) is currently 6. This starts the specified note at the beginning of the line, and after two ticks it is restarted. This continues until the beginning of the next line.

1C - Cut. This effect turns off the note after XXYY ticks in the current line.

1D - Delay. This effect delays the start of a note until tick XXYY in the current line. For example, if note C2 is played, with effect 1D and argument XXYY = 3 when the speed is 6. The note C2 will be triggered at the 3rd tick after the start of the line. Purpose: to delay the start of a sample for a VERY short amount of time.

1F - Set BPM to XXYY;

20 - Note probability. Set the probability XXYY (from 0 to 8000) of a note being triggered. This effect can be used for original unpredictable rhythms.

21 - Note probability with random velocity. Same as effect 20 but with random velocity.

22 - Set controller value to the random number with range from 0 to XXYY.

23 - Set controller value to the random number with range from XX (00..FF) to YY (00..FF).

30 - Stop playing the song.

40…5F - delay an event for selected fraction of the line (from 40 (0%) to 5F (100%)).

Video

MIDI Out

You can use controllers with number 80+X to send MIDI Control Change command. Where the X is MIDI Controller Number.

Example:

NN VV MM CCEE XXYY
-- -- 01 8100 0000 - set Modulation (MSB and LSB) to the min value
-- -- 01 8100 8000 - set Modulation (MSB and LSB) to the max value
MSB - Most Significant Byte;
LSB - Least Significant Byte.

You can get MIDI Controller Number for CC column from the following table.

MIDI controller number (dec) SunVox controller number (MIDI contr. + 80 (hex)); Use these values in the CC column of SunVox pattern Controller name
0 80 Bank Select (MIDI Controller 32 more commonly used)
1 81 Modulation Wheel
2 82 Breath Contoller
3 83 Undefined
4 84 Foot Controller
5 85 Portamento Time
6 86 Data Entry MSB
7 87 Main Volume
8 88 Balance
9 89 Undefined
10 8A Pan
11 8B Expression
12 8C Effect Control 1
13 8D Effect Control 2
14-15 8E-8F Undefined
16-19 90-93 General Purpose Controllers
20-31 94-9F Undefined
32-63 A0-BF LSB for MIDI Controllers 0 - 31
64 C0 Damper Pedal (Sustain)
65 C1 Portamento
66 C2 Sostenuto
67 C3 Soft Pedal
68 C4 Legato Footswitch
69 C5 Hold 2
70 C6 Sound Controller 1 (default: Sound Variation)
71 C7 Sound Controller 2 (default: Timbre/Harmonic Content)
72 C8 Sound Controller 3 (default: Release Time)
73 C9 Sound Controller 4 (default: Attack Time)
74 CA Sound Controller 5 (default: Brightness)
75-79 CB-CF Sound Controller 6-10 (no defaults)
80-83 D0-D3 General Purpose Controllers
84 D4 Portamento Control
85-90 D5-DA Undefined
91 DB Effects 1 Depth (previously External Effects Depth)
92 DC Effects 2 Depth (previously Tremolo Depth)
93 DD Effects 3 Depth (previously Chorus Depth)
94 DE Effects 4 Depth (previously Detune Depth)
95 DF Effects 5 Depth (previously Phaser Depth)
96 E0 Data Increment
97 E1 Data Decrement
98 E2 Non-Registered Parameter Number LSB
99 E3 Non-Registered Parameter Number LSB
100 E4 Registered Parameter Number LSB
101 E5 Registered Parameter Number MSB
102-120 E6-F8 Undefined
121 F9 Reset All Controllers
122 FA Local Control
123 FB All Notes Off
124 FC Omni Off
125 FD Omni On
126 FE Mono On (Poly Off)
127 FF Poly On (Mono Off)

Interpolator

Interpolator is a tool that provides the ability to make a smooth transition between the values of the selected area of the pattern, with various parameters (like the curve type, noise, etc.).

Description of the buttons

  • First row: type of the interpolation curve, ping-pong mode switch, interpolation step.
  • Second row: column selection (use SHIFT key to select multiple columns).
  • Third row: amount of the noise (random values) and the number of repeats.
  • Fourth row: envelope begin/end values (are only relevant for the Apply envelope button).
  • Fifth row:
    • Interpolate: New value = Smooth transition between the first and the last line of the selection. Video
    • Apply envelope: New value = Old value * Smooth transition between the Env.Start and the Env.end parameters. Video

If you want the smooth transition between the first and the last line of your selection - use Interpolate. But if you want to change the existing values (fade them out for example) - use Apply envelope.

Module

Module is a basic element of the SunVox modular synthesizer.

There are several types of modules:

  • synthesizer (generator) - can produce some sound;
  • effect (filter) - can change the incoming sound;
  • some other modules that can generate/change not only the sound but the music events (notes for example) too.

Lines between the modules define the direction of signal transmission: more intensive part of line must go from the source; less visible part must go to the destination (reciever).

There are three ways to connect one module to another:

  • For multitouch devices: first touch on source, second touch on destination. Check this simple video-tutorial.
  • Select the first module (source). Click on the LINK button. Select the second module (destination).
  • Select the first module (source). Drag it to destination with SHIFT key pressed.

Reconnection removes the previous connection.

Every module has a set of parameters (controllers). Value of every controller can be changed, and this change can be recorded in any pattern. Click twice (or right click) on the controller to open the Controller Properties window, where you can do the following operations: change, reset, randomize, write to pattern, assign MIDI IN;

Timeline

Timeline defines the layout of the SunVox project. It describes how to play the patterns. Patterns can be repeated across multiple orders to save tracking time and file space.

Playback speed is defined by the following parameters:

  • TPL (Speed) - Ticks Per Line. Tick is the smallest time interval in SunVox.
  • BPM - Beats Per Minute. Beat = 24 ticks. Number of lines per beat = 24 / TPL. So if TPL=6, Beat size is 4 lines. Or if TPL=3, Beat size is 8 lines.

Internal modules

Some modules have a “Mode” parameter with the following possible values:

  • HQ - High Quality (stereo). Linear interpolation
  • HQmono - High Quality (mono). Linear interpolation
  • LQ - Low Quality (stereo) for devices with slow CPU
  • LQmono - Low Quality (mono) for devices with slow CPU
  • Cubic - High Quality (stereo). Cubic interpolation

If the CPU of your device is too slow for some SunVox project, here are some tips to avoid this.

  • Use monophonic modes (Mono, HQmono or LQmono) for the modules.
  • Use low quality modes (LQ or LQmono) for the modules.
  • Use reduced polyphony for generators.
  • Don't use the Reverb, or use it in LQ mode and with All-pass filter disabled.
  • Use the Sampler without interpolation (Sample interpolation = OFF; Volume interpolation = OFF).
  • Use the Generator without Attack and Release (Attack = 0; Release = 0; Sustain = ON).

Synths

Analog Generator

Generator with 32 double alias-free oscillators with internal 12/24dB filters, exponential envelopes and smooth parameters changing.

Video

DrumSynth

Drum synthesizer with variety of predefined sounds.

Distribution of sounds:

  • notes C, C#, D, D# - for bass drum;
  • notes E, F, F# - for hihat;
  • notes G, G#, A, A#, B - for snare drum.

Controllers:

  • Volume - main synth volume;
  • Panning;
  • Polyphony - how many notes synthesizer can sound at one time;
  • Bass volume - bass drum volume;
  • Bass power - bass drum power;
  • Bass tone - bass drum tone;
  • Bass length - bass drum length;
  • Hihat volume;
  • Hihat length;
  • Snare volume - snare drum volume;
  • Snare tone - snare drum tone;
  • Snare length - snare drum length.

Video1 Video2

FM Synthesizer

This synth is based on frequency modulation. It operates on an internal sampling frequency 44100 Hz. Abbreviations: C - carrier; M - modulator.

Controllers:

  • C.Volume - carrier volume;
  • M.Volume - modulator volume;
  • Panning;
  • C.Freq mul - carrier frequency multiplier;
  • M.Freq mul - modulator frequency multiplier;
  • M.Feedback - modulator feedback;
  • C.Attack - carrier attack;
  • C.Decay - carrier decay;
  • C.Sustain - carrier sustain;
  • C.Release - carrier release;
  • M.Attack - modulator attack;
  • M.Decay - modulator decay;
  • M.Sustain - modulator sustain;
  • M.Release - modulator release;
  • M.Scaling - how modulator volume depends on note number;
  • Polyphony - how many notes synthesizer can sound at one time;
  • Mode:
    • 0 - High Quality. Stereo. Linear interpolation of envelopes;
    • 1 - High Quality. Mono. Linear interpolation of envelopes;
    • 2 - Low Quality. Stereo. No interpolation;
    • 3 - Low Quality. Mono. No interpolation.

Video1 Video2

Generator

Basic oscillator with different waveforms and volume envelope.

This module can receive the incoming signal and use it for the phase modulation. To do this, connect any other audio source to the input of the Generator, and that source will affect the frequency of the Generator. And don't forget to set Phase Modulation controller to non-zero value.

Available local controllers: Type; Pan.

Controllers:

  • Volume;
  • Type - type of waveform:
    • 0 - triangle;
    • 1 - saw;
    • 2 - square;
    • 3 - white noise;
    • 4 - “dirty” wave;
    • 5 - sine;
    • 6 - half-sine;
    • 7 - abs-sine;
    • 8 - pulse-sine with duty cycle.
  • Panning;
  • Attack;
  • Release;
  • Polyphony - number of notes the synthesizer can sound simultaneously;
  • Mode: HQ/HQmono;
  • Sustain: 0 - OFF; 1 - ON;
  • Frequency modulation: 0 - OFF … 256 - use input signal for frequency modulation;
  • Duty cycle (only for square waveform).

Video1 Video2 Video3

Input

Audio input from Microphone/Line-in.

Compatibility: implemented in the iOS and Android versions only. Other systems will be supported in future SunVox updates.

Kicker

Available local controllers: Type.

Controllers:

  • Volume;
  • Type - type of waveform: 0 - triangle; 1 - square;
  • Panning;
  • Attack;
  • Release;
  • Vol. Add - additional volume;
  • Env. Accel - volume & frequency envelope acceleration;
  • Polyphony - number of notes the synthesizer can sound simultaneously;
  • Anticlick: 0 - OFF; 1 - ON.

Video

Vorbis player

OGG Vorbis player.

Sampler

Sampler can play and record audio files. Supported file formats: WAV, XI, AIFF, RAW. 8 / 16 / 24 / 32 bits. In Linux version all FFmpeg/AVConv formats supported too.

Buttons description:

  • Load - load some audio file; this file will be stored in the module;
  • Rec, Rec mono, Rec LoFi - start/stop recording of received audio signal; for example, you can connect Generator to Sampler, and Sampler will record the signal from Generator;
  • Edit - show/hide sample editor.

Available local controllers: Pan.

Controllers:

  • Volume;
  • Panning;
  • Sample interpolation: 0 - OFF; 1 - Linear;
  • Volume interpolation: 0 - OFF; 1 - Linear;
  • Polyphony - number of notes the synthesizer can sound simultaneously;
  • Rec threshold - the level at which the Sampler should start recording.

Video1 Video2 Video3 Video4 Video5 Video6

SpectraVoice

FFT-based synth. Can be used to generate a sound with a complex spectrum.

Available local controllers: Pan.

Controllers:

  • Volume;
  • Panning;
  • Attack;
  • Release;
  • Polyphony - number of notes the synthesizer can sound simultaneously;
  • Mode: HQ/HQmono/LQ/LQmono/Cubic;
  • Sustain: 0 - OFF; 1 - ON;
  • Sample size:
    • 0 - 4096 words;
    • 1 - 8192 words;
    • 2 - 16384 words;
    • 3 - 32768 words;
    • 4 - 65536 words;
  • Harmonic - number of harmonic (0 - 15);
  • h.freq - harmonic's frequency;
  • h.volume - harmonic's amplitude;
  • h.bandwidth - harmonic's bandwidth;
  • h.bandtype - harmonic's bandtype:
    • 0 - half sine;
    • 1 - square;
    • 2 - organ ver.1;
    • 3 - organ ver.2;
    • 4 - organ ver.3;
    • 5 - organ ver.4;
    • 6 - full sine.

Video

Effects

Amplifier

Controllers:

  • Volume;
  • Panning;
  • Inverse amplitude: 0 - off; 1 - on;
  • Width - stereo width: 0 - mono; 128 - normal; 256 - extended;
  • Absolute - enable it to apply “absolute value” filter to the signal;
  • Fine volume.

Compressor

Side chain compressor

Controllers:

  • Volume;
  • Threshold: 256 - 0 dB;
  • Slope (%);
  • Attack (ms);
  • Release (ms);
  • Peak/RMS: 0 - peak; 1 - RMS sensing;
  • Side chain input - side chain input number.

Video1 Video2

Explanation of compressor settings (taken from here)

Slope

This controls the amount the compressor reduces the volume when activated (the threshold is the point where the compressor is activated).
In SunVox it is measured by a percentage, but in other DAWs it is called “Ratio”. They have the same effect, it's just that the measurement is different (Example: 50% vs 2:1 ratio)

For example:
I have a kick and a synth going to a compressor. I set the sidechain input to the kick module, so when the kick's volume goes over the threshold, the sidechain compressor activates and decreases the volume of the synth.

Now let's get into some numbers.
Suppose the slope is set to 50%. If my kick goes 2 decibels over the threshold, the compressor will reduce the volume of the synth by 1 decibel (2*.5=1). If my kick goes 4 decibels over the threshold, the compressor will reduce the volume of the synth by 2 decibels (4*.5=2). If I want less volume reduction, I reduce the slope. So now let's set that slope to 25%. If my kick goes 4 decibels over the threshold, the compressor will reduce the volume of the synth by 1 decibel (4*.25=1).

Attack

This value controls how long the compressor takes to reduce the audio when activated. Note that (when activated) the compressor will IMMEDIATELY start to reduce the volume. It's the attack that tells it how long to take to get to the full reduction.

Suppose I have a kick that lasts 32 milliseconds and exceeds the threshold by 4 decibels. My slope is set to 50%, and the attack time is 10 milliseconds. The volume of the synth connected to the compressor will be reduced by 2 decibels (4*.5=2) over 10 milliseconds. The biggest change in volume will be at the end of the attack.

Here is a more visual example of the effect of the compressor on the synth:

--- = Volume of synth
Threshold = 2 db

Assuming the synth's volume starts at 8 decibels:
A-------- <==(kicker exceeds the 2 db threshold by 4 db, sidechain compressor is activated and begins reducing the volume of the synth)
B------ <==(the synth's audio is reduced by 2 db 10 milliseconds after being activated at A. The volume of the synth is now 6 db)

Note that the length of the kick doesn't matter (when changing the volume), its volume just needs to exceed the threshold to activate the compressor (you could have a kick that is 1 millisecond long and it'll still activate it). To sustain the compression, your kick will have to stay over the threshold for a longer period of time.

Release

This controls how long the compressor takes to return the audio to its original volume after the attack (it's essentially the same as attack, but backwards).

Using the example above (from the attack portion of this post), let's set the release to 45 milliseconds. After the sidechain input audio stops being over the threshold, the release returns the synth to its original volume over 45 milliseconds.

Visual example:

--- = Volume of synth
Threshold = 2 db

Assuming the synth starts at a volume of 8 decibels:
A-------- <==(kicker exceeds the 2 db threshold by 4 db, sidechain compressor is activated and begins reducing the volume of the synth)
B------ <==(the synth's audio is reduced by 2 db 10 milliseconds after being activated at A. The volume of the synth is now 6 db)
C-------<==(the kick's volume has decreased and is no longer over the compressor's threshold, which triggers the release)
D-------- <==(45 milliseconds AFTER C, the audio is back to its original volume)

What your attack/release/slope values are depends on what you want. If you want a hard, pumping sidechain compressor, try an attack of 10 and a release of 45, then adjust the slope until it really pushes the synth down (just before it hits the bottom of the waveform box). This will reduce the volume over 10 milliseconds, then return it to its original state 45 milliseconds after the sidechain input audio stops being over the threshold.

If you want the kick to be louder, but don't want it to affect the compressor, you can link it to a distortion module (which is linked to out) and increase the volume (of the distortion module). The sidechain just uses the input you give it. The sidechain compressor functions the same as a regular compressor, the only difference is that the sidechain asks for an input instead of affecting everything linked to it.

DC Blocker

DC blocking filter.

Controllers:

  • Mono: 0 - stereo; 1 - mono.

Delay

Maximal length of the delay is 1/64 second.

Controllers:

  • Dry - amount of original signal in output;
  • Wet - amount of delayed signal in output;
  • Delay L - delay length on the left channel; maximum delay - 1/64 second;
  • Delay R - delay length on the right channel; maximum delay - 1/64 second;
  • Volume L - left channel volume;
  • Volume R - right channel volume;
  • Mono: 0 - stereo delay; 1 - mono delay;
  • Inverse amplitude: 0 - OFF; 1 - ON.

Distortion

Controllers:

  • Volume;
  • Type - type of distortion: 0 - limitation; 1 - saturation;
  • Power;
  • Bitrate: 1..16;
  • Frequency: 44100 means “no frequency distortion at all”.

Echo

Maximal delay length: 4 seconds.

Controllers:

  • Dry - amount of original signal in output;
  • Wet - amount of signal with echo in output;
  • Feedback;
  • Delay - delay length; maximal delay - one second;
  • Stereo: 0 - mono; 1 - stereo;
  • Delay units.

EQ

3Band equalizer.

Controllers:

  • Low;
  • Middle;
  • High;
  • Mono: 0 - stereo; 1 - mono.

Filter

State Variable Filter.

In HQ mode the Filter is double-sampled. In LQ mode the Filter is 2x faster, but with the following consequences:

  • frequency range is reduced by half (to 7000 Hz maximum); so if you want to set cut-off frequency 2000 Hz - you should set it to 4000;
  • LQ algorithm is very fast (specially for slow devices), but the cost of this speed is the instability in some cases (Filter in LQ mode with high Freq values is unstable on some input signals with a predominant high-frequency component).

Controllers:

  • Volume;
  • Frequency: maximum = 14000 Hz (8000 (hex) in the XXYY column of pattern);
  • Resonance;
  • Type:
    • 0 - lowpass;
    • 1 - highpass;
    • 2 - bandpass;
    • 3 - notch;
  • Response - speed of changing the frequency, resonance and volume;
  • Mode:
    • 0 - double sampled stereo;
    • 1 - double sampled mono;
    • 2 - low quality stereo;
    • 3 - low quality mono;
  • Impulse - frequency, that will be set immediately; then frequency will return to its previous value smoothly (according to value of the “Response” controller);
  • Mix: minimum - output=input; maximum - output=filtered input;
  • LFO freq;
  • LFO power;
  • Set LFO phase;
  • Exponential freq;
  • Roll-off - dB per octave;
  • LFO frequency units;
  • LFO waveform.

Video1 Video2 Video3

Filter Pro

High quality IIR filter. Much more slower than the Filter.

Flanger

Controllers:

  • Dry - amount of original signal in output;
  • Wet - amount of signal with echo in output;
  • Feedback;
  • Delay - delay length; maximal delay - 1/64 second;
  • Resonance; use low values for smooth delay changing;
  • Vibrato speed;
  • Vibrato power;
  • Vibrato type: 0 - half of sinus; 1 - sine;
  • Set vibrato phase;
  • Vibrato speed units.

LFO

LFO - Low Frequency Oscillator.

Controllers:

  • Volume;
  • Type: 0 - amplitude modulation (tremolo); 1 - stereo panning modulation;
  • Power;
  • Frequency;
  • Shape:
  • Set phase;
  • Mono: 0 - stereo; 1 - mono;
  • Frequency units.

Loop

This effect is for repeating small pieces of input sound.

Controllers:

  • Volume;
  • Delay;
  • Stereo: 0 - mono; 1 - stereo;
  • Repeats - number of repeats in the loop.

Video

Modulator

Amplitude or Phase modulator. First input = Carrier. Other inputs = Modulators.

More info about amplitude modulation: http://en.wikipedia.org/wiki/Amplitude_modulation

More info about phase modulation: https://en.wikipedia.org/wiki/Phase_modulation

Pitch Shifter

Reverb

Reverberator with DC Blocking Filter.

Controllers:

  • Dry - amount of original signal in output;
  • Wet - amount of reverberation in output;
  • Feedback;
  • Damp;
  • Width;
  • Freeze: 0 - none; 1 - freeze mode;
  • Mode;
  • All-pass filter: 0 - disabled; 1 - enabled;
  • Room size.

Vocal Filter

This filter was designed to simulate the vocal tract of a human.

Controllers:

  • Volume;
  • Bandwidth - bandwidth of formants;
  • Amp. add - additional value for amplitude of formants;
  • Formants - number of voice formants; maximum = 5 (best result);
  • Vowel: A…E…I…O…U (minimal value - A; maximal - U);
  • Character:
    • 0 - soprano;
    • 1 - alto;
    • 2 - tenor;
    • 3 - bass;
  • Mono: 0 - Stereo; 1 - Mono.

Video

Vibrato

Controllers:

  • Volume;
  • Amplitude;
  • Frequency;
  • Mono: 0 - Stereo; 1 - Mono;
  • Set phase;
  • Frequency units.

WaveShaper

In simple terms, WaveShaper allows you to change the shape of the input signal. Default shape is linear (no changes; play the original signal).

In math terms, WaveShaper is the expression y = f( x ); where y - output; x - input; f - function with graph which you can see in the WaveShaper interface. The horizontal axis of the graph is Input. The vertical axis of the graph is Output.

Controllers:

  • Input volume;
  • Mix: minimum - output=input; maximum - output=filtered input;
  • Output volume;
  • Symmetric;
  • Mode;
  • DC filter (DC Blocking Filter).

Misc

Feedback

Generally the feedback is not allowed in SunVox you can't create an endless loop between the modules. But you can do it by placing two Feedback modules inside of the loop (see screenshot).

Internal Feedback delay = 20 ms.

Glide

Glide is similar to the MultiSynth (which sends the input events to the connected output modules), but it also adds the commands of smooth transition between the notes.

GPIO

With this module you can use the General-Purpose Input/Output (GPIO) pins of the device board. For example, you can send some signals to the LEDs, or receive the ON/OFF messages from the buttons.

Requirements: Linux with GPIO Sysfs Interface enabled.

Video

MetaModule

MetaModule is a full-featured copy of SunVox in a single module. So you can include one SunVox-project into another recursively. Some complex synth or effect (with large amount of the modules) may be hidden in the MetaModule. You also can use it as arpeggiator.

There are two ways to play some generator in the MetaModule:

  1. set Input Module controller to play some selected module inside of the MetaModule; polyphony is possible in the this way, because it can be handled by the selected module directly;
  2. set Play Patterns controller and play the whole SunVox project (with patterns) inside of the MetaModule; polyphony is not possible in this way, because we need a separate copy of the MetaModule for each polyphony channel, but this limitation may be removed in future SunVox updates.

MultiCtl

With this module you can control multiple controllers at once.

Video

MultiSynth

Sends the incoming events (Note ON, Note OFF, etc.) to any number of connected modules. So with the MultiSynth you can play a large number of synths simultaneously by pressing one note only.

Controllers:

  • Transpose;
  • Random - random frequency change;
  • Velocity;
  • Finetune;
  • Random phase;
  • Random velocity;
  • Phase - the starting position of the sample or the starting phase of some Generator.

Video1 Video2

Sound2Ctl

This module converts the audio signal to the numeric value of any selected controller.

Input port of the Sound2Ctl is for receiving the audio signal. Output port of the Sound2Ctl is for transmitting the commands like “set controller X to the value Y”.

If you want to disable this module: just mute it, or set OUT Controller to 0.

Video

Preferences

Go to the main menu → Preferences, and you will see the window with the main SunVox settings (not for the separate project, but for the whole SunVox app).

  • Main
  • Modules
  • Timeline
  • Interface
  • Audio
  • Recording
    • Metronome ON/OFF.
    • Fit pattern to grid: when enabled - the start position of the new recorded pattern will be multiple of 32.
    • Note quantization: when enabled - the Delay effects (40…5F) will not be used for the new recorded notes.
    • Automation quantization: when enabled - the Delay effects (40…5F) will not be used for the automation (controller changing) commands, and the pattern size will be much more compact (one track per controller) and readable.
  • MIDI

Configuration file

In most cases, you should not change this file manually, because the main settings are available in the SunVox Preferences window.

SunVox takes its configuration from the sunvox_config.ini or sunvox_config.txt file. This file must be placed in one of the following directories:

Typical sunvox_config.ini file looks like this:

// Remove the '//' symbol to enable (uncomment) the string.

// Window width and height:
width 800
height 600

// Use this option to set max number of frames per second:
// ( less value - less CPU usage )
//maxfps 30

// Uncomment these options to hide scopes and levels (i.e. for slow devices):
//no_scopes
//no_levels

// Modules size:
//synths_min_num 8
//synth_max_xsize 100
//synth_min_xsize 32
//synth_xsize_divider 8
//synth_ysize_multiplier 80

// Undo buffer size (in kilobytes):
//undosize 2048

// Uncomment this option to rotate the screen (device dependent):
// ( example of usage: rotate 90 //turn the screen by 90 degrees )
//rotate 90

// Uncomment this option if you want fullscreen mode:
//fullscreen

// Uncomment this option if your device has touchscreen without pen (stylus), 
// or if you just want a large buttons:
//touchcontrol

// Sound buffer size (in frames):
buffer 4096

// Audio device name:
//  * name examples for ALSA (Linux): "hw:0,0", "hw:1,0";
//  * name examples for other audio systems: "0" - first device; "1" - second device;
//audiodevice hw:0,0

// Audio driver name (alsa, oss, sdl, dsound, mmsound, asio):
//  * alsa - ALSA (Linux);
//  * oss - OSS (Linux);
//  * sdl - SDL (Linux);
//  * dsound - DirectSound (Windows);
//  * mmsound - oldest audio API, slow, but compatible with all Windows and Windows Mobile devices;
//  * asio - ASIO (Windows);
//audiodriver alsa

// Sample rate (audio frames per second; minimum - 44100):
frequency 44100

// Video driver name on Windows Mobile: 
//  * gapi - default; requires gx.dll installed in your system; 
//  * raw - raw hires framebuffer; not supported by some devices; 
//  * gdi - compatibility mode; slow but universal;
//videodriver gapi

// Force UI optimization for Pen/Mouse control:
//pencontrol

// Display pixels per inch:
//ppi 160

// UI scale factor (normal=256):
//scale 256

// Pixel size:
//zoom 2

// Uncomment the "theme" option to use the custom color themes:
// (four base colors defined by c_0, c_1, c_2 and c_3 options)
//theme
c_0 #000000
c_1 #101010
c_2 #808080
c_3 #FFFF00

Music made with SunVox

Video tutorials

Frequently asked questions (FAQ)

Q: How to connect one module to another?

A: There are three ways.

  • For multitouch devices: first touch on source, second touch on destination. Check this simple video-tutorial.
  • Select the first module (source). Click on the LINK button. Select the second module (destination).
  • Select the first module (source). Drag it to destination with SHIFT key pressed.

Lines between the modules define the direction of signal transmission: more intensive part of line must go from the source; less visible part must go to the destination (reciever).

Q: SunVox crashing for no apparent reason.

A: Try to clean the settings of the SunVox. Launch it from console with the following command: sunvox clearall. If you are Windows user - just run the reset_sunvox.bat script.

Q: Interface is lagging very much.

A: Try to disable some module visualization options: Main Menu → Preferences → Modules.

Q: Filter effect's impulse value doesn't change. When i change impulse value, it return 0.

A: It is normal behaviour. There is no need to remember the “impulse” value. I'll try to describe the algorithm.

  • Frequency = 1000 (for example).
  • You set “Impulse” to 3000.
  • Filter sets its internal frequency to 3000.
  • Filter resets “Impulse” to 0. (0 = no more commands from user).
  • Frequency changes smoothly from 3000 to 1000. Speed depends on the “Response” value.

Q: Is there a particular bit rate/sample rate/# channels that the samples need to be in order to work?

A: WAV samples must be in following format: 8 / 16 / 24 / 32 (float) bits; mono / stereo; any sampling frequency; only uncompressed PCM data. Supported file formats: WAV, AIFF, XI, JPEG. As for JPEG, brightness of the pixels will be converted into the sound wave (pixel by pixel).

Q: How to open the sample editor?

A: Please check this video-tutorial.

Q: For multisamples, how do I set the root note of my sample?

A: Use the “rel.note” (relative note) parameter for such purposes.

Q: I noticed the effects parameters on the right of the note, velocity etc at the top seem to be missing.

A: These columns are hidden by default. But you can enable them - just go to the Main menu and select “Show additional columns”.

Q: How to paste sounds from another iOS apps?

A:

  1. copy the sound in some another app #1;
  2. go to SunVox;
  3. open Main Menu (button it the top right part of the screen) → Export/Import → Paste file from system pasteboard;
  4. select folder and name for the new file;
  5. click SAVE and the file with sample from app #1 will be created;
  6. now you can load this file by clicking the Load Module option in the Routing window (window with modules).

Q: After i export the session into soundfile, where can i open this file in iOS device?

A: There are three ways.

1) Open SunVox → Main menu → Export/import → Copy file to system pasteboard → select your audio file. Then you can open some other iOS app with Audio Copy/Paste support and do the Paste operation.

2) Open SunVox → Main menu → Export/import → Wi-Fi export/import. Then follow the instructions on the screen.

3) Use iTunes File Sharing to access the SunVox files. Launch the iTunes on your computer. Sync it with iOS device. Then find SunVox in the list of apps of your device. And you will see the list of SunVox documents.

Q: Is there a way to make the Sampler notes less 'clicky'? When I play pure waveforms especially the clicks become really loud as it cuts off a wave at one amplitude and starts a new one at a different amplitude.

A: Unfortunately there is no automatic anticlick function in the current version of the Sampler. You should make it yourself. Please try to use the Volume Envelope with 1-tick (at least) release. Also make sure that your Sampler has enough Polyphony channels. If not sure - just set it to 32 os ro.

Q: How to connect SunVox to another app via MIDI?

A:

  • Windows: use LoopMIDI to create the virtual MIDI cable between the apps; in SunVox this port can be used as MIDI input (SunVox → Preferences → MIDI) or MIDI output (SunVox Module Properties → MIDI OUT).

Q: How to split MIDI notes by channels, and send the notes from different channels to different modules?

A: Right now (SunVox 1.9.1) there is no direct way to do it. But it will be implemented in future updates. Now you can split your MIDI notes by the octaves (or some another pitch regions). Check the example.

Q: How do I adjust multisample instruments? I see slots for multiple samples and a zone managment section in the editor, but I can only load one sample at a time?

A: I hope this little tutorial will help you.

Step 1. Open new empty sampler.

www.warmplace.ru_docs_sunvox_sunvox_sampler_01.jpg

Step 2. Load sample 0.

www.warmplace.ru_docs_sunvox_sunvox_sampler_02.jpg

Step 3. Sample 0 loaded.

www.warmplace.ru_docs_sunvox_sunvox_sampler_03.jpg

Step 4. Load sample 1.

www.warmplace.ru_docs_sunvox_sunvox_sampler_04.jpg

Step 5. Sample 1 loaded.

www.warmplace.ru_docs_sunvox_sunvox_sampler_05.jpg

Step 6. Make sample 1 playable on octaves 5 and 6.

www.warmplace.ru_docs_sunvox_sunvox_sampler_06.jpg

sunvox/manual_en.txt · Last modified: 2016/05/15 12:22 by nightradio