A console-based music tracker for making chip beats
Switch branches/tags
Nothing to show
Pull request Compare This branch is 284 commits behind pineapple-tracker:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
songs
.gitignore
Makefile
Makefile.in
README
STYLEGUIDE
TODO
chip.c
gui.c
main.c
makepine.bat
packedformat
pineapple
player.c
stuff.h

README

 _____                        _
 | + _)_      ___      ______| |___
 |   /(_) ___| +_|____| - >- > | +_|
 /  | | ||   \  \  -  |_ |  |  |  \
/___| |_||_|__\__\_____|_|__|__|\__\

++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o++o0-0o+o0-0o+

Most of this tracker was written by lft to run on an AVR. Here is his page for
the project: http://www.linusakesson.net/hardware/chiptune.php

I hope he doesn't mind us using the code.. right now we are just trying to make
it usable to the average vi-user :-)

If you are used to vi you will be quite comfortable. Beware that we have not
implemented some features (like undo!) that may seem second nature to you,
and living without them might be hard for a while. We also have a number of
keys that aren't in vi but we have tried to make them vi-like enough to be
included in pineapple tracker.

Here is an incomplete reference to our user interface. Many of the commands
themselves are also incomplete, i.e. they don't work in all the cases that
they should.

GLOBAL KEYS
+++++++++++
hjkl
move around

ctrl-j and ctrl-k
switch the current phrase or instrument

ctrl-h and ctrl-l
change column


NORMAL MODE
+++++++++++
gg
move to the top of the column

G
move to the bottom of the column

ctrl-b and ctrl-f
move up and down by 8 rows

a
add a line

.
repeat last action

yy
copy a line

p
paste a line

Y
copy a column

P
paste a column

^
copy a column and paste it into the next free one

dd
delete a line. (dj and dk also work)

x
clear one thing

X
clear a whole line

i
go into insert mode

ctrl-a
go to jammer mode

o
insert a new line and go into insert mode

< >
change octave

( )
change tempo

J K
decrement or increment whatever is under the cursor

H L
decrement or increment by octave if there is a note under the cursor

enter key
play song or phrase, depending on what column you're in

space bar
stop playback

ZZ
save and quit

ZQ
quit


INSERT MODE
+++++++++++
You can enter notes using these keys:
 2 3   5 6 7   9 0
q	w	e	r	t	y	u	i	o	p

escape key
go back to normal mode



below is the original README:

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


Hi!

This is the tracker I used in the hardware chiptune project
(http://www.linusakesson.net/hardware/chiptune.php). It was never intended to
be used by anyone other than me, so it's not exactly user friendly.

This is a quick documentation attempt.

You have to give the tracker a file name when you're starting it. So type
"./tracker test2.song" to start working on the existing song, or type e.g.
"./tracker my_song.song" to start from scratch. Although the GUI hints that you
can later press ^F to change the file name, this was never implemented.

Once you've started the tracker, you'll see that the screen is divided into
three sections: song, track and instrument. Use TAB to move between these
sections. Alternatively, if you're in the song section and the cursor is on a
track identifier, you can press ` (backquote) to start editing this track.

Use { and } to change the current track, and [ and ] to change the current
instrument. Use enter to start playing the current track (in the track section)
or the song (in the song section). Use space to stop playing or to enter edit
mode.

Use < and > to change the current octave. The main part of the keyboard is used
to enter notes. The keyboard layout is adapted for a US qwerty keymap. You can
edit gui.c to change this to fit a Dvorak keymap instead.

Press ^E (control-E) to exit without saving. Press ^W ("write") to save. Press
# to optimize the song (remove unused tracks, move tracks together) and % to
export the song into a packed format. (% will always export to two files called
"exported.s" and "exported.h" in the current working directory).

In the song and instrument editors, use capital A, I and D to add, insert and
delete lines. In the track and instrument editors, use capital C and V for copy
and paste.

A line in the instrument editor is either a command, a relative note or an
absolute note. Relative notes are indicated by + in the command column,
absolute notes by =. Commands in the instrument editor are the same as commands
in the track editor.

The available commands are:

	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. A high inertia causes automatic slides between notes. Default 0.
	@xx jump to instrument line xx. Used to create arpeggio loops.
		Warning: The loop must contain a delay element (t command), otherwise you'll crash the software.
	sxx Set Slide. So, lff is a slow slide down, l01 is a slow slide up.
	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.

Investigate test2.song, and play around, and you'll probably get the hang of
things! Remember that the packed format only supports one command per track
line (see homepage).

Good luck!

Linus (lft^kryo)