@@ -49,9 +49,12 @@ Bytes-Lenght | Description
4949 | A) Pseudo-8op
5050 | B) Is Blank instrument
5151 | C) Enable pitch envelope
52- | D) Use PCM voice
52+ | D) Is PCM voice
5353 | E) PCM chunk has a loop
5454-------------------------------------------
55+
56+ ----VERSION<=2-OR=when flag D is disabled----
57+
5558----[When flag A(Pseudo8op) is set - repeat this block 2 times]-------
5659 32 | Name of instrument null-terminated string
5760 2 | Big-Endian 16-bit signed integer, MIDI key offset value
@@ -78,24 +81,38 @@ Bytes-Lenght | Description
7881 1 | INT8, Second voice detune
7982----[When flag A(Pseudo8op) is set]-END----
8083
84+ ----VERSION<=2-OR-when flag D is disabled-END--
85+
8186----VERSION>=3-----------------------------
82- -------------- [Only when flag C is set]-------
87+ ------[Only when flag C is set]-------
8388 2 | UINT16BE, pitch envelope bend sensitivity
8489 2 | SINT16BE, pitch envelope bend sustain (+ up, - down)
8590 2 | UINT16BE, Millisecond pitch attack delay (0 - instant attack)
8691 2 | UINT16BE, Millisecond pitch decay1 delay (0 - instant decay)
8792 2 | UINT16BE, Millisecond pitch decay2 delay (0 - instant decay)
8893 2 | UINT16BE, Millisecond pitch release delay (0 - instant release)
89- --------------[Only when flag C is set]-END---
90-
91- --------------[Only when flag D is set]-------
94+ ------[Only when flag C is set]-END---
95+
96+ ------[Only when flag D is set]-------
97+ 1 | UINT8, Count of layers (concurrent streams)
98+ ----------[Layer begin]-------------------
99+ 1 | UINT8, Count of used chunks
100+ --------------[Chunk begin]-------------------
101+ 1 | UINT8, Range begin
102+ 1 | UINT8, Range end
103+ 1 | UINT8, flags
104+ | [000000BA]
105+ | A) Loop enabled
106+ | B) Loop bidirectional
92107 2 | UINT16BE, PCM chunk index (for OPNI it's always 0)
93- 2 | UINT16BE, PCM chunk source sample rate
94- 2 | UINT16BE, PCM chunk loop start
95- 2 | UINT16BE, PCM chunk loop end
108+ 2 | UINT16BE, PCM chunk custom loop start
109+ 2 | UINT16BE, PCM chunk custom loop end, 0 - use loop from the chunk
96110 1 | UINT8, PCM chunk base tone (MIDI key)
97111 1 | INT8, PCM chunk base tone cents offset
98- --------------[Only when flag D is set]-END---
112+ --------------[Chunk end]-------------------
113+ ----------[Layer end]-------------------
114+ ------[Only when flag D is set]-END---
115+
99116----VERSION>=3-END-------------------------
100117
101118--VERSION >= 2---WOPL-Bank-only, OPNI must don't have those fields---
@@ -137,9 +154,7 @@ Bytes-Lenght | Description
137154----VERSION>=3--Data---------------------
138155 86 | [Single-instrument entry], look at top of this text file
139156----VERSION>=3--PCM Chunk---------------
140- 32 | Name of the PCM chunk
141- 2 | [ChunkLength] Length of PCM chunk in bytes
142- ChunkLength | <Unsigned 8-bit raw PCM data>
157+ <Same as in botto mof WOPN bank>
143158----------------------------------------
144159
145160
@@ -212,6 +227,14 @@ Bytes-Lenght | Description
212227--VERSION >= 3---PCM chunks store--------
213228(repeat PCMchuns times)
214229 32 | Name of the PCM chunk
230+ 1 | UINT8, flags
231+ | [000000BA]
232+ | A) Loop enabled
233+ | B) Loop bidirectional
234+ 2 | UINT16BE, PCM chunk source sample rate
235+ 2 | UINT16BE, PCM chunk default loop start
236+ 2 | UINT16BE, PCM chunk default loop end, 0 - no loop
215237 2 | [ChunkLength] Length of PCM chunk in bytes
216238 ChunkLength | <Unsigned 8-bit raw PCM data>
217239-----------------------------------------
240+
0 commit comments