PlayStation has standard music formats as follows:
- SEQ (*.seq) - Sequence data
- SEP (*.sep) - SEQ package, a file contains multiple SEQs
- VAG (*.vag) - Single waveform data
- VAB (*.vh; *.vb) - Sound source data, VB can have 254 VAGs at maximum, VH is header data for them
SEQ is very similar to SMF Format 0, except some small differences.
|ID||4 bytes||Signature: "pQES"|
|Resolution of quarter note||2 bytes||TPQN|
|Tempo||3 bytes||Tempo (length of quarter note in microseconds)|
|Rhythm (Numerator)||1 byte||Numerator of time signature (n)|
|Rhythm (Denominator)||1 byte||Denominator of time signature (2n)|
Messages & Differences
Loop Point (Extra NRPN)
SEQ specifies loop position by NRPN MSB. Value 20 (decimal) means Loop Start, and 30 means Loop End.
|Attribute||data 1 (CC 99)||data 2 (CC 06)|
|Loop 1 (start)||20||Loop count (127=infinite loop)|
|Loop 2 (end)||30|
Note that loop events cannot be nested. Also, only single channel should have those messages.
Tempo message starts with FF 51, that is the same as SMF. However, there are several differences between SMF and SEQ. See an example below (Tales of Phantasia: Good-by Friends):
SMF: 14 FF 51 03 0A A5 4A 14 FF 51 03 0A E6 2D 0C FF 51 03 0B 07 CB SEQ: 14 FF 51 0A A5 4A 14 51 0A E6 2D 0C 51 0B 07 CB
- SMF has data length before data, but SEQ does not
- SMF does not apply the running-status rule to events 0xFn, but SEQ does
It may depend on each drivers.
- note on (8n)
- note off (9n)
- program change (Cn)
- pitch bend (En)
- control change (Bn)
- data entry (6)
- volume (7)
- panpot (10)
- expression (11)
- NRPN data (98, 99)
- meta event (FF)
- tempo (FF 51)
Rippers & Converters
- loveemu's seq2mid - simple open-source tool
- Pgconv - GUI application for Windows. It also supports VAB2DLS conversion. It is useful but a bit hard to use.
- VGMTrans - Large MIDI converter, it also supports SEQ/VAB.
- VGMToolbox - It has SEP Splitter.
- bin2seq - CUI application, it can extract SEQ files from a big archive.