Exemple #1
0
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