testando ui otimista
Deploy / Deploy (push) Successful in 48s
Details
Deploy / Deploy (push) Successful in 48s
Details
This commit is contained in:
parent
acc8881073
commit
db9bbada25
|
|
@ -764,7 +764,7 @@ function ensureBbTrackCount(xmlDoc, neededCount) {
|
||||||
// senão o bbtrack clonado pode ficar mudo no LMMS.
|
// senão o bbtrack clonado pode ficar mudo no LMMS.
|
||||||
// (Então NÃO faça: inner.querySelectorAll('track[type="0"]').remove())
|
// (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);
|
songTc.appendChild(clone);
|
||||||
bbTracks.push(clone);
|
bbTracks.push(clone);
|
||||||
|
|
@ -814,10 +814,27 @@ function createTrackXml(track) {
|
||||||
const lmmsVolume = Math.round(track.volume * 100);
|
const lmmsVolume = Math.round(track.volume * 100);
|
||||||
const lmmsPan = Math.round(track.pan * 100);
|
const lmmsPan = Math.round(track.pan * 100);
|
||||||
|
|
||||||
const instrName = track.instrumentName || "kicker";
|
let instrName = track.instrumentName || "kicker";
|
||||||
const instrXml =
|
let instrXml = track.instrumentXml;
|
||||||
track.instrumentXml ||
|
|
||||||
`<kicker><env amt="0" attack="0.01" hold="0.1" decay="0.1" release="0.1" sustain="0.5" sync_mode="0"/></kicker>`;
|
// 🔥 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("<kicker>")) {
|
||||||
|
instrXml = `<audiofileprocessor src="samples/${fileName}" />`;
|
||||||
|
}
|
||||||
|
} else if (!instrXml) {
|
||||||
|
// Fallback original para o Kicker caso seja realmente uma faixa de sintetizador vazia
|
||||||
|
instrXml = `<kicker><env amt="0" attack="0.01" hold="0.1" decay="0.1" release="0.1" sustain="0.5" sync_mode="0"/></kicker>`;
|
||||||
|
}
|
||||||
|
|
||||||
const patternsXml = track.patterns
|
const patternsXml = track.patterns
|
||||||
.map((pattern) => {
|
.map((pattern) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue