Article History
 
 
 
Discussion
 
60387 views
 
28% HertzDevil
FamiTracker Effects Commands View HTML Version
 

FamiTracker's effects commands are mostly based on those found in '[[FastTracker II]. FamiTracker's effects columns are expandable; each channel supports up to 4 effect columns. This can be helpful if you are an audio micro-managing freak!  :D

Bear in mind that what you see is what you get: collapsing an effect column effectively disables them from playback and export (they are not lost though; expanding the column again will reveal the effects and they will then play back like before).

'[#[Effects Reference]
'[t[b0]0xy'[/t] - Arpeggio aka '[[arps]; fast note shifting in half steps.
x = Number of half steps from root note for first shift
y = Number of half steps from root note for second shift

Ex: 037 = Minor chord. 047 = Major chord. 070 = Perfect 5th
View article on '[[arps] for more examples.

Notes: Leaving y blank causes the arp to last two ticks instead of three.


'[t[b0]1xx and 2xx'[/t] - Portamento up (1) and down (2); smooth pitch glide up.
xx = Speed

Notes: 100, 200 and 300 all cancel each other.


'[t[b0]3xx'[/t] - Glissando; pitch glide to next note.
xx = Speed

Notes: 100, 200 and 300 all cancel each other.


'[t[b0]4xy'[/t] - Vibrato; pitch vibration.
x = Speed
y = Depth

Notes: 400 to turn off


'[t[b0]7xy'[/t] - Tremolo; volume tremor.
x = Speed
y = Depth

Notes: 700 to turn off.


'[t[b0]Axy'[/t]- Volume slide up/down from set volume.
If x = n > y: Volume slide speed up "n - y" ticks depth
If y = n < x: Volume slide speed down "x - n" ticks depth
If x = y: Halt slide

Notes: It's important to remember that the volume does not reset automatically on every new note; it has to be entered manually every time you want a new slide.


'[t[b0]Bxx'[/t] - Jump to frame xx.
xx = Frame (in hexadecimal)


'[t[b0]Cxx'[/t] - Halt; end song.
xx = Inconsequencial


'[t[b0]Dxx'[/t] - Skip to next frame and start at xx.
xx = Row (in hexadecimal)


'[t[b0]Exx'[/t] - Set Volume; DEPRECATED.  Use volume column instead.
xx = Volume value
Valid range = 00 - 0F

Notes: Larger values of xx beyond 0F can multiply with channel volume.


'[t[b0]Fxx'[/t] - Set Speed/Tempo.
If xx = 00-1F: Speed value
If xx = 20-FF: Tempo value in BPM

Notes: if you leave the tempo to 150 (F96), then the "speed" setting corresponds the the amount of ticks per tracker row. This is useful to acheive even tempos (without any irregularity), swing, using Gxx efficiently, etc.
Furthermore, recent versions of Famitracker allow modifying the exact split point where Fxx would change the tempo instead of the speed, so that backwards compatibility is maintained. By pressing the key combination Ctrl+Shift+S, the ranges below take effect:
If xx = 00-14: Speed value
If xx = 15-FF: Tempo value in BPM
The 0.4.2. beta 1 allows the use of any split point by TXT importation.


'[t[b0]Gxx'[/t] - Delay row
xx = Amount of ticks before row is played

Notes: Note that the entire row is delayed, not just the note.
If xx > speed value, then speed value is used.


'[t[b0]Hxy and Ixy'[/t] - Trigger hardware note sweep up (H) and down (I).
x = Period
y = Shift
Valid range for x and y = 0 - 7

Notes: Unlike 1xx and 2xx, these sweeps are logarithmic.
This feature is only avaliable for the 2A03 Square channels.


'[t[b0]Hxx'[/t] - FDS modulation depth setting.
xx = Modulation depth
Valid range = 00 - 3F


'[t[b0]Ixx, Jxx'[/t] - FDS modulation rate setting.
Ixx is the high part of the modulation rate, and Jxx is the low part.

Valid range for Ixx = 00 - 0F
Valid range for Jxx = 00 - FF


'[t[b0]Pxx'[/t] - Fine pitch setting.
If xx = 80: Default
If xx > 80: Increase pitch
If xx < 80: Decrease pitch


'[t[b0]Qxy and Rxy'[/t] - Pitch slide up (Q) or down (R) to note.
x = Speed
y = Number of semitones to slide to from base note


'[t[b0]Sxx'[/t] - Delayed note cut.
xx = Ticks before note is cut.

Notes: S00 is effectively the same as a note cut event.


'[t[b0]Vxx'[/t] - Set Square Duty Cycling / Noise Pattern.
This command affects different channels in different ways.

2A03 & MMC5 squares = sets the duty cycle value (4 settings)
2A03 noise = sets the noise mode (2 settings)
VRC6 squares = sets the duty cycle value (8 settings)
VRC6 sawtooth = flips the volume high bit (2 settings - see notes below)
N163 = calls the corresponding waveform from the current instrument (16 settings)
In all cases, using the nth+1 setting loops back to 0.

Note that Vxx is overriden by any duty cycle or wave macro in the current instrument.

'[t[b0]2A03/MMC5 VALUES'[/t]
xx = Square duty cycle
00 = 12.5% Duty
01 = 25% Duty
02 = 50% Duty
03 = 75% Duty

'[t[b0]2A03 NOISE VALUES'[/t]
xx = Noise type
00 = Normal noise
01 = Periodic noise

'[t[b0]VRC6 PULSE VALUES'[/t]
xx = Square duty cycle
00 = 6.25% Duty
01 = 12.5% Duty
02 = 18.75% Duty
03 = 25% Duty
04 = 31.25% Duty
05 = 37.5% Duty
06 = 43.75% Duty
07 = 50% Duty

'[t[b0]VRC6 SAWTOOTH VALUES'[/t]
xx = Sawtooth volume high bit
00 = Normal
01 = Flipped

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 channel's volume is 6-bit rather than 4-bit (like most other channels), so it goes up to 63. Famitracker maps values from 0 to 63 by multiplying the channel column's (or instrument macro's) volume by 2 to get the "real" volume value. This means if you input F (or 15), you're really getting 1E (or 30). Vxx (or the duty cycle macro) is simply the way Famitracker lets you get to volume values above 30; when it is set to 1, add 32 to the "real" volume value (so 0 becomes 32, 1 becomes 34, 2 becomes 36 etc.).

Bear in mind that the actual maximum volume is 42 (which you would get by using 5 with V01) - anything above that causes the accumulator to wrap, the sawtooth wave distorts and no volume is gained whatsoever.

'[t[b0]N163 VALUES'[/t]
This calls the corresponding waveform in the instrument.
xx = Waveform index
Valid range = 00 - 0F


'[t[b0]Wxx'[/t] - DPCM pitch setting.
If xx = 00-0F: DPCM pitch

Refer to this table via decimal to hex as a reference to when the "pitch" is changed of a DMC sample:
'[t[code]DMC Sampling rate(0-F) (Default:F 33.14KHz)
      '[tab[0: 4.18KHz]  '[tab[1: 4.71KHz]  '[tab[2: 5.26KHz]  '[tab[3: 5.59KHz]
      '[tab[4: 6.26KHz]  '[tab[5: 7.05KHz]  '[tab[6: 7.92KHz]  '[tab[7: 8.36KHz]
      '[tab[8: 9.42KHz]  '[tab[9: 11.18KHz]  '[tab[A: 12.60KHz]  '[tab[B: 13.98KHz]
      '[tab[C: 16.88KHz]  '[tab[D: 21.30KHz]  '[tab[E: 24.86KHz]  '[tab[F: 33.14KHz]'[/t]


'[t[b0]Xxx'[/t] - DPCM retrigger
xx = length in ticks between retriggers.


'[t[b0]Yxx'[/t] - Start Sample Offset; DPCM skipping.
If xx > 00, then start "n" offset 64 byte steps from start of sample.

Note: Currently using a value of xx higher than length of sample results in a weird sample looping in the tracker but comes out only a loud weird glitch upon NSF export.


'[t[b0]Zxx'[/t] - Set the DPCM's delta counter (DC); affects volume of triangle, noise, and DPCM.
Regarding Noise and Triangle:  If xx > 00 the volume of the channels is decreased by the offset due to distortion of DC.
Regarding DPCM channel:  xx = offset amount of distortion incremented or decremented, resulting in volume either up or down; depending on current DC value.

Notes: The DC counts down and is affected by DC resets provided by the DMC sample and the current DC register value.  In summary, the value supplied is relative to the sample and the counter.

Using Zxx in large intervals (ex: Z7F and then Z00) causes a 'clicking' sound due to a radical peak in the wave.  Click volume can be manipulated with lower intervals and lower values.  Clicks can be used as a form of precussion.

'[#[Further Notes]
Exx will not work if an instrument volume envelope is used. 

1xx, 2xx, 3xx, Qxy, Rxy will not work if an instrument frequency effect loop is used. (Pitch, Hi-pitch and Arpeggio.) 

If effects commands seem different or don't work for you, download the latest BotB leak of '[[FamiTracker].

'[#[See Also]
'[[nsf (format)]
'[[nsfplus (format)]
'[[Famitracker]
'[[List of Effects Commands]

 
C A T E G O R I E S
 
 
Effects Commands