I am playing with the audio on my PYNQ Tul-2 Board (the overlay is from May 2020), trying to build my own audio.
I wrote a simple routine to fill the channels with sine-wave data:
from pynq.overlays.base import BaseOverlay import numpy as np import math adc_sample_freq = 48000 # Number of samples we need to provide per second. base = BaseOverlay("base.bit") pAudio = base.audio pAudio.configure(sample_rate=adc_sample_freq) pAudio.select_microphone() num_samples = adc_sample_freq*2*10 # 10-seconds of dual-channel audio # # Build an array in numpy of int32s. samples = np.zeros(num_samples).astype(np.int32) TwoPi = math.pi*2 amplitude = 500000 # # Build two sine-waves. # def MakeSample(sample,tone_freq): return int(math.sin((sample*TwoPi)*tone_freq/adc_sample_freq)*amplitude) for sample in range(0,num_samples,2): samples[sample] = MakeSample(sample/2,400) samples[sample+1] = MakeSample(sample/2,300) pAudio.buffer = samples pAudio.sample_len = num_samples pAudio.play()
I hear the sine-waves just fine, but play() never exits. Any idea what I might be doing wrong here?