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:
Official SunVox page: http://www.warmplace.ru/soft/sunvox
Linux:
Maemo: (at present only tested on Nokia N900)
Windows:
Mac OS X:
WindowsCE (Windows Mobile):
PalmOS:
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 |
Some synthesizers have a “Mode” parameter with the following possible values:
This synth is based on frequency modulation. It operates on an internal sampling frequency 44100 Hz. Abbreviations: C - carrier; M - modulator.
Controllers:
This synth is for generating different types of waves.
Available local controllers: Type; Pan.
Controllers:
Available local controllers: Type.
Controllers:
Translates music events to any number of synths.
Controllers:
Supported file formats: WAV, XI, AIFF, RAW. 8 / 16 / 24 / 32 bits.
Available local controllers: Pan.
Controllers:
FFT-based synth. Can be used to generate a sound with a complex spectrum.
Available local controllers: Pan.
Controllers:
Maximal length of the delay is 1/64 second.
Controllers:
Controllers:
Maximal delay length: 1 second.
Controllers:
3Band equalizer.
Controllers:
State Variable Filter. Double Sampled.
Controllers:
Controllers:
LFO - Low Frequency Oscillator.
Controllers:
This effect is for repeating small pieces of input sound.
Controllers:
Amplitude modulator (multiplier of the inputs).
Reverberator with DC Blocking Filter.
Controllers:
This filter was designed to simulate the vocal tract of a human.
Controllers:
OGG Vorbis Player.
Controllers:
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 |
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:
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
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.
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:
//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.
Q: How to connect one module to another?
A: There are three ways.
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.
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.
Step 2. Load sample 0.
Step 3. Sample 0 loaded.
Step 4. Load sample 1.
Step 5. Sample 1 loaded.
Step 6. Make sample 1 playable on octaves 5 and 6.