XGworks Original File
XGworks Original File (.xws) is the file format used to store sequenced projects by Yamaha XGworks (Japanese Wikipedia).
Yamaha XGworks, unlike Cubase, was a sequencer directly developed and released by Yamaha. XGworks was superceded by SOL (Sequence Object Linking) with the .yws format. Both XGworks and SOL are abandonware, dead since 2009.
The format specified below was reverse-engineered by Lumière Élevé.
Format categorisation
XWS
- MICC group:
yamaha.xgworks - Schema: Chunked TLV
- Header size: 0
- Chunk type: FourCC
- Chunk size:
u32be - Padding: None
- Validation targets: Yamaha XGworks 4.0.7
Canonical order
XWS
S4WH
<[S4WB ...]>
[S4WT ...]
S4ST
SCRS
SCRA
SCRD
Chunks
All valid chunks are listed below.
XWS
Working Header
- Type:
S4WH - MICC group:
yamaha.xgworks.header
XGworks file header.
HEAD
Only a single element.
HEAD
vv 00 tt tt 00 00 bb bb dd dd 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
vv(u8): XGworks major version or file version.tt(u16be): Contained track count.bb(u16be): Contained block/clip count.dd(u16be): MIDI time division.01 E0(480) is the most common value.
Working Block
- Type:
S4WB - MICC group:
mma.smfTrack - Track type:
S4WB
Contains an ordinary SMF type 1 MTrk stream as a clip. Single channel only.
Working Track
- Type:
S4WT - MICC group:
yamaha.xgworks.track(not final) - Track type:
S4WT
Contains data for a track.
HEAD [TRCK ...]
Directly chained chunks, without distinct types and length to indicate or aid segmentation.
HEAD
tt 00 cc ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ll [nn ...]
tt(u8): Track type.01for MIDI,02for audio (wave).cc(u8): Track channel. Meaning depends on track type.- MIDI: MIDI channels.
00for CH1,0Ffor CH16. - Audio: Panpot.
00for L7 (left most),07for C (centre),0Efor R7 (right most).
- MIDI: MIDI channels.
ll(u8): Block name length.nn(u8[]): Raw bytes of the encoded block name string.
TRCK
tt 00 ss ss ss ss ee ee ee ee bb bb bb bb ?? ??
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ll [nn ...]
tt(u8): Block type.01for normal blocks,02for linked (pointer) blocks.ss(u32be): Starting MIDI tick.ee(u32be): Ending MIDI tick.bb(u32be): Selected MIDI block ID, inherently defined by the order of appearance asS4WBchunks.ll(u8): Block name length.nn(u8[]): Raw bytes of the encoded block name string.
S4ST
Unknown. All files seem to have the same content.
SCRS
Specifics unknown. Likely used for records of styles. All files seem to have four 00 bytes.
SCRA
Specifics unknown. Likely used for records of audio. All files seem to have four 00 bytes.
SCRD
Unknown. Support currently not intended. All files seem to have four 00 bytes.
Shared data sectors
None.