Audio2Midi / midi_viz.html
shethjenil's picture
Upload folder using huggingface_hub
2395189 verified
<!DOCTYPE html>
<html lang="en">
<head>
<style>
#midi-section midi-player {
display: block;
width: inherit;
margin: 4px;
margin-bottom: 0;
}
#midi-section midi-player::part(control-panel) {
background: #ff5;
border: 2px solid #000;
border-radius: 10px 10px 0 0;
}
#midi-section midi-player::part(play-button) {
color: #353;
border: 2px solid currentColor;
background-color: #4d4;
border-radius: 20px;
transition: all 0.2s;
content: "hello";
}
#midi-section midi-player::part(play-button):hover {
color: #0a0;
background-color: #5f5;
border-radius: 10px;
}
#midi-section midi-player::part(time) {
font-family: monospace;
}
#midi-section midi-visualizer .piano-roll-visualizer {
background: #ffd;
border: 2px solid black;
border-top: none;
border-radius: 0 0 10px 10px;
margin: 4px;
margin-top: 0;
overflow: auto;
}
#midi-section midi-visualizer svg rect.note {
opacity: 0.6;
stroke-width: 2;
}
#midi-section midi-visualizer svg rect.note[data-instrument="0"] {
fill: #e22;
stroke: #500;
}
#midi-section midi-visualizer svg rect.note[data-instrument="2"] {
fill: #2ee;
stroke: #055;
}
#midi-section midi-visualizer svg rect.note[data-is-drum="true"] {
fill: #888;
stroke: #888;
}
#midi-section midi-visualizer svg rect.note.active {
opacity: 0.9;
stroke: #000;
}
</style>
</head>
<body>
<section id="midi-section"><midi-player sound-font="" visualizer="#midi-section midi-visualizer"></midi-player><midi-visualizer></midi-visualizer></section>
<script src="https://cdn.jsdelivr.net/combine/npm/[email protected],npm/@magenta/[email protected]/es6/core.js,npm/focus-visible@5,npm/[email protected]"></script>
</body>
<script>
function base64ToBlobUrl(base64, mimeType = "audio/midi") {
const byteCharacters = atob(base64.split(",")[1] || base64);
const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
return URL.createObjectURL(new Blob([new Uint8Array(byteNumbers)], { type: mimeType }));
}
let midi_data = "{midi_data}";
document.querySelector("midi-player").src = base64ToBlobUrl(midi_data);
</script>
</html>