In [ ]:
import pytiers as pyt
from pytiers import parameters, by

Read PitchTier¶

In [ ]:
pt = pyt.read_tier('Demo.PitchTier')

Get first 10 points¶

In [ ]:
pt[:10]
Out[ ]:
[Point[1](time=0.6916666666666658, value=251.1239495891874),
 Point[2](time=0.7016666666666658, value=252.44049383098044),
 Point[3](time=0.7116666666666658, value=252.9173724758031),
 Point[4](time=0.7216666666666658, value=252.43241443363095),
 Point[5](time=0.7316666666666657, value=252.0881696843589),
 Point[6](time=0.7416666666666657, value=252.27266855152342),
 Point[7](time=0.7516666666666657, value=253.24763154144037),
 Point[8](time=0.7616666666666657, value=253.52590107673126),
 Point[9](time=0.7716666666666657, value=251.51992392003504),
 Point[10](time=0.7816666666666657, value=248.1101529518708)]

Get point¶

Get nearest point by time¶

In [ ]:
pt.get_point(1, by=by.TIME, strict=False)
Out[ ]:
Point[32](time=1.0016666666666656, value=241.0621128930537)

Get point by index¶

In [ ]:
pt.get_point(30, by=by.INDEX)
Out[ ]:
Point[30](time=0.9816666666666657, value=245.41827910799626)

Get points¶

Get points between two indices¶

In [ ]:
pt.get_points((25, 30), by=by.INDEX)
Out[ ]:
[Point[25](time=0.9316666666666658, value=267.4230299089029),
 Point[26](time=0.9416666666666658, value=266.60008314559127),
 Point[27](time=0.9516666666666658, value=264.84054480946844),
 Point[28](time=0.9616666666666658, value=261.9267821109761),
 Point[29](time=0.9716666666666658, value=255.23190926027488),
 Point[30](time=0.9816666666666657, value=245.41827910799626)]

Get points between two points¶

In [ ]:
p1 = pt.get_point(25, by=by.INDEX)
p2 = pt.get_point(30, by=by.INDEX)
pt.get_points((p1.point_index, p2.point_index), by=by.INDEX)
Out[ ]:
[Point[25](time=0.9316666666666658, value=267.4230299089029),
 Point[26](time=0.9416666666666658, value=266.60008314559127),
 Point[27](time=0.9516666666666658, value=264.84054480946844),
 Point[28](time=0.9616666666666658, value=261.9267821109761),
 Point[29](time=0.9716666666666658, value=255.23190926027488),
 Point[30](time=0.9816666666666657, value=245.41827910799626)]

Get points between two time points¶

In [ ]:
pt.get_points((1, 1.2), by=by.TIME)
Out[ ]:
[Point[32](time=1.0016666666666656, value=241.0621128930537),
 Point[33](time=1.0716666666666657, value=212.33672284905182),
 Point[34](time=1.0816666666666657, value=200.67829192385588),
 Point[35](time=1.0916666666666657, value=194.16760800689113),
 Point[36](time=1.1016666666666657, value=191.06725871396833),
 Point[37](time=1.1116666666666657, value=188.3035543677083),
 Point[38](time=1.1216666666666657, value=183.4968842869545),
 Point[39](time=1.1316666666666657, value=167.80906300947834),
 Point[40](time=1.1416666666666657, value=162.70691449134793)]

Append point¶

In [ ]:
pt.add_point(pyt.Point(time=1.11, value=200))
pt.get_points((1, 1.2), by=by.TIME)
Out[ ]:
[Point[32](time=1.0016666666666656, value=241.0621128930537),
 Point[33](time=1.0716666666666657, value=212.33672284905182),
 Point[34](time=1.0816666666666657, value=200.67829192385588),
 Point[35](time=1.0916666666666657, value=194.16760800689113),
 Point[36](time=1.1016666666666657, value=191.06725871396833),
 Point[37](time=1.11, value=200),
 Point[38](time=1.1116666666666657, value=188.3035543677083),
 Point[39](time=1.1216666666666657, value=183.4968842869545),
 Point[40](time=1.1316666666666657, value=167.80906300947834),
 Point[41](time=1.1416666666666657, value=162.70691449134793)]

Convert to dataframe¶

In [ ]:
pt.to_dataframe()
Out[ ]:
index time value
0 1 0.691667 251.123950
0 2 0.701667 252.440494
0 3 0.711667 252.917372
0 4 0.721667 252.432414
0 5 0.731667 252.088170
... ... ... ...
0 5489 102.041667 108.972834
0 5490 102.051667 109.298668
0 5491 102.061667 104.503082
0 5492 102.121667 367.698449
0 5493 102.131667 366.882131

5493 rows × 3 columns

Convert to plot¶

In [ ]:
pt.to_plot()
Out[ ]:
<AxesSubplot:xlabel='time', ylabel='value'>

You can also use Plotly.

In [ ]:
parameters['to_plot.package'] = 'plotly'
In [ ]:
pt.to_plot()

Write to file¶

In [ ]:
pt.write_to_file('path_to_file')

Read DurationTier¶

In [ ]:
dt = pyt.read_tier('Demo.DurationTier')
In [ ]:
dt
Out[ ]:
DurationTier(name=Demo, start_time=0.0, end_time=103.25333333333333, duration=103.25333333333333, points=[Point[1](time=15.922818410128954, value=1.928128544596358), Point[2](time=47.466551184790944, value=0.7290640131233914), Point[3](time=73.8901418279136, value=2.0710939310412115)])