Original URL: http://www.united-trackers.org/resources/tracking/it2xm.htm

Tips for IT >> XM Conversion

Written by Dark Spirit
Revision 1.00 - 15.1.98

  This file was written in order to help musicians in the mind-blending job
  of converting IT files to the XM format. We usually find ourself in need
  to do so when we want to use our music in demos/intros, where the player
  is sometimes uncompatible of playing ITs, or takes too much CPU power (with
  or without the use of NNA in the module). There are already many convertors
  out on the scene-market, but non of them is bug free (1.1.98). That is why
  we musicians still carry the need to redefine our modules right, in order
  to prevent converting problems, and keeping the sound as close as possible
  to the original under IT.
  The following document will try to explain how to fix out various problems
  of convert, such as channel adjustment, Pan Problems, Samples/Instrument
  Fuckups, notes unplayed, samples unheard, and many other. Beside the
  problems which can be solved by a proper retracking, I'll try to explain how
  to deal with the bugs which you sometimes can not understand their source,
  and give you some helpful tips how to prevent them.
  Needless to say that this is the first revision of the document, and that
  I'll be more than happy to receive tips from other sceners who know more
  details about this subject.
  The need to convert may come after writing the module, but in most of
  the cases, your beloved coder will inform you happiely:
  "We are using XM coz I am too lame/lazy/tierd to rewrite my sources"
  (Kombat, don't kill me;). If you are writing the module already knowing
  that it WILL become an XM eventually, the job is alot easier. All you need
  is to keep in mind the (MANY) limits of that format, and test your
  module from time to time by converting the unfinished version. In that way
  you can always spot the cause of errors, and you have less patterns to
  scan with black spots under your red eyes. ;)
   First step
  The first step is obviously choosing the converting-proggie.
  There are two leading convert-proggies today: IT2XM by phoenix of Hornet,
  and the Mod-Plug player/tracker.
  I advise to use IT2XM for it is the best currently, MP is not stable
  enough yet. This text file will deal this with the assumption that this
  will be the program you will use, but it will probably be suitable for
  other programs as well, hopefully soon to be out.

   Second step
  Create a blind first time convert. Hear the result. Get aware of the
  problems you have to fix. Read the error-file IT2XM usually produce.
  that will give you a general idea of what should be done in order
  to fix the problems, and what kind of retracking should be made. 
  Here is the module information you lose when you convert to XM:
   - NNA / Duplicate note check (might be shitty:)
   - Channels 33-64 (We can live with that)
   - Pitch envelopes (Who use this crap!?)
   - Channel volumes (That can be fixed)
   - Default channel panning / Volume (Easy stuff)
   - Envelope nodes above #12 (Can be optimized by the tracker)
   - Notes C0-B0, C9-B9 ('Merd!;)
   - Instrument notes (eg. C-0 -> C-3 01 becomes C-0 01) (Big shit)
   - SHIFT-F9 message (How can we live?!)
   - Default channel volume (Easy Stuff 2)
   - Some IT only effects (Brrr...)
   - Sample gnenral 
  Things like 16-bit samples, volume/panning envelopes, and most volume
  commands are converted. If you find problems with this stuff, continue
   Third Step
  That is the time to start working!
  Now I'll simply scan problem after problem you might find, and I'll try
  to give a proper solve for that crap.
  NO NNA - The Duplicate note check is not too important. What we DO need
           is the powerful NNAs. The way of creating a rather similar
           sound to the result of NNA, is by returning to the Multi-Channel
           Tracking Technique, which developed on S3Ms and still remain
           in heavy usage by FT2 users.
           All we need is to put the notes in more than one channel.
           if we will put a note-off command (===) next to each note, we
           will receive an exact result of whatever used to happen with an
           NNA! Here is what you can do in order to convert manually all
           kinds of NNAs to a regular pattern information:
           Note Cut  - Place a ^^^, or put the next note on the same channel.
                       Note that puting a new note on the same channel might
                       confuse you later on, because it will "break" the
                       rather organized structure of the notes.
           Continue  - Do nothing! Leave the channel wide open. The sound
                       will be over only after the next note, but hey, you
                       don't want the previous note to last forever, right?
           Note Off  - Draw the desired Envelope, and place a === next to the
                       note. That should do the work.
           Note Fade - you has many options here. You can either draw a fade
                       in the Envelope, But there you risk a sudden cut b4
                       the right time due to the appearance of the next note
                       on the same channel. If you dont want to use/change
                       the VolEnv, you can use the D00 Effect, or work with
                       exact values on the volume column (use the ALT-K block
                       function to make your life even easier).
           Few Examples of what i meant:
           | A-5 |                  <<< Those notes used a NOTE-OFF NNA
           | ... |                      under IT. 
           | F-5 |
           | ... |
           | D-5 |
           | ... |
           | C-5 |
           | A-5 | ... | ... |      <<< Here is their new order for XM.
           | ... | ... | ... |          We use 3 channels in order to give
           | === | F-5 | ... |          each note time to "Breath", to off
           | ... | ... | ... |          itself without any outer disturb.
           | ... | === | D-5 |          Note that if you use a long VolEnv,
           | ... | ... | ... |          You should use more channels. The
           | C-5 | ... | === |          length can be easiely checked by
                                        turning off all channels except one,
                                        and checking by a fast F6 if the note
                                        reach full silence before the next in
                                        his own channel.
           | A-5 | ... | ... |      <<< By changing the === to a proper D00
           | ... | ... | ... |          effect, we can keep the envelope safe
           | ...D| F-5 | ... |          for other usage, creating the nice
           | ...D| ... | ... |          NOTE FADE effect. I remind again that
           | ...D| ...D| D-5 |          exact volume values in the Vol column
           | ...D| ...D| ... |          can do the job as well.          
           | C-5 | ...D| ...D|                                          
        | A-5 | ... | ... | ... |   <<< This is the continue option.    
        | ... | ... | ... | ... |       no note intrudes the notes on the 
        | ... | F-5 | ... | ... |       channel. Every note has a stand alone
        | ... | ... | ... | ... |       channel. This is what we do if we 
        | ... | ... | D-5 | ... |       need to continue a looped sample.
        | ... | ... | ... | ... |      
        | ... | ... | ... | C-5 |                                        
           | A-5 | ... | ... |      <<< That is what we do if we want to
           | ... | ... | ... |          Continue a short sample. There is
           | ... | F-5 | ... |          no need to create a new channel for
           | ... | ... | ... |          the C-5, because the A-5 has already
           | ... | ... | D-5 |          end! 
           | ... | ... | ... |         
           | C-5 | ... | ... |                                          

           sometimes you dont have enough room for opening more channels next
           to the one you want to expand. Just like in this case:
             1   2   3   4   5   6   7   8   9   10  11  12
           | p | M | c | c | c |   | t | p |   |   |   |   |
           p = percussion channel
           c = the chord channel
           M = the channel you need to expand
           t = other samples
           [note:this problem can be solved if we use less than 32 actual
           channels. If you dont have enough free channels, read ahead]
           Our NNA sample is "traped" in channel 2! channel 3,4,5, where we
           would have usually open the notes are already taken by the chord!
           We will not put one channel in 6, another in 9,10, and use the
           2 channel as the last one, because such an expand might confuse
           us and make the expanding jub even shittier than it already is.
           How can this be solved? We will simply MOVE the samples to another
           place! We can either cut the entire 2nd Channel, and paste it
           on the 9th, or we will cut and paste channels 3,4,5 in 9,10,11,
           a thing that will allow us to use the space they opened for the
           2nd channel expand.
           There is an easy way to create a proper multi-channel expand,
           diffrent than rewriting manually the notes. It is specially
           helpful when the notes are ordered one after another without
           space change (i.e. a5-e5-c5-d5-b4-g6).
           1. block the channel which need an expand.
           2. paste it few times, as much as you need, over empty channels.
           3. set the 'skip' value to the space between each note.
           4. tag the right channels as "Multi-channel" (ALT-N).
           5. go to the first note on the first channel, and press '.' as
              long as you need. the tracker will automaticly remove the
           6. do this again for every channel.
           7. now you have deleted 3/4 of the notes, thing which gives you
              the right balance - a single note over five.
           8. If you dont understand a word of what I have just said, read
              this again, try to figure it out yourself, or give me a call.
           Another important thing one must remember, is to use the channels
           wizely when you expand the notes of a single channel.
           Many times the notes are actually "a broken chord", like in one
           of Shudder's modules:
           | D-3 |                     <<< As you can see, the notes creates
           | F-3 |                         a chord: 
           | A-3 |                         D-3,F-3,A-3,D-4
           | F-3 |                         If we'd open them freely, with 
           | D-4 |                         the previous technique, that 
           | A-3 |                         could be the result:
           | F-3 |
           | A-3 |

           | D-3 | ... | ... | ... |   <<< We have a problem!
           | ... | F-3 | ... | ... |       As you can see, the notes in each
           | ... | ... | A-3 | ... |       channel do not match each other!
           | ... | ... | ... | F-3 |       The sound is shitty, and the chord
           | D-4 | ... | ... | ... |       seems "untuned", even it actually
           | ... | A-3 | ... | ... |       (in the notes level) tuned 
           | ... | ... | F-3 | ... |       perfectly.
           | ... | ... | ... | A-3 |       How can this be fixed?
           | D-3 | ... | ... | ... |   <<< Walla! 
           | ... | F-3 | ... | ... |       Without any usage of more 
           | ... | ... | A-3 | ... |       channels, we created a soft,
           | ... | F-3 | ... | ... |       clean, juicy sound! :)
           | ... | ... | ... | D-4 |       By devoting a channel to each note
           | ... | ... | A-3 | ... |       of the chord, there are no 
           | ... | F-3 | ... | ... |       internal conflicts of sounds,
           | ... | ... | A-3 | ... |       and the result is divine.
  LOSS OF CHANNELS - As you all know, IT has 64 actual channels for the
           Tracker's use, while FT2 has no more than 32.
           normally we never exceed the 32 channel even if we use IT,
           but when this happen, we need to remodify the module, or
           the 33-64 channels will be gone after the convert.
           Now our goal is to decrease the amount of channels, with the
           minimal change of the sound output.
           first of all, we will check the problematic channels, and judge
           if we really need them. If they are no more than a single Crush
           Cymble, or the 5th echo of some lead, we can simply wipe them
           off. If they are critical for the sound output, we will start
           to check other possibilities.
           1. Check if you don't have any empty channels inside the range
              01-32. Sometimes we keep empty channels in oder to keep the
              module organized, or we forget that the info they contain has
              been deleted by us few patterns ago already. If you have empty
              places of where you can place the out-of-range channels,
              do so. If all channels are taken, continue reading.
           2. Check what is the contance of the channel you want to move.
              If it is no more than a single Crush, or a repeating Snar, you
              can mix them with an other percussion channel, even if you
              have to delete few notes off the original channel. You can
              also use echo channels, which start late, and gives you
              just enough space to insert a Crush or a similar sound. Note
              that even if you del few hihat notes, their loss might not be
              noticed by the listener (32 channels make a lot of noise ;).
           3. Still no good? Look for unnecessary channels inside the range
              of 01-32. 5th echo of a theme, small hihat lines, and other
              not-so-important channels can go "off-stage" for now, and
              do their big "comeback" later on, where the need of so many
              channels will be decreased ;).
           4. Still has problems? (Gee, you are one hell of a shitty
              tracker! :) Look again. Are you sure you need all of those
              channels? Comperize (titpasher), or read the last advise i has
              to give you...
           5. The last advise: OPTIMIZE! Yep, just like in coding, this is a
              shitty job, which fuck up your module structure, and you better
              use it only if you are one hell of a tracker, or you know that
              this will be the last time u'll edit your module, for optimizing
              is not something which is easy to deal with later on...
              What does Optimization mean?? That is the "Shpachteling" (A
              hebrew word with no English meaning, sorry) of your out-of-range
              channel's notes. I used it only 3 times in my life, once with
              the Immortals demo OSHO, and twice more with short 4CH modules.
              What you need to do, is to find ANY mili-second of silence in
              the same row of your note, but under other channels(!).
              after you find one, you:
              - press ENTER on your note in order to move it into the memory
              - move to the channel with the mili-second of silence
              - press SPACE to put your note there
              - move to the next row and do the same
              - close your channel and check if the sound is good enough
              - if yes, del the Shpachteled channel
              - you has one channel less! :)
              You are advised to save your module before you start to
              Shpachtel, or you might fuck up the pattern accidently in a way
              you will not be able to fix, or even understand!
           6. Sometimes we get a bit SowUpPa-k3wL and duplicate the same
              channel twice. Del those lame duplications. Aside of the new
              free channel, you will also get rid of that unjust Lam3r label.
  PITCH ENVELOPES - Hummm... This Function is hard to simulate. The good
              news are that no one use this crap ;). If you do make a use
              with this function, there are several ways to create a close
              1. Make sure you really need this function.
              2. Most of the time, trackers use this function for Vibrato,
                 and other pitch effects. You can substitute the envelope
                 By using the effects, like H,J,U and others.
              3. If Effects are no good (too much stuff to change, or a
                 conflict with other effects), you can try something I dont
                 like personally, but might do the job. Use the ITWAV.DRV and
                 create a wav of the sample with the effect of the PitchEnv.
                 The result will be a new sample with a built-in pitch
                 change. The only problem is, that the speed of the internal
                 pitch changes, will be faster according to the note hight,
                 and slower as you use a lower octave... Keep this in mind.
  CHANNEL VOLUMES - XM has no support of channel volumes, equals no support
                 of the Mxx type Commands. The convertor will simply remove
                 all of the effects from the pattern data, and leave us with
                 full channel volume. There is a simple, though lengthly
                 proccess, the tracker can execute in order to fix the
                 1. Find all places where the Mxx commands are in use.
                    You may find the Warning file of IT2XM helpful here.
                 2. Go to each channel with that command at it's top, and
                    erase the effect.
                 3. Block the entire channel (assuming you do not use more
                    than one command each channel. If you do, Block up until
                    that command) With the Alt-L.
                 4. The value range you can define for an Mxx Command is
                    00-40 (00-silence, 40-full volume). All we need to do
                    is to manually reduce the volume of the notes according
                    to that value. There is a little math problem here.
                    the Reduction we shall execute is based upon the ALT-J
                    command (Volume change of all notes in block using a
                    specific percent value), a command of 0%-200%.
                    All we need to do is a small calculation of the final
                    percent we must enter. After we wipe off the Mxx, the
                    Tracker 'see' the channel as it has a full volume
                    (equals 100%). Here is a small table to explain the
                    calculation we need to do:
                    Mxx Value |  ALT-J %
                       40     |   100%    (No change is made)
                       30     |   75%     (3/4 of the original)
                       20     |   50%     (1/2 of the original)
                       10     |   25%     (1/4 of the original)
                       00     |   0%      (Not very useful)
                    ...That should make it clear enough. If you still find
                    any problems understanding the calculations to be made,
                    contact me, or a 5th grade math teacher. :)
                    If the Mxx command is used for sliding in/out channels
                    volume (to create a fade-in/out effect), you can block
                    numerous rows of the channel, decreacing the volume of
                    the notes with the ALT-J (according to the table above),
                    By taking the Mxx value at the top of the block for
                    the calculation. Needless to say that the smaller
                    the blocks you mark and change, the smoother the sound
                    of the fade-in/out will be. I found out that even a 16
                    rows block can produce a good enough result, but you can
                    use even 8 rows, or 4 rows if you have the time and will.
                    It is a boring job, nothing to do about it...
                    NOTE: Remember that you must track down the channels
                          according to the orders, for the effect remain
                          in the memory even if it is not in the beginning
                          of the patterns, so even channels without the effect
                          on the certain pattern might be actually using one
                          from previous patterns played earlier (order list).
  DEFAULT CHANNEL VOLUME - The solution is exactly the one mentioned in the
                 section above. Check out what is the value of the channel
                 volume under F11, and change the notes volume in the
                 patterns with ALT-J, as already explained in the table
                 before. Note that unlike the Mxx command (40hex), you now
                 has to calculate 128(dex) as the 100% value.

  SAMPLE GLOBAL VOLUME - A big fuck... Many trackers forget that unlike the
                 IT, FT2 has no SAMPLE GLOBAL VOLUME, only a default one.
                 That is the cause of many "Mysterious" balance changes, and
                 this can even crush IT2XM sometimes! In order to fix this,
                 you'll need no more than a calculator (or your brain) and
                 a little bit of your time. First of all, I advise you to
                 fix this problem only after the module is finished. The
                 following process is hard to undo, needless to say that
                 it throw away some of the sample information, equals loss
                 of quality on later readjustments.
                 The trik is to use the 'ALT-M F3 Option', the command which
                 allow us to change the internal-sample amplification, as
                 appeared in the Sound-scape scope in the samples menu.
                 Most of the time, ALT-M is in use by use when we want to
                 amplify a weak sample, but this time we will decrease the
                 volume instead of increasing it. Save your module before
                 you start messing with this. As I already said, an UNDO
                 process can be a pain in the ass at this case!
                 The only problem stands here is how to convert a 00-64
                 value to a 0%-100% one. this can be solved easyly.
                 The calculation is simple, based upon an 8th grade level
                 math. We define the 64 value as our 100%. By multipling
                 the global volume in 100, than deviding it by 64, we will
                 recive the exact percentage we sould define in the ALT-M
                 (Maximum volume) 64 - 100%
                 (global volume, y) 47 - ???% (New percentage, x)
                 Here is an example of that simple technique:
                 lets say that the global volume is 47. The equation should
                 ^^        ^^
                 |         Alt-M value (by %)
                 Global Volume
                 We ignore the numbers after the period, and press ALT-M,
                 there we type 73. Than we change the global volume to 64,
                 as it shall be under XM, and our work is done!
                 We now has a same volume result with no sample global volume
                 involved! Needless to say, that if the result (i.e.) is
                 59.98, we will enter 60 as the ALT-M value.
                 Just for your convinence, here are more examples:
  DEFAULT CHANNEL PAN - Nothing more easier! Check what is the pan value
                 Under F11, and on the first row of the first pattern played
                 in your module, insert it under any pan effcet (NOT in the
                 volume column!), such as the S8x, or the Xxx.
                 If the effect column in already taken, create a pattern with
                 all the pan data on row No.00, and place a C00 command on
                 the second row. Place that pattern on the top of your order
                 list, and here you go - a Default pan option METUHMENET.
                 (Sorry non-hebrew speakers, TIHMUN has no english meaning;)
  ENVELOPE NODES ABOVE 12 - Here we can conduct a short Optimize. The First
                 question is as usual "Do you really need so many nodes in
                 your envelope?". If the answer is NO, del all the unnecessary
                 nodes and check how many you got left. If you got 12 or
                 below, your problem is over. If you still has a problem,
                 read on. What does OPTIMIZE mean? To optimize mean to use
                 less nodes, with a minimum change of the output. Here are
                 few examples such process:
                 note: sorry for lame ascii art.
                i===================================================i Example
                | :     +                       *                 : | No. 1
                | :   /   \                   /   \               : |    
                | : /       \               /       \             : |
                | *-----------X-----------X-----------X-----------* |
                | :             \       /               \       / : |
                | :               \   /                   \   /   : |
                | :                 *                       *     : |
                  1     2     3     4     5     6     7     8     9
                * = Node
                X = Node to be optimized (delete:)
                + = Regular node I refer to later.
                : = Envelope loop
                As you can see, the X nudes are not really necessary.
                They are "Left overs" of the Envelpes first-time-creation,
                which the tracker probably put as a "holding spot" while
                he moved up/down the other nodes (like the + node). If they
                will be deleted, the line will stay as is, for they are the
                3rd point in a line already connected by two *.
                The next step of optimize, is to find repeating patterns
                in an envelopt. For an example, it is obvious that the
                node-sequence 1-5 and 5-9 (Look under the envelope if you
                can't count the nodes yourself) is exacly the same.
                Therefor, we can delete the nodes 6,7,8,9 and move the
                end-limit of the Envelope-loop to node 5.

                After those two "optimizes", there is the result:
                i===================================================i Example
                | :     *                 :                         | No. 2
                | :   /   \               :                         |    
                | : /       \             :                         |
                | *-----------\-----------*------------------------ |
                | :             \       / :                         |
                | :               \   /   :                         |
                | :                 *     :                         |
                  1     2           3     4                             
                No magic :). 9 nodes turned into 4, with no change of the
                final output.
                Note: I know that on my example there are only 9 nodes
                      (equals 'no problem'), but try to understand the
                      global idea of an optimize, instead of dealing
                      with this technic crap. ;)
                But this is a simple case. What can you do if you has a
                sinus form?
                i===================================================i Example
                | :    ., * ,.                      :               | No. 3
                | :  *'       '*                    :               |    
                | :/             \                  :               |
                | *----------------X----------------*-------------- |
                | :                  \             /:               |
                | :                    *,.     .,*  :               |
                | :                       ` * '     :               |
                  1  2 3  4  5 6   7   8 9  A  B C  D
                * = Node
                X = Node to be delete, like in the first example.
                . = Node I can't really draw with * :)
                , = Line I can't really draw too :)
                : = Envelope loop
                Oh fuck, that looks ugly... :)
                Well, All nodes seem to be required for the sinus wave form.
                We must remember that it is impossible to decrese the amount
                of nodes without changing the output at all, but we can
                create an effect which is quite close to the original. 
                First we shall del the 7th node (an X node, like in example
                No.1). Next we shall delete nodes  3, 5, 9 and B (all of them
                are '.'). We now stand in front of a trapez-like wave form.
                The last step will be replacing nodes 2, 6, 8 and C (* nodes)
                in a way that will create best the illusion of a circle.
                Important note: Try not to delete more nodes than you need,
                Exept the one that do not change the output (like X nudes).
                Once you reached 12 nodes, don't optimize further more.
                There is no reason to do so, and you are just fucking your
                desired sound! If Example No.3 was your actual case, all
                you should have done was to delete node 7, and there to
                stop the optimize. Why? 13nodes-1node=12nodes, and that is
                EXACTLY the right amount.
                The last case of too many envelope nodes, is the case of
                "HisTericlE-sUpaHh-KeWl-PanNNinG", were the nodes creates a
                weird landscape which throw the sound from left to right
                like psycho:
                i===================================================i Example
                |    *   *               *    :        *    :       | No. 4
                |   / \ / \          *  | \   :       / |   :       |
                |  /   *    \       / \ |  \  :  *   /   |  :       |
                | *----------*-----/---*----\-:-/-\-/-----*-:------ |
                |             \   *          \:/   *       \:       |
                |              | /            *             *       |
                |               *             :             :       |
                  1  2 3 4   5  6 7  8 9  A   B  C D   E  F G
                All I can advise to you here is to be abit less SwuppaK3wl,
                and simply wipe-the-fuck-off few of those ultra-neat
                nodes. If you simply must use this effect, try to create
                a no-less-k3wL structure with only 12 nodes, and loop
                it over and over again.
  NOTES OUT OF RANGE - So, you lost every note with X-0 or X-9?
                before I give you a tip how to fix this, I must ask you
                something. WHY THE FUCK DO YOU USE SUCH NOTES!? Lema'an
                Hashem, 7 octaves are not enough?! do you have to be
                so fucking original!? >%(
                Now. If you have such a problem, there is only one option
                I have in mind right now, but it is long, boring, and
                lengthly. Spot all notes with the unsupported octave, block
                them, and use the ALT-Q/ALT-A to give them a more common
                definition of pitch. After you changed them to a proper
                scale, Go to F3, and change the octave of the sample
                (Frequency can be changes with an ALT+/-).
                If you use Both X-0 and X-9 for the same sample, so you can't
                change the sample octave, you REALLY suck, man. :) Though
                you suck so bad, There is a way to fix it (I'd simply serch
                for a new tune, if I were you...). Load the same sample as a
                new instrument, and instruct the notes to use the new sample/
                instrument. Change the Frequency as I explained earlier,
                and my god help your poor soul. Good luck, BTW... :)
  SHIFT-F9 MASSAGE - Oh Fuck!!! We are lost!!! How can We Live?!!?!?!?!?!?!?
                Write what you want to say in F3/F4, put a Read.me file,
                or Force your coder to put your words on the demo/intro.
                (Why do I even bother???)

  IT-ONLY EFFECTS - I can't really find any essential effects supported by
                IT only. On many cases, you can simply give them over. If
                you really need a particular effect, try to think of another
                way that can produce a close result. Effects like Panbrello,
                can be replaced with a PanEnv. Try to think of a way to use
                supported effects insted, they might be as good just as the
                original effect.
                NOTE: I might list all of the unsupported effects and ways
                      of replacing them with others, on future additions
                      of this Document. Trackers who want to give some of
                      their knoledge in this field are asked to contact
                      me as soon as possible! :)
  NOTE ON PANNING - 8xx/Px, FT2's panning commands, only work on one note.
                To permanently set one, you'll have to either set the sample
                panning, set the panning on EVERY desired note, or use
                envelopes.  If you're only using a player outside FT2 for
                the XM, you can use the /P parameter for E8x panning.
                Panbrello fans should consider using P0x/Px0 or panning
                envelopes instead before converting. (by Phoenix)
   Fourth Step
  Cleaning the module!
  The best state is no error warnings by the converting program. Don't
  trust the convertor to wipe effects and other pattern data without you
  knowing exactly what is now missing. Don't be lazy! Remove the data
  yourself. Many "Magical" bugs you will work hard to fix might be coming
  out of such a case. Once you cleaned your module, you know where to look
  if you have any problems, and you will not need to check over and over
  again the patterns. I think I made myself clear enough. DONT let the
  convertor report any errors or wipe the info itself! Allow me to explain
  this by giving an actual example. IT2XM is based upon two steps cnverting:
  1. Reading the unsupported effect
  2. Ignoring it, give the appropriate warning
  This mean that module-information Phoenix forgot to include in his code
  (such as sample-global-volume) might cause a nasty crush.
  If you still dont reach me, let me just tell you this: YOUR CONVERTOR
  ...any qwestions? thank you.
   Fifth Step
  On good days, the last four steps should be good enough to convert your
  IT into XM without any problems. This last section deals with the so called
  'mystical' problems, bugs without any reasonable explanation. The problems
  and their solves, are based only upon my personal experience. I sure hope
  that all possible bugs went through my tracking career, but in case they
  didn't, *try to be creative*. Once again, I encorage you to contact me if
  you found a new converting bug or problem which is not mentioned in this
  document. If you already found the bug's source, and solved the problem,
  that can be even better. After all, this document is from and for trackers,
  give your share in the world wide fight. :) 

  MY MODULE KEEPS CRUSHING - Check once more if there is no IT only info
                inside the module. From my experience, even a 001 value
                of 'note fade' in the volume menu, no matter what the NNA is,
                can crush the entire process of converting, or cause a
                dos4gw error when running IT2XM.EXE.
  I HAVE NO ENVELOPE NODES - Sometimes you might found out that the convert
                process has deleted *all* nodes in one of the envelopes,
                usually the volume envelope. This mean that instead of two
                nodes (the minimum) connected with a line, you have zero,
                without the ability to create new nodes. One the good case,
                you will be left without a volume envelope, but usually this
                will mute the sample, or even currapt the entire module.
                I still have not found the cause of this problem, but I
                know a way to override the problem. From my experience,
                the fucked-up instrument is usually no.1 on the instrument
                list. Try to replace it's location with ALT-S on F4. If the
                problem still exist, read on. What can now happen, is a
                fuck-up on the new No.1 instrument. This leaves us with
                a new "TIHMUN" I invented during Mov79. :)
                After you have swaped the instrument to a "safe" location,
                load a new instrument, and place it as No.1 on the list.
                This istrument is actually a fictive instrument. Instruct it
                to address an empty sample-slot, or load a 1k sample which
                he can adress to. The sample can be any file, resized with
                the F3 ALT-F command. The bug should now fuck the fictive
                instrument, leaving the used instruments safe and sound. :)
  I CAN NOT HEAR SOME NOTES - This problem almost drove me nuts on Mov97.
                If you have some notes that are not played after the convert,
                It is probably due to the INCREDIBLY shitty way XM deal with
                PITCH-SLIDE-EFFECTS. Sometimes, specially when working with
                alot of Cut&Paste, we leave effect such as G00 at the
                beginning of the pattern. IT is smart all right, and it
                ignores the effect if there is no sound to be sled, but XM
                try to slide the silence before, equals SILENCE played (in
                your note pitch, hehe:). Del the G00 effect, and all other
                slide-effects, and your problem is solved.
                NOTE: many problems can be solved just by looking into the
                      module itself, and scaning after illegal commands or
  BIG FILES CAN BE A PROBLEM - Please note that as bigger the file is, the
                bigger the chances to find a problem while converting.
                Make your module smaller. Details of how to do it will be
                explained on future revisions of this ducument.
                Needless to say that BIG refers to KB-SIZE, not to LENGTH.
  If you don't know that already, the saved header of the converting programs
  is not exacly the same as the standart FT2 produce. This header mismatch can
  often cause a MIDAS crush, or other misidentification problems.
  Load your module with FT2, and save it instantly. The file size change
  approve my theory.
  Vwalla, my friend, you now has a Kosher XM in your hand. :)
  Well, that is all for revision 1.00. :)
  I hope you found this document useful, and I wish you that you'll never
  need it again.
  Always remember that the most important way of solving problems is being
  creative. Think! Documents like this one only gives you TIPS on your way.
  Thinking is the way to progress.
  (The audience puke due to this kitch, but duh, what the hack)
  That is all I can give you right now, why don't YOU share your techniques
  with me? Contact me:
  Oded Raz (972-04-9585-224)
  D. N. Misgav
  You can always leave a massage on Coders F/X.
  And now allow me to use this stage to ask PULSE (aka Jeffri Lim) a small
  question. WHY don't you support an XM save under Impulse Tracker? Why?
  Because of those VERY few assholes who distributed your Stereo-Wav driver?
  Why do you punish us all? We all hate those guys and disgusted by their
  actions. Why do you treat us all as such? After all, you are loved and
  admired by the entire scene. Don't you see that you only damage yourself
  I'll be more than happy if you will put some pressure on our beloved
  Jeff, I am sure that a man of his size can take a grip after such a long
  May god be with you all,
Oded Raz
The Temple Of Music