tarea
El objetivo es descargar datos de Web Audio API presentados como un espectrograma producido, en una matriz .csv dividiendo por 10 partes (es decir, por 10% del área a lo largo del eje vertical, esto es frecuencia ), luego cargar datos de matriz en StreamGraph , ver foto-1
Códigos fuente:
https://codepen.io/lolliuym/pen/GREjwNR?editors=1010
intentos
1 - Definir contexto de audio en línea y fuera de línea
const AudioContext = window.AudioContext || window.webkitAudioContext; const audioCtx = new AudioContext(); const offlineCtx = new OfflineAudioContext(2,44100*40,44100); source = offlineCtx.createBufferSource();2 - Use XHR para cargar la pista de audio y decodeAudioData para decodificarla e insertar los datos en el búfer. Luego coloque el búfer en la fuente. Desafortunadamente, la Web Audio API no ofrece una opción para crear un nuevo archivo .csv. Ejemplo aquí:
function getData() { request = new XMLHttpRequest(); request.open('GET', 'audio.ogg', true); request.responseType = 'arraybuffer'; request.onload = function() { let audioData = request.response; audioCtx.decodeAudioData(audioData, function(buffer) { myBuffer = buffer; source.buffer = myBuffer; source.connect(offlineCtx.destination); source.start(); offlineCtx.startRendering(); }, function(e){"Error with decoding audio data" + e.err})} request.send()}Encontré una manera de crear un archivo .csv usando el archivo existente.csv (el valor predeterminado es NULL) , pero creo que no hay forma de que la compatibilidad pueda afectar la API de audio web. ¿Hay alguna otra manera?
totales
En todos mis intentos, no pude crear el contenido de un archivo .csv a través del cual descargar datos de Web Audio API a un gráfico que podría reproducirse en un navegador.
preguntas