t_change = 2
times = arange(0, 4, sample_rate)
ramp = 1.0 / (1 + exp(-6.0 * (times - t_change)))
freq = f0 * (1 - ramp) + f1 * ramp
phase_correction = add.accumulate(times * concatenate((zeros(1), 2 * pi * (
    freq[:-1] - freq[1:]))))
figure()
subplot(311)
plot(times, freq)
subplot(312)
plot(times, sin(2 * pi * freq * times))
subplot(313)
plot(times, sin(2 * pi * freq * times + phase_correction))
show()
синусоидальное глиссандо от одного шага к другому в Numpy