What is SunVox

SunVox is a small, fast and powerful music sequencer (tracker) using modular synthesizers. It is a tool for those people who like to compose music wherever they are, whenever they wish. SunVox is available for desktop PC (Windows, Linux, Mac OS X), pocket computers (Maemo, Windows Mobile, PalmOS, iPhone/iPad) and netbooks.

Key features:

  • Modular interface.
  • Highly optimized synth algorithms.
  • Flexible architecture: SunVox works on a variety of devices. For example: PDA with slow CPU - 16bit sound (fixed point arithmetic); or a big PC with a powerful CPU: 32bit sound (floating point arithmetic).
  • Supported platforms: Windows, Linux (x86/x86_64/arm), Mac OS X, PalmOS, WindowsCE (Windows Mobile), iPhone/iPad.

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

Minimum system requirements

Linux:

  • Pentium processor;
  • any Linux distribution (x86 or x86_64);
  • SDL library (version 1.2 or later);
  • ALSA.

Maemo: (at present only tested on Nokia N900)

  • libsdl1.2;
  • libgles1.

Windows:

  • Pentium processor;

Mac OS X:

  • Mac OS X Leopard (10.5);

WindowsCE (Windows Mobile):

  • ARM CPU (200 mHz).

PalmOS:

  • ARM CPU (200 mHz);
  • PalmOS 5.0;
  • FOR T|T, T2 and ZIRE71 USERS: Please, install FHR (Fargo Heap Resizer) before running SunVox. FHR page: http://fanoush.wz.cz/palm/fhr.html

Interface description

Keyboard shortcuts

Keys Description
SPACE edit mode ON/OFF
q,w,e,r,t,y,u,i…. playing notes
CAPSLOCK or '~' insert “note OFF”
F1…F8 set octave number
TAB go to the next track
SHIFT + TAB go to the previous track
CTRL + Z UNDO
CTRL + Y or SHIFT + CTRL + Z REDO
CTRL + X cut
CTRL + C copy
CTRL + V paste
CTRL + A select all
CTRL + T select track (pattern editor)
CTRL + D duplicate / clone
CTRL + I interpolate values (pattern editor)
CTRL + U interpolate velocity (pattern editor)
CTRL + N create a new synth / create a new pattern
CTRL + R randomize synth controllers (sound network)
SHIFT + DELETE cut
SHIFT + INSERT paste
SHIFT + '+' transpose selected area up (pattern editor)
SHIFT + '-' transpose selected area down (pattern editor)
SHIFT + UP/DOWN/LEFT/RIGHT selection
SHIFT + MOUSE MOVING synth link/unlink
CTRL + O load song
CTRL + S save song
CTRL + B save song to BACKUP.sunvox
CTRL + '+' increase the edit step
CTRL + '-' decrease the edit step
F9 play
F11 play pattern
F12 stop

Internal modules (synthesizers & effects)

Some synthesizers 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

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.

Generator

This synth is for generating different types of waves.

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.
  • Panning;
  • Attack;
  • Release;
  • Polyphony - number of notes the synthesizer can sound simultaneously;
  • Mode: HQ/HQmono;
  • Sustain: 0 - OFF; 1 - ON;
  • Phase modulation: 0 - OFF … 256 - use input signal for phase modulation;
  • Duty cycle (only for square waveform).

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.

MultiSynth

Translates music events to any number of synths.

Controllers:

  • Transpose;
  • Random - random frequency change.

Sampler

Supported file formats: WAV, XI, AIFF, RAW. 8 / 16 / 24 / 32 bits.

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.

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.

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 (and amplifier)

Controllers:

  • Volume;
  • Type - type of distortion: 0 - limitation; 1 - saturation;
  • Power;
  • Bitrate: 1..16;
  • Frequency: maximum = 44100 Hz (8000 (hex) in pattern editor).

Echo

Maximal delay length: 1 second.

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.

EQ

3Band equalizer.

Controllers:

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

Filter

State Variable Filter. Double Sampled.

Controllers:

  • Volume;
  • Frequency: maximum = 14000 Hz (8000 (hex) in pattern editor);
  • 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: minimal value - output=input; maximal value - output=filtered input.

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.

LFO

LFO - Low Frequency Oscillator.

Controllers:

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

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.

Modulator

Amplitude modulator (multiplier of the inputs).

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.

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.

Vorbis Player

OGG Vorbis Player.

Vibrato

Controllers:

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

Song structure

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

Hexadecimal (hex) numbers: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 10, 11, 12, 13 … FF
and decimal equivalents: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 … 255

Pattern editor

Pattern format

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 fields.

Event format: NN VV SS CCEE PPPP

Lets see detailed description of each field in the event:

  • NN - note (C0,c0,D0,d0,E0,F0,f0,G0,g0,A0,a0,B0,C1,c1,D1, … B9);
  • VV - velocity (00..80);
  • SS - synth number (00,01,02,03,04,05,06,07,08,09, … FF);
  • CC - number of a controller (01,02,03,04, … FF);
  • EE - standard effect:
    • 01 - slide up (portamento up; sliding speed = PPPP);
    • 02 - slide down (portamento down; sliding speed = PPPP);
    • 03 - slide to note (sliding speed = PPPP);
    • 08 - arpeggio (PPPP = SSTT; SS - second note increment; TT - third note increment);
    • 09 - set sample offset (offset in frames = PPPP * 256);
    • 0A - slide velocity up/down (PPPP = UUDD; UU - up speed; DD - down speed);
    • 0F - set playing speed (PPPP: 0001..001F - number of ticks per line; 0020..00FF - BPM);
    • 19 - re-trigger note after PPPP ticks during the line;
    • 1C - cut note after PPPP ticks in the current line;
    • 1D - delays the start of note until tick PPPP in the current line;
    • 20 - note probability;
    • 21 - note probability with random velocity;
  • PPPP - parameter of a selected effect/controller (0000 - min; 8000 - max).

Velocity can be changed dynamically. Example:

NN VV SS CCEE PPPP
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 SS CCEE PPPP
-- -- 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 synths have local controllers. A local controller can be changed for a separate sound on a separate track, independently of the other sounds of the same module.

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

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

Standard effects

01 - Slide up (Portamento Up). This effect will slide up the frequency of the synth being played on the track by PPPP (one note = 40 (hex)) tones for every tick. If a slide rate is not specified (PPPP 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 PPPP (one note = 40 (hex)) tones for every tick. If a slide rate is not specified (PPPP 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 PPPP (one note = 40 (hex)) will states the speed at which a slide will occur. If a slide rate is not specified (PPPP is zero) then the last slide rate used on the track is used again.

08 - Arpeggio. This effect is normally used to simulate chords. It can also be used to produce a heavy vibrato. Example: Note = C3; PPPP = 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.

09 - Set sample offset. This functionality enables you to start a sample from a specified position rather than the normal beginning position. Multiply value PPPP * 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 PPPP = 0023 (in hex). 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.

0A - Slide velocity up/down. This effect will change the velocity of the synth being played on a track. The value PPPP the speed of the velocity change. Where PPPP = UUDD. If UU is nonzero the velocity is increased, and if DD is nonzero the velocity is decreased. Example: set PPPP to 0003. This means that at the beginning of the line, the current velocity of the synth is decreased by 3 (because DD = 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 - 31 (or 1 - 1F in hex). Values above 31 (1F in hex), represent a modified speed based on beats per minute, where 4 lines are 1 beat. A speed value of 42 (2A in hex), 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).

19 - Re-trigger. Effect 19 allows you to re-trigger a note after PPPP ticks during the line. For example, let's specify note C3 and set PPPP = 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 PPPP ticks in the current line.

1D - Delay. This effect delays the start of a note until tick PPPP in the current line. For example, if note C2 is played, with effect 1D and argument PPPP = 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.

20 - Note probability. Set the probability PPPP (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.

Configuration

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:

  • Linux
    • directory with SunVox;
    • user home directory (/home/username/);
  • Windows
    • directory with SunVox;
    • directory for application-specific data (/Documents and Settings/username/Application Data/);
  • Mac OS X
    • directory with SunVox;
    • /Users/username/Library/Caches/;
  • WindowsCE (Windows Mobile)
    • root of local filesystem;
    • directory for application-specific data (/Documents and Settings/username/Application Data/);
  • PalmOS
    • root of local filesystem (use these utilities for converting from file to PDB: win32 version, linux version with sources);
    • root of SD-card.

Typical sunvox_config.ini file looks like this:

//Commented string. blah blah...

// Screen width and height:
width 640
height 480

// Use this option for setting maximal number of frames per second:
// ( less value - less CPU usage )
//maxfps 30

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

// Uncomment this option if you want fullscreen mode in Linux (SDL):
//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

// ALSA audio device name in Linux; or audio device number in Windows:
audiodevice hw:0,0

// Sampling frequency (minimum - 44100):
frequency 44100

// Videodriver name on Windows Mobile: 
// ( gapi (default); raw (raw hires framebuffer); gdi (compatibility mode) )
videodriver gapi

// Pixel size:
// ( only for SDL or WinCE raw framebuffer )
//zoom 2

// Uncomment the option "theme" to use a 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

WARNING: Sound may differ slightly with different sampling frequencies.

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.

Dark part of the connection line - must go FROM SOURCE. Bright part - TO DESTINATION. Reconnection removes the previous connection.

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: 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: 2010/12/28 14:31 by nightradio
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki