home *** CD-ROM | disk | FTP | other *** search
/ Large Pack of OldSkool DOS MOD Trackers / trjoy094.zip / TRACKJOY.DOC < prev    next >
Text File  |  1995-01-09  |  94KB  |  1,961 lines

  1. ┌───────────────────────────────────────────────────────────────────────────┐
  2. │ TRACKJOY - Gravis Ultrasound Tracker                                      │
  3. │ Copyright (c) 1994, 1995 Tomi R. Joy                                      │
  4. │ (c) 1994, 1995 Roots Software Corporation                                 │
  5. │ All rights reserved                                                       │
  6. │ Programming & Documentation: Tomi R. Joy                                  │
  7. │                                                                           │
  8. │ Trackjoy music composition software, version 0.94ß                        │
  9. │                                                                           │
  10. │ DOCUMENTATION                                                             │
  11. └───────────────────────────────────────────────────────────────────────────┘
  12.  
  13. WARNINGS
  14. ────────
  15.  
  16.         ■ This version is in fact Trackjoy 0.94ß, in other words it is
  17.           *not* the final release 1.00. The documentation probably won't 
  18.           change much when I release 1.00, but bear in mind that some 
  19.           changes may be on the way.
  20.  
  21.           More importantly, Trackjoy may well have severe bugs and even 
  22.           functions that are not yet supported properly or at all. So be 
  23.           careful.
  24.  
  25.           And to end the warning, remember that this document is also a
  26.           beta version. It doesn't cover eveything and is a bit wonky.
  27.  
  28.         ■ Trackjoy has no warranty. The author of the software 
  29.           ("Trackjoy" and "Instrument Maker") provide no warranty 
  30.           whatsoever and in absolutely no account shall the author be 
  31.           liable for damages caused by the use of the mentioned software
  32.           or any other product.
  33.  
  34.         ■ Some parts of this documentation (not to mention the program) 
  35.           were not made strictly seriously.
  36.  
  37. YOUR LICENSE
  38. ────────────
  39.  
  40.           In contradiction to the provious sentance, this part of the 
  41.           documentation (the Licence) *was* made strictly seriously. As 
  42.           I hope you have noticed, Trackjoy is not a shareware program, 
  43.           nor is it public domain. You can load and use it freely for 
  44.           any period of time but ONLY in accordance with the following
  45.           license:
  46.  
  47.           The copyright and ownership of the software ("RS Trackjoy",
  48.           "Trackjoy Instrument Maker") and all associated files and 
  49.           example music remains with the author. Although you are not 
  50.           required to make a payment for use of the software, you are
  51.           still using it under license from the author. Trackjoy has 
  52.           *not* been released to public domain.
  53.           
  54.           If you plan to redistribute it in any other than the original
  55.           form or include it in any commercial package (even if the
  56.           program and associated files are not modified), you need a 
  57.           *seperate* written agreement from the author. Modifications 
  58.           for private use are allowed as long as there is no danger of a 
  59.           modified copy being distributed.
  60.  
  61.           By keeping a copy of any part of the Trackjoy software,
  62.           in any form ─ machine-readable or otherwise ─ you agree to 
  63.           be bound by the terms of this license.
  64. ───────────────────────────────────────────────────────────────────────────
  65.  
  66.         ■ The philosophy behind this agreement is firstly of a "Share 
  67.           and Enjoy" kind, and secondly of a kind which pertains to my 
  68.           personal idea that this program is nothing like perfect, and 
  69.           I've enjoyed making it (at least some of the time), and I am 
  70.           not willing to make other people feel guilty for not dishing 
  71.           up for it. I may be really old-fashioned, but I still believe 
  72.           in giving things to people and I don't think we should think 
  73.           of everything in terms of profit, and besides, I really can't 
  74.           be bothered to handle any big registering deals right now.
  75.  
  76.           This reminds me of the other part of the Trackjoy philosophy, 
  77.           which is that people don't like reading completely impersonal 
  78.           technical manuals (such as Microsoft GW-BASIC 3.22, User's
  79.           manual...) to learn how to use a program or gadget. I have 
  80.           made a real effort to liven this document up for you.
  81.  
  82. DISCLAIMER OF THINGOMYJIG: All characters in this document are purely 
  83.                            imaginary and have no relation whatsoever to 
  84.                            any person, dead or alive ─ or both.
  85.  
  86. Now that you have got over your initial shock, we can begin: Welcome to 
  87. the world of Trackers and the Gravis Ultrasound Card. And thank you ever 
  88. so much for downloading Trackjoy. I honestly hope you find it a *joy* to 
  89. use.
  90.  
  91.  
  92. CONTENTS
  93. ─────────────────────────────────────────────────────────────────────────────
  94. *** NOTE: To find a topic listed below, you can search for the label in 
  95.           brackets. When searching for topics in this way, always add a 
  96.           full stop in *front* of the label. For example, if the label 
  97.           was [switches], you would search for ".switches" (without the 
  98.           double quotes, of course).
  99.  
  100.  
  101.                                                                     LABEL
  102. 1. Command list for quick reference............................... [list]
  103.    (This list is displayed by Trackjoy Help)
  104.  
  105. 2. What is Trackjoy............................................... [what]
  106.    ─ Music on the PC
  107.    ─ "Trackers"
  108.    ─ GUS and wave-table "synthesis"
  109.    ─ Special features of Trackjoy
  110.  
  111. 3. Editing........................................................ [edit]
  112.    ─ About patterns, rows, notes etc.
  113.    ─ About samples
  114.    ─ The Pattern Allocation window
  115.    ─ Editing Patterns
  116.    ─ Tools
  117.    ─ Editing Order
  118.    ─ Editing Song Information
  119.  
  120. 4. The Sample Manager......................................... [samplman]
  121.  
  122. 5. Saving and Loading........................................... [fileio]
  123.    ─ File Selection pad
  124.  
  125. 6. Configuring Trackjoy......................................... [config]
  126.    ─ Screen setup
  127.    ─ Sample directories
  128.    ─ General
  129.    ─ GUS settings
  130.  
  131. 7. About memory................................................. [memory]
  132.  
  133. 8. Tips and recommendations....................................... [tips]
  134.  
  135. 9. Trackjoy FAQ.................................................... [FAQ]
  136.  
  137. 10. Trackjoy Frequently Reported Bugs (FRB) List................... [FRB]
  138.  
  139. 11. Trackjoy: The Next Version.................................... [next]
  140.  
  141. 12. About programming, support and the author..................... [prog]
  142.  
  143. ──────────────────────────────────────────────────────────────────────────────
  144. 1. Command list for quick reference                                    .list
  145. ──────────────────────────────────────────────────────────────────────────────
  146.  
  147.   A blank in either column means the command can't be invoked in that way
  148.   An asterisk (*) means the command is available through the main menu
  149.  
  150.   ■ There is no guarantee that all keys that actually do something
  151.     (useful) are listed here. Most of the tested and fairly reliable
  152.     functions, however, can be found in this list. Parts of the
  153.     list can be brought up in Trackjoy's editing screen with the
  154.     Ctrl and Alt keys held down, and the above list can be found
  155.     in Trackjoy's help system.
  156.  
  157. ──────────────────────────────────────────────────────────────────────────
  158. 2. What is Trackjoy?                                                 .what
  159. ──────────────────────────────────────────────────────────────────────────
  160.  
  161.  
  162. Music on the PC
  163. ───────────────
  164.  
  165. Producing music ─ or indeed, any sound at all ─ on the PC is a problem.
  166. Or rather, producing a *sound* is easy enough, but producing anything
  167. even remotely similar to a musical sound is almost impossible. This is
  168. because all a standard PC clone is equipped with is a small low-fidelity
  169. speaker, often called a PC-squeaker, PC-beeper or something equivalent.
  170. The speaker is driven by a timer or one-bit I/O port making possible
  171. only two states, on or off. The only way to play digital sound effects
  172. thorugh the PC beeper is to use a crude bit-stream approach, which is
  173. really hard on the CPU.
  174.  
  175. This PC-ear-radicator is barely capable of producing a beep, and
  176. therefore that's what it is usually used for in games and other
  177. entertainment software. Also, it of course beeps at you whenever
  178. it thinks it appropriate or when it is likely to annoy you most.
  179.  
  180. Other brands of computer (Commodore, Apple Macintosh) at least support
  181. *some* kind of sound, generally in form of a simple DAC and a more
  182. advanced sample playback system in Amiga computers.
  183.  
  184.  
  185.  
  186.  
  187. Trackers
  188. ────────
  189.  
  190.  
  191. Until quite recently practically the only way to avoid these disgusting
  192. square-wave beeps (and protect your poor ears) was to buy a synthesizer
  193. card, such as an Adlib or SoundBlaster, which support FM (Frequency
  194. Modulation) Synthesis. However, a cheaper alternative was also
  195. invented. It was the PC tracker.
  196.  
  197. Trackers are programs which play music with pieces of recorded sound ─
  198. samples. Samples are blocks of bytes or words, whose values represent
  199. an input voltage or eventually the air pressure to create at any given
  200. time. By playing the sample back quickly through a digital/analog
  201. converter (DAC), you can produce quite lifelike sounds on a PC.
  202. With "lifelike" I certainly don't mean the beeper, but with a
  203. real (or fake) DAC it can be done. Actually, all this tracker business
  204. started from the Amiga, and that's where the .MOD format comes from.
  205.  
  206. But that wasn't the clever bit ─ this is: You can build quite an
  207. acceptable ─ if 8-bit sound is what you call acceptable ─ DAC out of a
  208. pile of resistors. This heap of mangled wires ─ and evil-looking
  209. componets that look as if they migh be from the alien planet Gluntgavar
  210. XII ─ is referred to as a Covox. To build one, get eight resistors with
  211. the resistances x * 2^n ohms, with n from 1 to 8, stick them into your
  212. parallel printer port, and voilà! It works! When adjusted well with an
  213. oscilloscope, it sounds better than an SB 1.0! Actually I built a
  214. ten-bit covox in stead of an 8-bit one, and that sounded even better.
  215. At least, I *imagine* it did...
  216.  
  217. Because you obviously want to use several frequencies and channels when
  218. making music, trackers have to do a lot of work to mix, stretch and
  219. shrink the samples into shape. Normally this kind of work is comletely
  220. left to an integrated circuit called a DSP, which is short for Digital
  221. Signal Processor or a completely dedicated hard-coded chip, which
  222. brings the cost down. DSPs are optimised to perform simple operations
  223. like addition and multiplication really fast enabling operations such
  224. as filtering and mixing or Fourier transforms at very high sampling
  225. rates, and are generally capable of doing things approximately ten
  226. times faster than a general-purpose processor. However, PCs aren't
  227. normally equipped with DSPs, so the 80x86 processor has to do
  228. everything.
  229.  
  230. A tracker program also has to look after the music track (pattern).
  231. With this added overhead and the time consumed in mixing, it is
  232. a very big effort to make a routine that sounds even almost as
  233. good as a GUS. Even increasing the amount of bits in the output won't
  234. help alone, without a method called anti-aliasing or interpolation to
  235. avoid some really annoying distortion. On the other hand, anti-aliasing
  236. takes so long that up till recently it was never found in players,
  237. and even now interpolative mixing engines require fast machines
  238. and highly optimised assembly language coding.
  239.  
  240. This is why very few standard MOD trackers sound clear. Even with
  241. 16-bit audio cards and software anti-aliasing, you often hear more
  242. high-frequency noise than with a GUS, which is also equipped with
  243. filter designs.
  244.  
  245. Most of these problems are wiped away with cards like the Gravis 
  246. Ultrasound, WaveBlaster and SoundBlaster AWE 32. The Ultrasound is quite 
  247. a neat piece of work (except for the rather nasty defects, which I have 
  248. listed in TECH.DOC), equipped with 256 to 1024 k of DRAM, built-in 
  249. filters and anti-aliasing. It also supports 16-bit audio data. The 
  250. result is that it plays even 8-bit samples amazingly clearly by first 
  251. stretching them into 16-bit samples and then anti-aliasing them.
  252.  
  253.  
  254.  
  255.  
  256. The GUS and wave-table synthesis
  257. ────────────────────────────────
  258.  
  259.  
  260. The Gravis Ultrasound card resembles the tracker method of making sounds 
  261. very, very closely. The only practical difference is that the Ultrasound 
  262. lets you get on with other things by doing all the dirty work itself. 
  263. The programmer only needs to load the samples into the GUS and then do a 
  264. few quick writes to I/O ports to play them.
  265.  
  266. The Gravis Ultrasound method of making sounds is called wave-table 
  267. synthesis. This simply means that the sample can be played from any 
  268. place at any frequency with a uni- or bidirectional loop set up at any 
  269. place in the sample. The frequency and volume can be modified during 
  270. playback. This is all that goes into wave-table synthesis if we are 
  271. talking about the GUS. With proper samples, however, it sounds 
  272. surprisingly good. Still, I would have some reservations about calling 
  273. this 'synthesis', because nothing is actually synthesized. Rather, I 
  274. would call the GUS a sample playback board.
  275.  
  276.  
  277.  
  278.  
  279. Special features of Trackjoy
  280. ────────────────────────────
  281.  
  282.  
  283. The most important special feature of Trackjoy is that its pattern 
  284. structure is not fixed. When the majority of other trackers use 64-row 
  285. patterns with fixed or variable width, Trackjoy can have patterns from 1 
  286. to 255 rows in length and their width can vary from one to seventeen. (A 
  287. fun joke is to make a 1-channel-1-row piece of music, sounds great!) In 
  288. addition to this, all the channels in a pattern needn't be of the same 
  289. type. In stead, there are three channel types: FULL for full note, 
  290. instrument, volume and special effect data, STRIPPED for the note, 
  291. instrument and volume and GLOBAL, which controls the playing of the 
  292. whole pattern.
  293.  
  294. Another weird Trackjoy feature is its interrupt interface. If you're not 
  295. a programmer, you will be thinking: "Hmmm... what on Earth is an 
  296. interrupt interface?"
  297.  
  298. Well, the answer is that if you're not a programmer, you don't *want* to 
  299. know. If you are, you can read about it in TECH.DOC. In any case, it is 
  300. an interface between Trackjoy and any other program that supports the 
  301. interface, and it lets progras synchronize themselves with Trackjoy and 
  302. pass commands to Trackjoy.
  303.  
  304. You see, programmers actually *like* playing about with interrupts and 
  305. cryptic hexadecimal command numbers moved into the AL register. As 
  306. Calvin (or Hobbes) would no doubt say, this is really GROSS. Yechh!
  307.  
  308.  
  309.  
  310.  
  311.  
  312. ───────────────────────────────────────────────────────────────────────────
  313. 3. Editing                                                         .edit
  314. ───────────────────────────────────────────────────────────────────────────
  315.  
  316. About patterns, rows, notes etc.
  317. ────────────────────────────────
  318.  
  319.  
  320. In Trackjoy music is stored in a data structure called a pattern. A
  321. pattern consists of channels, which are divided into rows. Since a
  322. picture can tell a lot more than a thousand words (depending of course
  323. on resolution and image size... not to mention compression!), here is a
  324. picture of a small pattern (it looks almost exactly the same in
  325. Trackjoy, and ─ due to Trackjoy's very flexible pattern format ─ could
  326. actually be created (three channels and nine rows)!) (Yechh I hate
  327. all these brackets):
  328.  
  329.  
  330.  
  331.                             ┌─Stripped channel
  332.      Full channel─┐         │                ┌────Global channel
  333.      ─────────────┴────── ──┴─────── ────────┴────
  334.     █C-1 04 100 · ··· ···█C-1 02 100█070 · ··· ···█
  335.     █∙∙∙ ∙∙ ∙∙∙ · ··· ···█∙∙∙ ∙∙ ∙∙∙█∙∙∙ · ··· ···█
  336.     █∙∙∙ ∙∙ ∙∙∙ · ··· ···█G-2 01 077█∙∙∙ · ··· ···█ <── separating block
  337.     █C-1 ∙∙ ∙∙∙ R 040 ···█G-2 ∙∙ ∙∙∙█∙∙∙ · ··· ···█
  338.     █D#1 ∙∙ ∙∙∙ · ··· ···█C-1 03 100█∙∙∙ · ··· ···█
  339.     █F-1 ∙∙ ∙∙∙ · ··· ···█∙∙∙ ∙∙ ∙∙∙█∙∙∙ · ··· ···█
  340.     █F-1 ∙∙ ∙∙∙ · ··· ···█G-2 01 077█∙∙∙ · ··· ···█
  341.     █F-1 ∙∙ ∙∙∙ · ··· ···█G-2 ∙∙ ∙∙∙█∙∙∙ · ··· ···█
  342.     █∙∙∙ ∙∙ ∙∙∙ · ··· ···█C-1 02 100█∙∙∙ · ··· ···█
  343.       │  │   │  │  │   │   │  │   │   │  │  │   │
  344.       │  │   │  │  │   └───│──│───│───│──│──│───┴──── Special effect param. #2
  345.       │  │   │  │  │       │  │   │   │  │  │
  346.       │  │   │  │  └───────│──│───│───│──│──┴──────── Special effect param. #1
  347.       │  │   │  │          │  │   │   │  │
  348.       │  │   │  └──────────│──│───│───│──┴─────────── Special effect
  349.       │  │   │             │  │   │   │
  350.       │  │   └─────────────│──│───┴───┴────────────── Volume
  351.       │  │                 │  │
  352.       │  └─────────────────│──┴────────────────────── Instrument / MXX
  353.       │                    │
  354.       └────────────────────┴───────────────────────── Note
  355.  
  356.  
  357. FULL channels are the most flexible and also most storage-consuming
  358. channel type. Full channels consist of a note (C-0, C#0, D-0...), an
  359. instument number (00 - 63), a volume value (000-254), a special
  360. command byte (U, D, R, L, s, p...) and two numerical or note
  361. parameters for the special command. Each note in a full channel can
  362. be controlled as fully as Trackjoy's player engine can allow. Each of
  363. the fields consumes one byte of memory, so a note takes six bytes.
  364.  
  365. The instrument number is special in that some of the values exceeding
  366. 63 are used for special purposes. These are called the MXX commands,
  367. because they are defined as PLAY_M99 (Play Mode 99), STOP_M98 (Stop Mode
  368. 98) and so on. More about these in a moment.
  369.  
  370. STRIPPED channels are just like full channels, but they have been 
  371. stripped of the special command information for memory saving purposes. 
  372. A stripped channel note takes three bytes of storage space. MXX commands 
  373. naturally work also in stripped channels.
  374.  
  375. *** TIP: The stripped channel is the most common channel type. You 
  376.          should use it instead of full channels if you don't 
  377.          particularly need any special commands. (This applies 
  378.          particularly to percussion channels.) Indeed, when you start 
  379.          Trackjoy, it defaults to a pattern of eight stripped channels 
  380.          with 64 rows.
  381.  
  382. GLOBAL channels also resemble full channels, only they don't have the 
  383. note or insturument data. They have the volume and special command 
  384. fields and take four bytes of data per cell (note). Global channels 
  385. control how the whole pattern plays: tempo, pitch, volume, jumps etc. 
  386. Because you only need one global contoller channel, Trackjoy only allows 
  387. you to have one of them per pattern.
  388.  
  389. When a particular field of any cell has dots in it (either the big 
  390. ASCII-249 dots ("∙") or the smaller ASCII-250 ("·") dots.), it means 
  391. that location is empty. In Trackjoy, the unsigned byte value 255 (FFh) 
  392. means empty. This is why volume can only range from 0 to 254, since a 
  393. byte can hold 256 values and one of them is needed to mean EMPTY and one 
  394. for zero. Empty fields never affect the music in any way.
  395.  
  396.  
  397.  
  398. Tools
  399. ═════
  400.  
  401. One of the things that make Trackjoy so incredibly marvelous is its 
  402. unique set of pattern editing tools. They are all designed to make music 
  403. score editing as easy and fast as possible and therefore allowing you to 
  404. concentrate fully on the musical side. Actually, there is even some 
  405. truth in this, at least for my own part. Without proper editing tools 
  406. entering music in Trackjoy gets so slow that nobody can be expected to 
  407. make a piece more than sixty-four rows long.
  408.  
  409.  
  410. 1. The block
  411. ────────────
  412.  
  413.       Copying
  414.  
  415.       Trackjoy has a flexible block handling system. You can select a
  416.       block any length and any width withing a pattern. Do this by 
  417.       positioning the cursor on the left-hand top corner of the block 
  418.       you want to use. Then press Alt-F4 (like in Word Pervert) and 
  419.       extend the block down and right with the arrow keys. If you want 
  420.       to copy the block elsewhere, press Alt-C. Pressing Alt-C will
  421.       unmark the block, because it seems to be unlikely that you will 
  422.       need to do something to the block right after copying. The 'A' 
  423.       (for "alloacted") flag will appear in Trackjoy's bottom status 
  424.       line. To unmark the block, press Alt-F4 again.
  425.  
  426.       Pasting
  427.  
  428.       Pasting the block is done by repositioning the cursor at the new 
  429.       location for a the block. This can of course be in any pattern. If 
  430.       you have an allocated block in memory, press Alt-P to paste (Alt-N
  431.       to do a transparent paste, where only empty space is overwritten 
  432.       from the buffer). Trackjoy will copy the data to the new location. 
  433.       If the block was too big to fully fit in the new location, only 
  434.       part of it will be copied.
  435.  
  436.       Cutting (Zapping)
  437.  
  438.       To cut a block, which in Trackjoy is the same as Zapping, press 
  439.       Ctrl-Z when you have selected a block. The block will first be 
  440.       copied to the cut/copy/paste buffer and then the selected region 
  441.       will be cleared. The rest of the pattern is left unchanged. If no 
  442.       block is selected, Ctrl-Z zaps the current channel (undo with 
  443.       Paste).
  444.  
  445.       Freeing the block
  446.  
  447.       To free an allocated block without using it, press Alt-F.
  448.  
  449.       You needn't always allocate (which means the same as copy ─ with 
  450.       Alt-C) a block to make use of it. The Transpose commands and
  451.       Pattern Editing Tools both simply use the *coordinates* of the 
  452.       block. They don't need an allocated copy of it. When you use these 
  453.       commands, simply mark the block with Alt-F4 and execute the 
  454.       command. After it has finnished, unmark the block by pressing 
  455.       Alt-F4 again, unless of course you want to do more with it.
  456.  
  457.       You can also write and read blocks to/from disk. In this way it's
  458.       possible to transfer passages of music between songs or modules ─ 
  459.       providing the sample numbers are compatible, which, I admit, 
  460.       doesn't happen too often... To write a block, mark it and copy it 
  461.       to memory (with Alt-C). Then press Alt-W, type in a name for the
  462.       block (Trackjoy will force the .BLK extension) and press Enter. To 
  463.       load a block, press Alt-R, and select a .BLK file with the file
  464.       selection pad. The you can paste it with Alt-P.
  465.  
  466.       Trackjoy also supports two quick block copying commands. They 
  467.       don't even mark the block, they simply copy it straight into 
  468.       memory. They are Alt-T for coping the whole pattern into memory
  469.       and Alt-L for copying a channel.
  470.  
  471.  
  472. 2. The Advance value
  473. ────────────────────
  474.  
  475.  
  476.       Normally when you enter notes into a pattern, the cursor is moved
  477.       down one step. In some circumstances it is necessary to jump more 
  478.       than one step after entering a note. To make this as easy as 
  479.       possible, you can adjust how much Trackjoy advances the cursor 
  480.       after entering a note. Alt-A decreases the advancer and Alt-S
  481.       increases it (a zero-advance is also allowed). You can see the 
  482.       value in the bottom status line.
  483.  
  484.       This feature is particularly handy when you want to enter a 
  485.       complex rhythm in every other note cell in order to enter fast 
  486.       notes in an other channel. You would simply set the advancer to 2 
  487.       and enter the notes.
  488.  
  489.       Another use is when you enter bass drums or snares into a pattern. 
  490.       They often come at regular intervals and are very easy to enter 
  491.       with a moderately large advance value (6, 8, 12 or 16, for 
  492.       example). A somewhat more sophisticated method for doing this is
  493.       by using Incremental Line Evaluation, described a little later on.
  494.       By the way, if you enter drum tracks like this, do yourself a 
  495.       favour and give each note a different volume. Drum tracks sound 
  496.       *much* better with some dynamics.
  497.                      
  498.  
  499. 3. The Field Editing Tools
  500. ──────────────────────────
  501.  
  502.       This is one of the features you are not going to want to use.
  503.  
  504.       The Field Editing Tools command invoked with F3 is a general 
  505.       purpose command for doing just about anything to a pattern. It 
  506.       works by letting you select the exact object you want to change 
  507.       and by letting you specify the conditions on which it modifies the 
  508.       object. This is done with a total of six different selectors, 
  509.       making it possible to use this command in a staggering total of 
  510.       6,480 unique ways ─ and that is *not* counting the extra 
  511.       parameters.
  512.  
  513.       All the selectors are used by moving in them with the arrow keys.
  514.       Select an item with Space, cancel with Esc and accept with Enter.
  515.       'E' toggles the "Process EMPTY fields?" option, 'L' the "Evaluate
  516.       line numbers" option.
  517.  
  518.       The first selector defines which field you want to be processed. 
  519.       They are the note, instrument, volume and special effect 
  520.       parameters. When you select one of these, that field will be 
  521.       affacted when you continue with the command.
  522.  
  523.       The next selector selects a *field* to evaluate. This means that
  524.       the field you select with this selector will be compared to a 
  525.       the value of your choice. The options are the same as in the 
  526.       previous selector.
  527.  
  528.       The third selector sets the condition on which a field in a note 
  529.       cell will be affected. The options are Equal to, Greater than, 
  530.       Smaller than, Not equal to and None. F1 lets you enter a value (a 
  531.       number or note, depending on the state of the second selector) for 
  532.       the comparison. "None" means that nothing is tested, and every 
  533.       field is modified.
  534.  
  535.       The next (fourth) selector specifies the general object to use. It
  536.       can be the whole current pattern, the current channel or the 
  537.       block. Note that the block need not be allocated for this purpose, 
  538.       but it must be selected, ie. visible on the screen, when you press 
  539.       F3.
  540.  
  541.       The last actual selector is for selecting the operation to do on a 
  542.       field. The options are Set to value, Decrease by, Increase by and
  543.       Scale to a percentage.
  544.  
  545.       The "Evaluate line numbers" option enables you to create a huge 
  546.       variety of rhythms with two simple parameters. The parameters are 
  547.       called Incr for Increment and Decz for Decision (not decrement).
  548.       The idea here is that an internal counter is incremented by <Incr> 
  549.       on every processed line. If the counter exceeds <Decz>, then the 
  550.       line at which this happens evaluates to true, in other cases it 
  551.       evaluates to false. In the case that it is true, <Decz> is 
  552.       subtracted from the counter. The algorithm resembles an 
  553.       incremental line drawing algorithm very closely.
  554.  
  555.       *** HOW it works
  556.                In a computing language the algorithm looks like this:
  557.  
  558.                Incr = ?, Decz = ?, Counter = 0, State : integers;
  559.  
  560.                Loop_top:
  561.  
  562.                Counter = Counter + Incr;
  563.                if Counter > Decz then
  564.                         State = TRUE,
  565.                         Counter = Counter - Decz;
  566.                else
  567.                         State = FALSE;
  568.  
  569.                goto Loop_top;
  570.  
  571.                This may help you to understand how line evaluation 
  572.                works. 
  573.  
  574.       Example: Supposing you want to enter a note in every other 
  575.                position with this command. You would set Incr to 1 and
  576.                Decz to 2, so that when the counter has been incremented 
  577.                twice, a note is entered.
  578.  
  579.                To enter seven notes and one blank repeatedly, you would
  580.                use the Incr 7 and Decz 8. The best way to work these out
  581.                is by trying it for yourself.
  582.  
  583.       Remember to switch "Process empty fields" to ON and set the 
  584.       "Evaluate..." field to "None", if you want to enter notes in
  585.       EMPTY fields in the pattern with Incremental Line Evaluation.
  586.  
  587.  
  588.       Summary:
  589.       ────────
  590.  
  591.       The field defined in selector number two (under "Evaluate") is 
  592.       compared against the value entered with F1 (under "Condition") 
  593.       using the condition defined in selector number three 
  594.       ("Condition"). If it evaluates to true, then the field selected in 
  595.       selector number one ("Field") will be modified in the way 
  596.       specified in selector number five. The object to modify is chosen 
  597.       with selector number four.
  598.  
  599.       "Process EMPTY fields?" is to protect empty fields against 
  600.       modification. Generally you don't want to set them to anything 
  601.       else. But if you do, set this toggle to "Yes" with 'E', and also 
  602.       empty fields will be affected just as others are. Remember that 
  603.       the value of "EMPTY" is 0xFF or 255. Incrementing it will make
  604.       the field's value wrap, since 255 is the largest value that will 
  605.       fit into a byte.
  606.  
  607.       The selectors in Field Editing Tools are sticky, which means they 
  608.       will remember the places where they were left to save you the 
  609.       bother of entering all the information every time you press F3.
  610.  
  611.  
  612. Inserting and Deleting
  613. ──────────────────────
  614.  
  615.       The Insert and Delete commands affect all the fields in the 
  616.       current cell. Delete will pull anything below the current position 
  617.       up and destroy the note under the cursor, Insert will push 
  618.       everything it down and fill the gap with empty fields. The Insert 
  619.       and Delete keys can be used to do this, or you can use Alt-I and
  620.       Alt-D. Alt-I is nice if you want the keyboard to repeat the
  621.       command ─ the Insert key won't repeat. Alt-D is for consistency
  622.       with Alt-I.
  623.       
  624.  
  625. 5. <Note Delete> key
  626. ────────────────────
  627.  
  628.  
  629.       The NoteDel key is used to set fields to empty. By default, this 
  630.       is the character <'>, because it's suitably near to the arrow keys 
  631.       (on Finnish keyboards ;-) and can be easily used with your right 
  632.       hand. <NoteDel> will advance the cursor as much as defined with 
  633.       the Advance value.
  634.  
  635.       Use the Global Setup screen to reconfigure your <NoteDel> key.
  636.  
  637.  
  638. #if TRACKJOY_VERSION_!=0.94B
  639. 6. Chord modes
  640. ──────────────
  641.  
  642.       Chord modes are one of the greatest time and nerve savers Trackjoy 
  643.       offers. Chord modes allow you to enter up to eight predefined 
  644.       notes with one keypress. The idea is that you can first configure 
  645.       up to 10 chords (each containing a maximum of eight notes),
  646.       then select the appropriate channels and easily enter the chords.
  647.  
  648.       *** NOTE: I made this feature, because it can be very annoying to 
  649.                 enter hundreds of individual notes to chords, when it 
  650.                 could be done a lot more easily. Tracker-people usually 
  651.                 use "chord instruments" to solve the problem of getting 
  652.                 chords into music, but since Trackjoy supports up to 16 
  653.                 channels, it's much better to enter each note of the 
  654.                 chord individually.
  655.  
  656.       You set chord modes up through the Chord mode window or with
  657.       Alt-B. The chord mode configuration box can be invoked through the
  658.       main menu (Chord Modes...). You will be presented with a window at 
  659.       the top of which there is a 16-position selector. On the left side 
  660.       is a note table.
  661.  
  662.       The selector is operated with the Left & Right arrow keys and 
  663.       selects channels. When the cursor is on a channel number, press 
  664.       Space to select or deselect it. The selected channels will be used 
  665.       by the chord modes when you switch to chord mode in the pattern 
  666.       editing window. Note that pressing the "Toggle chord mode" key
  667.       in the editing screen will also let you choose chord channels.
  668.       
  669.       There are ten 8-note tables available. One of them is always 
  670.       diplayed on the left of the window. To change the active table, 
  671.       press any key from Alt-1 to Alt-8. Alt-1 selects table #0, Alt-2
  672.       table #1 ─ and so on. If the table has any notes in it, and there 
  673.       is a sample loaded (in Sample Manager) and selected (in this
  674.       window), the notes will all be played. To change the sample to 
  675.       play, use the 'Q' and 'W' keys.
  676.  
  677.       The easiest way to enter a new chord is to press Enter, play the 
  678.       notes on the keyboard and press Enter again. The notes will be 
  679.       played as you enter them. The other way to enter notes it to press 
  680.       a key from 1 to 8 and type in the name of the note.
  681.  
  682.       When you have configured the chords and selected the channels to 
  683.       use, you can go and enter chords into a pattern. To switch to 
  684.       chord mode, press Alt-B. When you are in chord mode, a 'C' is
  685.       displayed in the Trackjoy information flags on the bottom line.
  686.  
  687.       To change chords, press a key from Alt-1 to Alt-0. Then simply 
  688.       play with the keyboard. Trackjoy adds the note you type to the 
  689.       notes in the table, writes them into the pattern and plays them at 
  690.       you. You must still enter sample numbers and volumes for the very 
  691.       first notes of a chord with new values ─ just like you do when you 
  692.       have entered them seperately.
  693. #endif /* This function was disabled for the moment, but you will
  694.           get it once I get all the nasty bugs fixed. */
  695.  
  696.  
  697. 6. Multichannel mode
  698. ────────────────────
  699.  
  700.       Multichannel mode simply means that after entering a note into a 
  701.       channel, the cursor will go to the next channel whose chord mode 
  702.       setting is on, and that is where the next note is put. The advance 
  703.       value is obviously still used as it would normally be. Note that 
  704.       in chord mode the Backspace key works as you would expect, ie. it 
  705.       still goes to the last note entered. The arrow keys are not 
  706.       affected by Multichannel mode.
  707.  
  708.  
  709.       ■ To set multichannel mode on, press Alt-B,M.
  710.         (To set chord mode on, press Alt-B,C.)
  711.         To swith one of these modes off, press Alt-B,Anything.
  712.         (Alt-B,M for instance, can be entered either as <Alt-B><M>
  713.         or <Alt-B><Alt-M>, so it doesn't matter wheter you
  714.         hold Alt down or not after the 'b'.)
  715.  
  716.  
  717. About samples
  718. ─────────────
  719.  
  720. The first version of Trackjoy (0.90ß ─ 1.00) really supports only two 
  721. types of samples: eight and sixteen bit samples. In practise Sample 
  722. Manager does allow you to load five types of sample ─ raw PC 8-bit, 
  723. Amiga 8-bit and 16-bit and two headered formats, the Scream Tracker III 
  724. instruments and Trackjoy's own instrument format. If you load a sample 
  725. in PC 8-bit format, it will automatically be converted to the Amiga 
  726. (signed) format, because that's the only format that the Gravis 
  727. Ultrasound understands.
  728.  
  729. Trackjoy version 1.00 lets you loop samples. This means repeatedly 
  730. playing any part of a sample forwards or backwards. It's a very useful 
  731. feature when you need instruments for chords (strings, for example). 
  732. Normal PC trackers support an unidirectional loop, but since the GUS 
  733. supports looping both ways, Trackjoy will naturally let you use this 
  734. feature. With certain samples a bidirectional loop is the only 
  735. non-clicking alternative.
  736.  
  737. It is quite often worth looping a sample, since in that way you can have 
  738. it on as long as you like. When you want to turn it off, just enter a 
  739. STOP_M98 (F7) command in the instrument field of stripped and full 
  740. channels. An other handy way of playing looped samples is with the FC 
  741. command, which tells Trackjoy to simply change the frequency of a 
  742. sample, not play it again, so a looped sample ─ ie., one that doesn't 
  743. end ─ is suited for this method. To release the loop and let the sample 
  744. stop as it would if it had no loop, enter a RL command (94) in the 
  745. instrument field.
  746.  
  747. Looking for the beginning and end for the loop can be very difficult in 
  748. some samples. Perhaps the easiest way to find them ─ if they can be 
  749. found at all ─ is to load the into a sample editor and simply find two 
  750. similar waves in it. Write the offsets of the wave crests down and enter 
  751. the values into Sample Manager. Even with this method you may hear 
  752. annoying clicking or throbbing, and it may be difficult to get rid of, 
  753. but by trying with both looping directions you may find a good setup.
  754.  
  755.  
  756.  
  757. The Pattern Allocation window
  758. ─────────────────────────────
  759.  
  760. When you first start Trackjoy, you should immediately find yourself in 
  761. the pattern editing screen with a 8-channel 64-row pattern.
  762.  
  763. When you need more patterns, use F2 or one of the other allocation 
  764. commands to allocate them. The pattern allocation window looks a mess, 
  765. but it's possible that you'll learn to use it. This might be a bit 
  766. difficult to believe, but the Pattern Allocation Window is used to... 
  767. allocate patterns. In other words, you tell it the width and length of a 
  768. pattern ─ and tell it what type each channel should be ─ and it will see 
  769. if you have enough memory. If you have, and press Enter, Trackjoy will 
  770. allocate memory for the pattern, clear it (ie. set all the bytes to 
  771. EMPTY, or 255) and set it up for use.
  772.  
  773. ─ The pattern number is displayed in the top left corner
  774.  
  775. ─ Pattern width (channels) simply means the number of channels (0-17)
  776.   You modify this number with the Right and Left arrow keys.
  777.  
  778. ─ Rows means the length of the pattern (0 to 255) Press 'R' to modify 
  779.   this. You are presented with a menu, with the options 12, 16, 24, 32, 
  780.   48, 64, 96, 128, 192 Other and Cancel. The numbers are a quick way of 
  781.   selecting some of the most common pattern sizes (all divisible by 
  782.   four, most by eight, quite few by sixteen and some by both three and 
  783.   four, which just about covers most needs.) If you want something 
  784.   really wacky, like 17 (and I bet your song will sound neat!), just 
  785.   choose Other and type in the number. Remember that you mustn't exceed 
  786.   255. (One reason for the 255-row limitation is that it is important 
  787.   that pattern size won't be more than 64 kilobytes. Going over that 
  788.   makes things really difficult on if you wish to stay compatible with 
  789.   the good ol' scum-64k-segment-'286.)
  790.  
  791.   ─ Memory needed for pattern: Trackjoy calculates this for you and
  792.                                warns if there isn't enough memory.
  793.                                Formula for pattern size:
  794.  
  795.                                (number_of_FULL_channels * 6 +
  796.                                number_of_STRIPPED_channels * 3 +
  797.                                number_of_GLOBAL_chanmels * 4)
  798.                                * number_of_rows
  799.  
  800.                                The result is in bytes.
  801.  
  802.   ─ Memory needed for image:   This is calculated because when Trackjoy
  803.                                shows a pattern on the screen (and you
  804.                                can move in it), it first creates an
  805.                                image of the whole pattern in memory.
  806.                                If the pattern is long, this can take
  807.                                over 100 kilobytes, so you might run
  808.                                out of memory.
  809.  
  810.                                Formula for image size:
  811.  
  812.                                (number_of_FULL_chans * 21 +
  813.                                number_of_STRIPPED_chans * 11 +
  814.                                number_of_GLOBAL_chans * 14)
  815.                                * number_of_rows * 2
  816.  
  817.  
  818. On the same line as the pattern number is also the channel number. You 
  819. can increase or decrease it within the limits of the current number of 
  820. channels. Do this with the Up and Down arrow keys.
  821.  
  822. *** NOTE: The first channel is always channel 0. Thus, the number of the
  823.           last channel is one less than the actual number of channels. 
  824.           This is a typical computerism, and makes things easier for the 
  825.           programmer.
  826.  
  827. To change the type of the channel whose number is displayed, press 'F' 
  828. for Full, 'S' for Stripped or 'G' for Global. (Lower case will of course 
  829. do fine everywhere in Trackjoy, but capitals look nicer in text). When 
  830. everything is OK, press Enter to accept. If you are allocating some 
  831. other than the first pattern (which is allocated after starting Trackjoy 
  832. or after a "New" command), you can cancel with the Esc key.
  833.  
  834. *** TIP: Often when composing, you will be using the same channel setup 
  835.          in several patterns. Instead of always tediously entering the 
  836.          type for each channel, go to the pattern whose setup you want 
  837.          to use and choose the Duplicate (Ctrl-Something) command. It 
  838.          copies the setup from the current pattern and inserts it in the 
  839.          pattern allocator. If you want the pattern unchanged, simply 
  840.          press Enter.
  841.  
  842.          If you chose Duplicate (OK, OK, it's Ctrl-D), a message about 
  843.          this feature will appear at the bottom of the pattern allocator 
  844.          window.
  845.  
  846.  
  847.  
  848. Editing Patterns
  849. ────────────────
  850.  
  851.  
  852. Actually writing down music is fairly easy. However, you must take
  853. these steps before you can be sure to hear notes when you press
  854. F6 (play pattern). Makes you wonder whether you want to make
  855. anything after all, doesn't it...
  856.  
  857. A. You must have a sample selected and loaded in Sample Manager.
  858.  
  859. B. Enter a note with the keyboard.
  860.  
  861. *** NOTE: Some PC trackers require that you enter the instrument
  862.           and volume for each note in the pattern, and indeed these
  863.           programs set the fields for you when you enter notes.
  864.           In Trackjoy, however, there is no need to do this ─
  865.           unless otherwise specified, it will always default to the
  866.           previous instrument and volume when playing.
  867.  
  868.           There is also another good reason for this: the MXX
  869.           commands (to which I will get in a moment), which would
  870.           otherwise mess up the instrument setup.
  871.  
  872.  
  873. Notes are entered into the pattern with the keyboard as if it were a 
  874. piano keyboard. In the default configuration, the piano keyboard is set 
  875. up as follows:
  876.  
  877.     "zxcvbn" octave:               "qwerty" octave
  878.  
  879.       S D    G  H J                   2 3    5  6 7
  880.     █▌ █ ▐█▐█ ▐▌ █ ▐█               █▌ █ ▐█▐█ ▐▌ █ ▐█
  881.     █▌ █ ▐█▐█ ▐▌ █ ▐█               █▌ █ ▐█▐█ ▐▌ █ ▐█
  882.     ██▐█▌██▐█▌██▐█▌██               ██▐█▌██▐█▌██▐█▌██
  883.     ██▐█▌██▐█▌██▐█▌██               ██▐█▌██▐█▌██▐█▌██
  884.     Z  X C  V B  N  M ...           Q  W E  R  T Y U ...
  885.  
  886. Both octaves can be extended slightly in both directions, giving a 
  887. maxmimum range of C-0 to F-2 at a time.
  888.  
  889. When you enter a note, Trackjoy will play it at you with the most recent 
  890. defined instrument in the channel. If you haven't defined an instrument, 
  891. Trackjoy can't play anything, and indeed, you should pray that it 
  892. doesn't.
  893.  
  894. When you need a different octave, use the grey '/' and '*' keys to set 
  895. the octave. In this way you can easily get as high as you like.
  896.  
  897. The instrument is selected by moving the cursor into the second field of 
  898. full and stripped channels and by typing in the sample number, which can 
  899. be found in the Sample Manager. Actual sample numbers can range from 0 
  900. to 63, but this field can contain other information, too.
  901.  
  902.  
  903.  
  904. MXX Commands
  905. ────────────
  906.  
  907. MXX commands can be entered into the instrument field with the function
  908. keys F7 and F8. They are "PLAY_M99", "STOP_M98", "DETUNE_M96" etc.
  909. PLAY_M99 is entered with F7. When a note has this value (99) after
  910. it, Trackjoy won't start the sample again from its beginning. It
  911. simply changes the frequency to the new note. This gives many
  912. instruments a completely different tone, and can be useful in many
  913. situations.
  914.  
  915. STOP_M98 is entered with F8. This command is very simple: it simply
  916. stops a voice. It was made simply to avoid the bother of entering
  917. zero-volume notes to stop voices. It's also handy for staccato.
  918.  
  919. The note's volume is entered just as the instument. Volume can range 
  920. from 0 to 254, is linear and is in relation to the current master 
  921. volume. The default volume is 100.
  922.  
  923. *** TIP: If you need a crescendo or diminuendo or anyhing else to do 
  924.          with *changing* the volume, don't go to the bother of entering 
  925.          individual note volumes. Instead, use Ctrl-V to interpolate all 
  926.          the volumes between the end volumes.
  927.  
  928.  
  929.  
  930.  
  931. Editing Order
  932. ─────────────
  933.  
  934. To successfully play a piece of music, Trackjoy needs to know what
  935. order to play the patterns in. This is what the order table is for.
  936. Each order item contains a single byte, whose number represents an
  937. absolute pattern number. When Trackjoy plays a song and gets to the
  938. end of a pattern, it checks for the next one in the order table.
  939.  
  940. You edit the order table by simply selecting "Edit order" from the
  941. "Editor" menu (or type Ctrl-O). Then type in the pattern numbers, 
  942. separated by commas. Any illegalities (ie., something like "25 A 24") 
  943. are converted to zeroes. Remember that you can only have 128 patterns.
  944.  
  945. To finish editing, simply press Enter. After you have entered at least 
  946. one pattern number in the table, you can play your song with F5 (play 
  947. song) as well as single patterns with F6 (play pattern).
  948.  
  949.  
  950.  
  951.  
  952. Editing Song Information
  953. ────────────────────────
  954.  
  955.  
  956. Trackjoy has the Song Information window (Ctrl-W) for defining the 
  957. default values and for entering the name, composer and comment for a 
  958. song. The numerical information consists of default tempo, master volume 
  959. and transpose. The pitch bend function supported by Trackjoy is not 
  960. defined through this window.
  961.  
  962. In addition to enabling the user to give his/her song a reasonably long 
  963. (up to 80 bytes) song name, the composer's name (80 bytes) and a comment 
  964. (80 bytes) can be added to a song. This is simply for adding silly 
  965. comments, weird messages and *useless* copyright notices to songs.
  966.  
  967. The keys for editing all the data in this window are listed at the base 
  968. of the window. It's all very easy and straight forward.
  969.  
  970. *** NOTE: Trackjoy uses the same line input routine in many places.
  971.           The routine can handle up to 1-kilobyte strings.
  972.           The keys to use are: Left & Right arrow keys,
  973.                                Home, End,
  974.                                Backspace, Delete,
  975.                                Insert,
  976.                                Enter and Escape to cancel.
  977.           If the length of the line exceeds the length of the input
  978.           area, the text will simply scroll away as much as necessary.
  979.  
  980.  
  981.  
  982. ───────────────────────────────────────────────────────────────────────────
  983.  4. The Sample Manager                                            .samplman
  984. ───────────────────────────────────────────────────────────────────────────
  985.  
  986.  
  987. If you asked me to tell you the truth: Where did I get that stupid name 
  988. from? ─ I would be forced to admit that it came from that rather 
  989. obnoxious and sickening piece of software-engineered shit, Windows. 
  990. Yuck!
  991.  
  992. Anyhow, I christened it Sample Manager, so Sample Manager it will be,
  993. whatever bad luck it may bring it. Now let's get to the point.
  994.  
  995. Trackjoy uses samples for instruments. Sample Manager's job is to let
  996. you edit some basic instrument parameters. It will let you do the
  997. following: Select a sample from a directory, give it a name and
  998. description, enter a frequency and volume, plus clear a sample. It
  999. will also let you tune the sample to the same frequency as all the
  1000. other samples, and set up the loop locations for the sample, if
  1001. needed.
  1002.  
  1003. *** TIP: I very strongly recommend that you do tune all your melodic
  1004.          samples to the same frequency. In addition to making composing
  1005.          much easier, it ensures better sound quality, because if
  1006.          you do tune a sample, you are likely to tune it as close as
  1007.          your musicality allows.
  1008.  
  1009.          Apparently some Amiga trackers don't let you tune the samples.
  1010.          Consequently, if the samples have different note frequency/
  1011.          digitizing frequency ratios, they have to be transposed by
  1012.          the composer. This would seem to me a very serious defect.
  1013.  
  1014.          Trackjoy, by the way, offers one of the fastest and easiest
  1015.          sample tuning interfaces around anywhere.
  1016.  
  1017.          More notes on the subject of keeping the JOY (Trackjoy
  1018.          modules and songs) format as good as possible can be found
  1019.          in "8. Tips and recommendations" [tips].
  1020.  
  1021.  
  1022. When you press F1 in the pattern editing area, the Sample Manager screen
  1023. will appear. You will see a menu-like selector bar, which can be situated
  1024. on any of the 64 sample entries. The normal procedure for loading a sample
  1025. is to simply press Enter and use the File Selector to pick a file.
  1026. (For more information on the File Selector, see "5. Saving and Loading",
  1027. [fileio].)
  1028.  
  1029. When you have selected a file, you must tell Trackjoy what type it is. 
  1030. Trackjoy supports three types of file, which are the PC8 (PC 8-bit 
  1031. unsigned), A8 (Amiga 8-bit signed) and 16 (16-bit unsigned, back-words). 
  1032. The type mostly used is PC8, which can be selected by typing 'p'. Amiga 
  1033. 8-bit is selected with 'a' and 16-bit samples with 's'.
  1034.  
  1035. After selecting the file type you can load the sample into your Gravis 
  1036. with F1 (load sample). After that you will usually want to test and tune 
  1037. it. Press F2 (tune). A dialog box with information about the sample will 
  1038. appear. You can play the sample with the keyboard.
  1039.  
  1040. The tune dialog box also offers the following commands:
  1041.  
  1042.       F1 ─ Switch multichannel mode on or off
  1043.            In multichannel mode the sample will be played through one
  1044.            channel at a time. In this mode you can actually play chords,
  1045.            because the keyboard always sends one key after an other if
  1046.            you press them down together. It usually works quite well.
  1047.  
  1048.       F2 ─ Set up loops:
  1049.  
  1050.            The looping window consists of the following information:
  1051.              ─ Looping state (on or off)
  1052.              ─ Looping direction (uni- or bidirectional)
  1053.              ─ Sample beginning and end
  1054.  
  1055.              Looping mode (on or off) is toggled with the 'L' key.
  1056.              Direction is toggled with 'D'.
  1057.              Both the end and beginning locations can be either
  1058.              entered as numbers or adjusted with the arrow keys
  1059.              in increments of 1. 'B' lets you enter the beginning
  1060.              location, 'E' the end. The Up & Down arrow keys adjust
  1061.              the beginning of the loop, Left & Right adjust the
  1062.              end. Escape quits the dialog box.
  1063.  
  1064.              *** NOTE: If you're using a bidirectional loop and the
  1065.                        absolute offset of the current sample is
  1066.                        zero, the loop beginning must always be greater
  1067.                        than zero, something like four. This is because
  1068.                        if you have 1MB of DRAM installed, the Gravis
  1069.                        will otherwise jump right to the end of RAM,
  1070.                        and play the uninitialized muck there.
  1071.  
  1072. Arrows Left & Right ─ Subtract or add a semitone (approx. 0,59 %) to
  1073.                       the frequency.
  1074.  
  1075. Arrows Down & Up ─ Subtract or add an octave to the frequency.
  1076.  
  1077.    F3 & F4 ─ These fine-tune the sample frequency. Use these after you
  1078.              have roughly tuned the sample with the Left and Right
  1079.              arrow keys.
  1080.  
  1081.         F5 ─ Divide keyboard in two. This is a good way of tuning samples.
  1082.              You can assign any sample to the base (or "zxcvbn" octave)
  1083.              and play it with the sample you are tuning. This is by far
  1084.              the easiest way of tuning. The original sample plays with
  1085.              the treble ("qwerty") octave.
  1086.  
  1087. Alt-Q & Alt-W & F6
  1088.            ─ Change sample volume. This adjusts the relative volume
  1089.              of a sample. All pattern volumes are multiplied by this
  1090.              value and then divided by 256. In other words, the maximum
  1091.              volume is 256.
  1092.  
  1093.    F7 & F8 ─ Same as F3 and F4, except that they affect the base octave,
  1094.              if you have divided the keyboard with F5.
  1095.  
  1096.   F9 & F10 ─ Change number of multichannels. This changes the number of
  1097.              channels Trackjoy will use if you are in multichannel mode
  1098.              invoked by F1 in this dialog box. For instance, if the
  1099.              value is four, Trackjoy will use the channels 0, 1, 2, 3
  1100.              and then 0 again.
  1101.  
  1102. Alt-A & Alt-S
  1103.            ─ Change global volume. Changes Trackjoy's global volume and
  1104.              therefore affects both playing in Sample Manager and
  1105.              playing a song.
  1106.  
  1107.  
  1108.  
  1109. If you want to type in a new filename for the sample in Sample Manager's 
  1110. sample list window (not in the tuning box), press F3. Then type in or 
  1111. edit the name (max. 12 characters) and press Enter. The description can 
  1112. be similarly edited by pressing F4.
  1113.  
  1114. F5 is used to remove a sample entry (it is not completely removed or 
  1115. deleted, because this would cause all your sample values to get mixed if 
  1116. you deleted an entry between others and all the following sample entries 
  1117. were shifted up by one). When you press F5 and 'y' to confirm, the entry 
  1118. is cleared and the memory used by it is freed for use by new samples. 
  1119. You may need this feature when you use particularly large samples for 
  1120. sound effect purposes and suddenly run out of GUS memory.
  1121.  
  1122. F6 is meant for quickly setting the sample frequency. It's useful when 
  1123. you either know what the frequency should be, or if you have a lot of 
  1124. samples with the same frequency, and you don't want to tune each with 
  1125. the arrow keys, F3 an F4.
  1126.  
  1127. F7 is for typing in the samples's volume. F8 is for testing beats (/ and 
  1128. * to transpose, a-z and 0-9 play the samples).
  1129.  
  1130. F9 is for saving a sample. Trackjoy will ask for the save format and a 
  1131. directory and then save your sample. To save all the samples, press 
  1132. Shift-F9 and enter the format for the first sample. The others will be 
  1133. saved in the same format. Shift-F1 reloads all the samples just as if 
  1134. you were loading a song.
  1135.  
  1136. Escape exits the Sample Manager dialog box. If you were able to play the 
  1137. sample in the "Tune" dialog box, it is ready for use in the song. The 
  1138. sample number is entered in the second (2-character) field in a note in 
  1139. Full and Stripped channels. Global channels, of course, have no sample 
  1140. numbers.
  1141.  
  1142.         ■ Outside the tuning dialog box (unless you have configured 
  1143.           Trackjoy otherwise), all playing samples will be stopped after 
  1144.           a specified delay. This is the Auto-Don't-Panic feature which 
  1145.           helps you when you temporarily forget how to stop some 
  1146.           annoying and loud sound that was left on. In the pattern 
  1147.           editing screen Ctrl-M will mute all channels and Shift-Enter 
  1148.           will do that plus stop playing, if anything was playing at the 
  1149.           time.
  1150.  
  1151. ──────────────────────────────────────────────────────────────────────────
  1152. 5. Saving and Loading                                             [.fileio]
  1153. ───────────────────────────────────────────────────────────────────────────
  1154.  
  1155.  
  1156. Trackjoy supports only one actual file format: the TRACKJOY music file 
  1157. format, which comes as songs and modules, just like STMs, for example. 
  1158. Songs have the extension .tjs (Trackjoy song) and modules the extension 
  1159. .joy, because .tjm was much too obvious, and anyway, it's more concise 
  1160. and neater and somehow... er... cooler. You would *never* guess how I 
  1161. invented it. (The file extension doesn't really matter, because whatever 
  1162. it is, Trackjoy will know wheter the file is a song or a module.)
  1163.  
  1164. Songs are otherwise exactly like modules, but they don't contain 
  1165. samples. I ─ for instance ─ keep practically all music as songs and have 
  1166. the samples in my nine sample directories (nine is too many, really). 
  1167. Only when I want to transfer a song to a friend or anyone who might not 
  1168. have all the samples used in the song, would I write it as a module.
  1169.  
  1170. The TRACKJOY file format (for a description, see TECH.DOC) was designed 
  1171. for a very high degree of flexibility. The format is a tag-based system, 
  1172. which makes supporting future versions, even with structural changes, 
  1173. very easy. A TRACKJOY file can legally contain information that Trackjoy 
  1174. cares nothing about.
  1175.  
  1176.  
  1177. Saving
  1178. ──────
  1179.  
  1180. Saving a song is simple enough: Open the File menu, and select the 
  1181. command you want. If you want to save your piece as a song, select "Save 
  1182. as song", if you want it as a module, select "Save as module". Trackjoy 
  1183. will ask for a file name. Whatever you try to enter as the extension, 
  1184. Trackjoy will out-extend you, and force it to the appropriate one, ie. 
  1185. TJS for songs or JOY for modules. Trackjoy will gas for a bit about 
  1186. saving patterns and samples. Then it will tell you how many bytes it 
  1187. saved, which can rise to hundreds of kilobytes with very large modules.
  1188.  
  1189.  
  1190.  
  1191. Loading ─ File selecton pad
  1192. ───────────────────────────
  1193.  
  1194. Loading is done with the that cool File Selection Pad (stolen from 
  1195. another program of mine called ANSIJOY). The file selection pad reads 
  1196. the current directory and displays some of the directories and files in 
  1197. the window on the right. You can move in this window and select a file 
  1198. or directory. When you select a directory, it will become the new 
  1199. default directory, and TJ will read it for you. Selecting a file with 
  1200. Enter immediately starts loading it.
  1201.  
  1202. If you need to change the file mask, press F2, and type in the new mask. 
  1203. The lowercase letters a-z will give you the files beginning with that 
  1204. letter. If you need to change to a different drive and/or directory, 
  1205. press F1 and enter the new drive and/or directory. Uppercase letters 
  1206. select drives, 1-9 select sample directories, F3 gets you the song 
  1207. directory, F4 sets the mask to *.TJS and F5 set is to *.JOY. Typing a 
  1208. backslash takes you to the current drive's root.
  1209.  
  1210. Loading modules is easy enough, because all needed data really resides 
  1211. in the module file, but loading songs can be trickier. Of course, the 
  1212. only reason to have songs at all is to be able to use the same samples 
  1213. in many songs without using monstrous amounts of disk space. In songs, 
  1214. samples are simply referred to by file name, and it's up to Trackjoy to 
  1215. find them.
  1216.  
  1217. The first way to find a sample is to look in the instrument cache, whose 
  1218. functioning you don't really notice except as a significant increase in 
  1219. loading efficiency. If the file name can be found in the cache, then 
  1220. Trackjoy immediately knows which sample directory it is in, and loading 
  1221. can be done moderately fast. If, on the other hand, the sample is rarely 
  1222. used, its name might not be in the cache, and at this point Trackjoy 
  1223. will first search the current directory and then all the user-defined 
  1224. sample directories. If the sample is found in one of them, it is loaded 
  1225. and it and its directory are stored in the cache for faster loading in 
  1226. the future. If the sample is nowhere to be found, Trackjoy will just 
  1227. skip it, and you can try to load it afterwards. You can always press Esc 
  1228. during loading to skip the rest of the samples, if you notice Trackjoy 
  1229. isn't finding any of them (you might hear a lot of hard disk grinding 
  1230. going on with each sample, as Trackjoy searches the directories without 
  1231. finding anything. If you hate this, you can press Esc and not care about 
  1232. the samples, although you will hate that as well. :)
  1233.  
  1234. If you change the directory settings or if you have samples of the
  1235. same name (typical examples might be something like two different
  1236. samples both called SNARE2) in several directories, the cache can
  1237. "learn" to load the wrong sample. To get over this, delete the cache
  1238. file TRACKJOY.IC, preferably rename one of the samples which have the
  1239. same name, and restart Trackjoy, because otherwise it will always load
  1240. the sample in a directory higher in the list. (You can also directly
  1241. edit the cache file with any binary editor. Each entry takes 16 bytes,
  1242. and the fourteenth byte in each entry is the number of the sample
  1243. directory. The first directory is number zero.)
  1244.  
  1245.  
  1246.  
  1247.  
  1248. ──────────────────────────────────────────────────────────────────────────
  1249. 6. Configuring Trackjoy                                        [.config]
  1250. ──────────────────────────────────────────────────────────────────────────
  1251.  
  1252. Trackjoy naturally lets you configure the way some of its features
  1253. function. The following is a list of the different things you can
  1254. control.
  1255.  
  1256.  
  1257. 1. The directory setup window
  1258. ─────────────────────────────
  1259.                              
  1260.  
  1261. Enter Trackjoy's working directories here. The first 10 entries are your 
  1262. sample directories and the last one is the song directory. When loading 
  1263. songs, Trackjoy will search for a sample in all the sample directories, 
  1264. so that you can have much better organization of sound samples than with 
  1265. only one directory. If you have the instrument name caching system 
  1266. activated (it will automatically activate if you have enough memory and 
  1267. don't specify the /c command line parameter), every time you load a 
  1268. song, the directories of the loaded samples are stored, and next time 
  1269. you load the same samples, Trackjoy will fetch them straight from their 
  1270. correct directories. This speeds up song loading considerably, and saves 
  1271. your hard disk.
  1272.  
  1273. The song directory is the place Trackjoy songs and modules are retrieved 
  1274. from, by default.
  1275.  
  1276.  
  1277.  
  1278.  
  1279. 2. Global setup options
  1280. ───────────────────────
  1281.  
  1282.  
  1283. These options control Trackjoy's general behaviour.
  1284.  
  1285. The only thing that isn't quite self-explanatory is the timed damping 
  1286. system. This systems stops all playing voices, when not in playing mode, 
  1287. after the specified interval *in clock ticks*, which come at roughly 
  1288. 18.2 times a second. To specify a delay time of, say, 3 seconds, specify 
  1289. 3 s * 18.2 ticks/s = 54.6 ticks. Trackjoy will not accept floating point 
  1290. values, so you could round that up to 55, if you really care about 
  1291. precision... I have found out that a damping time of 1 second is 
  1292. actually quite OK, even though it sounds short. To ensure that your 
  1293. sample tweaking in the Sample Manager tuning box isn't disturbed by 
  1294. timed damping, set "Disallow damping inside tuning box" to "Yes".
  1295.  
  1296. Oh yes, and for the really twisted minds out there, you can force 
  1297. Trackjoy to go on playing a song even though another one is being 
  1298. loaded. This can create some interesting and exciting effects, and will 
  1299. clear itself as soon as the new song is fully loaded and a pattern 
  1300. change as occurred. This is a totally unnecessary "feature".
  1301.  
  1302. Hate the messages that ask you whether your work is saved and whether 
  1303. you *really* want to exit this lovely program? Well, switch them off, 
  1304. then!
  1305.  
  1306. ──────────────────────────────────────────────────────────────────────────
  1307. 7. About memory                                                [.memory]
  1308. ──────────────────────────────────────────────────────────────────────────
  1309.  
  1310. Trackjoy uses two types of memory: your PC's main memory and the Gravis 
  1311. Ultrasound's on-board DRAM. As far as main memory is concerned, Trackjoy 
  1312. behaves in a very conventional way and can use any memory that it can 
  1313. allocate from DOS. It doesn't use EMS or XMS memory, and knows nothing 
  1314. about protected mode.
  1315.  
  1316. The Gravis Ultrasound card can have from 256k to 1MB of RAM on-board. 
  1317. Trackjoy will access all of it if needed. Many modules should fit into 
  1318. 256k quite easily, and if you have 1MB you will almost never be short of 
  1319. memory. However, particularly when you start using bulky 16-bit samples, 
  1320. which are of course twice as long as their 8-bit equivalents, you may 
  1321. have a memory problem with only 256k installed. I've seen people asking 
  1322. why bother to get more than 256k on their Gravis, but in my opinion 
  1323. having at least 512k with Trackjoy is pretty important.
  1324.  
  1325. In normal circumstances you should not have to worry about running out 
  1326. of main memory, which generally happens only if you have other programs 
  1327. in memory. Trackjoy doesn't behave very well (but luckily also not 
  1328. terribly badly) when there isn't enough memory about, so I recommend you 
  1329. don't use it if you have other programs loaded and think there might not 
  1330. be enough memory. Trackjoy loads samples directly from disk to the 
  1331. Ultrasound's DRAM (via system memory, of course), so they will never eat 
  1332. up any of your main memory.
  1333.  
  1334. If you want to save memory, use a pattern that is optimized for the 
  1335. music it contains, ie., don't use a full channel if you can use a 
  1336. stripped one. Many other Trackers offer a "Break Pattern" command to 
  1337. stop a pattern in mid-way, but Trackjoy doesn't. After all, it's much 
  1338. better to simply resize the pattern to the length you want.
  1339.  
  1340. Here are a few things that might happen if you have really little memory 
  1341. free:
  1342.  
  1343.     ■ When you start Trackjoy, the instrument cache size will be pretty 
  1344.       small, something like 5 kilobytes. The cache might also be 
  1345.       disabled completely due to too low memory. (You can force Trackjoy 
  1346.       to disable the cache by specifying the /c command line switch)
  1347.  
  1348.     ■ Trackjoy might report a push_page() error. Trackjoy uses a page 
  1349.       stacking system to store the current page before a new dialog box 
  1350.       is displayed so that the box can later be removed by popping the 
  1351.       pushed page back to the screen. Each pushed page uses four 
  1352.       kilobytes of main memory, and if you don't have enough memory, 
  1353.       this system will fail. Getting this message is not fatal, but it 
  1354.       will result in a messy screen, and acts as a low memory warning.
  1355.  
  1356.     ■ Failure to allocate pattern. If memory is really low, the Pattern 
  1357.       Allocation box will write <- NOT ENOUGH MEMORY in bright red after 
  1358.       the number of bytes it has calculated your pattern will consume 
  1359.       together with its screen image. Interestingly enough, you may 
  1360.       sometimes be able to allocate a pattern even if you get this 
  1361.       message. You have been warned, though.
  1362.  
  1363.     ■ Pattern image memory allocation failure (fatal). This one is 
  1364.       nasty, because it means you have to restart Trackjoy. In a low 
  1365.       memory situation you may see a warning about not having enough 
  1366.       memory for the pattern image, after you have allocated a new 
  1367.       pattern. You have the choice of either simply aborting, continuing 
  1368.       or saving & aborting. Don't choose continue, because your computer 
  1369.       will hang. Choose one of the abort options. (Just don't ask why I 
  1370.       left that continue option there anyway.)
  1371.  
  1372.     ■ Sample Manager won't open. Sample Manager requires a few kilobytes 
  1373.       for the text and numeric information displayed in the sample 
  1374.       selection window. If the required block can't be allocated, then 
  1375.       Sample Manager won't open at all.
  1376.  
  1377.     ■ Sample loading or saving complains about small up/download 
  1378.       buffers. Very short disk I/O buffers tend to slow data transfers 
  1379.       down quite badly, so Trackjoy warns you if it can only allocate 
  1380.       less than 16k for the up/download buffer.
  1381.  
  1382.     ■ Nasty things happen saving or loading songs, like the dreaded "Not 
  1383.       enough memory for rotation buffer" error, which I hope you don't 
  1384.       see. Just kidding... but seriously, Trackjoy can hang when saving 
  1385.       songs with really low memory. (For a pattern Trackjoy temporarily 
  1386.       needs a buffer 2.5 times the size of the pattern currently begin 
  1387.       saved.)
  1388.  
  1389.       *** In any situations such as these, save your work as soon as
  1390.           possible under a different name than the one you had previously.
  1391.           Then restart Trackjoy with more free memory than previously.
  1392.  
  1393. ──────────────────────────────────────────────────────────────────────────
  1394. 8. Tips & recommendations                                          [.tips]
  1395. ──────────────────────────────────────────────────────────────────────────
  1396.  
  1397. There are some things you might want to know before you start using
  1398. Trackjoy.
  1399.       
  1400.  
  1401. Pattern structure
  1402. ─────────────────
  1403.  
  1404.  
  1405. The first and perhaps most important, and in which Trackjoy differs from 
  1406. other trackers, is the pattern format. As was mentioned before, Trackjoy 
  1407. has a variable-length, dynamic pattern structure, which allows patterns 
  1408. of exactly the size you want. Each channel also has its own format, so 
  1409. that as little memory as possible is used.
  1410.  
  1411. Trackjoy has this property to save memory. If all patterns were 64 rows 
  1412. by 16 channels, memory usage would be quite unreasonable. It should 
  1413. perhaps be pointed out that internally Trackjoy uses a single byte for 
  1414. each field in a channel, which makes programming much easier and adds 
  1415. extra resolution to volume and parameter values, although it also means 
  1416. a slight increase in pattern size. However, by using the appropriate 
  1417. type of pattern and channel for each occasion, this size increase can be 
  1418. compensated for. Anyway, it isn't felt on disk, since Trackjoy 
  1419. compresses patterns.
  1420.  
  1421. An other typical feature of Trackjoy is that you can dynamically delete
  1422. and insert patterns and thus have them in more or less the order in
  1423. which you want to play them, which simply makes everything more
  1424. straight forward. You can naturally also resize patterns, which is a
  1425. very important and useful feature.
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431. Dynamics
  1432. ────────
  1433.  
  1434.  
  1435. With dynamics I mean your note volumes. The first thing to notice in
  1436. Trackjoy is that you have almost four times as much "dynamic space" in
  1437. your volumes as in MOD type trackers. Trackjoy volumes range from 0 to
  1438. 254 (the reason for this queer number was explained in an earlier
  1439. chapter), which means better dynamics response than in standard MIDI
  1440. systems.
  1441.  
  1442. Music with absolutely no or very few volume changes is very boring.
  1443. This is why I particularly encourage you to use volume changes as much
  1444. as possible, in order to simulate the way in which a real musician
  1445. plays his or her instrument.
  1446.  
  1447. Because musical phrases often start with a volume lower than that
  1448. reached somewhere in mid-phrase, the beginning volume in a Trackjoy
  1449. pattern should not be the full 254, unless you are sure that the first
  1450. note is the loudest one. I usually begin with a round 100, although
  1451. sometimes I go as low down as 20 or 30. Thus, later on, if I want to
  1452. add dynamics to the channel in question, there is numerical space
  1453. available, and I don't have to scale all the other volumes down. I
  1454. haven't noticed any deterioration in sound quality even when moderately
  1455. low volumes are used and the amplifier volume is turned up accordingly.
  1456.  
  1457. It is usually easiest to use more or less the same default volume for
  1458. each sample. If one of your samples is too loud compard to the others,
  1459. simply turn its volume down in the sample tuning dialog box (F6) in
  1460. stead of scaling all the volumes in the patterns. This will save you a
  1461. lot of work particularly if you decide to have the sample louder again
  1462. afterwards, or change it to a quieter one.
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468. About using samples with Trackjoy
  1469. ─────────────────────────────────
  1470.  
  1471.  
  1472. There are some important points about using samples in Trackjoy, some
  1473. of them related to the way the Gravis Ultrasound hardware works.
  1474. Although there is obviously no Trackjoy Police to make sure you obey
  1475. the "rules" introduced in this manual, you usually get better-sounding
  1476. results by following them.
  1477.  
  1478. The first point is about tuning your all your samples with a definite
  1479. pitch to the same frequency. Many trackers either don't give you any
  1480. interface at all for doing this, or else the only way to tune samples
  1481. is to enter the frequencies by number, which can be a very tedious
  1482. process. As mentioned earlier in the Sample Manager section, it is
  1483. likely that if you do take a little time to tune your samples, you are
  1484. going to tune them as close to each other as your musicality or pitch
  1485. detection capabilities allow. As a result, your music will sound a lot
  1486. better. Also, if different samples give different pitches with the same
  1487. Trackjoy note, you are going to be *really* confused if you suddenly
  1488. want to change one sample to another, if it happens to have a different
  1489. pitch.
  1490.  
  1491. I might evern recommend that you try to tune your samples to absolute
  1492. pitch, ie., that the Trackjoy note 'C-4', for instance, actually has
  1493. the frequency of 263 Hz, or half of that, or twice that. Doing this
  1494. might make changing samples easier, if you save your samples in
  1495. headered format and do tune them all to absolute pitch. (Pressing
  1496. Backspace in the tuning box will give you 'A-4' (443 Hz) through the PC
  1497. speaker, for reference. The official 'A-4' seems to be 440 Hz, but
  1498. some pesky musicians (H. Joy again) seem to be annoyed about this, come 
  1499. whining to me and insist that A-4 be at least 442 Hz. So, Trackjoy 
  1500. conforms to this "standard"...)
  1501.  
  1502. When you tune all your samples to the same frequency, use only one 
  1503. sample as reference and tune all the others to the same frequency as 
  1504. this one. This is because if you tune every sample according to the 
  1505. previous sample in the list, the error introduced at each tuning will 
  1506. gradually build up so that in the end the first and last samples might 
  1507. be badly out of tune. For some odd reason, the errors simply don't 
  1508. cancel each other out, although you might think so... In any case, use 
  1509. some clear, mid-range instrument for reference, as mid-range frequencies 
  1510. are easiest to detect accurately. Clean sine wave usually isn't the best 
  1511. reference wave form, since it contains none of harmonics that help us 
  1512. detect pitch.
  1513.  
  1514.  
  1515.  
  1516.  
  1517. Sample resolution & digitizing frequency
  1518. ────────────────────────────────────────
  1519.  
  1520.  
  1521. An other point that will affect sound quality is sample resolution and
  1522. digitizing frequency. Firstly, Trackjoy supports 8- and 16-bit samples.
  1523. In practise, the only difference between these is that a song made with
  1524. 8-bit samples will always have a degree of noisiness which is absent
  1525. when using 16-bit versions of the same samples. Quantizing to 8-bit
  1526. resolution is always going to cause a degree of quantizing noise, and
  1527. the better your audio system, the more you are going to be aware of
  1528. this. How much you are aware of the quantization hiss depends on the
  1529. sample.
  1530.  
  1531. Another big problem is digitizing frequency. Obviously your general
  1532. sample quality is going to improve if you raise the digitizing
  1533. frequency, and you this is particularly applies to sounds with a lot of
  1534. information in the high-frequency bands. The first sampling rule is the
  1535. Nyqvist theorem, which states the digitizing frequency must be at least
  1536. twice the frequency to be digitized, and even this is the *absolute*
  1537. bottom limit.
  1538.  
  1539. The real problem is when you have a moderately high sound, for instance
  1540. about 1 kHz, which you digitize at 8 kHz. You might think this is quite
  1541. enough, and in a way you'd be right, but if you want to play this
  1542. sample at a really *low* frequency, you are going to have two problems.
  1543. The first is that the Ultrasound's internal frequency contolling
  1544. register's accuracy is limited. This register has the property that if
  1545. it has the value 1000, it will play exactly every sample in its memory,
  1546. no jumping over samples, no interpolation between samples. But with
  1547. really low frequencies, Trackjoy might be feeding the Ultrasound values
  1548. like 100 or even 20, and at this accuracy (with only integer values)
  1549. the notes are going to be hopelessly out of pitch, and it sounds
  1550. terrible.
  1551.  
  1552. The other problem at low frequencies is that the Ultrasound might be
  1553. interpolating something aroud 50 new points (frequency contol register
  1554. = 20) between two actual samples in memory, and the interpolated points
  1555. are, with the Ultrasound, on a straight line. Now a straight line is
  1556. much better than a gigantic step, which is what you would get if you
  1557. didn't even try to guess what might really be between two samples, but
  1558. it isn't the best alternative. The best alternative is to use a rounded
  1559. curve between each set of three samples, which, in effect, makes the
  1560. wave a continuous function. (Any three adjacent samples can be shown to
  1561. always lie on a curve of the form ax^3+bx^2+cx+d. When a, b, c (and d)
  1562. have been computed, the in-between samples can be calculated at great
  1563. precision resulting in a very good approximation of the real thing. Takes
  1564. a lot of MFLOPS, though.) This method will almost totally do away with
  1565. the annoying high-frequency distortion introduced by linear
  1566. interpolation, but it is also computationally expensive, and that is
  1567. probably why the Ultrasound doesn't do it. But you really can hear the
  1568. distortion with most samples if you play them at a low enough frequency.
  1569.  
  1570. The solution: if you possibly can, use samples digitized at 22 kHz or
  1571. more, particularly if you have more than 256k on your Ultrasound. If
  1572. you want noise-free samples, digitize at 22.05 to 44.1 kHz 16-bit from
  1573. a CD-player (a 22 kHz recording at 16-bit resolution usually sounds 
  1574. better than a 44 kHz recoring at 8-bit resolution, alhough they consume 
  1575. the same amount of storage space. Again, this depends greatly on the 
  1576. type of sound you are digitizing).
  1577.  
  1578.  
  1579.  
  1580.  
  1581. More about samples: "chord samples"
  1582. ───────────────────────────────────
  1583.  
  1584. A typical feature of all the tracker business is the use of a huge
  1585. variety of "block" and "chord" samples. With block samples I mean all
  1586. kinds of orchestral hits, guitar riffs, drum comps and the like. With
  1587. chord samples I mean samples which contain more than one note at a
  1588. time.
  1589.  
  1590. The basic rule is that you may go ahead with chord samples if you like 
  1591. as far as the nonexistent TJ-Police are concernced. Using them (not the 
  1592. police, the samples) has both advantages and disadvantages. The 
  1593. advantages are that entering music with them is fairly easy, and you 
  1594. save channels, and fading such chords in and out is easy. The 
  1595. disadvantages are that you use more memory (if you need more than one 
  1596. type of chord), your chord setups are obviously limited, finding 
  1597. non-clicking looping points for the sample(s) can be very difficult, you 
  1598. lose control of individual voices in the chord, and changing to a 
  1599. different sound means loading new ─ and musically equivalent ─ samples 
  1600. for each seperate chord in your song (often three or more samples). All 
  1601. in all, if you can, I recommend building chords from one sample as 
  1602. individual notes, if you don't have a good reason ─ such as a 
  1603. great-sounding chord samples ─ not to.
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609. Chip samples
  1610. ────────────
  1611.  
  1612.  
  1613. Chip (tight-looped) samples are what you get when your sample loop
  1614. length equals the sample's desired wavelength. You can make a chip from
  1615. any sample simply by specifying the loop points, say, 200 samples
  1616. apart or in any case so that the loop will be repeated tens, hundreds
  1617. or thousands of times a second in stead of once a second or once in
  1618. three seconds. When you enable looping and play the sample, you will
  1619. get a very clean and distinct voice, which however quickly gets very
  1620. boring and irritating. Chip instruments suit some kinds of music very
  1621. well, but the more the music is supposed to resemble (ha ha ha) real
  1622. acoustic music, the more you should avoid chips.
  1623.  
  1624. The human mind is very finicky about too much repetition, and that's
  1625. why chip instruments never sound very pleasing, just as plain sine wave
  1626. sounds pretty ghastly after a while despite all of its mathematical
  1627. correctness and beauty. On the other hand, random or pseudo-random
  1628. elements and continuous changes in sound spectrum at fairly low rates
  1629. make sounds worth listening to. My advice is that you should generally
  1630. avoid chips, and loop several kilobytes of each sample rather than a
  1631. few hundred bytes. But if you do use a chip, adding vibrato and/or
  1632. tremolo in addition to plenty of volume changes can make them sound
  1633. acceptable.
  1634.  
  1635. The issue in this whole computer music scene is after all about what we 
  1636. really like, and what we enjoy, not about some boring computer programs 
  1637. or bits of electronics. Do you agree?
  1638.  
  1639.  
  1640.  
  1641. Summary: using samples in Trackjoy
  1642. ──────────────────────────────────
  1643.  
  1644.        ■ Always use the best available samples
  1645.          If you use 8-bit samples, preferably
  1646.          make them from 16-bit originals.
  1647.  
  1648.        ■ Do a lot of digitizing yourself
  1649.  
  1650.        ■ Try to use at least some new samples
  1651.          in each song
  1652.  
  1653.        ■ If possible, use 16-bit samples
  1654.  
  1655.        ■ Use as high a sampling frequency as possible
  1656.  
  1657.        ■ Make a reasonable trade-off between sample resolution,
  1658.          digitizing frequency and Ultrasound memory
  1659.          (22 kHz 16-bit is pretty good for all memory
  1660.          configurations)
  1661.  
  1662.        ■ Use volume-maximised samples (conversion utilities
  1663.          will maximise your samples' volumes)
  1664.  
  1665.        ■ Use chord samples if you have good ones
  1666.  
  1667.        ■ Tune your melodic samples with each other as well as you can
  1668.          (tuning percussive samples is not a bad idea either)
  1669.  
  1670.        ■ If being able to change samples quickly is important, tune all 
  1671.          your samples to absolute pitch and save them in headered 
  1672.          format.
  1673.  
  1674.        ■ Use plenty of looping if you find good looping points
  1675.  
  1676.        ■ Avoid using too many chip samples as melodic instruments
  1677.  
  1678.  
  1679. And by the way, the above are *only* suggestions (ie. no need to get 
  1680. annoyed by what the old Trackjoy author is babbling about!) like this 
  1681. whole chapter, but going by them most of the time has made my music 
  1682. sound better than it did before. You are of course completely free to do 
  1683. as you please.
  1684.  
  1685.  
  1686.  
  1687. A few words about you stereo equipment
  1688. ──────────────────────────────────────
  1689.  
  1690.  
  1691. It may seem obvious that you should use a high-quality stereo system
  1692. with your sound card, but composing computer music makes this even more
  1693. important. For one thing, listening to poor-quality audio equipment can
  1694. make you quite annoyed because nothing seems to sound really good and
  1695. your music seems terribly messy and dull.
  1696.  
  1697. The basic problem with bad audio equipment is that you will be
  1698. constantly re-equalising your music to sound good on that system. What
  1699. happens to me is that I compose a TJ-song with two really lousy
  1700. speakers and pretty rotten amplifier, because, totally in contradiction
  1701. to what I'm writing, I haven't got round to purchasing a proper system.
  1702. Then when I record the song on tape and listen to it with proper
  1703. speakers and a high-end amplifier, I notice all the bass sounds are
  1704. terribly loud and fuzzy and the treble parts hiss at me like three
  1705. big, slimy & green snakes.
  1706.  
  1707. I would also like to remind you that the engineering quality of stereo
  1708. equipment really *does* matter. Differences between amplifiers are
  1709. surprisingly obvious, and they are also audible and measurable (with
  1710. test signals more complex than sine wave ─ it's funny how you start
  1711. hearing new sounds on CDs when you get a better power amplifier), and
  1712. even speaker cables really do make a difference. Don't put all talk
  1713. about cables, least significant bits, oversampling or amplifier power
  1714. supplies aside as high-end-rubbish.
  1715.  
  1716. A final comment on using Trackjoy with your stero equipment: Try to
  1717. limit the maximum software output volume Trackjoy can give (Max. master
  1718. volume = 256). With too loud volumes the Ultrasound starts distorting
  1719. samples. I presume the internal pre-amp can't quite cope with the full
  1720. output voltage of the DAC. So this is actually not an audio equipment
  1721. problem.
  1722.  
  1723.  
  1724.  
  1725.  
  1726. ─────────────────────────────────────────────────────────────────────────
  1727. 9. Trackjoy FAQ                                                    [.FAQ]
  1728. ─────────────────────────────────────────────────────────────────────────
  1729.  
  1730. Q: How come you have an FAQ even though this is the first release?
  1731. A: So that I could make a dumb moron like you look stupid.
  1732.  
  1733. Q: What does FRB mean?
  1734. A: It stands for the Fairly Ravenous Beast that's going to eat you.
  1735.  
  1736. Q: Why did you just lie to me?
  1737. A: Uh, did I lie? Oh well: So that I'd have more entries in this FAQ.
  1738.  
  1739. Q: What does "Örörörörör" mean?
  1740. A: Read TECH.DOC
  1741.  
  1742. Q: That didn't help. What now?
  1743. A: Örörörör! Does somebody actually care?
  1744.  
  1745. Q: No.
  1746. A: That was a question, right?
  1747.  
  1748. Q: Do you ever feel stupid inventing all the questions and answers yourself?
  1749. A: No, but I bet you feel stupid reading them.
  1750.  
  1751. Q: How are you going to answer Frequently Asked Stupid Questions, like
  1752.    this one?
  1753. A: Örörörörörörörö!
  1754.  
  1755. ■ More entries will be added when people actually start asking
  1756. questions ─ frequently.
  1757.  
  1758.  
  1759. ─────────────────────────────────────────────────────────────────────────
  1760. 10. Trackjoy Frequenctly Reported Bugs (FRB) List                  [.FRB]
  1761. ─────────────────────────────────────────────────────────────────────────
  1762.  
  1763. Q: Why is this list so short?
  1764. A: Because Trackjoy is such a bugfree program.
  1765.  
  1766. ─────────────────────────────────────────────────────────────────────────
  1767. 11. Trackjoy: The Next Version                                     [.TNV]
  1768. ─────────────────────────────────────────────────────────────────────────
  1769.  
  1770.  
  1771. What the next release will contain depends partially on the amount of 
  1772. bugs that are found, and how serious they are. If some really nasty bugs 
  1773. are found, I will try to fix them in a few days after they are reported, 
  1774. and call the fix-versions 0.95ß to 0.99ß. When we get to 1.0ß, Trackjoy 
  1775. should also support everything version 1.0 will support (all special 
  1776. commands). After most of the bad and annoying bugs in that version are 
  1777. corrected, I will release the final version 1.0.
  1778.  
  1779. Version 1.0 should include:
  1780.  
  1781. ■ New special commands:   Tremolo, Note delay, Retrig, Stereo "rotation",
  1782.                           Stop all voices, Dynamic volume ramping and
  1783.                           Note portamento and Trill (possibly).
  1784.  
  1785. ■ All colours configurable (new colour selection system)
  1786.  
  1787. ■ Palette restoring
  1788.  
  1789. ■ More configurable keys
  1790.  
  1791. ■ More block manipulation commands
  1792.  
  1793. ■ Better chord enetering systems
  1794.  
  1795. ■ Real-time recording will be fully supported (even now, it works fairly 
  1796.   well. This is 'undocumented', since it's not entirely reliable, but 
  1797.   pressing Ctrl-F1 will activate REC mode, so that when you are editing 
  1798.   the pattern that is currently playing, the cursor will follow the row 
  1799.   that's playing.)
  1800.  
  1801. ■ Obviously implementations of all your *good* ideas, which you will 
  1802.   have to e-mail to me, since I am not currently connected to the 
  1803.   telepathy network.
  1804.  
  1805.  
  1806. If I continue the Trackjoy project, version 1.1 should have mouse 
  1807. support (with one of those nice graphical mouse cursors in text mode) 
  1808. and enhanced text mode (neater boxes and fonts etc.), perhaps with 
  1809. additional screen lines and support for larger screen modes such as 132 
  1810. x 44 or 100x40. And perhaps even a system where you are allowed to enter 
  1811. the BIOS text video mode, plus the screen size (unless it can reliably 
  1812. be read from the BIOS memory area), which would mean support for unknown 
  1813. video modes.
  1814.  
  1815. Another thing that might become available is another interrupt system,
  1816. this time enabling writing drivers for Trackjoy. If I manage to get
  1817. over my hatred for Creative Labs' foul AWE32 developer "information" 
  1818. package, I might support the AWE32 through a driver like this, although 
  1819. this is very uncertain at the moment. In any case, if anybody is 
  1820. interested in building an interrupt-driven driver for Trackjoy, please 
  1821. contact me, and I'll try to speed this thing up.
  1822.  
  1823. ─────────────────────────────────────────────────────────────────────────
  1824. 12. About programming, support and the author                     [.prog]
  1825.    + The reason why TJ for Win will never be
  1826. ─────────────────────────────────────────────────────────────────────────
  1827.  
  1828.  
  1829. Programming
  1830. ───────────
  1831.  
  1832.  
  1833. If you are interested in reading or writing the file formats Trackjoy 
  1834. uses, which I very much doubt, insult :) the technical documentation 
  1835. (TECH.DOC) and when you can't make head or tail of that, me. For 
  1836. information on Scream Tracker III formats, see ST3's technical 
  1837. documentation included in the ST3 package. For information on me, read 
  1838. "About the author".
  1839.  
  1840.  
  1841.  
  1842. Product Support
  1843. ───────────────
  1844.  
  1845.  
  1846. Ha! Ha ha ha! Product Support? Heh. At the moment, at least, there 
  1847. definitely is no such thing as official product support for Trackjoy. If 
  1848. you manage to get a message my way, that's already a lot. I will 
  1849. probably continue developing Trackjoy, fixing bugs and re-editing the 
  1850. documentation, so you may see some new versions appearing now and then. 
  1851. But really: don't expect too much.
  1852.  
  1853.  
  1854.  
  1855.  
  1856. Trackjoy for Windows
  1857. ────────────────────
  1858.  
  1859.  
  1860. Trackjoy for Windows??? Yechh... what a revolting idea. No, but
  1861. seriously, there is definitley *never* going to be a Trackjoy for
  1862. Windows, and there are several totally magnificent reasons for this.
  1863. The first is that I hate Windows. I think it's the biggest and nastiest
  1864. and grossest disease the PC World ever contracted, and programming in
  1865. it isn't my idea of fun. Then there are a number of technical points.
  1866. 1) There simply isn't any *point* in making a program like this in
  1867. Windows, 2) Nobody should be expected to wait for tens of seconds to be
  1868. able to use Trackjoy (unless you are one of those people who spend most
  1869. of their time in Windows, in which case I can only be sorry for you),
  1870. 3) Trackjoy is likely to run a lot better and faster in DOS and 4) I
  1871. hate making programs that look exactly the same as hundreds of others.
  1872. Besides, what does joy have to do with Windows?
  1873.  
  1874. So you now realise that it is a complete waste of time wanting a 
  1875. Trackjoy for Windows (Yeah, I know, it would probably be called
  1876. something gross like WinJoy...)
  1877.  
  1878.  
  1879.  
  1880. About the author
  1881. ────────────────
  1882.  
  1883.  
  1884. This is what you have been waiting for. Yeah, Trackjoy has an author,
  1885. who is also the author of this great document, ie. me. I'm called Tomi
  1886. R. Joy and I live in Finland in a city called Vantaa right next to
  1887. Helsinki just a couple of kilometres from the airport. I've been
  1888. programming for around four years now, starting with BASIC and then
  1889. moving to C and assembler mix. Not very surprisingly, perhaps, I use a
  1890. lot of my spare time playing the piano and the computer keyboard.
  1891.  
  1892. Some of you will be wanting to know what kind of monster made all this
  1893. rotware. Uh... oh... Well ─ I'm cool, that's what I'm like! What did you 
  1894. expect ;) Besides being cool in general, I like being cool in a 
  1895. multitude of specific ways. For instance, I don't believe in the army, 
  1896. nor in atheism or agnosticism, but in love, life and what you get when 
  1897. you subtract the first three from everything. I'm both Finnish and 
  1898. English, and that is probably why I insist on spelling things in the 
  1899. good old British way, ie. "colour", "metre" and "through".
  1900.  
  1901.  
  1902. ═══ The Greetings ═════════════════════════════════════════════════════
  1903.  
  1904. My greetings go to ─ naturally in summamutikka order ─ Markku Kuparinen 
  1905. of SQR (Örörörörörö ör rör rö!), Mikko Viertola (Drop dead, Fleischman), 
  1906. Mirja Kuparinen (who's going to hate me for this), Eeva Tidenberg, Harri 
  1907. "Tomi, I found a new bug in Trackjoy" Joy (he leaves bug reports in my 
  1908. autoexec.bat file!) and everybody at Helsinki DOK, who have been 
  1909. *absolutely* wonderful to me for over a year now.
  1910.  
  1911. ═══════════════════════════════════════════════════════════════════════
  1912.  
  1913.  
  1914. How to contact Trackjoy's author by snail-mail or e-mail
  1915. ────────────────────────────────────────────────────────
  1916.  
  1917. My snail-mail address is
  1918.  
  1919. Tomi Joy
  1920. Veromihentie 6    /* A word of warning: this means "taxman's road" */
  1921. 01510 Vantaa
  1922. Finland
  1923.  
  1924. *** Until October 1995 my e-mail address is
  1925.     tjoy@uiah.fi
  1926.  
  1927. I love real paper letters, but I like e-mail as well, of course. You 
  1928. don't need a good reason to write. Sending a post-card, letter or
  1929. e-mail is not obligatory. Sending money is not wanted or encouraged. (If 
  1930. you want to make a donation, a brand new 32-bit C++ compiler will do 
  1931. nicely ;-)
  1932.  
  1933. By the way, I you write, please do so in English, Finnish, simple French 
  1934. and if you *really* must, in simple Swedish. But please don't expect me 
  1935. to answer in French or Swedish, unless you are prepared to read 
  1936. something *so* gross that you will *never* be yourself again. And no, I 
  1937. will *not* accept any Klingon.
  1938.  
  1939. I will be pleased to answer questions about Trackjoy or any other of my 
  1940. »products» and listen to complaints, praises and development tips with 
  1941. everybody, so feel free to contact me.
  1942.  
  1943. │ Muuten... Jos olet suomenkielinen: Jos tapeeksi ihmisiä ihan väkisin
  1944. │ tarttee suomenkielisen version tästä manuaalista, niin voinen tehdä
  1945. │ tärkeimmistä kohdista jonkinlaisen suomennoksen. Ohjelman
  1946. │ suomentaminen on sitten ihan toinen (lue: mahdoton) homma, kun kaikki
  1947. │ tekstit on xprintf():tty ruudulle, ettekä te kai sellaista kaipaakaan.
  1948.  
  1949. One more thing. As a user, please remember that I, as a freeware 
  1950. programmer, am not dependent on "support" from users. If you dislike my 
  1951. program, you may complain, but please do not flame. However, even if 
  1952. some moron tries (unsuccesfully) to flame me, I will probably just 
  1953. ignore him, and the chances are that you will still get new versions. 
  1954. And by the way, all flamers will be listed on the Trackjoy Black List, 
  1955. distributed with future versions of the program.
  1956.  
  1957.  
  1958. ────────────────────────────────────────────────────────────────────────────
  1959. Trackjoy user's manual               *** The old Babbler finally shut up ***
  1960. ────────────────────────────────────────────────────────────────────────────
  1961.