## Pico MP3 Sampler Kit Example Code ## Iffy Books | iffybooks.net| wtfpl 2025 ## The following code is in CircuitPython! import board import audiomp3 import audiopwmio import digitalio import time import random led = digitalio.DigitalInOut(board.GP25) led.direction = digitalio.Direction.OUTPUT for i in range(3): led.value = True time.sleep(0.05) led.value = False audio = audiopwmio.PWMAudioOut(board.GP28) ## The pins we'll use for our keys keypress_pins = [board.GP3, board.GP12, board.GP16, board.GP17, board.GP18, board.GP19, board.GP20, board.GP21, board.GP22, board.GP26] ## Our array of key objects key_pin_array = [] ## Initialize pin objects for pin in keypress_pins: key_pin = digitalio.DigitalInOut(pin) key_pin.direction = digitalio.Direction.INPUT key_pin.pull = digitalio.Pull.UP key_pin_array.append(key_pin) all_mp3s = ["KIT2.mp3","KIT.mp3","KIT_CLAP.mp3","KIT_BEEP.mp3", "HC00.mp3","CY5050.mp3","CB.mp3","LT10.mp3", "BD1025.mp3","MA.mp3","Hand_Clap_Sample.mp3"] mp3_list = [] ## Select random samples for i in range(len(all_mp3s)): random_mp3 = random.choice(all_mp3s) all_mp3s.remove(random_mp3) mp3_list.append(random_mp3) for i in range(len(mp3_list)): print(str(i+1) + " " + mp3_list[i]) ## Infinite loop while True: ## Loop through pin objects for key_pin in key_pin_array: ## Check whether pin is grounded if not key_pin.value: ## Play audio led.value = True i = key_pin_array.index(key_pin) decoder = audiomp3.MP3Decoder(open(mp3_list[i], "rb")) audio.play(decoder) print("Playing " + mp3_list[i]) while not key_pin.value: pass led.value = False