2 % This manual is in public domain.
4 \def\ecall#1{\bgroup\edef\next{\egroup#1}\next}
7 \font\titlefont=cmr7 scaled
\magstep4
8 \font\headIfont=cmr10 scaled
\magstep3
9 \font\headIIfont=cmr10 scaled
\magstep2
10 \font\headIIIfont=cmr10 scaled
\magstep1
11 \font\bigtt=cmtt10 scaled
\magstep2
12 \font\mediumtt=cmtt10 scaled
\magstep1
14 \shipout\vbox to
\vsize{
16 \centerline{\titlefont ITMCK Manual
}
23 \newif\ifnotbeginchapter \notbeginchapterfalse
33 \newwrite\tocfile \immediate\openout\tocfile=
\jobname.toc
35 \def\headblock#1#2#3#4{\moveright#4pt
\vbox{%
43 \ecall{\write\tocfile{#3{#2}{\folio}}}%
47 \def\esecI{\uppercase{\romannumeral\secnoI}}
48 \def\esecII{\esecI.
\the\secnoII}
49 \def\esecIII{\esecII.
\char\the\secnoIII}
52 \advance\secnoI by
1 \secnoII=
0
54 \headblock\headIfont{\esecI.
\quad#1}\tocI0%
55 \penalty600\bigskip\penalty600%
57 \global\notbeginchapterfalse%
60 \advance\secnoII by
1 \secnoIII=
96
62 \headblock\headIIfont{\esecII.
\quad#1}\tocII3%
63 \penalty600\medskip\penalty600%
66 \def\headIII:
#1\par{%
67 \advance\secnoIII by
1
69 \headblock\headIIIfont{\esecIII.
\quad#1}\tocIII6%
70 \penalty600\smallskip\penalty600%
74 \def\cdotl{\
\cleaders\hbox{ \vrule height4.5pt depth-
3.5pt width1pt\
}\hss\
}
75 \headline=
{\ninerm\ifnotbeginchapter\topmark\fi\cdotl\folio\cdotl\firstmark}
76 \footline=
{\ninerm\firstmark\cdotl\folio\cdotl\botmark}
77 \output=
{\plainoutput\global\notbeginchaptertrue}
79 \parskip=
6pt plus
6pt minus
0.5pt
85 % === Begin main document text ===
89 This is the documentation for ITMCK. ITMCK is a program to take an input
90 MML (Music Macro Language) file to make Impulse Tracker compatible file
95 This program is written in C89 with GNU extensions and there is a UNIX
96 shell script named
{\tt compile
} to make compile into executable file. If
97 you have Microsoft Windows (or ReactOS), you should be able to run the
98 executable file directly, but on Linux you can compile it using the C
99 compiler and then it should work.
103 This program must receive the MML code on standard input and then the
104 binary output on standard output. Usually you would redirect input from a
105 file having
{\tt.mml
} extension and redirect output to a file having
108 For example:
{\tt itmck < song.mml > song.it
}
110 There are command-line parameters which can be activated as follows:
112 {\tt-c
}\quad Set compatibility setting. Give it an argument which is the
113 number for the compatibility setting. Compatibility setting is described
114 later in this
document.
116 {\tt-e
}\quad Export raw sample data to standard output. The parameter will
117 be the number of the sample to export. This can only be used with
118 synthesized samples and cannot be used with external samples. The normal
119 output is suppressed when this mode is used.
121 {\tt-p
}\quad Set prefix for external samples. When loading an external
122 file, the text here will be given as a prefix for the filename when
123 accessing the external files. It is necessary to include the trailing
124 slash if it is the name of a directory.
126 {\tt-t
}\quad Trace input. No parameter is used. This will display each
127 line of input on standard error when it is being processed, including the
128 preprocessing, and errors for that line will appear with that line so that
129 you can debug the input file.
131 {\tt-v
}\quad Version number. No parameter is used. No input is requested
132 and the standard output will include the version number of ITMCK.
134 {\tt-x
}\quad Volume
0 mix optimization. No parameter is used. This command
135 will activate the ``volume
0 mix optimization'' flag in the output file.
139 ITMCK is licensed under GNU GPL v3 or later version. This
document is
140 licensed under public domain. A copy of the GNU GPL v3 should have been
141 made available in a file named
{\tt COPYING
} in the same media that you
142 received the program with.
148 \headII: Musical Notes
152 There are three ways to write numbers in ITMCK wherever they are expected.
154 If multiple parameters are expected, you cannot normally separate numbers
155 by spaces. However, you can use commas if it would be ambiguous to put
156 them directly next to each other.
160 Write a decimal number optionally prefixed by a minus sign or plus sign.
161 (If the number is omitted, it is treated as zero.)
165 \headIII: Hexadecimal
167 Hexadecimal numbers are prefixed by a dollar sign, and the letters must
168 be written in uppercase.
174 To use the value of a variable where a number is expected, use the
175 variable letter in lowercase after a dollar sign. There are
27 variables,
176 labeled
{\tt\$a
} to
{\tt\$z
} and the backquote variable
{\tt\$`
} (use of
177 the backquote variable is explained later).
181 \headI: Hash Directives
183 \headII:
\TT\#AMIGA-SLIDES
185 \headII:
\TT\#CHANNEL
187 \headII:
\TT\#COMPATIBILITY
189 Set compatibility setting (same as
{\tt-c
} switch). Currently the only
190 valid setting is zero which has no effect.
192 \headII:
\TT\#GATE-DENOM
194 \headII:
\TT\#INCLUDE
196 Specify a filename. It include a file with that name from the same
197 directory as another input file, which will be processed before continuing
198 with the current input file.
200 \headII:
\TT\#LINEAR-SLIDES
202 \headII:
\TT\#MINIMUM-VERSION
204 Check the version of ITMCK. This number must be hex number of form
205 {\tt\$xyz
} corresponding to version x.y.z of ITMCK. It is a fatal error if
206 the current version of ITMCK is less than the value given on this line.
210 Set master volume, which must range from
1 to
128. Default setting is
48.
216 \headII:
\TT\#OCTAVE-REV
218 Specify a number
0 or
1. If you specify
0 (default) then
{\tt>
} means high
219 octave and
{\tt<
} means low octave. If you specify
1 then
{\tt<
} means
220 high octave and
{\tt>
} means low octave.
222 \headII:
\TT\#OLD-EFFECTS
224 \headII:
\TT\#PANNING-SEPARATION
226 \headII:
\TT\#PORTAMENTO-SHARE
230 This command is used to customize the scale of notes. You can use the
231 letters
{\tt a
} to
{\tt j
} up to once each (although you need not use all
232 of them, and they need not be in order). Use full stops to indicate no
233 letters for that position (they can still be accessed by sharp/flat).
234 However many letter and dot is the number of tones per octave. You can
235 include a vertical bar to indicate what will be zero of scale (points
236 before that one are negative).
238 The default setting is:
{\tt a.b|c.d.ef.g.
} (including full stop at end)
240 As an example, the default setting means that there are twelve notes per
241 octave (don't count the vertical bar),
{\tt a
} has value $-
3$,
{\tt b
} has
242 value $-
1$,
{\tt c
} has value $
0$,
{\tt g
} has value $
7$, and so on. This
243 corresponds to the standard keys on a piano.
245 You cannot comment anything out on this line.
247 N.B.: If you change the scale other than twelve, you must affect the key
248 tables to reflect this!!
250 \headII:
\TT\#SCALE-BASE
252 Allows to define which letter should be considered the lowest note of the
253 octave. The default value is `
{\tt c
}'. If you set it to `
{\tt a
}', then
254 entering `
{\tt a
}' where a note is expected will use the A note below C
255 instead of the A note above C.
259 Select stereo audio (default).
261 \headII:
\TT\#SYNTH-LENGTH
263 \headII:
\TT\#SYNTH16
265 If this command is activated, it causes raw samples that are imported and
266 any samples which are internally synthesized to use
16-bits, which can
267 result higher quality audio but larger file.
271 Define initial tempo of song, in beats per minute, which must range from
272 32 to
255. The default value is
120.
276 Set the song title, which will probably be displayed in a program that
277 plays this music. There is a maximum of
25 ASCII characters. You cannot
278 comment anything out on this line.
280 \headII:
\TT\#TRACKER-VERSION
282 Allows you to change the value of ``Cwt'' field in the header of output.
283 By default it uses the hexadecimal number
{\tt\$
7xyz
} for ITMCK version
284 x.y.z although you can change it to pretend to be a different program or
287 \headII:
\TT\#VOL0MIXOPT
289 This has the same effect as the
{\tt-v
} command-line switch.
293 Set initial global volume, which must range from
0 to
128. Default setting
296 \headII:
\TT\#WHOLE-NOTE
298 Set the number of frames of a whole note, which must be greater than zero.
299 The default is
48 frames.
303 There are up to sixteen channels, labeled with the uppercase letters
304 {\tt A
} to
{\tt P
}. Each channel plays notes individually and can have its
305 own settings for volume, panning, note length, transpose, special effects,
308 To define initial channel volume and panning, you can use the
309 {\tt\#CHANNEL
} command or you may use a macro definition as follows:
313 In this example, the channel being assigned is
{\tt A
} and the volume is
314 30 and the panning is
40. The volume ranges from
0 to
64. The panning
315 ranges from
0 to
64 (where
32 is centered), or enter
100 for surround
320 A song message consists of any number of lines starting with
{\tt"
} and
321 followed by the text to place on that line. The text can include any ASCII
322 text, including semicolons and leading spaces. All of them are then put
323 together in the song message. This song message may be displayed in the
324 player. (Do not include another quotation mark at the end unless you want
325 it a part of the message.)
327 You cannot comment anything out on this line.
329 The song message should not exceed
8000 characters (counting line breaks
330 as one character each).
340 \headII:
{\TT a
}--
{\TT j
} (note letters)
342 \headII:
{\TT l
} (length)
344 \headII:
{\TT n
} (direct note entry)
346 \headII:
{\TT o
} (select octave)
348 \headII:
{\TT q
} (quantize)
350 \headII:
{\TT r
} (rest)
352 \headII:
{\TT t
} (tempo)
354 \headII:
{\TT v
} (volume)
356 \headII:
{\TT z
} (cancel effects)
358 \headII:
{\TT C
} (set note cuts)
360 \headII:
{\TT G
} (global volume)
362 \headII:
{\TT I
} (tremor)
364 \headII:
{\TT J
} (arpeggio)
366 \headII:
{\TT K
} (transpose)
368 \headII:
{\TT L
} {\TT||
} {\TT|L
} (song loop)
370 \headII:
{\TT P
} (panning)
372 \headII:
{\TT Q
} (retrigger)
374 \headII:
{\TT R
} (portamento)
376 \headII:
{\TT T
} (tremolo)
378 \headII:
{\TT V
} (vibrato)
380 \headII:
{\TT X
} (call macro)
382 \headII:
{\TT Y
} (panbrello)
384 \headII:
{\TT[} {\TT]} (repeat)
386 \headII:
{\TT<
} {\TT>
} (low octave/high octave)
388 \headII:
{\TT\&
} (slur)
390 \headII:
{\TT\char`^
} (tie)
392 \headII:
{\TT/
} (auto-portamento)
394 \headII:
{\TT@
} (instrument select)
396 \headII:
{\TT@@
} (key table select)
398 \headII:
{\TT@e
} (direct effect entry)
400 \headII:
{\TT@q
} (quantize)
402 \headII:
{\TT@u
} (effect table select)
404 \headII:
{\TT@A
}--
{\TT@P
} (channel select)
406 \headII:
{\TT@`
} (ask status)
408 \headII:
{\TT@=
} {\TT@+
} {\TT@-
} {\TT@*
} (assign variable)
414 \headI: Effect Tables
416 % === End main document text ===
422 \immediate\closeout\tocfile
427 \def\dotleaders{\leaders\hbox{ .
}\hfill}
428 \def\tocI#1#2{\line{#1 \dotleaders\
#2}}
429 \def\tocII#1#2{\line{\quad#1\rm\
\dotleaders\
#2}}
430 \def\tocIII#1#2{\line{\qquad#1\
\dotleaders\
#2}}
433 \line{\headIfont Table of Contents
\hfil}