def test_tone_midi(A4): assert A4.midi == 69 assert A4.up().midi == 70 assert A4.down().midi == 68 with pytest.raises(ValueError): Tone.from_frequency(2).midi with pytest.raises(ValueError): Tone.from_frequency(15000).midi
def test_tone_from_frequency(A4): assert Tone.from_frequency(440) == A4 assert Tone.from_frequency(440.0) == A4 with pytest.raises(ValueError): Tone.from_frequency(-100.0) with pytest.raises(ValueError): Tone.from_frequency(30000.0)
def getButton(channel, event): global qnum, correct_answers, b print("Got {} on {}".format(event, channel)) eh.light.off() if correct_answers[qnum] == 0: eh.light.blue.on() elif correct_answers[qnum] == 1: eh.light.yellow.on() elif correct_answers[qnum] == 2: eh.light.red.on() else: eh.light.green.on() if (channel - 1) == correct_answers[qnum] and event == "press": b.play(Tone.from_frequency(880)) time.sleep(1) else: b.play(Tone.from_frequency(220)) time.sleep(1) b.stop() time.sleep(1) b.play(Tone.from_frequency(220)) b.stop()
async def tone(self, freq, duration=None): self.buzzer.play( Tone.from_frequency(freq)) if freq else self.buzzer.stop() if duration: await asyncio.sleep(duration) self.buzzer.stop()
async def play(self, *, request_stream): async for freq in request_stream: self.buzzer.play( Tone.from_frequency(freq)) if freq else self.buzzer.stop()
def A4(request): return Tone.from_frequency(440.0)