editando patterns na playlist

This commit is contained in:
JotaChina committed 2025-12-27 12:12:22 -03:00
1 parent ec772ad8aa
commit ef499e3df9
6 files changed
+234 -5

No files matched your search

+25 -2
View File
@@ -13,7 +13,7 @@ import {
closeOpenProjectModal,
} from "./ui.js";
import { renderAudioEditor } from "./audio/audio_ui.js";
import { adjustValue, enforceNumericInput, DEFAULT_PROJECT_XML } from "./utils.js";
import { adjustValue, enforceNumericInput, DEFAULT_PROJECT_XML, secondsToSongTicks, snapSongTicks, LMMS_TICKS_PER_BAR } from "./utils.js";
import { ZOOM_LEVELS } from "./config.js";
import { loadProjectFromServer } from "./file.js";
import { sendAction, joinRoom, setUserName } from "./socket.js";
@@ -661,8 +661,31 @@ document.addEventListener("DOMContentLoaded", () => {
renderAll();
showToast(`Editando: ${basslineTrack.name}`, "info");
};
};
const sendPatternToSongBtn = document.getElementById("send-pattern-to-song-btn");
sendPatternToSongBtn?.addEventListener("click", () => {
const bpm = parseFloat(document.getElementById("bpm-input")?.value) || 120;
// playhead atual (se estiver tocando, usa logical; senão, seek)
const sec =
(appState.audio.audioEditorLogicalTime ?? 0) ||
(appState.audio.audioEditorSeekTime ?? 0) ||
0;
const patternIndex = appState.pattern.activePatternIndex || 0;
let posTicks = secondsToSongTicks(sec, bpm);
posTicks = snapSongTicks(posTicks, LMMS_TICKS_PER_BAR); // snap por compasso (fica LMMS-like)
sendAction({
type: "ADD_PLAYLIST_PATTERN_CLIP",
patternIndex,
pos: posTicks,
len: LMMS_TICKS_PER_BAR, // 1 compasso default
clipId: `plc_${Date.now()}_${Math.random().toString(36).slice(2)}`,
});
});
window.exitPatternFocus = function() {