Esempio n. 1
0
def tempos():
    global TEMPO
    global SONGNAME
    r = request.json
    if (type(r) == dict):
        r_json = r
    else:
        r_json = json.loads(r)

    t1 = r_json['tempo_1']
    t2 = r_json['tempo_2']

    tempo_1 = np.asarray(t1)
    tempo_2 = np.asarray(t2)

    TEMPO = np.array([tempo_1, tempo_2])

    song1 = path + SONGNAME[0] # heyjude
    song2 = path + SONGNAME[1] # someonelikeyou

    m, c, tempo = model.load_midi(song1, song2, UNIT_LEN)
    m_seq, c_seq, z = model.interp_sample(vae, m, c, INTERP_NUM, RHYTHM_THRESHOLD)

    response_pickled = numpy2json(m_seq, c_seq, z, TEMPO, SONGNAME, RHYTHM_THRESHOLD)
    return Response(response=response_pickled, status=200, mimetype="application/json")
Esempio n. 2
0
def theta():
    global RHYTHM_THRESHOLD
    global SONGNAME
    r = request.json
    if (type(r) == dict):
        r_json = r
    else:
        r_json = json.loads(r)

    theta_temp = r_json['theta']

    theta = np.float(theta_temp)

    with torch.no_grad():

        RHYTHM_THRESHOLD = theta

        song1 = path + SONGNAME[0] # heyjude
        song2 = path + SONGNAME[1] # someonelikeyou

        # print('song1:',song1)
        # print('song2:',song2)
        m, c, tempo = model.load_midi(song1, song2, UNIT_LEN)
        m_seq, c_seq, z = model.interp_sample(vae, m, c, INTERP_NUM, RHYTHM_THRESHOLD)

    response_pickled = numpy2json(m_seq, c_seq, z, TEMPO, SONGNAME, RHYTHM_THRESHOLD)
    return Response(response=response_pickled, status=200, mimetype="application/json")
Esempio n. 3
0
def static():
    with torch.no_grad():
        global UNIT_LEN
        global INTERP_NUM
        global TOTAL_LEN
        global path
        global RHYTHM_THRESHOLD
        global TEMPO
        global SONGNAME

        song1 = path + songfiles[1]  # heyjude
        song2 = path + songfiles[2]  # someonelikeyou

        # print('song1:',song1)
        # print('song2:',song2)
        m, c, tempo = model.load_midi(song1, song2, UNIT_LEN)
        m_seq, c_seq = model.interp_sample(vae, m, c, INTERP_NUM,
                                           RHYTHM_THRESHOLD)

        TEMPO = tempo
        SONGNAME = np.array([songfiles[1], songfiles[2]])

    response_pickled = numpy2json(m_seq, c_seq, TEMPO, SONGNAME,
                                  RHYTHM_THRESHOLD)
    return Response(response=response_pickled,
                    status=200,
                    mimetype="application/json")
Esempio n. 4
0
def static_twosong(s1, s2, num):
    with torch.no_grad():
        global UNIT_LEN
        global INTERP_NUM
        global TOTAL_LEN
        global path
        global RHYTHM_THRESHOLD
        global TEMPO
        global SONGNAME
        INTERP_NUM = num # number of interp group
        # TOTAL_LEN = (INTERP_NUM + 2)*4 # number of group * 4bar = total bars
        
        song1 = path + songfiles[int(s1)]
        song2 = path + songfiles[int(s2)]

        # print('song1:',song1)
        # print('song2:',song2)
        m, c, tempo = model.load_midi(song1, song2, UNIT_LEN)
        # print(m.shape)
        # print(c.shape)
        # print(tempo.shape)
        m_seq, c_seq, z = model.interp_sample(vae, m, c, INTERP_NUM, RHYTHM_THRESHOLD)
        print("z", np.shape(z))
        TEMPO = tempo
        SONGNAME = np.array([songfiles[int(s1)],songfiles[int(s2)]])    

    response_pickled = numpy2json(m_seq, c_seq, z, TEMPO, SONGNAME, RHYTHM_THRESHOLD)
    return Response(response=response_pickled, status=200, mimetype="application/json")
Esempio n. 5
0
def melody_chord():
    r = request.json
    if (type(r) == dict):
        r_json = r
    else:
        r_json = json.loads(r)

    m1 = r_json['m_seq_1']
    c1 = r_json['c_seq_1']
    m2 = r_json['m_seq_2']
    c2 = r_json['c_seq_2']

    m_seq1 = np.asarray(m1).astype(int)
    c_seq1 = np.asarray(c1)
    m_seq2 = np.asarray(m2).astype(int)
    c_seq2 = np.asarray(c2)

    with torch.no_grad():
        m, c = model.load_seq(m_seq1, c_seq1, m_seq2, c_seq2)
        m_seq, c_seq = model.interp_sample(vae, m, c, INTERP_NUM,
                                           RHYTHM_THRESHOLD)

    response_pickled = numpy2json(m_seq, c_seq, TEMPO, SONGNAME,
                                  RHYTHM_THRESHOLD)
    return Response(response=response_pickled,
                    status=200,
                    mimetype="application/json")