Spaces:
Runtime error
Runtime error
Upload index.html with huggingface_hub
Browse files- index.html +13 -2
index.html
CHANGED
|
@@ -27,7 +27,7 @@ html,body{background:#161719;overflow:hidden}
|
|
| 27 |
function initMidi(a){ midiDevs=[]; let ep=1; for(const i of a.inputs.values()){ i.onmidimessage=onMidi; midiDevs.push({name:i.name||("MIDI "+ep),endpoint:ep,port:i}); ep++; } pushMidi(); }
|
| 28 |
if(navigator.requestMIDIAccess){ navigator.requestMIDIAccess().then(a=>{ initMidi(a); a.onstatechange=()=>initMidi(a); }).catch(()=>{}); }
|
| 29 |
let playing=false, ctx=null, analyser=null, gain=null, vol=1, muted=false, midigate=false, bypassed=false, nextTime=0, client=null, freq=null;
|
| 30 |
-
let sessionLen=120, budget=120, lastBT=0, mtick=0, settingsOpen=false, resetSeq=0, seedVal=0, bankVer=0, bankOp=null;
|
| 31 |
const US=s=>{ if(window.updateState) window.updateState(s); };
|
| 32 |
|
| 33 |
window.webkit={ messageHandlers:{ auHost:{ postMessage:handle } } };
|
|
@@ -61,6 +61,8 @@ html,body{background:#161719;overflow:hidden}
|
|
| 61 |
case 'selectMidiSource': selMidi=m.endpoint||0; US({computerKeyboardMidi:(selMidi===0)}); pushMidi(); break;
|
| 62 |
case 'kbdNote': if(m.on)activeNotes.add(m.note); else activeNotes.delete(m.note); US({activeNotes:[...activeNotes]}); applyVol(); setStyle(lastData||[{text:'instrumental music',weight:1}]); break;
|
| 63 |
case 'gpuSession': sessionLen=+m.value; if(!playing)budget=sessionLen; emitGpu(); break;
|
|
|
|
|
|
|
| 64 |
case 'saveBank': bankOp={action:"save",idx:m.index||0,ver:++bankVer}; if(lastData)setStyle(lastData); setTimeout(refreshBanks,600); break;
|
| 65 |
case 'loadBank': bankOp={action:"load",idx:m.index||0,ver:++bankVer}; if(lastData)setStyle(lastData); break;
|
| 66 |
case 'checkBanks': refreshBanks(); break;
|
|
@@ -88,6 +90,15 @@ html,body{background:#161719;overflow:hidden}
|
|
| 88 |
lastData[idx].isAudio=true; lastData[idx].text=file.name; US({prompt:file.name,isAudioPrompt:true}); setStyle(lastData);
|
| 89 |
}catch(e){ console.warn("audio prompt failed",e); } };
|
| 90 |
inp.click(); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
function clearAudio(idx){ fetch("/audio",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:SID,slot:idx,samples:""})}).catch(()=>{});
|
| 92 |
if(lastData&&lastData[idx])lastData[idx].isAudio=false; US({isAudioPrompt:false}); if(lastData)setStyle(lastData); }
|
| 93 |
async function setStyle(data){
|
|
@@ -95,7 +106,7 @@ html,body{background:#161719;overflow:hidden}
|
|
| 95 |
try{ await fetch("/set",{method:"POST",headers:{"Content-Type":"application/json"},
|
| 96 |
body:JSON.stringify({session_id:SID,prompts:data.map(d=>(d&&d.text)||""),weights:data.map(d=>(d&&d.weight)||0),audio:data.map(d=>!!(d&&d.isAudio)),
|
| 97 |
temperature:params.temperature,top_k:params.topk|0,cfg:params.cfg,cfg_notes:params.cfgnotes,cfg_drums:params.cfgdrums,buffer:params.buffer|0,
|
| 98 |
-
notes:[...activeNotes],unmaskwidth:params.unmaskwidth|0,drumless:!!params.drumless,onsetmode:!!params.onsetmode,reset:resetSeq,seed:seedVal,bank_op:bankOp,model:currentModel})}); }catch(e){}
|
| 99 |
}
|
| 100 |
function playChunk(b64){
|
| 101 |
const bin=atob(b64),by=new Uint8Array(bin.length); for(let i=0;i<bin.length;i++)by[i]=bin.charCodeAt(i);
|
|
|
|
| 27 |
function initMidi(a){ midiDevs=[]; let ep=1; for(const i of a.inputs.values()){ i.onmidimessage=onMidi; midiDevs.push({name:i.name||("MIDI "+ep),endpoint:ep,port:i}); ep++; } pushMidi(); }
|
| 28 |
if(navigator.requestMIDIAccess){ navigator.requestMIDIAccess().then(a=>{ initMidi(a); a.onstatechange=()=>initMidi(a); }).catch(()=>{}); }
|
| 29 |
let playing=false, ctx=null, analyser=null, gain=null, vol=1, muted=false, midigate=false, bypassed=false, nextTime=0, client=null, freq=null;
|
| 30 |
+
let sessionLen=120, budget=120, lastBT=0, mtick=0, settingsOpen=false, resetSeq=0, seedVal=0, bankVer=0, bankOp=null, prefillVer=0, prefillOp=null;
|
| 31 |
const US=s=>{ if(window.updateState) window.updateState(s); };
|
| 32 |
|
| 33 |
window.webkit={ messageHandlers:{ auHost:{ postMessage:handle } } };
|
|
|
|
| 61 |
case 'selectMidiSource': selMidi=m.endpoint||0; US({computerKeyboardMidi:(selMidi===0)}); pushMidi(); break;
|
| 62 |
case 'kbdNote': if(m.on)activeNotes.add(m.note); else activeNotes.delete(m.note); US({activeNotes:[...activeNotes]}); applyVol(); setStyle(lastData||[{text:'instrumental music',weight:1}]); break;
|
| 63 |
case 'gpuSession': sessionLen=+m.value; if(!playing)budget=sessionLen; emitGpu(); break;
|
| 64 |
+
case 'silentPrefill': resetSeq++; US({audioPrefillStatus:'Success'}); if(lastData)setStyle(lastData); break;
|
| 65 |
+
case 'audioPrefill': pickPrefill(); break;
|
| 66 |
case 'saveBank': bankOp={action:"save",idx:m.index||0,ver:++bankVer}; if(lastData)setStyle(lastData); setTimeout(refreshBanks,600); break;
|
| 67 |
case 'loadBank': bankOp={action:"load",idx:m.index||0,ver:++bankVer}; if(lastData)setStyle(lastData); break;
|
| 68 |
case 'checkBanks': refreshBanks(); break;
|
|
|
|
| 90 |
lastData[idx].isAudio=true; lastData[idx].text=file.name; US({prompt:file.name,isAudioPrompt:true}); setStyle(lastData);
|
| 91 |
}catch(e){ console.warn("audio prompt failed",e); } };
|
| 92 |
inp.click(); }
|
| 93 |
+
function pickPrefill(){ const inp=document.createElement("input"); inp.type="file"; inp.accept="audio/*";
|
| 94 |
+
inp.onchange=async()=>{ const file=inp.files&&inp.files[0]; if(!file)return;
|
| 95 |
+
try{ const ac=new (window.AudioContext||window.webkitAudioContext)({sampleRate:48000}); const ab=await ac.decodeAudioData(await file.arrayBuffer()); ac.close();
|
| 96 |
+
const n=Math.min(ab.length,48000*10), L=ab.getChannelData(0), R=ab.numberOfChannels>1?ab.getChannelData(1):L, inter=new Float32Array(n*2);
|
| 97 |
+
for(let i=0;i<n;i++){ inter[2*i]=L[i]; inter[2*i+1]=R[i]; }
|
| 98 |
+
await fetch("/prefill",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:SID,samples:b64enc(new Uint8Array(inter.buffer))})});
|
| 99 |
+
prefillOp={action:"audio",ver:++prefillVer}; US({audioPrefillStatus:"Success"}); if(lastData)setStyle(lastData);
|
| 100 |
+
}catch(e){ console.warn("prefill failed",e); US({audioPrefillStatus:"Failed"}); } };
|
| 101 |
+
inp.click(); }
|
| 102 |
function clearAudio(idx){ fetch("/audio",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({session_id:SID,slot:idx,samples:""})}).catch(()=>{});
|
| 103 |
if(lastData&&lastData[idx])lastData[idx].isAudio=false; US({isAudioPrompt:false}); if(lastData)setStyle(lastData); }
|
| 104 |
async function setStyle(data){
|
|
|
|
| 106 |
try{ await fetch("/set",{method:"POST",headers:{"Content-Type":"application/json"},
|
| 107 |
body:JSON.stringify({session_id:SID,prompts:data.map(d=>(d&&d.text)||""),weights:data.map(d=>(d&&d.weight)||0),audio:data.map(d=>!!(d&&d.isAudio)),
|
| 108 |
temperature:params.temperature,top_k:params.topk|0,cfg:params.cfg,cfg_notes:params.cfgnotes,cfg_drums:params.cfgdrums,buffer:params.buffer|0,
|
| 109 |
+
notes:[...activeNotes],unmaskwidth:params.unmaskwidth|0,drumless:!!params.drumless,onsetmode:!!params.onsetmode,reset:resetSeq,seed:seedVal,bank_op:bankOp,prefill_op:prefillOp,model:currentModel})}); }catch(e){}
|
| 110 |
}
|
| 111 |
function playChunk(b64){
|
| 112 |
const bin=atob(b64),by=new Uint8Array(bin.length); for(let i=0;i<bin.length;i++)by[i]=bin.charCodeAt(i);
|