Lines Matching defs:sg
45 int sin_generator_init(struct sin_generator *sg, float magnitude,
52 sg->phasor_real = cos(w);
53 sg->phasor_imag = sin(w);
54 sg->magnitude = magnitude;
55 sg->state_real = 0.0;
56 sg->state_imag = magnitude;
57 sg->frequency = frequency;
58 sg->sample_rate = sample_rate;
69 float sin_generator_next_sample(struct sin_generator *sg)
72 const double pr = sg->phasor_real;
73 const double pi = sg->phasor_imag;
74 const double sr = sg->state_real;
75 const double si = sg->state_imag;
77 sg->state_real = sr * pr - si * pi;
78 sg->state_imag = sr * pi + pr * si;
84 void sin_generator_vfill(struct sin_generator *sg, float *buf, int n)
88 *buf++ = sin_generator_next_sample(sg);
153 static struct sin_generator sg[MAX_CHANNELS];
164 if (sg[c].frequency != bat->target_freq[c])
165 sin_generator_init(&sg[c], 1.0, bat->target_freq[c],
168 sin_generator_vfill(&sg[c], sinus_f + c * frames, frames);
194 struct sin_generator sg;
196 err = sin_generator_init(&sg, 1.0, freq, bat->rate);
199 sin_generator_vfill(&sg, buf, nsamples);