From 9c4fdb7a629ecc315a42ae8b182399df5285aaac Mon Sep 17 00:00:00 2001 From: ALittlePatate <48603993+ALittlePatate@users.noreply.github.com> Date: Sun, 6 Sep 2020 16:36:30 +0200 Subject: [PATCH] Add files via upload --- pyano.py | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 pyano.py diff --git a/pyano.py b/pyano.py new file mode 100644 index 0000000..3a073a0 --- /dev/null +++ b/pyano.py @@ -0,0 +1,158 @@ +import sys, os, getopt, time +from pygame import mixer +from pynput.keyboard import Key, Listener + +mixer.init() +file_content = [] +opened_file_content = [] +record = False + +def play(key) : + mixer.music.load('sounds/'+key+'.mp3') + mixer.music.play() + +def main(argv) : + global opened_file_content + tempo = 25 + try: + opts, args = getopt.getopt(argv,"hi:t:o:",["tempo=","open="]) + except getopt.GetoptError: + print('python pyano.py -t -o ') + sys.exit(2) + for opt, arg in opts: + if opt == '-h': + print("Usage :") + print('python pyano.py -t -o ') + sys.exit() + + if opt in ("-t", "--tempo") : + tempo = float(arg) + + if opt in ("-o", "--open"): + mixer.init() + with open("records/"+arg+".pyano", "r") as file_to_open : + opened_file_content_str = file_to_open.read() + opened_file_content = opened_file_content_str.split(",") + file_to_open.close() + + a = 0 + while True : + try : + mixer.music.load('sounds/'+opened_file_content[a]+'.mp3') + mixer.music.play() + except Exception as e : + sys.exit() + time.sleep(tempo) + a = a + 1 + +def rec(key) : + global file_content + global record + + key = str(key) + key = key.replace("'", "") + + if key == "&" or key == "1": + key = "1" + play(key) + elif key == "é" or key == "2": + key = "2" + play(key) + elif key == '"' or key == "3": + key = "3" + play(key) + elif key == '""' or key == "4": + key = "4" + play(key) + elif key == '(' or key == "5": + key = "5" + play(key) + elif key == '-' or key == "6": + key = "6" + play(key) + elif key == 'è' or key == "7" : + key = "7" + play(key) + elif key == '_' or key == "8": + key = "8" + play(key) + elif key == 'ç' or key == "9": + key = "9" + play(key) + elif key == 'à' or key == "0": + key = "0" + play(key) + + if key == 'Key.f7' : + print("recording stoped !") + try : + a=input("Press [ENTER] to continue...") + except : + pass + name = input("Name your recording : ") + with open('records/'+name+'.pyano', 'w') as rec_file : + rec_file.write(','.join(file_content)) + rec_file.close() + print("File saved !") + os.system("cls") + record = False + #sys.exit() + + if key != "Key.f6" : + if key != "Key.f7" : + file_content.append(key) + +def on_press(key) : + global record + global listener + + #On garde juste le nom de la touche, et on supprime les " " + key = str(key) + key = key.replace("'", "") + + if key == 'Key.f6' : + print("starting recording") + record = True + + if record == True : + rec(key) + + if key == "&" : + key = "1" + play(key) + elif key == "é" : + key = "2" + play(key) + elif key == '"' : + key = "3" + play(key) + elif key == '""' : + key = "4" + play(key) + elif key == '(' : + key = "5" + play(key) + elif key == '-' : + key = "6" + play(key) + elif key == 'è' : + key = "7" + play(key) + elif key == '_' : + key = "8" + play(key) + elif key == 'ç' : + key = "9" + play(key) + elif key == 'à' : + key = "0" + play(key) + elif key == 'Key.f8' : + + play(key) + +if __name__ == "__main__": + main(sys.argv[1:]) + +with Listener(on_press=on_press) as listener : + listener.join() \ No newline at end of file