LOGIN      SIGNUP 
Guest   L0 n00b  
 

A merchant approaches you! o__O
"Yaargh, wish I had wares to sell ya!"

× CLOSE
 
 
Article History
 
 
 

3653 views
33% b00daw

PandaTracker
 

::|CONTENTS

  1. Basic Information
  2. Questions:
  3. How do I...
  4. Key Commands
  5. Panda File Format:
  6. Panda Pattern Compression Format:
  7. it2panda Conversion Utility:
  8. See Also
The PandaTracker project started around 2007 by BotBr Alex "setrodox" has been abandoned long ago. The sources for the project have also long been lost. The "final" version of Pandatracker known is version "pre8". has disappeared and will not be around for further development of this project.
Pandatracker "pre8"

Mirror of Pandatracker "pre8"


Older versions:

Pandatracker "pre6"


Below is the documentation for Pandatracker written by setrodox:

Basic Information




Pandatracker is a very simple, easy to use Windows tracker that uses preset instruments hard-set to each channel for sound. The main purpose of PandaTracker was to orient n00b-n00bz to the tracker format so that the shortest learning curve possible is scaled. There are 8 channels. They are divided up as follows:

Channels 1-6 are melodic channels each with their own preset sound. Channels 1 and 5 are sort of a rough leady sound. Channel 2 is an octave arpy sound. Channel 3 is a plucky sound. Channels 4 and 6 are a sort of organ sound.

Channels 7 and 8 are percussive channels. Only notes C and D (any octave) make sound. C-x is sort of a bass drum sound (though at the higher octaves it sounds more of a sliding down effect). D-x is a noise sound. At every octave, D-x will sound the same.

Here is the layout of panda note data:

---------
N-o vv
---------

N: note, standard tracker notes
o: octave, range 0x0-0x0f
vv = volume, range 0x00-0x40 (but hex digits can't be entered…)

The last 3 columns in the note data are just dummy columns that do not do anything. They were probably meant for effects but they were never implemented so rip.

Questions:



- How do you navigate to the orderlist?

Press Ctrl+Tab. This puts the cursor in the orderlist section of the screen. You can now use the arrow keys to seek through the orders and press number keys to put orders in the list. Orders range from 0x00-0x40, but again, hex digits cannot be entered in the UI.

- What is the right hand side of each channel used for, are they effects, and if so, what form do they take?

Currently, these columns are just dummy columns! There are no effects in pandatracker and they probably will not be implemented since setrodox has abandoned the pandatracker project long ago (rip in piece).

How do I...



...add a new pattern?
Just add a new pattern in the OR(orderlist), to do that move to the order list, and write a number(the pattern number) below the current pattern number(the first --).

...do i copy and paste?
Press F7 when the cursor is in the track(a single channel in a single pattern is called track), then move the cursor to the target track and press F8. To copy a whole pattern at once move to the OR and choose the pattern you want to copy and press F7, then move to the pattern you want to paste it to(warning, replaces whole pattern, so usually you want to paste in a new blank pattern) and press F8.

(Copy/pasting seems to sometimes crash the tracker! Back up your work first!)

...make drums?
The last two channels are drum channels, they don't work like usual channels. A "C" note in that channel is a kick, while a "D" note is a hihat/snare thingie(just noise really). The kick sounds different on different octaves, the noise thingie doesn't.

Key Commands



All known key commands are in the upper-left corner of the tracker screen.

F1 and F2 are supposed to be BPM control, but BPM is not implemented so your only way of controlling song tempo is through speed.

F3 and F4 control speed of the song. Speed ranges from 0x01 to 0x0f.

F5 and F6 control the current octave your keyboard is on. Octave ranges from 0x00-0x0f (yes, there are hexadecimal octaves in Pandatracker, though these are normally too high and out of tune for real usage). The Pause key mutes the current channel your cursor is on.

F7 copies the entire current pattern you are on to the clipboard. If there is a pattern copied into the clipboard, F8 will paste the clipboard pattern data onto the current pattern you are on.

F9 exports your song to a .wav file.

F10 loads a song in the same directory as Pandatracker. You will need to type in the filename to load a Pandatracker file so if the .panda file you want to open has spaces in it, you might want to rename the .panda file with _ characters so you can type it in Pandatracker. F11 saves your song to the Pandatracker directory.

F12 is to quit, but you'd never want to do that! ;)

Scroll Lock cycles through different color themes for Pandatracker. :)

Panda File Format:



0x00: PANDADEV (8 bytes)
0x08: 0x00 (3 bytes)
0x0B: 0x02 (version?)
0x0C: song data size (file size - 0x10) (4 bytes)
0x10: compression byte (explained later on)
0x11: pretty colors~ (3 bytes)
0x14: speed (1 byte)
0x15: order list (compressed)
0x??: pattern data (also compressed)

The order list is 64 bytes when uncompressed. 0xFF is used for empty orders.

Pattern data is 131072 bytes when uncompressed.
Pattern data is divided into 8 channels, each 16384 bytes when uncompressed.
Each channel is divided into 4 "sub-channels": note, volume, fx command, fx value, each 4096 bytes large.
Empty pattern cells use value 0x00

Panda Pattern Compression Format:




Compression occurs in the order list and pattern data, and is responsible for making the panda files nice and small. ;)

Anything that is not a compression byte, is an order list entry, note, volume (or fx) value depending on where you are in the file)

After encountering a compression byte, a variable length encoded value follows (similar to delta values in MIDI files), and 1 data byte. Then (variable length encoded value+1) bytes are set to this data byte. This is most commonly at the end of orderlist where the remaining bytes in the orderlist are set to 0xFF, and the end of a channel, where the remaining bytes are set to 0x00

I'm not entirely sure, but I think the variable length encoded value maxes out at 0xFFFF. It's then followed by another compression byte/VLE/data byte pair.

See additional format notes from Jangler on GitHub
.

it2panda Conversion Utility:



BotBr Slimeball was able to reverse engineer the Panda format and create an it2panda conversion tool! Now you can also be a hax0r and track your panda songs in OpenMPT or schism!!! ^o^

***New link***


Executable

Source


Demo songs are included.

See Also



List of trackers