Effect Vxx

From famitracker.org wiki
(Redirected from Vxx)
Jump to: navigation, search

Vxx has various different uses depending on the channel it is used on.

Note that this effect cannot be used on the 2A03's triangle and DPCM channel, or any of the VRC7 channels.


2A03 & MMC5

On 2A03 and MMC5 instruments, Vxx sets a static duty cycle to use. On the noise channel, it select noise mode (white noise or periodic noise).

Value Pulse width Noise mode
00 12.5% 32-Kbit mode (Normal)
01 25% 93-bit mode (Looped)
02 50% N/A
03 75%

VRC6

Vxx usage is slightly different on VRC6 channels. On the square channels it selects which pulse width to use, while on the sawtooth channel, V01 enables six more steps of volume beyond 15 (see below).

Value Pulse width Sawtooth vol.
high bit
00 6.25% 0
01 12.5% 1
02 18.75% N/A
03 25%
04 31.25%
05 37.5%
06 43.75%
07 50%

Sawtooth usage notes

The sawtooth wave has no "pulse width" or "duty cycle", but it utilises the Vxx effect for modifying the volume register's high bit instead.

The sawtooth channel's volume is 6-bit instead of 4-bit, so it has 64 steps (instead of 16). The sawtooth wave itself is divided into 7 steps that each get incremented by the volume value. This counter is 8-bit, so it goes all the way up to 255. For example, with a volume of '1', the counter goes [0 1 2 3 4 5 6 0 1 2 3...]. If the volume is '2', everything gets multiplied by two: [0 2 4 6 8 10 12 0 2 4...]. However, the actual maximum volume is '42': [0 42 84 126 168 210 252]. Since the counter has a maximum value of 255, anything above 42 causes the counter to overflow and wrap to 0 whenever it reaches 255. This results in a distorted sawtooth wave. So, for instance, volume 56 = [0 56 112 168 224 280 336]. 280 and 336 are higher than 255, so the counter wraps to 50 and 81 instead.

FamiTracker handles this by mapping volume values 0 through 15 to 0 - 30. Using duty cycle value 1 (V01) flips the high bit of the volume register from 0 to 1, adding 32 to the volume value. Values from 0 through 15 now get mapped to 32 - 62. Therefore, the maximum value before the sawtooth wave distorts is 5, if the duty cycle setting is set to 1, because (5 * 2) + 32 = 42.

Example

C-4 00 0 V00  <--- (Volume * 2) = Actual volume
--- -- 1 ---
--- -- 2 ---
--- -- 3 ---
--- -- 4 ---
--- -- 5 ---
--- -- 6 ---
--- -- 7 ---
--- -- 8 ---
--- -- 9 ---
--- -- A ---
--- -- B ---
--- -- C ---
--- -- D ---
--- -- E ---
--- -- F ---
--- -- 0 V01  <--- Starting from this line, (Volume * 2) + 32 = Actual volume
--- -- 1 ---
--- -- 2 ---
--- -- 3 ---
--- -- 4 ---
--- -- 5 ---  <--- Maximum volume (42) reached
--- -- 6 ---  <--- From here on, volume stops increasing and you will get distortion.
--- -- 7 ---
--- -- 8 ---
--- -- 9 ---
--- -- A ---
--- -- B ---
--- -- C ---
--- -- D ---
--- -- E ---
--- -- F ---

Namco 163

On Namco 163 channels, Vxx selects which one of the current instrument's waves to use. Using it to call an undefined wave will not do anything.

Wave Channels: xx = 00 - 0F

Sunsoft 5B

On Sunsoft 5B channels, Vxx configures the tone, noise and envelope generator settings of the current instrument.

Value Mode
00 Nothing
01 Tone
02 Noise
03 Tone + Noise
04 Envelope
05 Tone + Envelope
06 Noise + Envelope
037 Tone + Noise + Envelope

See also


Effect list
0xy - arpeggio 1xx, 2xx - pitch slides 3xx - portamento 4xy - vibrato
7xy - tremolo Axy - volume slide Bxx - jump to frame Cxx - stop
Dxx - skip frame Exx - volume Fxx - speed and tempo Gxx - note delay
Hxy, Ixy - hardware sweep Hxx - FDS modulation depth Ixx, Jxx - FDS modulation speed Pxx - fine pitch
Qxy, Rxy - note slide Sxx - mute delay Vxx - duty/noise/wave mode Wxx - DPCM sample speed
Xxx - DPCM sample retrigger Yxx - DPCM sample offset Zxx - DPCM delta counter