Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

334 lines (239 sloc) 6.341 kb
/* vi:set syntax=help */
Specification for pineappletracker
***************
* NORMAL MODE *
***************
Directions
gg G
Move cursor to the top/bottom of the current column.
h j k l
Move cursor left/down/up/right in current column.
H M L
Move cursor to the highest, middle, or lowest line on the
screen.
Window movement
] [
Switch to next/last instrument from any column.
} {
Switch to next/last phrase from any column.
^d ^u
Scroll down/up eight lines.
^e ^y
Scroll current window up/down without moving the cursor.
^h ^l
Switch current column to the left/right.
^k ^j
Switch to next/last phrase or instrument based on the current
column.
0
Move the cursor to the start of the line.
$
Move the cursor to the end of the line.
Modifying commands
) (
Increase/Decrease song tempo.
> <
Increase/Decrease current octave.
- =
Increase/Decrease step amount.
^
Yank entire current column and paste it in the next empty
phrase or instrument.
a
Add a line to the end of the current song/instrument.
d<direction>
Delete everything towards the direction. If track column is
focused, just clear everything.
dd D
Delete current line. If track column is focused, just clear it.
J K
Increment/Decrement whatever is under the cursor. Wrap around
at min/max values.
p
Paste whatever is in the current column's paste buffer onto
this line. If the whole line was yanked into the buffer,
replace the whole existing line with the new one. Otherwise,
replace only what is in the buffer, and leave everything else
as is.
r
Replace whatever is under the cursor with a note or number.
Kind of like going into insert mode for just one insertion,
then returning.
x
Clear whatever is under the cursor.
X
Clear the whole line under the cursor.
Yank commands
y<direction>
Yank everything from the cursor to the direction into the
current column's buffer.
yy
Yank the current line into the current column's buffer.
Y
Yank entire current column into current column's buffer.
Meta commands
<number>
Execute the following command that many times.
.
Repeat last modifying command.
^r
Redo the last undo'd command. Repeat to go ahead if there were
multiple undos.
u
Undo the last modifying command. Repeat to go further back.
Player commands
<Enter>
Play song/track depending on the current column.
<Space Bar>
Stop playback.
Mode commands
:
Enter command line mode.
^a
Enter jammer mode.
i
Enter insert mode.
o
Insert new line then go into insert mode. If the current column
is the track column, just move the cursor down one line and
enter insert mode.
v
Enter visual mode.
V
Enter visual line mode.
***************
* INSERT MODE *
***************
Cursor/Window movement
h j k l
Move cursor left/down/up/right in current column.
Modifying commands
<note>
If the cursor is on top of a note, replace it.
<number>
If the cursor is on top of a number, replace it.
-
Clear whatever is under the cursor and move the cursor down.
*********************
* COMMAND LINE MODE *
*********************
:<number>
Move cursor to that line number in the song tab. Jump to that
track or instrument number if in another tab.
:q
:quit
Quit.
:w (filename)
:write (filename)
Save. If filename is given, save to that file instead.
:wq (filename)
Save and quit. If filename is given, save to that file instead.
:set buffersize = number
Set buffersize to number.
:set step = number
Set step increment to number.
:load instrument.ins
Load instrument.ins into next empty slot.
:save instrument.ins
Save current instrument to instrument.ins.
:clear song
Clear entire song tab.
:clear tracks
Clear all tracks.
:clear instruments
Clear all instruments.
:clear all
Clear song, track, and instruments.
:colorscheme (scheme)
Change gui colors.
:wavexport (filename)
Render to .wav format filename.
:c (comment)
Add comment (comment) to the current file.
Mode commands
<Escape>
Enter normal mode.
***************
* JAMMER MODE *
***************
<note>
Play the note with the current instrument.
> <
Increase/Decrease current octave.
Mode commands
<Escape>
Enter normal mode.
***************
* VISUAL MODE *
***************
h j k l
Move cursor left/down/up/right in current column. Modify
selection based on where the cursor was when visual mode was
entered.
gg G
Move cursor to the top/bottom of the current column.
y
Yank whatever is under the cursor into the current column's
buffer.
Mode commands
<Escape>
Enter normal mode.
********************
* VISUAL LINE MODE *
********************
gg G
Move cursor to the top/bottom of the current column.
j k
Move cursor down/up in current column. j and k modify the
selection.
y
Yank whatever is under the cursor into the current column's
buffer.
Mode commands
<Escape>
Enter normal mode.
=-=-=-=-=-=-=-=
= FX COMMANDS =
-=-=-=-=-=-=-=-
dxx
Set duty cycle (pulse width) to xx.
fxx
Set volume fade speed to xx. So, fff is a slow fadeout, f01 is
a slow fadein.
ixx
Set channel inertia to xx. A high inertia causes automatic
slides between notes. Default 0.
sxx
Set slide. 0-7f is slide up, 80-ff is slide down.
mxx
Set pulse width modulation rate to xx.
txx
Wait xx time units.
vxx
Set channel volume to xx.
wxx
Set waveform. 00 = triangle, 01 = saw, 02 = pulse, 03 = noise.
~xy
Set vibrato, x = depth, y = rate.
@xx
Jump to instrument line xx.
*xx
Set tempo to xx.
+<note>
Set the pitch to <note>. This can be used to create arpeggios
with the jump command. This is relative to the note in the
track column.
=<note>
Set the pitch to <note>. Using this command will cause all
notes specified in the track column to be ignored.
***************
* CONFIG FILE *
***************
set audiodriver = <sdl> <jack> <alsa>
Set the audio driver to either SDL, jack or alsa.
set buffersize = <num>
Set the size of the audiobuffer to <num>. In the SDL driver we
would simply set requested.samples to this number, not sure how
it will work with the other drivers yet.
set gui = <ncurses> <sdl> <caca>
Set the gui to ncurses, sdl, or libcaca.
Jump to Line
Something went wrong with that request. Please try again.