Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

190
Visualizações
Muestra de liberación/detención de Tone.js

EDITAR: Actualizar en otros intentos. La parte clave de la siguiente pregunta es la línea sampler.triggerRelease(["A1"], 'now') que no funciona. Otras cosas que he probado incluyen:

  • sampler.releaseAll(Tone.now())
  • sampler.releaseAll()
  • sampler.triggerRelease(["A1"], Tone.now())

La parte relevante de los documentos de Tone.js está aquí .

Lo que no funcionará es sampler.dispose() , porque esencialmente desconecta el instrumento sampler de la salida. Pero necesito seguir usando el muestreador para volver a disparar la misma nota poco después de apagarlo.


Estoy tratando de presionar un botón para detener la reproducción de una nota 'Sampler' mientras se está reproduciendo actualmente. Pensé que activar la fase de lanzamiento haría esto (como en mi código a continuación), pero esto no parece tener ningún efecto. He probado muchos métodos. Esta pregunta no responde a la mía, en parte porque es para el 'Polysynth', no para el 'Sampler'. ¡Gracias por adelantado!

 const readyOverlay = document.querySelector('#readyOverlay') readyOverlay.addEventListener('click', async () => { readyOverlay.style.display = 'none' await Tone.start() const sampler = new Tone.Sampler({ urls: { A1: "A1.mp3" }, baseUrl: "https://tonejs.github.io/audio/casio/", onload: () => { sampler.triggerAttackRelease(["A1"], 5); } }).toDestination(); sampler.release = 0 document.querySelector('#stop').addEventListener('click', () => { sampler.triggerRelease(["A1"], 'now') }) })
 #readyOverlay { position: absolute; z-index: 9; width: 100%; height: 100%; background: white; text-align: center; display: flex; flex-direction: column; justify-content: center; }
 <script src="https://unpkg.com/tone@14.7.77/build/Tone.js"></script> <div id="readyOverlay">Press anywhere to start!</div> <button id="stop" >stop</button>

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Reemplazar triggerAttackRelease con solo triggerAttack funciona:

 const readyOverlay = document.querySelector('#readyOverlay') readyOverlay.addEventListener('click', async () => { readyOverlay.style.display = 'none' await Tone.start() const sampler = new Tone.Sampler({ urls: { A1: "A1.mp3" }, baseUrl: "https://tonejs.github.io/audio/casio/", onload: () => { sampler.triggerAttack(["A1"]); } }).toDestination(); sampler.release = 0; document.querySelector('#stop').addEventListener('click', () => { sampler.triggerRelease(["A1"]); }) })
 #readyOverlay { position: absolute; z-index: 9; width: 100%; height: 100%; background: white; text-align: center; display: flex; flex-direction: column; justify-content: center; }
 <script src="https://unpkg.com/tone@14.7.77/build/Tone.js"></script> <div id="readyOverlay">Press anywhere to start!</div> <button id="stop" >stop</button>

triggerAttackRelease es solo una secuencia de llamadas triggerAttack y triggerRelease . Significa que ya ha programado un lanzamiento de nota en la onload de llamada de carga en su ejemplo inicial.

Tone.js ignora la segunda llamada de liberación porque la sampler ya ha marcado "A1" como liberada ( esta declaración if asegura que la nota se libera solo una vez después del ataque ).

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda