Skip to content

Latest commit

 

History

History
802 lines (793 loc) · 59.9 KB

pti.rst

File metadata and controls

802 lines (793 loc) · 59.9 KB

The .pti file format

Polyend Tracker instrument files use the .pti file extension.

A .pti instrument file includes both the sample, as well as all instrument parameters; like envelope settings, sample playback type, wavetable position, and so on.

Specifications

The .pti file format starts with a header followed by a 44.1kHz/16-bit single channel PCM waveform.

This specification is based on analysis of instruments created by a Polyend Tracker device using firmware version 1.5.0b2.

Header offset ranges are inclusive. Values are assumed to be unsinged char integers, unless otherwise noted (e.g. signed char, float, short, etc.).

Header

The header of a .pti file is 392 bytes long and has the following format:

Offset Description Value

0-1

File type indicator
  • The ASCII characters "TI"

2

  • 1:

3

  • 0:

4

  • 1:

5

  • 2:
  • 4:
  • 5:

6

  • 0:
  • 1:
  • 2:

7

  • 1:

8-11

  • 6:
  • 9:

12

  • 116:

13

  • 1:

14

  • 0:
  • 102:
  • 110:

15

  • 0:
  • 102:

16

  • 1:

17-19

  • 0:

20

Is wavetable
  • 0-1: True/False
  • default: 0 (False)

Note

Is set to 1 (True) when Sample playback is set to Wavetable

21-51

Name
  • ASCII characters

52-55

  • 0:

56-59

  • ?: Unknown

60-63

Sample length
  • long: 0-4294967295
  • default: 0

64-65

Wavetable window size
  • short: 32, 64, 128, 256, 1024, 2048
  • default: 2048

66-67

  • 0:

68-69

Wavetable total positions
  • short: 0-65535

70-75

  • 0:

76

Sample playback
  • 0: 1-Shot (default)
  • 1: Forward loop
  • 2: Backward loop
  • 3: PingPong loop
  • 4: Slice
  • 5: Beat slice
  • 6: Wavetable
  • 7: Granular

77

  • 0:

78-79

Playback start
  • short: 0-65535 (start-end)
  • default: 0 (start)

80-81

Loop start
  • short: 1-65534 (start-end)
  • default: 1 (start)

82-83

Loop end
  • short: 1-65534 (start-end)
  • default: 65534 (end)

84-85

Playback end
  • short: 0-65535 (start-end)
  • default: 65535 (end)

86-87

  • 0:

88-89

Wavetable position
  • short: 0-65535
  • default: 0

90-91

  • 0:
**Volume automation envelope*

92-95

Amount
  • float: 0.0 - 1.0 (0-100%)
  • default: 1.0 (100%)

96-97

  • 0:

98-99

Attack
  • short: 0-10000 (0-10 seconds)
  • default: 0
100-101
  • 0:
102-103 Decay
  • short: 0-10000 (0-10 seconds)
  • default: 0
104-107 Sustain
  • float: 0.0-1.0 (0%-100%)
  • default: 1.0 (100%)
108-109 Release
  • short: 0-10000 (0-10 seconds)
  • default: 1000 (1 second)
**Volume automation**
110-111 Automation type
  • 00: Off
  • 01: Envelope (default)
  • 11: LFO

Note

This is probably type + on/off.

**Panning automation envelope **
112-115 Amount
  • float: 0.0 - 1.0 (0-100%)
  • default: 1.0 (100%)
116-117
  • 0:
118-119 Attack
  • short: 0-10000 (0-10 seconds)
  • default: 0
120-121
  • 0:
122-123 Decay
  • short: 0-10000 (0-10 seconds)
  • default: 0
124-127 Sustain
  • float: 0.0-1.0 (0%-100%)
  • default: 1.0 (100%)
128-129 Release
  • short: 0-10000 (0-10 seconds)
  • default: 1000 (1 second)
**Panning automation**
130-131 Automation type
  • 00: Off (default)
  • 01: Envelope
  • 11: LFO

Note

This is probably type + on/off.

**Cutoff automation envelope*
132-135 Amount
  • float: 0.0 - 1.0 (0-100%)
  • default: 1.0 (100%)
136-137
  • 0:
138-139 Attack
  • short: 0-10000 (0-10 seconds)
  • default: 0
140-141
  • 0:
142-143 Decay
  • short: 0-10000 (0-10 seconds)
  • default: 0
144-147 Sustain
  • float: 0.0-1.0 (0%-100%)
  • default: 1.0 (100%)
148-149 Release
  • short: 0-10000 (0-10 seconds)
  • default: 1000 (1 second)
**Cutoff automation**
150-151 Automation type
  • 00: Off (default)
  • 01: Envelope
  • 11: LFO

Note

This is probably type + on/off.

**Wavetab le position automati on envelope**
152-155 Amount
  • float: 0.0 - 1.0 (0-100%)
  • default: 1.0 (100%)
156-157
  • 0:
158-159 Attack
  • short: 0-10000 (0-10 seconds)
  • default: 0
160-161
  • 0:
162-163 Decay
  • short: 0-10000 (0-10 seconds)
  • default: 0
164-167 Sustain
  • float: 0.0-1.0 (0%-100%)
  • default: 1.0 (100%)
168-169 Release
  • short: 0-10000 (0-10 seconds)
  • default: 1000 (1 second)
**Wavetab le position automati on**
170-171 Automation type
  • 00: Off (default)
  • 01: Envelope
  • 11: LFO

Note

This is probably type + on/off.

**Granula r position automatio n envelope**
172-175 Amount
  • float: 0.0 - 1.0 (0-100%)
  • default: 1.0 (100%)
176-177
  • 0:
178-179 Attack
  • short: 0-10000 (0-10 seconds)
  • default: 0
180-181
  • 0:
182-183 Decay
  • short: 0-10000 (0-10 seconds)
  • default: 0
184-187 Sustain
  • float: 0.0-1.0 (0%-100%)
  • default: 1.0 (100%)
188-189 Release
  • short: 0-10000 (0-10 seconds)
  • default: 1000 (1 second)
**Granula r position automatio n**
190-191 Automation type
  • 00: Off (default)
  • 01: Envelope
  • 11: LFO

Note

This is probably type + on/off.

**Finetun e automation envelop e**
192-195 Amount
  • float: 0.0 - 1.0 (0-100%)
  • default: 1.0 (100%)
196-197
  • 0:
198-199 Attack
  • short: 0-10000 (0-10 seconds)
  • default: 0
200-201
  • 0:
202-203 Decay
  • short: 0-10000 (0-10 seconds)
  • default: 0
204-207 Sustain
  • float: 0.0-1.0 (0%-100%)
  • default: 1.0 (100%)
208-209 Release
  • short: 0-10000 (0-10 seconds)
  • default: 1000 (1 second)
**Finetun e automation**
210-211 Automation type
  • 00: Off (default)
  • 01: Envelope
  • 11: LFO

Note

This is probably type + on/off.

**Volume automation LFO**

212

LFO type
  • 0: Rev Saw
  • 1: Saw
  • 2: Triangle (default)
  • 3: Square
  • 4: Random

213

LFO steps
  • 0: 24 steps (default)
  • 1: 16 steps
  • 2: 12 steps
  • 3: 8 steps
  • 4: 6 steps
  • 5: 4 steps
  • 6: 3 steps
  • 7: 2 steps
  • 8: 3/2 step
  • 9: 1 step
  • 10: 3/4 step
  • 11: 1/2 step
  • 12: 3/8 step
  • 13: 1/3 step
  • 14: 1/4 step
  • 15: 3/16 step
  • 16: 1/6 step
  • 17: 1/8 step
  • 18: 1/12 step
  • 19: 1/16 step
  • 20: 1/24 step
  • 21: 1/32 step
  • 22: 1/48 step
  • 23: 1/64 step
214-215
  • 0:
216-219 LFO amount
  • float: 0.0-1.0 (0-100%)
  • default: 0.5 (50%)
**Panning automation LFO**

220

LFO type
  • 0: Rev Saw
  • 1: Saw
  • 2: Triangle (default)
  • 3: Square
  • 4: Random

221

LFO steps
  • 0: 128 steps (default)
  • 1: 96 steps
  • 2: 64 steps
  • 3: 48 steps
  • 4: 32 steps
  • 5: 24 steps
  • 6: 16 steps
  • 7: 12 steps
  • 8: 8 steps
  • 9: 6 steps
  • 10: 4 steps
  • 11: 3 steps
  • 12: 2 steps
  • 13: 3/2 steps
  • 14: 1 step
  • 15: 3/4 step
  • 16: 1/2 step
  • 17: 3/8 step
  • 18: 1/3 step
  • 19: 1/4 step
  • 20: 3/16 step
  • 21: 1/6 step
  • 22: 1/8 step
  • 23: 1/12 step
  • 24: 1/16 step
  • 25: 1/24 step
  • 26: 1/32 step
  • 27: 1/48 step
  • 28: 1/64 step
222-223
  • 0:
224-227 LFO amount
  • float: 0.0-1.0 (0-100%)
  • default: 0.5 (50%)
**Cutoff automation LFO**

228

LFO type
  • 0: Rev Saw
  • 1: Saw
  • 2: Triangle (default)
  • 3: Square
  • 4: Random

229

LFO steps
  • 0: 128 steps (default)
  • 1: 96 steps
  • 2: 64 steps
  • 3: 48 steps
  • 4: 32 steps
  • 5: 24 steps
  • 6: 16 steps
  • 7: 12 steps
  • 8: 8 steps
  • 9: 6 steps
  • 10: 4 steps
  • 11: 3 steps
  • 12: 2 steps
  • 13: 3/2 steps
  • 14: 1 step
  • 15: 3/4 step
  • 16: 1/2 step
  • 17: 3/8 step
  • 18: 1/3 step
  • 19: 1/4 step
  • 20: 3/16 step
  • 21: 1/6 step
  • 22: 1/8 step
  • 23: 1/12 step
  • 24: 1/16 step
  • 25: 1/24 step
  • 26: 1/32 step
  • 27: 1/48 step
  • 28: 1/64 step
230-231
  • 0:
232-235 LFO amount
  • float: 0.0-1.0 (0-100%)
  • default: 0.5 (50%)
**Wavetab le position automati on LFO**

236

LFO type
  • 0: Rev Saw
  • 1: Saw
  • 2: Triangle (default)
  • 3: Square
  • 4: Random

237

LFO steps
  • 0: 128 steps (default)
  • 1: 96 steps
  • 2: 64 steps
  • 3: 48 steps
  • 4: 32 steps
  • 5: 24 steps
  • 6: 16 steps
  • 7: 12 steps
  • 8: 8 steps
  • 9: 6 steps
  • 10: 4 steps
  • 11: 3 steps
  • 12: 2 steps
  • 13: 3/2 steps
  • 14: 1 step
  • 15: 3/4 step
  • 16: 1/2 step
  • 17: 3/8 step
  • 18: 1/3 step
  • 19: 1/4 step
  • 20: 3/16 step
  • 21: 1/6 step
  • 22: 1/8 step
  • 23: 1/12 step
  • 24: 1/16 step
  • 25: 1/24 step
  • 26: 1/32 step
  • 27: 1/48 step
  • 28: 1/64 step
238-239
  • 0:
240-243 LFO amount
  • float: 0.0-1.0 (0-100%)
  • default: 0.5 (50%)
**Granula r position automatio n LFO**

244

LFO type
  • 0: Rev Saw
  • 1: Saw
  • 2: Triangle (default)
  • 3: Square
  • 4: Random

245

LFO steps
  • 0: 128 steps (default)
  • 1: 96 steps
  • 2: 64 steps
  • 3: 48 steps
  • 4: 32 steps
  • 5: 24 steps
  • 6: 16 steps
  • 7: 12 steps
  • 8: 8 steps
  • 9: 6 steps
  • 10: 4 steps
  • 11: 3 steps
  • 12: 2 steps
  • 13: 3/2 steps
  • 14: 1 step
  • 15: 3/4 step
  • 16: 1/2 step
  • 17: 3/8 step
  • 18: 1/3 step
  • 19: 1/4 step
  • 20: 3/16 step
  • 21: 1/6 step
  • 22: 1/8 step
  • 23: 1/12 step
  • 24: 1/16 step
  • 25: 1/24 step
  • 26: 1/32 step
  • 27: 1/48 step
  • 28: 1/64 step
246-247
  • 0:
248-251 LFO amount
  • float: 0.0-1.0 (0-100%)
  • default: 0.5 (50%)
**Finetun e automation LFO**

252

LFO type
  • 0: Rev Saw
  • 1: Saw
  • 2: Triangle (default)
  • 3: Square
  • 4: Random

253

LFO steps
  • 0: 128 steps (default)
  • 1: 96 steps
  • 2: 64 steps
  • 3: 48 steps
  • 4: 32 steps
  • 5: 24 steps
  • 6: 16 steps
  • 7: 12 steps
  • 8: 8 steps
  • 9: 6 steps
  • 10: 4 steps
  • 11: 3 steps
  • 12: 2 steps
  • 13: 3/2 steps
  • 14: 1 step
  • 15: 3/4 step
  • 16: 1/2 step
  • 17: 3/8 step
  • 18: 1/3 step
  • 19: 1/4 step
  • 20: 3/16 step
  • 21: 1/6 step
  • 22: 1/8 step
  • 23: 1/12 step
  • 24: 1/16 step
  • 25: 1/24 step
  • 26: 1/32 step
  • 27: 1/48 step
  • 28: 1/64 step
254-255
  • 0:
256-259 LFO amount
  • float: 0.0-1.0 (0-100%)
  • default: 0.5 (50%)
*Filter
260-263 Cutoff
  • float: 0.0 - 1.0 (0-100%)
  • default: 1.0 (100%)
264-267 Resonance
  • float: 0.0 - 4.300000190734863 (0-100%)
  • default: 0.0 (0%)
268-269 Filter type
  • 00: Disabled (default)
  • 01: Low-pass
  • 11: High-pass
  • 21: Band-pass

Note

This is probably filter type + on/off

**Instrum ent parameters / eff ects**

270

Tune
  • signed char: -/+24
  • default: 0

271

Finetune
  • signed char: -/+100
  • default: 0

272

Volume
  • 0: -inf dB
  • 1-100: -/+24 dB
  • default: 50 (0 dB)
273-275
  • 0:

276

Panning
  • 0-100: -/+50
  • default: 50 (0/center)

277

  • 0:

278

Delay send
  • 0: -inf dB
  • 1-100: -39.6/+0 dB
  • default: 0

279

  • 0:
*Slices
280-375 Slice 1-48 adjust
  • short: 0-65535
  • default: 0

Note

Calculate the offset using (value / 65535) * (sample length in ms)

Note

Value range is limited by the preceeding slice's adjust value

376

Number of slices
  • 0-48
  • default: 0

377

Active slice
  • 0-47
  • default: 0
**Granula r**
378-379 Granular length
  • Short: 44-44100 (1.0 - 1000.0 ms)
  • default: 441 (10 ms)
380-381 Granular position
  • short: 0-65535 (start-end)
  • default: 0 (start)

Note

To calculate the offset (value / 65535) * (sample length in ms)

382

Granular shape
  • 0: Square (default)
  • 1: Triangle
  • 2: Gauss

383

Granular loop mode
  • 0: Forward (default)
  • 1: Backward
  • 2: PingPong
**More ef fects**

384

Reverb send
  • 0: -inf dB
  • 1-100: -39.6/+0 dB
  • default: 0

385

Overdrive
  • 0-100: 0-100%
  • default: 0

386

Bit depth
  • 4-16: 4-16 bit
  • default: 16

387

  • 0:
388-391
  • ?: Unknown