Article History
62% damifortune


  1. Capabilities
  2. Quick set up
  3. Composing
  4. Competition
  5. Expert tricks
  6. Links for further development
  7. See also
BambooTracker is a cross-platform music tracker for the Yamaha YM2608 (OPNA) soundchip, notably used in the NEC PC-8801/9801 series computers.


- Full FM instrument control including parameter automation.
- FM3 Expanded Mode support
- FM-SSG Mixing with according platform presets.
- .VGM and .S98 export
- Export for YM2203, YM2612, YM2610B, AY-3-8910 and YM2149 on top of the internal YM2608.
- Able to import many instrument and bank formats for FM and ADPCM instruments.

Quick set up

The latest version of Bambootracker can be downloaded at the releases page of the GitHub repository


The \demos folder includes a good variety of modules and instrument banks to get you familiarized with the program. Pressing F1 (default settings) will open a window containing a list of supported effects.

More information on usability can be found on the wiki
, including a mode in-depth explanation of the effects

maak also has made a in-depth step-by-step guide
on the program in japanese.


Bambootracker can be used for any formats it can export to, including:
- pc-x801 (.S98)
- vgm (.vgm)
- sgen (.vgm, FM Only)
- aym (.vgm, SSG Only)

Expert tricks

"Register value set" effects
The three mysterious register effects: 0Xxx, 0Yxx, and 0Zxx, can be used to "control" various features/effects on the chip. Either 0X or 0Y set the parameter that'll be modified, and a 0Z command on the same row, immediately to the right sets the value of the parameter. According to the linked GitHub wiki above, 0Xxx can control parameters for "SSG, rhythm sound source, FM common setting, [and] FM 1-3ch register". Meanwhile, 0Yxx affects "ADPCM and FM 4-6ch registers".

I am not certain if there exists any documentation that lists what each possible value for 0Xxx and 0Yxx do, so you may have to experiment to find out. Though they seem to mostly overlap with actual implemented BambooTracker effects, there are some unique effects on the ADPCM channel that can't be achieved in any other way, especially due to the lack of a "sample offset" command. Here is what I've been able to find:

0Y01 0Zxx - Panning control, seems to work like 08xx (so this one is redundant). 0Z values: 00-3F is muted, 40-7F is right, 80-BF is left, and C0-FF is both/center.

0Y02 0Zxx - Tremolo/gating effect amplitude (i.e. prominence of the effect). Values above about 60 (hex) or so seem to create a perceptible volume gating effect where the sound fades from loud to soft rhythmically. (It seems like there is only one speed unless another 0Y value controls this.) FF is strongest tremolo amplitude. Strangely, the sample needs to trigger at least once before the effect will start applying. Can also slightly mess with loop points.

0Y03 0Zxx - "Sample Offset" - probably affects sample start-point. 0Zxx values 00-FF ostensibly refer to points along the entire(?) line of sample memory. This seems to mess up where loop points return to, until a different sample instrument is played. The loop end-point is correct, but it may return several samples backwards before eventually making it back to the correct one and then looping that whole area.

0Y04 0Zxx - Seems to affect sample end-point or loop point if looping is turned on. At low 0Zxx values, the sample stops early. At high ones, it bleeds into the next sample in memory, playing a small portion of that as well.

0Y05 0Zxx - Can't quite figure this one out; behaves strangely. Messes with sample end-points even on unlooped samples, which is to say another sample will play afterwards unless you cut the note. The following samples can potentially experience louder, more distorted amplitudes, but seemingly not the original one.

0Y06 0Zxx - unknown

0Y07 0Zxx - unknown

0Y08 0Zxx - unknown

0Y09 0Zxx - Fine pitch control?, 00 is flattest and FF is normal pitch.

0Y0A 0Zxx - Affects pitch of the sample, higher 0Zxx values indicate higher pitch.

0Y0B 0Zxx - Affects volume/amplitude(?) of the sample, higher 0Zxx values indicate greater amplitude, including beyond what it would sound like at volume FF

(Higher 0Y values were tested with no apparent insight as to their function on the sample channel, if any.)

BambooTracker is currently in active development in GitHub
. Issues, bug reports and etc. can be filed on the issues page

See also

- pc-x801 (format)
- List of Trackers