Ai song

Suno Music Generator Client

Suno Music AI

Your key is stored only in this browser session.

Results & Status

Ready.

Suno Music AI

Your key is stored only in this browser session.

Results & Status

Ready.
a } function displayError(message) { errorMessage.textContent = message; errorMessage.classList.remove('hidden'); tracksContainer.innerHTML = ''; // Clear results on error } function clearError() { errorMessage.classList.add('hidden'); errorMessage.textContent = ''; } function updateStatus(status, errorMsg, progress) { let message = ''; if (errorMsg) { displayError(errorMsg); return; } switch (status) { case 'PENDING': message = 'Task queued. Waiting for processing...'; break; case 'PROCESSING': message = `Generating audio... (Progress: ${progress || 'N/A'})`; break; case 'SUCCESS': message = 'SUCCESS! All tracks generated.'; break; case 'FIRST_SUCCESS': message = 'FIRST SUCCESS! Track generation completed.'; break; case 'TEXT_SUCCESS': message = 'Lyrics generated successfully.'; break; default: message = `Current Status: ${status}. Waiting...`; } statusMessage.innerHTML = `

${message}

`; } function displayTracks(sunoData) { tracksContainer.innerHTML = ''; sunoData.forEach((track, index) => { const tags = track.tags ? track.tags.split(',').map(tag => `${tag.trim()}`).join('') : ''; const trackElement = document.createElement('div'); trackElement.className = 'p-4 bg-gray-50 rounded-lg border border-gray-200 shadow-sm'; trackElement.innerHTML = `

${track.title || 'Untitled Track'}

Duration: ${track.duration ? track.duration.toFixed(2) : 'N/A'}s | ID: ${track.id}

${tags}
${track.lyric ? `
View Lyrics
${track.lyric}
` : '

No lyrics available (Instrumental or Lyrics mode).

'} `; tracksContainer.appendChild(trackElement); }); } generateBtn.addEventListener('click', async () => { clearError(); tracksContainer.innerHTML = ''; statusMessage.innerHTML = '

Starting generation...

'; const apiKey = apiKeyInput.value.trim(); const prompt = document.getElementById('prompt').value.trim(); const style = document.getElementById('style').value.trim(); const model = document.getElementById('model').value; if (!apiKey || !prompt) { displayError('Please enter a valid API Key and a prompt.'); return; } setLoading(true); try { const api = new SunoAPI(apiKey); const taskId = await api.generateMusic(prompt, { style: style, model: model, title: 'Canvas Generated Track' }); updateStatus('PENDING'); const result = await api.waitForCompletion(taskId, updateStatus); displayTracks(result.sunoData); } catch (error) { displayError(error.message); updateStatus('ERROR', error.message); } finally { setLoading(false); } });

Comments

Popular posts from this blog

global travel 2023

Omam place is best for adventural activities

Necessary luggage when you are on journey