Skip to content

Commit 36ec7b3

Browse files
authored
Merge pull request #41 from caternuson/iss40
adjust sample length if needed for max sample rate
2 parents 558d3a0 + cb05dd2 commit 36ec7b3

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

adafruit_circuitplayground/express.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -562,10 +562,9 @@ def _sine_sample(length):
562562
for i in range(length):
563563
yield int(tone_volume * math.sin(2*math.pi*(i / length)) + shift)
564564

565-
def _generate_sample(self):
565+
def _generate_sample(self, length=100):
566566
if self._sample is not None:
567567
return
568-
length = 100
569568
self._sine_wave = array.array("H", Express._sine_sample(length))
570569
if sys.implementation.version[0] >= 3:
571570
self._sample = audioio.AudioOut(board.SPEAKER)
@@ -617,7 +616,10 @@ def start_tone(self, frequency):
617616
cpx.stop_tone()
618617
"""
619618
self._speaker_enable.value = True
620-
self._generate_sample()
619+
length = 100
620+
if length * frequency > 350000:
621+
length = 350000 // frequency
622+
self._generate_sample(length)
621623
# Start playing a tone of the specified frequency (hz).
622624
if sys.implementation.version[0] >= 3:
623625
self._sine_wave_sample.sample_rate = int(len(self._sine_wave) * frequency)

0 commit comments

Comments
 (0)