tentando resolver conflitos do tone no mmpCreator
Deploy / Deploy (push) Successful in 1m57s
Details
Deploy / Deploy (push) Successful in 1m57s
Details
This commit is contained in:
parent
2b918ceaff
commit
6f9b3b1da7
|
|
@ -525,6 +525,13 @@ function bufferToWave(abuffer) {
|
||||||
// ===============================
|
// ===============================
|
||||||
|
|
||||||
const LMMS_TICKS_PER_STEP = 12;
|
const LMMS_TICKS_PER_STEP = 12;
|
||||||
|
|
||||||
|
function ticksToSec(ticks, stepIntervalSec) {
|
||||||
|
// stepIntervalSec = duração de 1 step (1/16) em segundos
|
||||||
|
// LMMS_TICKS_PER_STEP = 12 ticks por 1/16 (porque 48 ticks por semínima e 192 por compasso em 4/4)
|
||||||
|
return (Number(ticks) / LMMS_TICKS_PER_STEP) * stepIntervalSec;
|
||||||
|
}
|
||||||
|
|
||||||
let songPatternScheduleId = null;
|
let songPatternScheduleId = null;
|
||||||
|
|
||||||
export function startSongPatternPlaybackOnTransport() {
|
export function startSongPatternPlaybackOnTransport() {
|
||||||
|
|
@ -596,10 +603,10 @@ export function startSongPatternPlaybackOnTransport() {
|
||||||
const durSec = Math.max(0.01, ticksToSec(lenTicks, stepIntervalSec));
|
const durSec = Math.max(0.01, ticksToSec(lenTicks, stepIntervalSec));
|
||||||
|
|
||||||
const vel = Math.max(0, Math.min(1, (Number(n.vol) || 100) / 100));
|
const vel = Math.max(0, Math.min(1, (Number(n.vol) || 100) / 100));
|
||||||
const noteName = midiToNoteName(n.key);
|
const freq = Tone.Frequency(Number(n.key) || 0, "midi").toFrequency();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
track.instrument.triggerAttackRelease(noteName, durSec, t2, vel);
|
track.instrument.triggerAttackRelease(freq, durSec, t2, vel);
|
||||||
} catch {
|
} catch {
|
||||||
try {
|
try {
|
||||||
track.instrument.triggerAttackRelease(noteName, durSec, t2);
|
track.instrument.triggerAttackRelease(noteName, durSec, t2);
|
||||||
|
|
@ -642,14 +649,12 @@ export function startSongPatternPlaybackOnTransport() {
|
||||||
|
|
||||||
if (patt.steps[stepInPattern]) {
|
if (patt.steps[stepInPattern]) {
|
||||||
if (track.type === "sampler" && track.player) {
|
if (track.type === "sampler" && track.player) {
|
||||||
track.player.restart = true;
|
if (track.type === "sampler" && track.player) {
|
||||||
try {
|
try {
|
||||||
// Verifica se já está tocando. Se sim, para imediatamente antes de recomeçar.
|
if (track.player.state === "started") track.player.stop(time);
|
||||||
if (track.player.state === "started") {
|
track.player.start(time);
|
||||||
track.player.stop(time);
|
} catch {}
|
||||||
}
|
}
|
||||||
track.player.start(time); }
|
|
||||||
catch {}
|
|
||||||
} else if (track.type === "plugin" && track.instrument) {
|
} else if (track.type === "plugin" && track.instrument) {
|
||||||
// plugin sem piano roll
|
// plugin sem piano roll
|
||||||
try { track.instrument.triggerAttackRelease("C5", "16n", time); } catch {}
|
try { track.instrument.triggerAttackRelease("C5", "16n", time); } catch {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue