Spaces:
Paused
Paused
test sharing function
Browse files- components/form.tsx +4 -1
- utils/index.ts +1 -2
components/form.tsx
CHANGED
@@ -39,6 +39,7 @@ export const Form = ({ children }: { children: React.ReactNode }) => {
|
|
39 |
const [loadProgress, setLoadProgress] = useState({});
|
40 |
const [track, setTrack] = useState("");
|
41 |
const [shareLoading, setShareLoading] = useState(false);
|
|
|
42 |
|
43 |
const {
|
44 |
form,
|
@@ -131,6 +132,7 @@ export const Form = ({ children }: { children: React.ReactNode }) => {
|
|
131 |
const sampling_rate = model.config.audio_encoder.sampling_rate;
|
132 |
const wav = encodeWAV(audio_values.data, sampling_rate);
|
133 |
const blob = new Blob([wav], { type: "audio/wav" });
|
|
|
134 |
setTrack(URL.createObjectURL(blob));
|
135 |
setStatusText("Done!");
|
136 |
};
|
@@ -183,6 +185,7 @@ export const Form = ({ children }: { children: React.ReactNode }) => {
|
|
183 |
onClick={() => {
|
184 |
if (loading || !modelLoaded) return;
|
185 |
setResults({ cover: null, title: null });
|
|
|
186 |
setTrack("");
|
187 |
generate();
|
188 |
generateMusic();
|
@@ -226,7 +229,7 @@ export const Form = ({ children }: { children: React.ReactNode }) => {
|
|
226 |
if (shareLoading) return;
|
227 |
setShareLoading(true);
|
228 |
await share(
|
229 |
-
|
230 |
{
|
231 |
mood: form.mood,
|
232 |
style: form.style,
|
|
|
39 |
const [loadProgress, setLoadProgress] = useState({});
|
40 |
const [track, setTrack] = useState("");
|
41 |
const [shareLoading, setShareLoading] = useState(false);
|
42 |
+
const [blob, setBlob] = useState<Blob | null>(null);
|
43 |
|
44 |
const {
|
45 |
form,
|
|
|
132 |
const sampling_rate = model.config.audio_encoder.sampling_rate;
|
133 |
const wav = encodeWAV(audio_values.data, sampling_rate);
|
134 |
const blob = new Blob([wav], { type: "audio/wav" });
|
135 |
+
setBlob(blob);
|
136 |
setTrack(URL.createObjectURL(blob));
|
137 |
setStatusText("Done!");
|
138 |
};
|
|
|
185 |
onClick={() => {
|
186 |
if (loading || !modelLoaded) return;
|
187 |
setResults({ cover: null, title: null });
|
188 |
+
setBlob(null);
|
189 |
setTrack("");
|
190 |
generate();
|
191 |
generateMusic();
|
|
|
229 |
if (shareLoading) return;
|
230 |
setShareLoading(true);
|
231 |
await share(
|
232 |
+
blob,
|
233 |
{
|
234 |
mood: form.mood,
|
235 |
style: form.style,
|
utils/index.ts
CHANGED
@@ -269,8 +269,7 @@ function writeString(view: any, offset: number, string: string) {
|
|
269 |
export const MODEL_ID = 'Xenova/musicgen-small';
|
270 |
|
271 |
export async function share(body: any, settings: Record<string, any>, results: Record<string, any>) {
|
272 |
-
const
|
273 |
-
const response = await fetch('https://huggingface.co/uploads', { method: 'POST', body: blobAudio });
|
274 |
if (!response.ok) throw new Error(`Failed to upload audio: ${response.statusText}`);
|
275 |
const url = await response.text();
|
276 |
|
|
|
269 |
export const MODEL_ID = 'Xenova/musicgen-small';
|
270 |
|
271 |
export async function share(body: any, settings: Record<string, any>, results: Record<string, any>) {
|
272 |
+
const response = await fetch('https://huggingface.co/uploads', { method: 'POST', body });
|
|
|
273 |
if (!response.ok) throw new Error(`Failed to upload audio: ${response.statusText}`);
|
274 |
const url = await response.text();
|
275 |
|