SCC-Musixx file format
This page was last modified 21:48, 11 March 2018 by Mars2000you.

Note: the information below is based on reverse engineering of the programme and file data. As no manual was available, some attributes and/or command names could differ from the original naming.

SCC Musixx (.SNG) files are headerless files. The name of the song is the filename (8 characters).

The structure of a .SNG file is as follows:

       Offset Length  Description
       -----+--------+----------------------------------------------------
       $0000   32      Waveform Sound $00
       $0020    8      Name Sound $00
       $0028   32      Waveform Sound $01
       $0048    8      Name Sound $01   
       $0050   32      Waveform Sound $02
       $0058    8      Name Sound $02
        .....
       $0758   32      Waveform Sound $30 (48)
       $0778    8      Name Sound $30 (48)
       $0780    1      Song length
       $0781  100      Song pattern list
       $07e5 1536      Pattern 00 Data
       $0965 1536      Pattern 01 Data
          .....

Patterns are built up out of 64 rows containing 5 channels, of which the first 4 are 5 bytes and the last 4 bytes long. A full line of a pattern is built up as described below:
      Channels: 1,2,3,4
        [ Tone low  ][ Tone high  ] [   Sound    ] [ Vol | Cmd  ] [ Parameter  ]

      Channel: 5
        [ Tone low  ][ Tone high  ] [  Vol | Cmd ] [ Parameter  ]


      Tone      - 2 bytes       Tone frequency of the note (?)
      Sound     - 1 byte        Sound number (waveform)
      Vol       - high nibble   Volume
      Cmd       - low nibble    Command number
      Parameter - 1 byte        Command parameter(s)

The tone value can be related to notes using the table below:
   C-1 $0D5D  C-2 $06AF  C-3 $....  C-4 $....  C-5 $....  C-6 $....  C-7 $....  C-8 $....  
   C#1 $0C9C  C#2 $064E  C#3 $....  C#4 $....  C#5 $....  C#6 $....  C#7 $....  C#8 $....   
   D-1 $0BE7  D-2 $05F4  D-3 $....  D-4 $....  D-5 $....  D-6 $....  D-7 $....  D-8 $....  
   D#1 $0B3C  D#2 $059E  D#3 $....  D#4 $....  D#5 $....  D#6 $....  D#7 $....  D#8 $....  
   E-1 $0A9B  E-2 $054E  E-3 $....  E-4 $....  E-5 $....  E-6 $....  E-7 $....  E-8 $....  
   F-1 $0A02  F-2 $0501  F-3 $....  F-4 $0140  F-5 $....  F-6 $....  F-7 $....  F-8 $....  
   F#1 $0973  F#2 $04BA  F#3 $....  F#4 $....  F#5 $....  F#6 $....  F#7 $....  F#8 $....  
   G-1 $08EB  G-2 $0476  G-3 $....  G-4 $011D  G-5 $....  G-6 $....  G-7 $....  G-8 $....  
   G#1 $086B  G#2 $0436  G#3 $....  G#4 $....  G#5 $....  G#6 $....  G#7 $....  G#8 $....  
   A-1 $07F2  A-2 $03F9  A-3 $....  A-4 $....  A-5 $....  A-6 $....  A-7 $....  A-8 $....  
   A#1 $0780  A#2 $03C0  A#3 $....  A#4 $00F0  A#5 $0078  A#6 $....  A#7 $....  A#8 $....  
   B-1 $0714  B-2 $038A  B-3 $....  B-4 $....  B-5 $....  B-6 $....  B-7 $....  B-8 $....    
Commands:
   1xy   - Portamento slide up
   2xy   - Portamento slide down
   3xy   - Vibrato pos (?)
   4xy   - Vibrato neg (?)
   5xy   - Volume slide down
   6xy   - Transpose up
   7xy   - Transpose down
   Fxy   - Speed