File size: 2,570 Bytes
36ad38b
 
 
 
96b7f88
36ad38b
 
 
 
 
 
 
 
735ff7d
36ad38b
 
 
 
 
 
 
 
 
 
 
 
 
 
e6731dc
36ad38b
7ae6bf3
070fb63
36ad38b
 
 
 
96b7f88
 
a9c5f00
36ad38b
426d4b0
36ad38b
96b7f88
36ad38b
 
 
7ae6bf3
36ad38b
 
6a6291d
 
36ad38b
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import streamlit as st
st.set_page_config(initial_sidebar_state="collapsed")
import sys
sys.path.append('../')
sys.path.append('./')
import generation_utilities
import numpy as np
import librosa
from glob import glob
import soundfile as sf
import importlib
import numpy as np
importlib.reload(generation_utilities)
from mega import Mega
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"


if 'song_name' not in st.session_state:
    st.session_state['song_name'] = None
if 'similarity' not in st.session_state:
    st.session_state['similarity'] = None
if 'model_name' not in st.session_state:
    st.session_state['model_name'] = None
if 'song_list' not in st.session_state:
    st.session_state['song_list'] = None

form1 = st.form(key="form1")
song_default = np.random.choice(["22", "Anti-Hero", "Back-To-December","Blank-Space","Cardigan","Delicate","Lover","Love-Story","Willow","You-Belong-With-Me"])
similarity_default = np.random.uniform(0.8, 0.99).__round__(2)
user_id = form1.text_input("Enter your user ID")
song_options = form1.multiselect("Select songs from library",["22", "Anti-Hero", "Back-To-December","Blank-Space","Cardigan","Delicate","Lover","Love-Story","Willow","You-Belong-With-Me"], default=[song_default])
similarity = form1.slider("Similarity", 0.0, 1.0, similarity_default)
submit = form1.form_submit_button("Submit")

if submit:
    print(os.path.join(os.getcwd(),"input_songs/"))
    song_list = [librosa.load(os.path.join(os.getcwd(),f"input_songs/{song}.mp3"), sr=22050)[0] for song in song_options]
    print(song_options,print(song_list))
    
    spectrogram, generated_song, model_name = generation_utilities.generate_songs(song_list, similarity=similarity, quality=500, merging_quality=100)
    st.session_state['song_name'] = song_options[0]
    st.session_state['song_list'] = [os.path.join(os.getcwd(),f"input_songs/{song}.mp3") for song in song_options]
    st.session_state['song_name'] = '_'.join(song_options)
    st.session_state['similarity'] = similarity
    st.session_state['model_name'] = model_name
    st.session_state['user_id'] = user_id
    
    # saving temps
    sf.write(os.path.join(os.getcwd(),f"ui/temp.wav"), generated_song, 22050)
    np.save(os.path.join(os.getcwd(),"ui/temp.npy"), spectrogram)
    st.switch_page("pages/rating.py")
    # st.audio(generated_song, format='audio/wav',sample_rate=22050)
    
    # generated_audio_path = "generated_audio.wav"
    # sf.write(generated_audio_path, generated_song, 22050)
    # st.audio(generated_audio_path, format='audio/wav')
    # st.write("Generated!")