from typing import List, Union, Tuple | |
import numpy as np | |
import gradio as gr | |
from taiko import ( | |
TaikoMusic, | |
CourseMusic, | |
UserInterface | |
) | |
def handle(*attributes: List[Union[str, int]]) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.ndarray]: | |
""" | |
Must return TaikoMusic for each course in reverse order: | |
- Ura, Oni, Hard, Normal, Easy | |
""" | |
# Set every attribute to TaikoMusic from gradio event handler inputs | |
taiko = TaikoMusic() | |
for attr_name, attr_value in zip(taiko.__dict__.keys(), attributes): | |
setattr(taiko, attr_name, attr_value) | |
# Generate Taiko Music | |
try: | |
music: CourseMusic = taiko.generate_taiko_music() | |
except Exception as e: | |
raise gr.Error(e) | |
return music.ura, music.oni, music.hard, music.normal, music.easy | |
if __name__ == "__main__": | |
app = UserInterface(event_handler=handle) | |
app.launch() |