Skip to content

docs: add a one-page cheat sheet - #280

Open
hansfbaier wants to merge 2 commits into
djdiskmachine:masterfrom
hansfbaier:cheatsheet
Open

hansfbaier wants to merge 2 commits into
djdiskmachine:masterfrom
hansfbaier:cheatsheet

Conversation

@hansfbaier

Copy link
Copy Markdown

A single A4 page, three columns, meant to be printed or left open next to the
tracker: buttons and their combinations, the screen map, saving and rendering,
the files that sit beside the binary, all 25 phrase and table commands, the
sample instrument screen, and MIDI.

Sources. Written from docs/wiki/, then checked against the sources, which
disagree in four places. The sheet follows the code:

wiki says code says
the type row low-pass to high-pass morph bound to SIP_FILTMIX, so it is the filter mix; set_filter() gets FLT_LOWPASS at both call sites
Mode values not listed original, bassy, scream
looper sync "exactly 16 bars" tickSampleCount * 6 * 16, so 16 rows
loop modes pingpong ping pong; detune is also missing from the list

I have left the wiki pages alone, since correcting them seemed like a separate
call — happy to fold that in if you would rather it came as one change.

Keyboard equivalents are taken from the mapping.xml shipped for DEB, X86,
STEAM and X64, which agree with each other: Q and W for the shoulders, the
arrow keys for the D-pad, space for Start, and the A and S keys producing B and
A respectively. The wiki's "LT is right Ctrl, RT is left Ctrl" is not what those
files say, so the sheet follows the files.

Building. build.sh creates a directory and points TEXMFVAR at it. The
default ~/.texlive/texmf-var is not writable everywhere, and without a
writable one pdflatex cannot generate the fonts it needs and stops on the first
\normalsize. It uses pdflatex rather than lualatex/xelatex because a TeX Live
without the Latin Modern OpenType fonts cannot load fontspec's default face;
the encoding stays at OT1 for the same reason. The PDF is committed so the
sheet can be read without a TeX installation, and .gitignore keeps the
by-products out.

Independent of #279 — the sheet is deliberately written against master and
carries no platform-specific remarks.

A single A4 page in three columns: the buttons and their combinations, the
screen map, saving and rendering, the files that sit beside the binary, all 25
phrase and table commands, the sample instrument screen, and MIDI.

It follows the wiki pages, but was checked against the sources, which disagree
in four places:

- The instrument row labelled "type" is bound to SIP_FILTMIX, so it is the
  filter mix, not a filter type.  SampleInstrument.cpp passes FLT_LOWPASS at
  both set_filter() call sites, so the low-pass to high-pass morph the wiki
  describes is not in this code.
- The filter Mode values are "original", "bassy" and "scream".
- "looper sync" retunes a loop to 16 rows, not 16 bars: the arithmetic is
  tickSampleCount * 6 * 16.
- detune is missing from the wiki's instrument list, and the loop modes are
  spelled "ping pong" and "looper sync".

The keyboard equivalents come from the mapping.xml shipped for DEB, X86, STEAM
and X64, which agree with each other: Q and W for the shoulders, the arrow keys
for the D-pad, space for Start, and the A and S keys producing B and A
respectively.  The wiki's "LT is right Ctrl" is not what those files say.

build.sh points TEXMFVAR at a directory it creates.  The default
~/.texlive/texmf-var is not writable on every machine, and without it pdflatex
cannot generate the fonts it needs and stops on the first \normalsize.  The
PDF is committed so the sheet can be read without a TeX installation.
@hansfbaier
hansfbaier marked this pull request as ready for review September 24, 2026 01:29
@djdiskmachine

Copy link
Copy Markdown
Owner

Hey, I like it!
When is the cheatsheet supposed to be built?
Can you add the .pdf to the lgpt_package script please?

@hansfbaier

Copy link
Copy Markdown
Author

Good catch. It is not built automatically — the PDF is checked in so the package and readers do not need a TeX installation. docs/cheatsheet/build.sh is only for regenerating it by hand when the .tex changes (pdflatex twice, with a local TEXMFVAR).

I will add the checked-in PDF to projects/resources/packaging/lgpt_package.sh in the docs CONTENTS block. It is 125 KB, so that adds 125 KB per zip. Any reason to restrict it to desktop packages, or should every platform get it?

The PDF is checked in, so packaging does not need a TeX installation. Add it
to the shared docs block in lgpt_package.sh so every platform zip contains it.
@hansfbaier

Copy link
Copy Markdown
Author

Added in b09e0c0: the checked-in PDF is now in the shared docs CONTENTS block of projects/resources/packaging/lgpt_package.sh, so every platform package gets it. No TeX needed at packaging time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants