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.

Wavetable position automation 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)
Wavetable position automation
170-171 Automation type
  • 00: Off (default)
  • 01: Envelope
  • 11: LFO

Note

This is probably type + on/off.

Granular position automation 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)
Granular position automation
190-191 Automation type
  • 00: Off (default)
  • 01: Envelope
  • 11: LFO

Note

This is probably type + on/off.

Finetune automation envelope
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)
Finetune 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%)
Wavetable position automation 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%)
Granular position automation 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%)
Finetune 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

Instrument parameters / effects
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
Granular
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 effects
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