def main(input_filename=None): if input_filename: engine = Engine(input_filename) sections = engine.get_sections() print("track includes sections 1..%d" % len(sections)) else: engine = None client = soundcloud.Client(access_token = "1-58194-65838022-e30bc60d1afac57") while True: cmd = raw_input("arranger > ") if len(cmd) == 0: continue if cmd[0].lower() == "p": if engine: engine.play([int(x) - 1 for x in cmd.split()[1:]]) else: print "load a track with 'l <filename>'" elif cmd[0].lower() == "a": if engine: engine.arrange([int(x) - 1 for x in cmd.split()[1:]]) else: print "load a track with 'l <filename>'" elif cmd[0].lower() == "s": if engine: name = cmd[2:] if len(name) < 1: print "empty name" continue engine.save(name) if not '.' in name: name = name + '.mp3' yesNo = raw_input("Upload track to SoundCloud? (y/n) > ") if yesNo.lower().startswith("y"): title = raw_input("Name your sound > ") genre = raw_input("What genre is your sound? > ") tags = raw_input("Add comma-separated tags > ") track_dict = {'title': title, 'asset_data': open(name, 'rb'), 'genre': genre, 'tag_list': tags} track_dict.update({'sharing': 'public'}) track = client.post('/tracks', track = track_dict) while track.state != "finished": time.sleep(1) track = client.get("/tracks/" + str(track.id)) webbrowser.open(track.permalink_url) else: continue else: print "load a track with 'l <filename>'" elif cmd[0].lower() == "l": if engine: engine.kill() new_filename = cmd[1:].strip() engine = Engine(new_filename) print("track includes sections 1..%d" % len(engine.get_sections())) elif cmd[0].lower() == "h": print HELP elif cmd[0].lower() == "k": if engine: engine.kill() elif cmd[0].lower() == "q": if engine: engine.kill() break