i2s_samples.py 698 B

123456789101112131415161718192021222324252627282930313233343536
  1. #python
  2. import math
  3. import time
  4. from k210 import I2S
  5. sample_rate = 8000
  6. i2s=I2S(0, I2S.TRANSMITTER)
  7. i2s.init()
  8. i2s.set_param(sample_rate, bps = 16, track_num = 1)
  9. # i2s.play(i2s)
  10. def sin_sound(freq, len, samrate):
  11. pcm = bytearray()
  12. step = (2 * math.pi * freq)/samrate
  13. for i in range(0, len):
  14. val = 5000 * math.sin(i * step)
  15. iv = int(val)
  16. pcm += iv.to_bytes(2, "little", True)
  17. return pcm
  18. def play(i2s, freq, len):
  19. snd=sin_sound(freq, len, sample_rate)
  20. i2s.play(snd)
  21. return
  22. play(i2s, 1523, 2048)
  23. play(i2s, 1587, 2048)
  24. play(i2s, 1659, 2048)
  25. play(i2s, 1698, 2048)
  26. time.sleep(2)
  27. play(i2s, 1784, 2048)
  28. play(i2s, 1880, 2048)
  29. play(i2s, 1988, 2048)