:: warmplace.ru :: SunVox User Manual
Official page of NightRadio (Alex Zolotov): art, music, soft and docs.
  rus
SunVox - Multiplatform Modular Music Creation Studio
User Manual


Introduction to SunVox
Installation and system requirements
Graphical user interface (GUI) description
Keyboard shortcuts
Synthesizers and effects
SunVox song structure
Pattern editor
Configuration file

This manual is not yet complete. But i working on it now. Please send any your comments and issues to nightradio@gmail.com. Thank you for your understanding.



Introduction to SunVox

SunVox is a small, simple, fast and powerful program for music creation. It is based on modular synthesizers and tracker-like interface.

Main SunVox features:
  • Modular interface.
  • Highly optimized synth algorithmes.
  • Flexible architecture: SunVox can working on variuos devices. For example: PDA with slow CPU - 16bit sound (fixed point arithmetic); or big PC with powerfull CPU: 32bit sound (floating point arithmetic).
  • SunVox engine (without GUI) is open source and distributed under the terms of BSD license.
  • Built-in synthesizers:
    • FM synthesizer;
    • Generator (saw,triangle,square,noise waveforms);
    • Sampler (supported formats: WAV, XI);
    • SpectraVoice (FFT-based synth for analog-like pads);
    • Kicker;
    • Stereo Delay;
    • Distortion;
    • Echo;
    • Filter (Low-pass, High-pass, Band-pass, Notch);
    • Vocal Filter;
    • Flanger;
    • LFO;
    • Loop;
    • Reverb (with DC Blocking Filter).
  • Supported platforms: Windows, Linux, PalmOS, WindowsCE.
  • Export to WAV.
Examples of SunVox application:
  • composing music on pocket computers or netbooks;
  • embedding music into games;
  • "chip tunes" creation: SunVox tunes can be very small; for example - 30 kBytes (or 2 kBytes after packing by ZIP)



Installation and system requirements
  • LINUX
    • System requirements:
      * Pentium processor or higher;
      * 256 mb RAM or higher;
      * Any Linux distribution;
      * SDL library (version 1.2 or later);
      * ALSA.
    • Unpack archive with SunVox.
    • Run sunvox.
  • WINDOWS
    • System requirements:
      * Pentium processor or higher;
      * 256 mb RAM or higher.
    • Unpack archive with SunVox.
    • Run sunvox.exe
  • WINDOWSCE (WINDOWS MOBILE)
    • System requirements:
      * ARM CPU (200 mHz or higher).
    • Copy sunvox.cab to your mobile device.
    • Install it.
    • Open Windows start menu -> Programs. Click on SunVox.
  • PALMOS
    • System requirements:
      * ARM CPU (200 mHz or higher);
      * PalmOS 5.0 or higher.
    • Unpack archive with SunVox.
    • Install sunvox.prc to Palm.
      WARNING. SunVox may crash some new devices like Treo 700p. In this case you must install sunvox_for_new_devices.prc instead of sunvox.prc.
      FOR T|T, T2 and ZIRE71 USERS: Please, install FHR (Fargo Heap Resizer) before SunVox running. FHR page: http://fanoush.wz.cz/palm/fhr.html
    • Copy other files (examples, samples) to the flash-card.
    • Run sunvox.



Graphical user interface (GUI) description






Keyboard shortcuts

Keys:Description:
SPACE - recording ON/OFF
q,w,e,r,t,y,u,i.... - playing notes
CAPSLOCK - note OFF
F1...F8 - set octave number
TAB - go to the next channel
SHIFT + TAB - go to the previous channel
CTRL + X - cut
CTRL + C - copy
CTRL + V - paste
CTRL + A - select all
CTRL + T - select track
SHIFT + DELETE - cut
SHIFT + INSERT - paste
SHIFT + '+' - transpose selected area up
SHIFT + '-' - transpose selected area down
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




Synthesizers and effects

Some synthesizers has the "Mode" parameter with following possible values:
00. HQ - High Quality (stereo). Linear interpolation
01. HQmono - High Quality (mono). Linear interpolation
02. LQ - Low Quality (stereo) for devices with slow CPU
03. LQmono - Low Quality (mono) for devices with slow CPU
04. Cubic - High Quality (stereo). Cubic interpolation

FM Synthesizer

This synthesizer is based on frequency modulation. It working on 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:
    • 00 - High Quality. Stereo. Linear interpolation of envelopes;
    • 01 - High Quality. Mono. Linear interpolation of envelopes;
    • 02 - Low Quality. Stereo. No interpolation;
    • 03 - Low Quality. Mono. No interpolation.
Generator

This synthesizer is for different waveforms generation.
Available local controllers: Type; Pan.
Controllers:
  • Volume;
  • Type - type of waveform:
    • 00 - triangle;
    • 01 - rectangle;
    • 02 - white noise;
    • 03 - "dirty" wave;
  • Panning;
  • Attack;
  • Release;
  • Polyphony - how many notes synthesizer can sound at one time;
  • Mode: HQ/HQmono;
  • M.Release - modulator release;
  • Sustain: 00 - OFF; 01 - ON.
Sampler

Supported file formats: WAV, XI.
Available local controllers: Pan.
Controllers:
  • Volume;
  • Panning;
  • Sample interpolation: 00 - OFF; 01 - Linear;
  • Volume interpolation: 00 - OFF; 01 - Linear;
  • Polyphony - how many notes synthesizer can sound at one time.
SpectraVoice

This synthesizer is based on FFT and can be used for sound generation with different form of spectrum.
Minimal internal sample size: 4096 words. Maximal: 65536 words
Available local controllers: Pan.
Controllers:
  • Volume;
  • Panning;
  • Attack;
  • Release;
  • Polyphony - how many notes synthesizer can sound at one time;
  • Mode: HQ/HQmono/LQ/LQmono/Cubic;
  • Sustain: 00 - OFF; 01 - ON;
  • Sample size:
    • 00 - 4096 words;
    • 01 - 8192 words;
    • 02 - 16384 words;
    • 03 - 32768 words;
    • 04 - 65536 words;
  • Harmonic - number of harmonic (00 - 15);
  • h.freq - harmonic's frequency;
  • h.volume - harmonic's amplitude;
  • h.bandwidth - harmonic's bandwidth;
  • h.bandtype - harmonic's bandtype:
    • 00 - half of sinus;
    • 01 - square;
    • 02 - organ ver.1;
    • 03 - organ ver.2;
    • 04 - organ ver.3;
    • 05 - organ ver.4;
    • 06 - sinus.
Kicker

Available local controllers: Type.
Controllers:
  • Volume;
  • Type - type of waveform: 00 - triangle; 01 - square;
  • Panning;
  • Attack;
  • Release;
  • Vol. Add - additional volume;
  • Env. Accel - volume&frequency envelope acceleration;
  • Polyphony - how many notes synthesizer can sound at one time;
  • Anticlick: 00 - OFF; 01 - ON.
Delay

Maximal 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; maximal delay - 1/64 second;
  • Delay R - delay length on the right channel; maximal delay - 1/64 second;
  • Volume L - volume of the left channel;
  • Volume R - volume of the right channel;
  • Mono: 00 - stereo delay; 01 - mono delay;
  • Inverse amplitude: 00 - OFF; 01 - ON.
Distortion (and amplifier)

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

Maximal delay is one 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: 00 - mono; 01 - stereo.
Filter

State Variable Filter (Chamberlin version). Double Sampled.
Controllers:
  • Volume;
  • Frequency: maximum = 14000 Hz (8000 in hex in pattern editor);
  • Resonance;
  • Type:
    • 00 - lowpass;
    • 01 - highpass;
    • 02 - bandpass;
    • 03 - notch;
  • Response - speed of changing the frequency, resonance and volume;
  • Mode:
    • 00 - double sampled stereo;
    • 01 - double sampled mono;
    • 02 - low quality stereo;
    • 03 - low quality mono;
  • Impulse - frequency, that will be set immediately; after setting 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.
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:
    • 00 - soprano;
    • 01 - alto;
    • 02 - tenor;
    • 03 - bass;
  • Mono: 00 - Stereo; 01 - Mono.
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: 00 - half of sinus; 01 - sinus;
  • Set vibrato phase.
LFO

LFO - Low Frequency Oscillation.
Controllers:
  • Volume;
  • Type: 00 - amplitude modulation (tremolo); 01 - stereo panning modulation;
  • Power;
  • Frequency;
  • Shape: 00 - sinus; 01 - square;
  • Set phase.
Loop

This effect is for repeating small pieces of input sound.
Controllers:
  • Volume;
  • Delay;
  • Stereo: 00 - mono; 01 - stereo;
  • Repeats - number of repeats in the loop.
Reverb

Reverberator and DC Blocking Filter.
Controllers:
  • Dry - amount of original signal in output;
  • Wet - amount of reverberation in output;
  • Feedback;
  • Damp;
  • Width;
  • Freeze: 00 - none; 01 - freeze mode;
  • Mode.



SunVox song structure



Several words about the hex numbers.
In mathematics and computer science, hexadecimal (also base-16, hexa, or hex) is a numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0пїЅ9 to represent values zero to nine, and A, B, C, D, E, F (or a through f) to represent values ten to fifteen.

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 their 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

Any pattern in the SunVox looks like this:
linech0 (channel 0)ch1 (channel 1)ch2 (channel 2) ...
000eventeventevent
001eventeventevent
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, event 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 controller (01,02,03,04, ... FF)
  • EE - standart effect:
    • 01 - slide up (portamento up; sliding speed = PPPP)
    • 02 - slide down (portamento down; sliding speed = PPPP)
    • 03 - slide to note (sliding speed = PPPP)
    • 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)
  • 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
Cutoff frequency controller has number 2 in the filter.

Some synths has local controllers.
Local controller can be changed for separate sound on a separate channel.
Example: (changing local controller 2 in synth 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



Configuration file (sunvox_config.ini)

This file must be placed in the same folder with SunVox (for Linux/Windows) or in the root of filesystem (for WinCE devices).
Typical sunvox_config.ini file looks like this:
//----------------------------------------------------------------------------
width        640         //Screen width
height       480         //Screen height
fullscreen               //Set it, if you want fullscreen mode in Linux (SDL)
buffer       4096        //Sound buffer size (in samples)
audiodevice  hw:0,0	 //ALSA audio device name in Linux
frequency    44100       //Sampling frequency (minimum - 44100)
noborder                 //Set it, if you want a window without border
//----------------------------------------------------------------------------
WARNING: Sound may differ slightly on different sampling frequencies
Warm Place
Home
Forum
About the Author
Search

Music by NightRadio
Archive 1997 - 2008
2005: Summerscapes
2005: WarmPlace
2007: Forgotten Pages
Comments

Art
Gallery 1997 - 2006
Palm Art
Demos

Soft
Palm
DOS
VirtualANS
Pixilang
Pixilang Soft
SunVox
Games

Docs
PsyTexx II
PsyTexx 1.8
SunVox
My knowledge base

Projects
Echoes of destiny (Отзвуки Судьбы) (RU)

Forgotten pages
2003: Konserv. life (RU)
2002: Paper story (RU)
2002: Easy music (RU)
2001: Legends... (RU)
2001: Converters

Friends





Сеть Графоман
Mail me: nightradio@gmail.com (Alex Zolotov)