LittleGPTracker (a.k.a piggy tracker) is a sample based tracker originally programed for the gamepark handhelds, but now also available for Microsoft Windows and Mac OSX. It implements a user interface similar to the refined track-by-joypad software littlesounddj. Piggy currently supports 8 monophonic 8Bit/16Bit/44.1Khz stereo channels as well as 16 channel midi output. Piggy is currently under development and the latest versions of the program (along with unstable ghetto builds) can be found at http://gorehole.org/lgptWiki/.
You are reading a reference manual for those who are comfortable with LSDj or trackers in general. An alternative introduction to LittleGPTracker is our very own quick_start_guide. If you have a question this manual does not answer, please ask on the lgpt mailing list or in #hexawe on efnet.
If you want to grab some sounds to get off the ground quickly, or want to hear and see what other people have been doing with piggy tracker, download some of the .zip archives from http://hexawe.net!
Grab the installation package for your platform from the download page. Extract the files from the archive & copy it where you like. after that you can run the executable type for your system, located in the lgpt root or in the /bin folder. linux users may need to set the binary as executable (chmod a+x lgpt.deb-exe).
Getting lgpt to run depends on your platform:
Piggy doesn't save samples inside a project file like traditional trackers. Instead, when you save, piggy will create project data as /lgptRoot/lgptProject/lgptsav.dat and store the samples you are using in /lgptRoot/lgptProject/samples. This means that instead of copying/sharing a single module file, you need to distribute the whole lgptProject directory.
Samples can get inside that /lgptRoot/lgptProject/samples folder two ways: using the sample import dialog inside of piggy, or copying the wav files in by hand (via whatever os you are running).
The sample import dialog is the easiest way to preview and add files to your lgptProject. Any samples which you import from that screen will be copied from the samplelib to /lgptRoot/lgptProject/samples when you save the project.
If you like to do things by hand you can make a new lgptProject folder and a samples folder in there. Prior to loading a project for the first time you can copy some wav files into /lgptRoot/lgptProject/samples and piggy will automatically assign each wav to a new instrument.
After that you can copy additional wavs to the lgptRoot/lgptProject/samples directory. The next time you load the project piggy will have them in it's sample list but the wavs will not yet be associated with any instruments.
Use 8 or 16 Bit wav files, any sampling frequency, mono or stereo. 8bit samples are converted to 16bit at load time for compatibility with the engine (you can save space in storage but not in RAM).
Piggy now supports .sf2 Soundfonts. You must add these by hand to your SAMPLES directory, use PROGRAM CHANGE commands to load different patches. Loop points are automatically loaded, but you'll need to make VOLM setting to adjust decay.
The Piggy supports multiple projects! Just create multiple directories in the root folder (where lgptNew and lgpt10k were found). Examples: “lgptProject1”, “lgptAuthorName”, “lgptSomethingElse”, “lgptWhatever”, etc. Each project directory must contain its own samples which must be stored in a sub-directory called “samples”. Lgpt will prompt you to choose one of the projects found in the root (lgpt- directories) when starting up.
Important Points to Remember:
The config file is used to tweak certain global parameters of the application. It is not mandatory to have one but it will allow you to change key mapping, color scheme, key repeat setting and other.
see the config page
GP2X Specific notice: The A & B buttons are “inverted” (when compared to GP32 and LSDJ on Gameboy). This can be modified in the config.
The moves are close to what you would pull in lsdj, but shoulder buttons replace the lsdj SELECT key. Most of the time, the equivalent of SELECT is the shoulder button opposite the other buttons you're pushing. For example SELECT+B is LT+B, SELECT+RIGHT is RT+RIGHT.
These are the defaults, which can be over-ridden in the config.xml file:
Note: CTRL Key mappings of RT and LT are inverted. Since the keyboard's Arrow Keys are on the opposite side compared to the GamePark layout, so are LT and RT.
LGPT support the uses of external joysticks through the mapping file, but if something isn't working right give joy2key a try.
The mapping file can also be used to get idle gamepark keys in use.
a few ways to make a selection:
once a selection is started you can do a few more things:
And then:
There are two modes for playback, Song and Live. The controls in each mode differ slightly.
You can switch between the modes by hitting B+LEFT/RIGHT in the Song screen.
START:
In the Song Screen: Starts/Stops song playback from the Highlighted Row. If one of the Row's Channel is marked --, LGPT will ignore that Channel entirely for the rest of the playback.
In the Chain Screen: Starts/Stops playback from the Highlighted Step, soloing the Edited Chain.
In the Phrase Screen: Starts/Stops playback from Step 00, soloing the Edited Phrase.
RT+START:
Starts song playback from the Edited Row in all screens.
START:
In the Song Screen: Queues from the Highlighted Channel Step.
In the Chain Screen: Queues the Highlighted Phrase Step.
In the Phrase Screen: Queues the Edited Chain Step from 00.
- The Queued Item will be played as soon as the playing Chain on the Edited Channel reaches its last Step.
- If there is no playing Chain Step on the Edited Channel, the next Song Chain that reaches its last Step will trigger playback.
- Queued Items are shown with a blinking >.
START[again]:
Pressing START a second time will queue the Item using Immediate Mode.
- The Queued Item will be played as soon as the playing Phrase on its Channel reaches the last Step.
- Immediate Mode Queued Items are shown with a fast blinking >.
LT+START:
In the Song Screen: Queues all Channel Steps on the current Row.
- The Queued Items will be played as soon as the playing Chain on their Channel reaches its last Step.
- Queued Items are shown with a blinking >.
LT+START[again]:
Pressing START a second time will queue the Items using Immediate Mode.
- The Queued Items will be played as soon as the playing Phrase on the their Channel reaches its last Step.
- Immediate Mode Queued Items are shown with a fast blinking >.
RT+START:
In all Screens: Queues the Edited Channel Step to be stopped.
- The Queued Channel will be stopped as soon as its playing Chain reaches the last Step.
- Queued Items are shown with a blinking _.
RT+START[again]:
Pressing START a second time will queue the Items using Immediate Mode.
- The Queued Channel will be stopped as soon as its playing Phrase reaches the last Step.
- Immediate Mode Queued Items are shown with a fast blinking _.
o888 o8
888 oooooooo8 ooooooooo o888oo
888 888 88o 888 888 888
888 888oo888o 888 888 888
o888o 888 888 888ooo88 888o
888ooo888 o888 *screenmap by Sm0hm*
_-------_ _-------_
| | | |
| P | | G |
| | | |
project-- groove---
^ ^
v v
_-------_ _-------_ _-------_ _-------_
| | | | | | | |
| S | <-> | C | <-> | P | <-> | I |
| | | | | | | |
song----- chain---- phrase--- instrument
^ ^
v v
_-------_ _-------_
| | | |
| T | <-> | T |
| | | |
table---- table----
To move from one screen to the other, press the RTrigger combined with the direction. To get to the chain screen, you need to have your cursor on a chain in the song. To get to the phrase screen, you need to have your cursor on a pattern in the chain screen.
The feedback pickup is at the very end of the chain, after the filter has been processed. It makes it very depending on volume, filter settings, etc… but makes it more organic too. After pickup, it stays in a delay line of variable length (through the tune parameter) and is mixed back with the current sample value, before crush, filter and so on. I've found it very nice to fatten oscillators and give some kind of a nice warm-distorted bass sounds.
The feedbacktune parameter works a little differently in regular (one shot/loop) and in oscillator mode:
In regular modes, under 0x80, it delays the feedback pickup of a number of samples equivalent to the parameter. Over 0x80, the feedback line length is multiplied by 10, giving it more a sort of 'predelay'-ish character that works very well with short decayed sounds
In oscillator modes, under 0x80 the feedback of specified length is added to the oscillator. Over 0x80 it is removed from the oscillator, making it a lot wilder.
NOTE: THE NEWEST GHETTOS HAVE A NEW SAMPLE BROWSER. THIS APPLIES TO PRE 1.0 VERSIONS.
accessible by hitting A,A on the “sample” parameter in the Instrument Screen.
The samples of the library have to be located in a folder samplelib at the same level as the song folders (lgpt-xxxx). you can either put your samples in that directory or in sub-directories, allowing you to have some basic way of sorting the library. For example:
When entering the import screen, the current folder is the library root folder “samplelib”. All sample in that folder are listed.
Use U/D to select a sample and 'A' to load it
B+L/R to rotates between all sub directories.
In the latest ghetto, hitting 'A,A” will bring up a sample loader pop-up screen, use the cursor to select directories and samples, and chose “listen” to play the sample, “import” to add it to your project, or “exit” to return the instrument screen.
Midi can be enabled on many platforms through simple software configs in your OS, or through the construction of platform specific hardware. More info about this can be found here
A midi instrument has the following settings:
05 HOP 1005
will hold step 5 for 10 ticks. Interesting for example after a VOLM command to allow complex envelopes:
00 VOLM 0400 ; starts short volume decay to zero 01 HOP 1010 ; holds enough ticks for VOLM to complete 02 VOLM 0560 ; raise volume to 60 03 HOP 6003 ; hold for a long time to allow VOLM to ; complete and hold volume to 60
the HOP rather than staying on the HOP line for one tick. Makes more sense.
Groove screen is located on top of the phrase screen. Groove lets you rock some swing to bust funky beats.
To grasp groove you must first you must know what a tick is, and a tick is simply a constant measurement of time. By default, every row of a phrase (aka step) gets 6 ticks, that's why you see two sixes when you go to the groove screen. But say you change the first 6 to a 1. Now, every other step lasts for 1 tick (which is shorter than 6 ticks).
To get a handle on this, try a groove of 1/F and watch the play arrow in a phrase. You'll notice the play arrow hanging around on the odd steps longer than the even ones. Then try a groove of 1/1/F and go back to the phrase screen. You'll see the play arrow hanging on every third step. Once you grasp how the groove screen effects the play arrow, you can move to more subtle values or keep the beat way freaked out!
In the groove screen there is no copy paste (yet) but the following action exists:
the GROV command (only active in the phrase screen) select the current groove
There can be two commands on every row of the phrase screen. Commands which effect instruments can be run on any step of the instruments playback, including the step where the instrument is triggered.
in vol; pitch and kill but the definition of the “time' is slightly different for all command…
cycle through relative pitches a, b, c, and d (starting with original pitch, then up a semitones, b semitones and so forth). The cycle loops if there's only zero's past a given post
Examples:
ARPG 3000: loops between original pitch and +3 semitones
ARPG 4050: loops between original pitch, +4 semitones, +0 semitones, + 5 semitones
aa = pre crush drive (from 1 to 0xFF, 00 is no change) & bb = crush setting (from 0 to 0xF, 0x0 is 1 bit, 0xF is 16bit )
Delays the note to be played by bb tics
adjust the filter cutoff to bb at speed aa
lowpass filter, set absolute frequency value for cutoff aa & resonance bb
adjust the filter resonance to bb at speed aa
go to feedback mix xxbb at aaxx speed
go to feedback tune xxbb at aaxx speed
play position will jump to the next phrase in a chain, jumping directly at position bb in the phrase.
IRTG stands for Instrument Retrigger and will retrigger the current instrument. It gives table the ability to work as progammable phrases that then can be triggered simply by changing tables.
IRTG –bb will retrigger the current instrument transposed by bb semi-tones. Note that each IRTG transposition is cumulatively added. So a table with
IRTG 0001
will keep going a semi tone up. Great for dubby echoes :)
The retriggered instrument is NOT reset (as if you enter a note with no instrument number). The table (obviously) will continue to run and all running variable (filter,etc) won't be reset.
This system is also pretty useful to implement temporary non 4/4 signature without having to switch grooves, since you have the ability to re-trigger the instrument at tick resolution
don't forget trying to combine it with complex hop structure !
instrument will stop playing after aa ticks.
performs an exponential pitch slide from previous note value to pitch bb at speed aa.
C4 I3 LEGA 1000) the slide will occur automatically from previous note to the current one at the given speed.LooP OFset: Shift both the loop start & loop end values aaaa digits
Sends a MIDI “continuous control” message. aa is the control number and bb is the value. It will be sent on the MIDI channel of the currently running instrument.
sends a program change command on the current channel. 0000 is program change 1
PAN aabb: where bb is the pan destination and aa is the speed to get there
PitchFINetune: where bb is the width and aa is the speed to get there
PLayOFfset virtually cuts any sample in 256 chunks. jump absolutely to chunk aa or relatively move forward/back bb chunks.
retrigger the sound by looping the from current play position over a certain amount of ticks.
RTRG 0001: loop one tick from current play position
RTRG 0102: loop of two ticks but move the loop one tick every loop
RTRG 0101: does not do anything because after looping one tick, you move forward one tick and therefore go back to the current position :)
triggers table bb
sets the tempo to hex value –bb.
starting from the instrument's volume setting, approach volume bb at speed aa. 00 is the lowest volume and 00 is the fastest speed (instant).
Some people exploit the analog gap between their device's headphone output and whatever they are recording with. Alternately, you can start piggy in rendering mode so it will output 16bit, 44100Hz .WAV files.
Please note that RENDER mode is not intended to be functional on the GP2X Builds.
The following values can set for RENDER in the config.xml:
Here is an example of the proper XML syntax: (See The config.xml setup guide)
<RENDER value = "FILERT" />
Remember, any of the config.xml parameters can be specified to lgpt on the command line in this fashion:
lgpt -RENDER=FILE