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

Joined: 31. May 2005 05:23
Posts: 70
Location: Liège
Post TuComposer Synth (TCY) file format specifications
Code:
TCY1 (TuComposer Synth)
FORMxxxxTCY1
 ?FILE = Filename of synth (e.g. SynPiano.TCY)
 ?NAME = Name of synth (e.g. Synth Piano)
  YHDR = Synth header:
         Offset    Size    Meanings
          + 0      UBYTE   Version number of synth (currently 01)
          + 1      UBYTE   Revision number of synth (currently 00)
          + 2      UWORD   Number of waveforms
          + 4      UWORD   Entry point of volume handling code
          + 6      UWORD   Entry point of panning handling code
          + 8      UWORD   Entry point of pitch slide handling code
          +10      UWORD   Entry point of special things handling code
          +12      UWORD   Sustain entry point of volume handling code
          +14      UWORD   Sustain entry point of panning handling code
          +16      UWORD   Sustain entry point of slide handling code
          +18      UWORD   Sustain entry point of special handling code
          +20      UWORD   NNA trigger jump position of volume handling code
          +22      UWORD   NNA trigger jump position of panning handling code
          +24      UWORD   NNA trigger jump position of slide handling code
          +26      UWORD   NNA trigger jump position of special handling code
          +28      UWORD   DNA trigger jump position of volume handling code
          +30      UWORD   DNA trigger jump position of panning handling code
          +32      UWORD   DNA trigger jump position of slide handling code
          +34      UWORD   DNA trigger jump position of special handling code
          +36      UWORD   Initial value of variable 0
          +38      UWORD   Initial value of variable 1
          +40      UWORD   Initial value of variable 2
          +42      UWORD   Initial value of variable 3
          +44      UWORD   Initial value of variable 4
          +46      UWORD   Initial value of variable 5
          +48      UWORD   Initial value of variable 6
          +50      UWORD   Initial value of variable 7
          +52      UWORD   Initial value of variable 8
          +54      UWORD   Initial value of variable 9
          +56      UWORD   Initial value of variable 10
          +58      UWORD   Initial value of variable 11
          +60      UWORD   Initial value of variable 12
          +62      UWORD   Initial value of variable 13
          +64      UWORD   Initial value of variable 14
          +66      UWORD   Initial value of variable 15
          +68      UWORD   Initial volume handling condition variable
                           The condition variable is allocated as follows:
                           Bit # | Meanings if set
                               0 | Carry generated (e.g. JUMPCS would jump)
                               1 | Overflow detected (e.g. JUMPVS would jump)
                               2 | Zero result (e.g. JUMPEQ would jump)
                               3 | Negative result (e.g. JUMPMI would jump)
                               4 | Extend. Used by ADDX, SUBX and NEGX.
          +70      UWORD   Initial panning handling condition variable
                           For bit allocations see above
          +72      UWORD   Initial slide handling condition variable
                           For bit allocations see above
          +74      UWORD   Initial special handling condition variable
                           For bit allocations see above
          +76      UBYTE   NNA trigger use mask. Bits allocated as:
                           Bit # | Meanings if set
                               0 | Use volume NNA trigger position
                               1 | Use panning NNA trigger position
                               2 | Use slide NNA trigger position
                               3 | Use special NNA trigger position
                               4 | Use volume DNA trigger position
                               5 | Use panning DNA trigger position
                               6 | Use slide DNA trigger position
                               7 | Use special DNA trigger position
          +77      UBYTE   Sustain use mask. Bits allocated as:
                           Bit # | Meanings if set
                               0 | Sustained volume handling code
                               1 | Sustained panning handling code
                               2 | Sustained slide handling code
                               3 | Sustained special handling code
                               4 | Keep sustain volume handling position
                               5 | Keep sustain panning handling position
                               6 | Keep sustain slide handling position
                               7 | Keep sustain special handling position
          +78      UBYTE   Position keep mask. Bits are allocated as follows:
                           Bit # | Meanings if set
                               0 | Keep volume position on new note
                               1 | Keep panning position on new note
                               2 | Keep slide position on new note
                               3 | Keep special position on new note
                               6 | Keep waveforms on new sample
                               7 | Keep synth programming code (should be
                                   set when any bits from 0-3 are used)
          +79      UBYTE   NNA trigger position keep mask. Bits are:
                           Bit # | Meanings if set
                               0 | Keep volume NNA trigger position
                               1 | Keep panning NNA trigger position
                               2 | Keep slide NNA trigger position
                               3 | Keep special NNA trigger position
                               4 | Keep volume DNA trigger position
                               5 | Keep panning DNA trigger position
                               6 | Keep slide DNA trigger position
                               7 | Keep special DNA trigger position
          +80      UWORD   Variable keep mask. Each bits equals to the
                           variable number to be keep/replaced, e.g.
                           Bit 3, 5 and 9 set would keep variables 3, 5
                           and 9. All others would be replaced with the
                           new init values.
 ?FORMxxxxWFRM = List of all waveforms (if this chunk is omitted this is a
                 hybrid, i.e. a sample taking advantage of synth functions)
        * FORMxxxxWAVE = This chunk is there for each waveform
                 ?FILE = Filename of waveform (e.g. SineWave.TCW)
                 ?NAME = Name of waveform (e.g. Sine Wave)
                  WHDR = Waveform header.
                         Offset    Size    Meanings
                          + 0      ULONG   Repeat start of waveform
                          + 4      ULONG   Repeat length of waveform
                          + 8      UWORD   Waveform flags. Bits are:
                                           Bit # | Meanings if set
                                               7 | Don't loop sample waveform
                                              15 | 8-bit waveform data,
                                                   if clear: 16-bit data
                  BODY = Each waveform point is an BYTE/WORD (i.e. treated
                         as an array of 8/16-bit samples if used as a sample),
                         else it contains the same values as the
                         vibrato/pannolo/slide envelopes datas.
 ?CODE = Synth programming code. This is an UBYTE with the instruction, two
         nibbles, where the high nibble contains the source variable and
         the low nibble contains the destination variable. The instruction
         takes data which contains the following UWORD. The value of the
         data is instruction specific. The amount of lines equals to chunk
         length / 4.
 ?FORMxxxxSTAB = This chunk identicates the symbol table
        * FORMxxxxSMBL = This chunk is there for each symbol
                  NAME = Name of symbol (e.g. MAXFREQ)
                  SREF = Symbol reference chunk. Allocated as follows:
                         Offset    Size    Meanings
                          + 0      UWORD   Symbol value
                          + 2      UWORD   First valid line (or NULL)
                          + 4      UWORD   Last valid line (or $FFFF)
                          + 6      UBYTE   Symbol type as follows:
                                           Val # | Meanings
                                               0 | Symbol is an ordinary
                                                   instruction parameter
                                                   value to be referenced.
                                                   Symbol value is the value
                                                   to be referenced.
                                                1 | Symbol is a source var-
                                                    iable to be referenced.
                                                    Symbol value is the
                                                    variable number to be
                                                    referenced, e.g. a 12
                                                    means, v12 will be
                                                    referenced.
                                                 2 | Like 1, except it
                                                     references a destination
                                                     variable.
                                                 3 | Is in fact 1+2, so that
                                                     both the source and
                                                     the destination variable
                                                     will be referenced.
                                                 4 | The symbol references a
                                                     label. Symbol value is
                                                     the line number to be
                                                     referenced.
                          + 7      UBYTE   Symbol flags as follows:
                                           Bit # | Meanings if set
                                               7 | Symbol is disabled and
                                                   will not be evaluated.


1. June 2005 12:11
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.