Corrections in handling missing neutral tones
[sgc2.git] / ToneProt / DrawToneContour.praat
blob743387379014e87cb6657e7c3124c0c81d6437a5
1 #! praat
4 # Draw the correct tone tracks
6 # Needs
7 # include ToneScript.praat
9 procedure drawToneContour drawToneContour.pinyin$ drawToneContour.register
10         # Clean up input
11         if drawToneContour.pinyin$ <> ""
12         drawToneContour.pinyin$ = replace_regex$(drawToneContour.pinyin$, "^\s*(.+)\s*$", "\1", 1)
13         drawToneContour.pinyin$ = replace_regex$(drawToneContour.pinyin$, "5", "0", 0)
14                 if index_regex(drawToneContour.pinyin$, "[0-9]$") <=0
15                         drawToneContour.pinyin$ = drawToneContour.pinyin$+"0"
16                 endif
17         endif
19         # Generate reference example
20         # Start with a range of 1 octave and a speed factor of 1
21         drawToneContour.toneRange = 1.0
22         drawToneContour.speedFactor = 1.0
23         call toneScript 'drawToneContour.pinyin$' 'drawToneContour.register' 1 1 CorrectPitch
24         drawToneContour.freqTop = 1.5 * drawToneContour.register
26         # Draw Pitch track
27         select Pitch 'drawToneContour.pinyin$'
28         demo Select outer viewport... 20 80 40 100
29         demo Axes... 0 100 0 100
30         demo Line width... 1
31         demo Green
32         demo Draw... 0 0 0 'drawToneContour.freqTop' 0
33         demo Line width... 3
34         demo Green
35         demo Draw... 0 0 0 'drawToneContour.freqTop' 0
36         demo Select outer viewport... 0 100 0 100
37         demo Axes... 0 100 0 100
39         # Clean up
40         select Pitch 'drawToneContour.pinyin$'
41         Remove
42 endproc
45 procedure drawSourceToneContour drawToneContour.sourcePitch
46         if drawToneContour.sourcePitch > 0
47                 call reset_viewport
48                 demo Select inner viewport... 20 80 40 100
49                 demo Axes... 0 100 0 100
50         
51             select drawToneContour.sourcePitch
52             demo Red
53             demo Line width... 3
54             demo Draw... 0 0 0 'freqTop' 0
55         
56             demo Line width... 1
57                 call reset_viewport
58         endif
59 endproc