def clr_range(num: number): global x_scrn for index in range(2): x_scrn = index + num for y_scrn in range(5): led.unplot(x_scrn, y_scrn) def on_button_pressed_a(): global value, xval, yval, range2 value += 1 if value > 8: value = -1 xval = 0 yval = -1 clr_range(0) else: if value == 5: xval = 1 yval = -1 yval += 1 led.plot(xval, Math.map(yval, 0, 4, 4, 0)) range2 = 1 + value frequency() input.on_button_pressed(Button.A, on_button_pressed_a) def on_button_pressed_ab(): global o_enable if o_enable == 0: o_enable = 1 led.plot(2, 2) else: o_enable = 0 led.unplot(2, 2) input.on_button_pressed(Button.AB, on_button_pressed_ab) def on_button_pressed_b(): global scale, xsig, ysig, multiplier scale += 1 if scale > 5: scale = -1 xsig = 3 ysig = -1 clr_range(3) else: if scale == 5: xsig = 4 ysig = -1 ysig += 1 led.plot(xsig, Math.map(ysig, 0, 4, 4, 0)) if scale == -1: multiplier = 0 else: multiplier = 10 ** scale + 0 frequency() input.on_button_pressed(Button.B, on_button_pressed_b) def output(): if o_enable == 0: music.ring_tone(0) else: if freq >= 4: music.ring_tone(freq) else: music.ring_tone(0) def frequency(): global freq freq = range2 * multiplier output() def reset(): global xval, yval, value, xsig, ysig, scale, freq, range2, multiplier, o_enable xval = 0 yval = -1 value = -1 xsig = 3 ysig = -1 scale = -1 freq = 0 range2 = 0 multiplier = 0 o_enable = 0 pins.analog_pitch(0, 0) music.ring_tone(0) freq = 0 multiplier = 0 ysig = 0 xsig = 0 scale = 0 o_enable = 0 range2 = 0 yval = 0 xval = 0 value = 0 x_scrn = 0 # Needs to be included to ensure the output is off at start up otherwise it starts up at 44kHz pins.analog_set_pitch_pin(AnalogPin.P0) music.set_built_in_speaker_enabled(False) basic.show_string("S_PGEN") reset() def on_forever(): pass basic.forever(on_forever)