i2s_test.py 608 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #python
  2. import math
  3. from k210 import I2S
  4. sample_rate = 8000
  5. i2s=I2S(0, I2S.TRANSMITTER)
  6. i2s.init()
  7. i2s.set_param(sample_rate, bps = 16, track_num = 1)
  8. def sin_sound(freq, len, samrate):
  9. pcm = bytearray()
  10. step = (2 * math.pi * freq)/samrate
  11. for i in range(0, len):
  12. val = 5000 * math.sin(i * step)
  13. iv = int(val)
  14. pcm += iv.to_bytes(2, "little", True)
  15. return pcm
  16. def play(i2s, freq, len):
  17. snd=sin_sound(freq, len, sample_rate)
  18. i2s.play(snd)
  19. return
  20. play(i2s, 523, 2048)
  21. play(i2s, 587, 2048)
  22. play(i2s, 659, 2048)
  23. play(i2s, 698, 2048)
  24. play(i2s, 784, 2048)
  25. play(i2s, 880, 2048)
  26. play(i2s, 988, 2048)