Timing is correct now! Forgot to update samples_per_tick when parsing the 0xf effect.
[pineappletracker.git] / README
blob64454692146e559f5a07367ba99236a598335cab
1  _____                        _
2  | + _)_      ___      ______| |___
3  |   /(_) ___| +_|____| - >- > | +_|
4  /  | | ||   \  \  -  |_ |  |  |  \
5 /___| |_||_|__\__\_____|_|__|__|\__\
7 ++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o+o0-0o+
9 Most of this tracker was written by lft to run on an AVR. Here is his page for
10 the project: http://www.linusakesson.net/hardware/chiptune.php
12 We have emailed him regarding us using the code and he replied saying he does
13 not mind as long as we give him credit. For more information regarding licensing
14 see the COPYING files.
16 If you are used to vi you will be quite comfortable. Beware that we have not
17 implemented some features (like undo!) that may seem second nature to you,
18 and living without them might be hard for a while. We also have a number of
19 keys that aren't in vi but we have tried to make them vi-like enough to be
20 included in pineapple tracker.
22 Look at our SPEC file for a command reference. Not everything is implemented,
23 yet... it's just a specification!
27 below is the original README:
29 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
32 Hi!
34 This is the tracker I used in the hardware chiptune project
35 (http://www.linusakesson.net/hardware/chiptune.php). It was never intended to
36 be used by anyone other than me, so it's not exactly user friendly.
38 This is a quick documentation attempt.
40 You have to give the tracker a file name when you're starting it. So type
41 "./tracker test2.song" to start working on the existing song, or type e.g.
42 "./tracker my_song.song" to start from scratch. Although the GUI hints that you
43 can later press ^F to change the file name, this was never implemented.
45 Once you've started the tracker, you'll see that the screen is divided into
46 three sections: song, track and instrument. Use TAB to move between these
47 sections. Alternatively, if you're in the song section and the cursor is on a
48 track identifier, you can press ` (backquote) to start editing this track.
50 Use { and } to change the current track, and [ and ] to change the current
51 instrument. Use enter to start playing the current track (in the track section)
52 or the song (in the song section). Use space to stop playing or to enter edit
53 mode.
55 Use < and > to change the current octave. The main part of the keyboard is used
56 to enter notes. The keyboard layout is adapted for a US qwerty keymap. You can
57 edit gui.c to change this to fit a Dvorak keymap instead.
59 Press ^E (control-E) to exit without saving. Press ^W ("write") to save. Press
60 # to optimize the song (remove unused tracks, move tracks together) and % to
61 export the song into a packed format. (% will always export to two files called
62 "exported.s" and "exported.h" in the current working directory).
64 In the song and instrument editors, use capital A, I and D to add, insert and
65 delete lines. In the track and instrument editors, use capital C and V for copy
66 and paste.
68 A line in the instrument editor is either a command, a relative note or an
69 absolute note. Relative notes are indicated by + in the command column,
70 absolute notes by =. Commands in the instrument editor are the same as commands
71 in the track editor.
73 The available commands are:
75         dxx Set duty cycle (pulse width) to xx.
76         fxx Set volume fade speed to xx. So, fff is a slow fadeout, f01 is a slow fadein.
77         ixx Set channel inertia. A high inertia causes automatic slides between notes. Default 0.
78         @xx jump to instrument line xx. Used to create arpeggio loops.
79                 Warning: The loop must contain a delay element (t command), otherwise you'll crash the software.
80         sxx Set Slide. So, lff is a slow slide down, l01 is a slow slide up.
81         mxx Set pulse width modulation rate to xx.
82         txx Wait xx time units.
83         vxx Set channel volume to xx.
84         wxx Set waveform. 00 = triangle, 01 = saw, 02 = pulse, 03 = noise.
85         ~xy Set vibrato. x = depth, y = rate.
87 Investigate test2.song, and play around, and you'll probably get the hang of
88 things! Remember that the packed format only supports one command per track
89 line (see homepage).
91 Good luck!
93 Linus (lft^kryo)