From db9bbada2522257df38d169c4ce3f5435af2bc1c Mon Sep 17 00:00:00 2001 From: JotaChina Date: Thu, 26 Mar 2026 19:34:47 -0300 Subject: [PATCH] testando ui otimista --- assets/js/creations/file.js | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/assets/js/creations/file.js b/assets/js/creations/file.js index 8c179b9e..62de990b 100755 --- a/assets/js/creations/file.js +++ b/assets/js/creations/file.js @@ -764,7 +764,7 @@ function ensureBbTrackCount(xmlDoc, neededCount) { // senão o bbtrack clonado pode ficar mudo no LMMS. // (Então NÃO faça: inner.querySelectorAll('track[type="0"]').remove()) - clone.setAttribute("name", `Beat/Bassline ${bbTracks.length + 1}`); + clone.setAttribute("name", `Caixa de Steps ${bbTracks.length + 1}`); songTc.appendChild(clone); bbTracks.push(clone); @@ -814,10 +814,27 @@ function createTrackXml(track) { const lmmsVolume = Math.round(track.volume * 100); const lmmsPan = Math.round(track.pan * 100); - const instrName = track.instrumentName || "kicker"; - const instrXml = - track.instrumentXml || - ``; + let instrName = track.instrumentName || "kicker"; + let instrXml = track.instrumentXml; + + // 🔥 CORREÇÃO: Identificar se a faixa é um leitor de áudio (sampler) + const isSampler = track.type === "sampler" || track.samplePath || track.filePath || track.sampleName; + + if (isSampler) { + instrName = "audiofileprocessor"; + + // Extrai apenas o nome do ficheiro (ex: "snare02.ogg") + const rawSrc = track.samplePath || track.filePath || track.sampleName || track.name || ""; + const fileName = String(rawSrc).split(/[\\/]/).pop(); + + // Substitui o XML pelo leitor de áudio apontando para a pasta "samples/" + if (!instrXml || instrXml.includes("")) { + instrXml = ``; + } + } else if (!instrXml) { + // Fallback original para o Kicker caso seja realmente uma faixa de sintetizador vazia + instrXml = ``; + } const patternsXml = track.patterns .map((pattern) => {