Reply to topic  [ 1 post ] 
TuComposer Module (TCM) file format specifications 
Author Message
Administrator

Joined: 31. May 2005 05:23
Posts: 70
Location: Liège
Post TuComposer Module (TCM) file format specifications
Code:
TuComposer file formats (some are still under work):

TuComposer can save modules, songs, instruments, samples, tracks, synthetics
and envelopes. Each of them has it's own file format. All of them are standard
IFF-files with chunks embedded. Chunks marked with * may be more than one time
embedded, these marked with ? instead say, that they don't need to be
embedded. Each chunk is 8 byte + data bytes big. Chunk contents are:
NAMExxxxdata
where data is chunk specific (look at the NAME) and xxxx is the length of
the data. Chunks can be (with some exceptions) in any order. The chunks must
be on even bytes (say the IFF-docs), but the length needn't. That means, if
the length is odd, skip the last byte and then continue reading. And what
you never should forget, is that all word, long-word entries are little
endian (Motorola ordering) AND NEVER ASSUME THAT any of the chunks has the
size they now have. They might increase in future versions. Here are the file
formats supported by TuComposer's internal loaders.
                             TCM1 (TuComposer Module)
FORMxxxxTCM1
 ?FILE = Filename of module (e.g. Raveland.TCM)   
 ?NAME = Name of module (e.g. Calls from Raveland)
 ?MMSG = Module message (may span multiple lines and contain ANSI-codes,
         lines end with CR+LF). ANSI codes are done with usual ESC
         sequences, so you can import an ANSI file straight away.
 ?AUTH = Author, the composer(s) of the song(s) in the module
 ?STIL = Style(s) of the song(s) in the module (e.g., Rave/Techno)
 ?CMNT = Short one line comment from the composer(s) to the whole module
  MHDR = Module header, contains important data about the module.
         Offset    Size    Meanings
          + 0      UBYTE   Version number of module (currently 01)
                           If this version is greater than the one you are
                           supporting, you should warn the user that the TCM1
                           maybe unable to be played back 100% correctly...
          + 1      UBYTE   Revision number of module (currently 00)
                           Increasing this number only means changes that
                           won't affect the playback's behavior.
          + 2      UBYTE   Begin day of composing (01 - 07, of cause)
          + 3      UBYTE   Begin month of composing (01 - 12, of cause)
          + 4      UWORD   Begin year of composing (from 0 A.D.)
          + 6      UBYTE   Begin hour of composing (00 - 23, of cause)
          + 7      UBYTE   Begin minute of composing (00 - 59, of cause)
          + 8      UBYTE   Begin second of composing (00 - 59, of cause)
          + 9      UBYTE   Begin 1/100 second of composing (00 - 99, of cause)
          +10      UBYTE   Finish day of composing
          +11      UBYTE   Finish month of composing
          +12      UWORD   Finish year of composing
          +14      UBYTE   Finish hour of composing
          +15      UBYTE   Finish minute of composing
          +16      UBYTE   Finish second of composing
          +17      UBYTE   Finish 1/100 second of composing
          +18      UBYTE   Play time of song in hours
          +19      UBYTE   Play time of song in minutes
          +20      UBYTE   Play time of song in seconds
          +21      UBYTE   Play time of song in 1/100 seconds
          +22      UWORD   Number of songs in the module
          +24      ULONG   Number of total tracks in the module.
          +28      UWORD   Number of instruments in the module
          +30      ULONG   Number of total samples in the module
          +34      ULONG   Number of total synthetics in the module
          +38      UWORD   Number of envelopes in the module
          +40      UWORD   Number of keyboard definitions in the module
          +42      UWORD   Number of arpeggio definitions in the module
          +44      UWORD   Maximum number of channels to be used (incl. NNA)
          +46      UBYTE   Flags for compatibility
                           Bit # | Meanings if set
                           No bits are defined yet
          +47      UBYTE   Module flags
                           Bit # | Meanings if set
                           No bits are defined yet
* FORMxxxxSONG = Nested FORM chunk, indicates a new song
         ?FILE = Filename of the song (e.g. Raveland.TCS)
         ?NAME = Name of the song (e.g. Calls from Raveland)
         ?SMSG = Song message (may span multiple lines and contain ANSIs)
         ?AUTH = Author of this song
         ?STIL = Style of this song
         ?CMNT = Short one line comment about this song
          SHDR = Song header. Contains important info about the song
                 Offset    Size    Meanings
                  + 0      UBYTE   Begin day of composing
                  + 1      UBYTE   Begin month of composing
                  + 2      UWORD   Begin year of composing (e.g. 1997)
                  + 4      UBYTE   Begin hour of composing
                  + 5      UBYTE   Begin minute of composing
                  + 6      UBYTE   Begin second of composing
                  + 7      UBYTE   Begin 1/100 second of composing
                  + 8      UBYTE   Finish day of composing
                  + 9      UBYTE   Finish month of composing
                  +10      UWORD   Finish year of composing
                  +12      UBYTE   Finish hour of composing
                  +13      UBYTE   Finish minute of composing
                  +14      UBYTE   Finish second of composing
                  +15      UBYTE   Finish 1/100 second of composing
                  +16      UBYTE   Play time of song in hours
                  +17      UBYTE   Play time of song in minutes
                  +18      UBYTE   Play time of song in seconds
                  +19      UBYTE   Play time of song in 1/100 seconds
                  +20      UWORD   Number of tracks in this song
                  +22      UWORD   Stack size in entries for GoSub command
                  +24      UWORD   Stack size in entries for Pattern loop cmd
                  +26      UBYTE   Compatibility flags
                                   Bit # | Meanings if set
                                       0 | Initial synchronous tracks
                                       1 | Global memory for pattern loop cmd
                                       2 | Song is in Amiga hardware limits
                                       3 | Use old volume ranges (00-40)
                                       4 | Global volume/panning changes
                                           affect new notes only (as S3M)
                  +27      UBYTE   Flags
                                   Bit # | Meanings if set
                                       0 | Use linear frequence table
                                       1 | Use SPD timing initially
                                       2 | Mono mixing (or central pan)
                                       3 | Initial surround global panning
                  +28      UWORD   Number of channels used by this song
                  +30      UWORD   Initial song tempo (6 in MOD, S3M, etc.)
                  +32      UBYTE   Song speed multiplier (allowing 2/3, etc.)
                  +33      UBYTE   Song speed divider (if 0 don't use)
                  +34      UWORD   Initial SPD value (default 33)
                  +36      UWORD   Rows per beat (default: 4 as in MOD, etc.)
                  +38      UWORD   Beats per minute (default 125)
                  +40      UWORD   Song tempo lower limit
                  +42      UWORD   Song tempo upper limit
                  +44      UWORD   SPD (OctaMED compatible) lower limit
                  +46      UWORD   SPD (OctaMED compatible) upper limit
                  +48      UWORD   Rows per beat lower limit
                  +50      UWORD   Rows per beat upper limit
                  +52      UWORD   Beats per minute lower limit
                  +54      UWORD   Beats per minute upper limit
                  +56      UBYTE   Global volume of song (default 255)
                  +57      UBYTE   Global sub volume (for sliding)
                  +58      UBYTE   Global panning (also stereo separation)
                  +59      UBYTE   Global sub panning (for sliding)
         ?FORMxxxxPATT = Another nested FORM chunk (contains all tracks)
                * FORMxxxxTRAK = This contains one track
                         ?FILE = File name of track (e.g. RaveBeat.TCT)
                         ?NAME = Name of track (e.g. Simple Rave Beat)
                          THDR = Track header, contains important data
                                 Offset  Size    Meanings
                                  + 0    UWORD   Length of track in rows - 1
                                  + 2    UBYTE   Track volume
                                  + 3    UBYTE   Track sub volume
                                  + 4    UBYTE   Track panning
                                  + 5    UBYTE   Track sub panning
                                  + 6    BYTE    Track Transpose
                                  + 7    UBYTE   Compatibility flags
                                                 Bit # | Meanings if set
                                                     0 | Look TCT1 for all
                                                     1 | these, because I don't
                                                     2 | have enough room here
                                                     3 | to give a brief
                                                     4 | description
                                  + 8    UWORD   Special flags:
                                                 Bit # | Meanings if set
                                                     0 | Unused
                                                     1 | Use track timing
                                                     2 | Use SPD timing
                                                     3 | Track panning used
                                                     4 | Use surround panning
                                                     5 | Play track backwards
                                  +10    UWORD   Track Tempo (default 6)
                                  +12    UBYTE   Speed multiplier
                                  +13    UBYTE   Speed divider
                                  +14    UWORD   SPD value (default 33)
                                  +16    UWORD   BPM Tempo (default 4)
                                  +18    UWORD   BPM value (default 125)

                         ?BODY = Packed track data. Look TCT1 description for
                                 details. If this chunk is not present, the
                                 track is empty.
          FORMxxxxPOSI = Position/Orders list description
                  FORMxxxxPOST = Position table
                        * PHDR = Position header, contains position basic data
                                 Offset    Size    Meanings
                                  + 0      UWORD   Number of order entries
                                  + 2      UWORD   Repeat start order
                                  + 4      UBYTE   Channel volume (def. 255)
                                  + 5      UBYTE   Channel sub volume (slide)
                                  + 6      UBYTE   Channel track panning (0)
                                  + 7      UBYTE   Channel track sub pan (sl.)
                                  + 8      UBYTE   Channel panning (def. 128)
                                  + 9      UBYTE   Compatilibity flags
                                  +10      UBYTE   Order list flags
                                                   Bit # | Meanings if set
                                                       0 | Surround panning
                                                       1 | Track surround pan
                                                       2 | Channel initially
                                                           muted
                        *?FORMxxxxPOSL = Position list
                                * PDAT = Position data (actual order data)
                                         Offset    Size    Meanings
                                          + 0      UWORD   Play track number
                                          + 2      UWORD   Next position num
                                                           to be played when
                                                           you skip forwards
                                                           in players
                                          + 4      UWORD   Previous position
                                                           number when you
                                                           backwards in
                                                           a player
                                          + 6      UWORD   Track row to play
                                                           when skipping
                                                           forwards.
                                          + 8      UWORD   Track row to play
                                                           when skipping
                                                           backwards.
                                          +10      UWORD   First row to play
                                          +12      UWORD   End row (or $FFFF)
                                                           to play
                                          +14      UBYTE   Special flags
                                                           Bit # | If set
                                                               0 | End of ord-
                                                                   er, go back
                                                                   2 rep start
                                                               1 | Song end
                                                               2 | Play not in
                                                                   rep. mode,
                                                                   i.e. if you
                                                                   play a song
                                                                   in repeat
                                                                   mode this
                                                                   order is
                                                                   ignored
                                                               3 | Play not in
                                                                   once mode,
                                                                   i.e. the
                                                                   same as 2,
                                                                   except it's
                                                                   not played
                                                                   in play
                                                                   once mode
                                                               4 | Track sync
                                                                   Start & End
                                                                   row are up
                                                                   to 4 ch. to
                                                                   sync with.
                                                                   If all 0 it
                                                                   will sync
                                                                   with all
                                                                   channels
                                                               5 | Use order
                                                                   volume and
                                                                   override
                                                                   track vol
                                          +15     BYTE     Note transpose for
                                                           the whole track
                                          +16     WORD     Instrument trans-
                                                           pose for the whole
                                                           track. This value
                                                           will be added to
                                                           all instr values
                                          +18     UWORD    Tempo change or
                                                           NULL to keep
                                          +20     UBYTE    Order volume
                                          +21     UBYTE    Order sub volume
 ?FORMxxxxINSL = Instrument list
        * FORMxxxxINST = Instrument data
                 ?FILE = File name of instrument (i.e. WhrsBass.TCI)
                 ?NAME = Name of instrument (e.g. Where's the bass (Speech))
                  IHDR = Instrument header, contains important data
                         Offset    Size    Meanings
                          + 0      UWORD   Volume envelope number (0 if none)
                          + 2      UWORD   Panning envelope number (0 if none)
                          + 4      UWORD   Slide envelope number (0 if none)
                          + 6      UWORD   Vibrato envelope number (0 if none)
                          + 8      UWORD   Tremolo envelope number (0 if none)
                          +10      UWORD   Pannolo envelope number (0 if none)
                          +12      UWORD   Channolo envelope number
                          +14      UWORD   Spenolo envelope number (0 if none)
                          +16      UWORD   Arpeggio definition number
                          +18      UWORD   Keyboard definition number (0=std)
                          +20      UBYTE   Number of samples in instrument
                          +21      UBYTE   Global volume for all samples
                          +22      UBYTE   New note action
                                           Val # | Meanings
                                               0 | NNA cut
                                               1 | NNA continue
                                               2 | NNA off
                                               3 | NNA fade
                          +23      UBYTE   Note swing (in semitones)
                          +24      UWORD   Volume swing (in %, 256 = 100%)
                          +26      UWORD   Panning swing
                          +28      ULONG   Pitch swing (in %, 65536 = 100%)
                          +32      WORD    Pitch panning separation
                          +34      UBYTE   Default panning for all samples
                          +35      UBYTE   Default sub panning for all samples
                          +36      UBYTE   Duplicate note check type
                                           Bit # | Meanings if set
                                               0 | OR check dup. instr notes
                                               1 | OR check dup. sample notes
                                               2 | OR check dup. instruments
                                               3 | OR check dup. samples
                                               4 | AND check dup. instr notes
                                               5 | AND check dup. sample notes
                                               6 | AND check dup. instruments
                                               7 | AND check dup. samples
                          +37      UBYTE   Duplicate note check action
                                           Val # | Meanings
                                               0 | Duplicate note cut
                                               1 | Duplicate note off
                                               2 | Duplicate note fade out
                                               3 | Duplicate note continue
                                                   (only useful when using
                                                   synth DNA handlers)
                          +38      UBYTE   Compatibility flags
                                           Bit # | Meanings if set
                                               0 | Instrument wave is locked
                                               1 | Affects channel panning
                                               2 | If no sample is given in
                                                   the keyboard table, the
                                                   previous one is used
                                               3 | The samples are separate
                                                   as in IT (else like XM),
                                                   i.e. 5th sample is 1st
                                                   sample of 5th instrument.
                          +39      UBYTE   Special flags
                                           Bit # | Meanings if set
                                               0 | Not note transposeable
                                               1 | Use semitone & finetune for
                                                   slide envelope
                                               2 | Use linear frequence table
                                                   for slide envelope
                                               4 | Use instrument panning
                                               5 | Default instrument surround
                                               6 | Not instr transposeable
                          +40      UWORD   Envelope usage flags
                                           Bit # | Meanings if set
                                               0 | Not use (reload) vol. env.
                                               1 | Not use (reload) pan. env.
                                               2 | Not use (reload) slide env.
                                               3 | Not use (reload) vib. env.
                                               4 | Not use (reload) trem. env.
                                               5 | Not use (reload) panno env.
                                               6 | Not use (reload) chan. env.
                                               7 | Not use (reload) spen. env.
                                               8 | Not reload track trem. env.
                                               9 | Not reload track pan. env.
                                              10 | Not reload global trm. env.
                                              11 | Not reload global pan. env.
                          +42      UWORD   Envelope processing flags
                                           Bit # | Meanings if set
                                               0 | Add 1st then set vol. env.
                                               1 | Add 1st then set pan. env.
                                               2 | Add 1st then set slide env.
                                               3 | Add 1st then set vib. env.
                                               4 | Add 1st then set trem. env.
                                               5 | Add 1st then set panno env.
                                               6 | Add 1st then set chan. env.
                                               7 | Add 1st then set spen. env.
                                               8 | Add 1st then set t.trm. e.
                                               9 | Add 1st then set t.pan. e.
                                              10 | Add 1st then set g.trm. e.
                                              11 | Add 1st then set g.pan. e.
                          +44      UWORD   Envelope retrigger flags
                                           Bit # | Meanings if set
                                               0 | Not trigger volume env.
                                               1 | Not trigger panning env.
                                               2 | Not trigger slide env.
                                               3 | Not trigger vibrato env.
                                               4 | Not trigger tremo env.
                                               5 | Not trigger panno env.
                                               6 | Not trigger channolo env.
                                               7 | Not trigger spenolo env.
                                               8 | Not trigger track trm. env.
                                               9 | Not trigger track pan. env.
                                              10 | Not trigger glob. trm. env.
                                              11 | Not trigger glob. pan. env.
                          +46      UWORD   Envelope random flags
                                           Bit # | Meanings if set
                                               0 | Randomize volume envelope
                                               1 | Randomize panning envelope
                                               2 | Randomize slide envelope
                                               3 | Randomize vibrato envelope
                                               4 | Randomize tremolo envelope
                                               5 | Randomize pannolo envelope
                                               6 | Randomize channolo envelope
                                               7 | Randomize spenolo envelope
                                               8 | Randomize track trem. env.
                                               9 | Randomize track pan. env.
                                              10 | Randomize global trem. env.
                                              11 | Randomize global pann. env.
                          +48      UWORD   Envelope random delay flags
                                           Bit # | Meanings if set
                                               0 | Rand. delay volume envelope
                                               1 | Rand. delay panning envelope
                                               2 | Rand. delay slide envelope
                                               3 | Rand. delay vibrato envelope
                                               4 | Rand. delay tremolo envelope
                                               5 | Rand. delay pannolo envelope
                                               6 | Rand. delay channolo env.
                                               7 | Rand. delay spenolo envelope
                                               8 | Rand. delay track trem. env.
                                               9 | Rand. delay track pan. env.
                                              10 | Rand. delay glob. trem. env.
                                              11 | Rand. delay glob. pann. env.
                          +50      UWORD   Fade out value
                          +52      UWORD   Hold
                          +54      UWORD   Decay
                          +56      UBYTE   DCA (Decay Action) when no Decay
                                           is defined (i.e. zero)
                                           Val # | Meanings
                                               0 | Note cut (as normal)
                                               1 | Note off (do keyoff)
                                               2 | Note fade (start fadeout)
                          +57      UBYTE   Pitch panning center
                          +58      UBYTE   MIDI channel used
                          +59      UBYTE   MIDI program (instrument)
                          +60      UBYTE   MIDI flags
                                           Bit # | Meanings if set
                                               0 | Tick quantize
                                               1 | Record note-off
                                               2 | Record velocity
                                               3 | Record aftertouch
                                               4 | Record with external sync
                                               7 | MIDI for instrument enabled
                          +61      BYTE    MIDI transpose
                          +62      UBYTE   MIDI aftertouch (percentage)
                          +63      UBYTE   MIDI pitchbender
                 ?FORMxxxxSAMP = Sample list
                        * FORMxxxxSMPL = Sample entry
                                 ?FILE = Filename of sample (e.g. O-Hihat.IFF)
                                 ?NAME = Name of sample (e.g. Hihat.Opened)
                                  SMPH = Sample header, contains sample info
                                         Offset    Size    Meanings
                                          + 0      ULONG   Number of samples
                                          + 4      ULONG   Rep start (samples)
                                          + 8      ULONG   Rep len (samples)
                                          +12      ULONG   Repeat count (or 0)
                                          +16      ULONG   Sus. repeat start
                                          +20      ULONG   Sus. repeat length
                                          +24      ULONG   Sus. repeat count
                                          +28      ULONG   Sample rate in Hz
                                          +32      ULONG   Sample start offset
                                          +36      ULONG   Lower SmpRate limit
                                          +40      ULONG   Upper SmpRate limit
                                          +44      UBYTE   Sample bit depth
                                          +45      BYTE    Transpose
                                          +46      BYTE    8-bit fine tune
                                          +47      UBYTE   Compatible flags
                                                           Bit # | Meanings
                                                               0 | Affects ch
                                                                   panning
                                                               1 | Only prev-
                                                                   ent volume
                                                                   being chan-
                                                                   ged on
                                                                   notes
                                                                   without
                                                                   samples
                                                               2 | Play note
                                                                   normally
                                                                   when tone
                                                                   porta note
                                                                   is muted
                                                                   currently
                                                               3 | Play tone
                                                                   porta new
                                                                   notes from
                                                                   begin
                                          +48      UBYTE   Flags
                                                           Bit # | Meanings
                                                               0 | Delta smp
                                                               1 | Loop sample
                                                               2 | Sus. loop
                                                               3 | Sample pan
                                                               4 | Surround
                                                                   panning
                                                               6 | Play back-
                                                                   wards
                                          +49      UBYTE   Repeat mode
                                                           Bit # | Meanings
                                                               0 | Backward
                                                               1 | Ping pong
                                          +50      UBYTE   Sus repeat mode
                                          +51      UBYTE   Global volume
                                          +52      UBYTE   Default volume
                                          +53      UBYTE   Default sub volume
                                          +54      UBYTE   Default panning
                                          +55      UBYTE   Default sub pan
                                          +56      UWORD   Auto vib. number
                                          +58      UWORD   Auto trem. number
                                          +60      UWORD   Auto pan. number
                                          +62      UBYTE   Env. usage flags
                                                   Bit # | Meanings if set
                                                       0 | Not use auto vib.
                                                       1 | Not use auto trem.
                                                       2 | Not use auto pan.
                                          +63      UBYTE   Env. proc. flags
                                                   Bit # | Meanings if set
                                                       0 | 1st add auto vib.
                                                       1 | 1st add auto trem.
                                                       2 | 1st add auto pan.
                                                       7 | Use linear freq tab
                                                           for auto vibrato
                                          +64      UBYTE   Env. retrig flags
                                                   Bit # | Meanings if set
                                                       0 | Not trig auto vib.
                                                       1 | Not trig auto trem.
                                                       2 | Not trig auto pan.
                                          +65      UBYTE   Env. random flags
                                                   Bit # | Meanings if set
                                                       0 | Rand. auto vib.
                                                       1 | Rand. auto trem.
                                                       2 | Rand. auto pan.
                                          +66      UWORD   Auto vibrato sweep
                                          +68      UWORD   Auto tremolo sweep
                                          +70      UWORD   Auto pannolo sweep
                                          +72      UBYTE   Auto vibrato depth
                                          +73      UBYTE   Auto vibrato speed
                                          +74      UBYTE   Auto tremolo depth
                                          +75      UBYTE   Auto tremolo rate
                                          +76      UBYTE   Auto pannolo depth
                                          +77      UBYTE   Auto pannolo rate
                                 ?BODY = The actual sample data. If delta
                                         sample bit is set, samples are delta
                                         values ! If this chunk IS NOT
                                         PRESENT and is not 0 samples, the
                                         sample must be loaded from disk
                                         using the filename of FILE chunk.
                                 ?SMPR = Sample redirection chunk. There
                                         never can be a BODY and a SMPR
                                         chunk in one FORMxxxxSMPL together !
                                         Offset    Size    Meanings
                                          + 0      ULONG   Sample number,
                                                           which (1 is first)
                                                           contains the wave
                                                           NOTE: Absolute smp
                                                                 no from 1st
                                                                 instrument
                                 ?FORMxxxxSNTH = Synthetic data information
                                         ?FILE = Filename of synth
                                                 (e.g. SynPiano.TCY)
                                         ?NAME = Name of synth
                                                 (e.g. Synth Piano)
                                          YHDR = Synth header:
                                                 Offset    Size    Meanings
                                                  + 0      UWORD   Number of
                                                                   waveforms
                                                  + 2      UWORD   Entry num.
                                                                   of volume
                                                                   handling
                                                                   code
                                                  + 4      UWORD   Entry num.
                                                                   of panning
                                                                   code
                                                  + 6      UWORD   Entry num.
                                                                   of slide
                                                                   code
                                                  + 8      UWORD   Entry num.
                                                                   of special
                                                                   code
                                                  +10      UWORD   Jump pos.
                                                                   of sustain
                                                                   volume code
                                                  +12      UWORD   Jump pos.
                                                                   of sustain
                                                                   pan. code
                                                  +14      UWORD   Jump pos.
                                                                   of sustain
                                                                   slide code
                                                  +16      UWORD   Jump pos.
                                                                   of sustain
                                                                   spec. code
                                                  +18      UWORD   Jump pos.
                                                                   of NNA trig
                                                                   volume code
                                                  +20      UWORD   Jump pos.
                                                                   of NNA trig
                                                                   pan. code
                                                  +22      UWORD   Jump pos.
                                                                   of NNA trig
                                                                   slide code
                                                  +24      UWORD   Jump pos.
                                                                   of NNA trig
                                                                   spec. code
                                                  +26      UWORD   Jump pos.
                                                                   of DNA trig
                                                                   volume code
                                                  +28      UWORD   Jump pos.
                                                                   of DNA trig
                                                                   pan. code
                                                  +30      UWORD   Jump pos.
                                                                   of DNA trig
                                                                   slide code
                                                  +32      UWORD   Jump pos.
                                                                   of DNA trig
                                                                   spec. code
                                                  +34      UWORD   Init var 0
                                                  +36      UWORD   Init var 1
                                                  +38      UWORD   Init var 2
                                                  +40      UWORD   Init var 3
                                                  +42      UWORD   Init var 4
                                                  +44      UWORD   Init var 5
                                                  +46      UWORD   Init var 6
                                                  +48      UWORD   Init var 7
                                                  +50      UWORD   Init var 8
                                                  +52      UWORD   Init var 9
                                                  +54      UWORD   Init var 10
                                                  +56      UWORD   Init var 11
                                                  +58      UWORD   Init var 12
                                                  +60      UWORD   Init var 13
                                                  +62      UWORD   Init var 14
                                                  +64      UWORD   Init var 15
                                                  +66      UWORD   Init vol c.
                                                  +68      UWORD   Init pan c.
                                                  +70      UWORD   Init sl. c.
                                                  +72      UWORD   Init sp. c.
                                                  +74      UBYTE   Use NNA
                                                                   flags
                                                  +75      UBYTE   Use sustain
                                                                   flags
                                                  +76      UBYTE   Pos. keep
                                                                   mask
                                                  +77      UBYTE   NNA pos.
                                                                   keep mask
                                                  +78      UWORD   Variable
                                                                   keep mask
                                         ?FORMxxxxWFRM = Waveform list
                                                * FORMxxxxWAVE = For each
                                                                 waveform
                                                         ?FILE = File name
                                                         ?NAME = Name of wave
                                                          WHDR = Wave header.
                                                                 See TCY1 for
                                                                 details.
                                                          BODY = Each waveform
                                                                 point is an
                                                                 WORD (i.e.
                                                                 treated as an
                                                                 array of 16-
                                                                 bit samples)
                                         ?CODE = Synth programming code. This
                                                 is an UBYTE with the instr-
                                                 uction, two nibbles, the
                                                 first containing the source
                                                 variable and the second
                                                 the destination variable,
                                                 following by an instruction
                                                 data UWORD which is instr-
                                                 uction specific. The amount
                                                 of lines equals to chunk
                                                 length / 4.
                                         ?FORMxxxxSTAB = Symbol table
                                                * FORMxxxxSMBL = A symbol
                                                          NAME = Symbol name
                                                          SREF = Symbol
                                                                 reference.
                                                                 Look at TCY1
                                                                 for details.

 ?FORMxxxxENVL = Nested FORM chunk that contains all envelope data
        * FORMxxxxENVD = Envelope data
                  EHDR = Envelope header, contains important data
                         Offset    Size    Meanings
                          + 0      UWORD   Flags (look the table below)
                                           Bit # | Meanings if set
                                               0 | Loop envelope
                                               1 | Use sustain points
                                               2 | Loop pingpong
                                               3 | Sustain pingpong loop
                          + 2      UWORD   Envelope tempo (default 1)
                          + 4      UWORD   Sustain start point
                          + 6      UWORD   Sustain end point
                          + 8      UWORD   Sustain repeat count
                          +10      UWORD   Loop start point
                          +12      UWORD   Loop end point
                          +14      UWORD   Loop repeat count
                          +16      WORD    Lowest random value
                          +18      WORD    Highest random value
                  BODY = Envelope waveform. Size of envelope is length of BODY
                         chunk / 2. Each envelope point is a WORD ranging from
                         -$8000 to $7FFF. To get the correct volume envelope
                         values you should add $8000 to it (only in the play-
                         back routine which handle volume envelopes).
                 ?NODE = Envelope node list. This is an array if UWORDs
                         containing the draggable node points. The UWORDs
                         contain the envelope position in ticks (X-axis). The
                         first node point is always zero and the last node
                         point points always to the last envelope point.
 ?FORMxxxxKEYB = Nested FORM chunk that contains all defined keyboards
                 KBRD = Sample/Note keyboard definition table. If not
                        present, use default table (sample 0, normal note).
                        This chunk is currently 480 bytes long (10 octaves
                        * 12 notes long words), but may be increased when the
                        amount of possible octaves in TuComposer is raised
 ?FORMxxxxARPL = Nested FORM chunk that contains all arpeggio definition data
        * FORMxxxxARPG = Arpeggio control data
                  AHDR = Arpeggio control header, contains important data
                         Offset    Size    Meanings
                          + 0      UWORD   Number of ticks in arpeggio env.
                          + 2      UWORD   Special flags
                                           Bit # | Meanings if set
                                               0 | Loop arpeggio control
                                               1 | Use sustain ticks
                                               2 | Play in ping pong order
                          + 4      UWORD   Sustain start tick
                          + 6      UWORD   Sustain end tick
                          + 8      UWORD   Sustain repeat counter
                          +10      UWORD   Loop start tick
                          +12      UWORD   Loop end tick
                          +14      UWORD   Loop repeat counter
                  FORMxxxxARPE = Arpeggio tick entries
                        * ARPE = Arpeggio tick entry
                                 Offset    Size    Meanings
                                  + 0      UBYTE   Tone (HI-nibble is octave,
                                                   LO is note, 1 is C-, etc.)
                                  + 1      BYTE    Transpose (-119 to +119)
                                  + 2      UWORD   Instrument number or 0 for
                                                   arpeggio instrument)
                                  + 4      UBYTE   Effect byte 1
                                  + 5      UBYTE   Effect byte 2
                                  + 6      UBYTE   Effect byte 3
                                  + 7      UBYTE   Effect byte 4
                                  + 8      UWORD   Data word 1       
                                  +10      UWORD   Data word 2       
                                  +12      UWORD   Data word 3       
                                  +14      UWORD   Data word 4


1. June 2005 12:07
Profile ICQ WWW
Display posts from previous:  Sort by  
Reply to topic   [ 1 post ] 

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.