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) => {