1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/// Audio metadata (?)
///
/// From fabletlcmod.com
///
/// ```txt
/// .Met
///
/// Only documenting .Met files as they control .lug audio banks.
/// .Met are usually 2 sections (Audio Information, Environment Settings) Ingame.Met contains a third section that links // audio to compiled events.
/// Header
///
/// [4] Bytes - Always (01 00 00 00)
/// [4] Bytes - Number of Files
/// [4] Bytes - Unknown
/// Audio Information Listing
///
/// [4] Bytes - Entry Number
/// [4] Bytes - ID
/// [4] Bytes - Import Directory File Name Length (String Size)
/// ~ String
/// [4] Bytes - Audio File Size (Does not have header like .Lut audio files)
/// [4] Bytes - Offset
/// [2] Bytes - Number of Channels
/// [2] Bytes - Audio Codec (105 = Xb-Adpcm, 1 = PCM) Only two used.
/// [4] Bytes - Frequency
/// [8] Bytes - Event ID, mostly unused
/// Environment Audio Listing
///
/// Few pieces are unknown! (Hard to test some of these)
/// Header for Environment Audio
///
/// [4] Bytes - Number of Files
/// Audio Listing Loop
///
/// 48 Bytes per listing. Loop until file number is met.
///
/// [4] Bytes - File Counter
/// [4] Bytes - File ID
/// [4] Bytes - String Size for Group Listing (If zero, then string does not exist)
/// ~ String (If it exists)
/// [2] Bytes - Event Identifier (01 = Day Sound, 02 = Night Sound, 00 = Should be anytime)
/// [2] Bytes - Unknown
/// [4] Bytes - Number of Loops (Usually either 1 or 9999)
/// [4] Bytes - Unknown (relative to number of loops, should be memory allocation)
/// [4] Bytes - Unknown (usually nothing)
/// [2] Bytes - Unknown (relative to sound volume. Should be either initial gain or user gain.)
/// [2] Bytes - Unknown (relative to sound volume. Should be either initial gain or user gain.)
/// [2] Bytes - Unknown (3D volume or Head Relative)
/// [2] Bytes - Unknown (2D volume?)
/// [4] Bytes - Location to Play sound (X) {Float}
/// [4] Bytes - Location to Play sound (Y) {Float}
/// [4] Bytes - Priority
///
/// *Upon Last Entry after this loop. If the 4 bytes has value, push to next section.
/// Event Listings
///
/// Only Exists in Ingame.Met
///
/// [4] Bytes Number of Entries
/// Event Loop
///
/// [4] Bytes - String Length
/// ~ String (Event Name)
/// [4] Bytes - Number of Sounds to Associate with Event Name
/// ~Then Based on number of sounds to associate are 4 byte ID listings
/// ```