import synthlib, math, sys rate = 44100 # freq is multiplied by factor every period def sine(t, period, decay, factor, full_period): tt = (t + decay) % full_period if tt == 0: volume = 0 elif tt <= full_period/2: volume = tt/(full_period/2) else: volume = (full_period-tt)/(full_period/2) freq_factor = 27.5*factor**(tt/period) return volume**2*math.sin(tt*freq_factor/rate*2*math.pi) nb = 3 sound_encoder = synthlib.SoundEncoder(env={ "sampling": rate, "signed": True, "verbose": False, "bits": 32, "msbfirst": True, "tempo": 130 }) for t in range(rate*16): sound_encoder.write_sample(sum([sine(t, rate, i*rate/nb*4, 2, rate*4) for i in range(nb)])/nb)