#you'll have to run pip install keyboard AND pip install playsound3 in powershell import time import keyboard as kb from playsound3 import playsound waited = False Fr1 = 0 FRi1 = [0] Fr2 = 0 FRi2 = [0] Fr3 = 0 FRi3 = [0] Fr4 = 0 FRi4 = [0] def fretboardtonotes(string, fret): global fretform, notation fretform = ('{x}-{y}'.format(x = string, y = fret)) if fretform == '4-0': notation = 'E1' elif fretform == '4-1': notation = 'F1' elif fretform == '4-2': notation = 'F#1' elif fretform == '4-3': notation = 'G1' elif fretform == '4-4': notation = 'G#1' elif fretform == '4-5' or fretform == '3-0': notation = 'A1' elif fretform == '4-6' or fretform == '3-1': notation = 'A#1' elif fretform == '4-7' or fretform == '3-2': notation = 'B1' elif fretform == '4-8' or fretform == '3-3': notation = 'C2' elif fretform == '4-9' or fretform == '3-4': notation = 'C#2' elif fretform == '4-10' or fretform == '3-5' or fretform == '2-0': notation = "D2" elif fretform == '4-11' or fretform == '3-6' or fretform == '2-1': notation = "D#2" elif fretform == '3-7' or fretform == '2-2': notation = 'E2' elif fretform == '3-8' or fretform == '2-3': notation = 'F2' elif fretform == '3-9' or fretform == '2-4': notation = 'F#2' elif fretform == '3-10' or fretform == '2-5' or fretform == '1-0': notation = 'G2' elif fretform == '3-11' or fretform == '2-6' or fretform == '1-1': notation = 'G#2' elif fretform == '2-7' or fretform == '1-2': notation = 'A2' elif fretform == '2-8' or fretform == '1-3': notation = 'A#2' elif fretform == '2-9' or fretform == '1-4': notation = 'B2' elif fretform == '2-10' or fretform == '1-5': notation = 'C3' elif fretform == '2-11' or fretform == '1-6': notation = 'C#3' elif fretform == '1-7': notation = 'D3' elif fretform == '1-8': notation = 'D#3' elif fretform == '1-9': notation = 'E3' elif fretform == '1-10': notation = "F3" elif fretform == '1-11': notation = "F#3" return notation while True: if kb.is_pressed('`'): FRi1.append(1) elif 1 in FRi1: FRi1.remove(1) if kb.is_pressed('1'): FRi1.append(2) elif 2 in FRi1: FRi1.remove(2) if kb.is_pressed('2'): FRi1.append(3) elif 3 in FRi1: FRi1.remove(3) if kb.is_pressed('3'): FRi1.append(4) elif 4 in FRi1: FRi1.remove(4) if kb.is_pressed('4'): FRi1.append(5) elif 5 in FRi1: FRi1.remove(5) if kb.is_pressed('5'): FRi1.append(6) elif 6 in FRi1: FRi1.remove(6) if kb.is_pressed('6'): FRi1.append(7) elif 7 in FRi1: FRi1.remove(7) if kb.is_pressed('7'): FRi1.append(8) elif 8 in FRi1: FRi1.remove(8) if kb.is_pressed('8'): FRi1.append(9) elif 9 in FRi1: FRi1.remove(9) if kb.is_pressed('9'): FRi1.append(10) elif 10 in FRi1: FRi1.remove(10) if kb.is_pressed('0'): FRi1.append(11) elif 11 in FRi1: FRi1.remove(11) Fr1 = max(FRi1) if kb.is_pressed('tab'): FRi2.append(1) elif 1 in FRi2: FRi2.remove(1) if kb.is_pressed('Q'): FRi2.append(2) elif 2 in FRi2: FRi2.remove(2) if kb.is_pressed('W'): FRi2.append(3) elif 3 in FRi2: FRi2.remove(3) if kb.is_pressed('E'): FRi2.append(4) elif 4 in FRi2: FRi2.remove(4) if kb.is_pressed('R'): FRi2.append(5) elif 5 in FRi2: FRi2.remove(5) if kb.is_pressed('T'): FRi2.append(6) elif 6 in FRi2: FRi2.remove(6) if kb.is_pressed('Y'): FRi2.append(7) elif 7 in FRi2: FRi2.remove(7) if kb.is_pressed('U'): FRi2.append(8) elif 8 in FRi2: FRi2.remove(8) if kb.is_pressed('I'): FRi2.append(9) elif 9 in FRi2: FRi2.remove(9) if kb.is_pressed('O'): FRi2.append(10) elif 10 in FRi2: FRi2.remove(10) if kb.is_pressed('P'): FRi2.append(11) elif 11 in FRi2: FRi2.remove(11) Fr2 = max(FRi2) if kb.is_pressed(58): FRi3.append(1) elif 1 in FRi3: FRi3.remove(1) if kb.is_pressed('A'): FRi3.append(2) elif 2 in FRi3: FRi3.remove(2) if kb.is_pressed('S'): FRi3.append(3) elif 3 in FRi3: FRi3.remove(3) if kb.is_pressed('D'): FRi3.append(4) elif 4 in FRi3: FRi3.remove(4) if kb.is_pressed('F'): FRi3.append(5) elif 5 in FRi3: FRi3.remove(5) if kb.is_pressed('G'): FRi3.append(6) elif 6 in FRi3: FRi3.remove(6) if kb.is_pressed('H'): FRi3.append(7) elif 7 in FRi3: FRi3.remove(7) if kb.is_pressed('J'): FRi3.append(8) elif 8 in FRi3: FRi3.remove(8) if kb.is_pressed('K'): FRi3.append(9) elif 9 in FRi3: FRi3.remove(9) if kb.is_pressed('L'): FRi3.append(10) elif 10 in FRi3: FRi3.remove(10) if kb.is_pressed(';'): FRi3.append(11) elif 11 in FRi3: FRi3.remove(11) Fr3 = max(FRi3) if kb.is_pressed('shift'): FRi4.append(1) elif 1 in FRi4: FRi4.remove(1) if kb.is_pressed('Z'): FRi4.append(2) elif 2 in FRi4: FRi4.remove(2) if kb.is_pressed('X'): FRi4.append(3) elif 3 in FRi4: FRi4.remove(3) if kb.is_pressed('C'): FRi4.append(4) elif 4 in FRi4: FRi4.remove(4) if kb.is_pressed('V'): FRi4.append(5) elif 5 in FRi4: FRi4.remove(5) if kb.is_pressed('B'): FRi4.append(6) elif 6 in FRi4: FRi4.remove(6) if kb.is_pressed('N'): FRi4.append(7) elif 7 in FRi4: FRi4.remove(7) if kb.is_pressed('M'): FRi4.append(8) elif 8 in FRi4: FRi4.remove(8) if kb.is_pressed(','): FRi4.append(9) elif 9 in FRi4: FRi4.remove(9) if kb.is_pressed('.'): FRi4.append(10) elif 10 in FRi4: FRi4.remove(10) if kb.is_pressed('/'): FRi4.append(11) elif 11 in FRi4: FRi4.remove(11) Fr4 = max(FRi4) if kb.is_pressed(55): print(fretboardtonotes(1, Fr1)) playsound(fretboardtonotes(1, Fr1) + '.mp3', block=False) if kb.is_pressed('page up'): print(fretboardtonotes(2, Fr2)) playsound(fretboardtonotes(2, Fr2) + '.mp3', block=False) if kb.is_pressed('right'): print(fretboardtonotes(3, Fr3)) playsound(fretboardtonotes(3, Fr3) + '.mp3', block=False) if kb.is_pressed('page down'): print(fretboardtonotes(4, Fr4)) playsound(fretboardtonotes(4, Fr4) + '.mp3', block=False) time.sleep(0.3) if kb.is_pressed('esc'): break