Lines Matching refs:bends
47 } *bends; member
81 p->bends[i].str = lsx_strdup(argv[i]); in parse()
83 next = lsx_parseposition(rate, p->bends[i].str, in parse()
84 argv ? NULL : &p->bends[i].start, last_seen, in_length, '+'); in parse()
85 last_seen = p->bends[i].start; in parse()
89 p->bends[i].cents = strtod(next + 1, (char **)&next); in parse()
90 if (p->bends[i].cents == 0 || *next != ',') in parse()
94 argv ? NULL : &p->bends[i].duration, last_seen, in_length, '+'); in parse()
95 last_seen = p->bends[i].duration; in parse()
100 if (!argv && p->bends[i].duration < p->bends[i].start) { in parse()
104 if (!argv && i && p->bends[i].start < p->bends[i-1].start) { in parse()
109 p->bends[i].duration -= p->bends[i].start; in parse()
134 p->bends = lsx_calloc(p->nbends, sizeof(*p->bends)); in create()
150 if (p->bends[i].duration) in start()
188 p->bends[p->bends_pos].start + p->bends[p->bends_pos].duration) { in flow()
189 pitchShift = p->shift *= pow(2., p->bends[p->bends_pos].cents / 1200); in flow()
192 if (p->bends_pos != p->nbends && p->in_pos >= p->bends[p->bends_pos].start) { in flow()
193 double progress = (double)(p->in_pos - p->bends[p->bends_pos].start) / in flow()
194 p->bends[p->bends_pos].duration; in flow()
196 progress *= p->bends[p->bends_pos].cents * (.5 / 1200); in flow()
313 free(p->bends[i].str); in lsx_kill()
314 free(p->bends); in lsx_kill()