# i2c display setup
display_bus = displayio.I2CDisplay(i2c, device_address=0x3D)
# i2c AW9523 GPIO expander setup
aw = adafruit_aw9523.AW9523(i2c)
# MIDI setup as MIDI out device
midi = adafruit_midi.MIDI(midi_out=usb_midi.ports[1], out_channel=0)
# display dimensions
WIDTH = 128
HEIGHT = 128
# display setup
display = adafruit_ssd1327.SSD1327(display_bus, width=WIDTH, height=HEIGHT, brightness = 0.01)
# main display group, shows default GUI menu
splash = displayio.Group(max_size=60)
# group for circle icons
circle_group = displayio.Group(max_size=30)
# group for text labels on circles
text_group = displayio.Group(max_size=30)
# list of circle positions
spots = (
(16, 16),
(48, 16),
(80, 16),
(112, 16),
(16, 48),
(48, 48),
(80, 48),
(112, 48),
(16, 80),
(48, 80),
(80, 80),
(112, 80),
(16, 112),
(48, 112),
(80, 112),
(112, 112),
)
# creating the circles & pulling in positions from spots
for spot in spots:
circle = Circle(x0=spot[0], y0=spot[1], r=14, fill=0x888888)
# adding circles to their display group
circle_group.append(circle)
# square to show position on menu
rect = Rect(0, 0, 33, 33, fill=None, outline=0x00FF00, stroke = 3)
splash.append(circle_group)
splash.append(rect)
# strings and positions for the MIDI note text labels
texts = [
{'num': "60", 'pos': (12, 16)},
{'num': "61", 'pos': (44, 16)},
{'num': "62", 'pos': (76, 16)},
{'num': "63", 'pos': (108, 16)},
{'num': "64", 'pos': (12, 48)},
{'num': "65", 'pos': (44, 48)},
{'num': "66", 'pos': (76, 48)},
{'num': "67", 'pos': (108, 48)},
{'num': "68", 'pos': (12, 80)},
{'num': "69", 'pos': (44, 80)},