Textcreator LIVE V13.1 Cloud Music OS — Deel 11 van 23
Dit deel gaat direct verder onder deel 10.
Toegevoegd:
Suno Artist Studio
artiestenpagina
songs per maker
profielweergave
koppeling Suno profiel
/*
====================================================
TEXTCREATOR LIVE V13.1
PART 11
SUNO ARTIST STUDIO ENGINE
====================================================
*/
const artistStudio={
artist:null,
songs:[]
};
/*
====================================================
OPEN ARTIST STUDIO
====================================================
*/
function openArtistStudio(user){
artistStudio.artist=user;
const songs=
jukebox.songs.filter(song=>{
return (
song.User===user ||
song.user===user ||
song.name===user
);
});
artistStudio.songs=songs;
const workspace=
document.getElementById(
"workspace"
);
if(!songs.length){
workspace.innerHTML=
`
<h2>
🎤 Artist Studio
</h2>
<p>
Geen songs gevonden voor:
${user}
</p>
`;
return;
}
workspace.innerHTML=
`
<h2>
🎤 ${user}
</h2>
<div class="card">
<p>
Aantal songs:
${songs.length}
</p>
<button
class="btn"
onclick="openArtistProfile('${user}')">
🌍 Suno Profiel
</button>
</div>
<h3>
🎵 Songs
</h3>
<div id="artistStudioSongs">
</div>
`;
document.getElementById(
"artistStudioSongs"
)
.innerHTML=
songs.map(
(song,index)=>{
return `
<div class="song-card">
<h3>
🎵 ${
song.title ||
song.Titel ||
"Song"
}
</h3>
<p>
🎼 ${
song.genre ||
song.Genre ||
""
}
</p>
<p>
📌 ${
song.status ||
""
}
</p>
<button
class="btn"
onclick="openArtistSong(${index})">
📖 Open
</button>
<button
class="btn"
onclick="playArtistSong(${index})">
▶ Suno
</button>
</div>
`;
}
).join("");
}
/*
====================================================
OPEN ARTIST SONG
====================================================
*/
function openArtistSong(index){
const song=
artistStudio.songs[index];
document.getElementById(
"workspace"
)
.innerHTML=
`
<h2>
🎵 ${
song.title ||
song.Titel ||
"Song"
}
</h2>
<div class="card">
<p>
👤 Maker:
${
song.User ||
song.name ||
""
}
</p>
<p>
🎼 Genre:
${
song.genre ||
song.Genre ||
""
}
</p>
<p>
🌍 Taal:
${
song.language ||
""
}
</p>
</div>
<div class="card">
<h3>
📖 Lyrics
</h3>
${
formatLyrics(
song.text ||
song.Lyrics ||
"Geen tekst"
)
}
</div>
<button
class="btn"
onclick="playArtistSong(${index})">
🎧 Open Suno
</button>
`;
}
/*
====================================================
PLAY ARTIST SONG
====================================================
*/
function playArtistSong(index){
const song=
artistStudio.songs[index];
const url=
song.suno ||
song.Suno_URL;
if(!url){
alert(
"Geen Suno link gevonden"
);
return;
}
window.open(
url,
"_blank"
);
}
/*
====================================================
OPEN ARTIST PROFILE
====================================================
*/
function openArtistProfile(user){
let profile="";
const song=
jukebox.songs.find(
item=>{
return (
item.User===user ||
item.user===user
);
}
);
if(song){
profile=
song.suno_user_url ||
song.Suno_Profile ||
song.Profile ||
"";
}
if(!profile){
if(
user.toLowerCase()
.includes(
"godogood"
)
){
profile=
"https://suno.com/@godogood";
}
}
if(profile){
window.open(
profile,
"_blank"
);
}
else{
alert(
"Geen artiest profiel beschikbaar"
);
}
}
/*
====================================================
SEND ARTIST TO CREATOR
====================================================
*/
function inspireArtistSong(index){
const song=
artistStudio.songs[index];
openCreator();
setTimeout(()=>{
document.getElementById(
"title"
).value=
"Nieuwe versie: "
+
(song.title ||
song.Titel ||
"");
document.getElementById(
"genre"
).value=
song.genre ||
song.Genre ||
"";
document.getElementById(
"prompt"
).value=
`
Inspiratie vanuit artiest:
Titel:
${song.title || song.Titel}
Genre:
${song.genre || song.Genre}
Maak een nieuwe originele compositie.
`;
},300);
}
console.log(
"Suno Artist Studio Engine V13.1 loaded"
);
Einde deel 11/23.
Deel 12 gaat verder met:
AI Engine V13.1
AI provider database
prompt generator
voorbereiding echte API koppelingen.