def on_key(key_index, is_pressed): global pattern if is_pressed: x, y = keypad.index_to_coords(key_index) pattern[x + y * 4] = (pattern[x + y * 4] + 1) % 4 if pattern[x + y * 4] == 0: display.drawPixel(x, y, 0x400000) tone = 396 elif pattern[x + y * 4] == 1: display.drawPixel(x, y, 0x004000) tone = 440 elif pattern[x + y * 4] == 2: display.drawPixel(x, y, 0x004040) tone = 495 elif pattern[x + y * 4] == 3: display.drawPixel(x, y, 0x404000) tone = 528 display.flush() sndmixer.freq(synth, tone) sndmixer.play(synth) sndmixer.volume(synth, 64) virtualtimers.new(100, sound_off, False)
def tone(pwm, freq, duration, pause=None): global i freq = round(freq) if not pause: duration = round(duration * 0.9) pause = round(duration * 0.1) if freq < 1: pwm.duty(0) sndmixer.freq(i, 0) else: pwm.freq(freq) #pwm.duty(50) sndmixer.freq(i, freq) time.sleep_ms(duration) sndmixer.freq(i, 0) pwm.duty(0) time.sleep_ms(pause)
mpr121.set(10, 1) # Calibration resets MPR121, here we re-enable LED power buzzer_pin = machine.Pin(12, machine.Pin.OUT) time.sleep(0.01) buzzer_pwm = machine.PWM(buzzer_pin, duty=50) sndmixer.begin(2) synth = sndmixer.synth() sndmixer.volume(synth, 50) sndmixer.waveform(synth, 1) while True: buzzer_pwm.duty(50) buzzer_pwm.freq(500) sndmixer.freq(synth, 500) neopixel.send(bytes([0xFF, 0, 0] * 12)) time.sleep(0.25) buzzer_pwm.freq(600) sndmixer.freq(synth, 600) neopixel.send(bytes([0, 0xFF, 0] * 12)) time.sleep(0.25) buzzer_pwm.freq(800) sndmixer.freq(synth, 800) neopixel.send(bytes([0, 0, 0xFF] * 12)) time.sleep(0.25) buzzer_pwm.freq(500) sndmixer.freq(synth, 500) neopixel.send(bytes([0xFF, 0, 0] * 12)) time.sleep(0.25) buzzer_pwm.freq(600)
from machine import Pin, PWM, random import time import sndmixer sndmixer.begin(2) i = sndmixer.synth() sndmixer.freq(i, 0) sndmixer.volume(i, 10) def tone(pwm, freq, duration, pause=None): global i freq = round(freq) if not pause: duration = round(duration * 0.9) pause = round(duration * 0.1) if freq < 1: pwm.duty(0) sndmixer.freq(i, 0) else: pwm.freq(freq) #pwm.duty(50) sndmixer.freq(i, freq) time.sleep_ms(duration) sndmixer.freq(i, 0) pwm.duty(0) time.sleep_ms(pause) def play(pwm, song):