Spaces:
Sleeping
Sleeping
from pyharp import * | |
import gradio as gr | |
model_card = ModelCard( | |
name='MIDI Pitch Shifter', | |
description='Use the slider to shift the pitch of the input MIDI file.', | |
author='xribene', | |
tags=['midi', 'pitch', 'shift'], | |
midi_in=True, | |
midi_out=True | |
) | |
# <YOUR MODEL INITIALIZATION CODE HERE> | |
def process_fn(input_midi_path, pitch_shift_amount): | |
""" | |
This function defines the MIDI processing steps | |
Args: | |
input_midi_path (str): the MIDI filepath to be processed. | |
<YOUR_KWARGS>: additional keyword arguments necessary for processing. | |
NOTE: These should correspond to and match order of UI elements defined below. | |
Returns: | |
output_midi_path (str): the filepath of the processed MIDI. | |
""" | |
""" | |
<YOUR MIDI LOADING CODE HERE> | |
# Load MIDI at specified path using symusic | |
""" | |
midi = load_midi(input_midi_path) | |
""" | |
<YOUR MIDI PROCESSING CODE HERE> | |
# Perform a trivial operation (i.e. pitch-shifting) | |
""" | |
for t in midi.tracks: | |
for n in t.notes: | |
n.pitch += int(pitch_shift_amount) | |
""" | |
<YOUR MIDI SAVING CODE HERE> | |
# Save processed MIDI and obtain default path | |
""" | |
output_midi_path = save_midi(midi, None) | |
return output_midi_path | |
# Build Gradio endpoint | |
with gr.Blocks() as demo: | |
# Define Gradio Components | |
components = [ | |
gr.Slider( | |
minimum=-24, | |
maximum=24, | |
step=1, | |
value=0, | |
label="Pitch Shift (semitones)" | |
), | |
] | |
# Build endpoint | |
app = build_endpoint(model_card=model_card, | |
components=components, | |
process_fn=process_fn) | |
demo.queue() | |
demo.launch(share=True) |