Estoy usando WebMScore para reproducir audio de partituras musicales (es una bifurcación de MuseScore que se ejecuta en el navegador o nodo).
Sin embargo, puedo cargar con éxito mis propios archivos locales .sf2 o .sf3
Intentar cargar una fuente de .sfz arroja error 15424120 . (Y error.message es simplemente 'indefinido').
A diferencia de .sf2 y .sf3, que contienen los sonidos y las instrucciones en un solo archivo, el formato .sfz es solo un archivo de instrucciones de texto que se refiere a una carpeta separada de muestras.
La razón por la que necesito el .sfz es que necesito poder editar el archivo .sfz textual y programáticamente sin la intervención de un generador Soundfont.
¿Hay alguna manera de usar .sfz's? ¿Necesito especificar Zerberus (el reproductor Musescore .sfz)? ¿Necesito una estructura de archivo diferente? Por favor ver más abajo.
Mi entorno es node js, con el siguiente caso de prueba y estructura de archivos:
Estructura de archivos
Project Folder app.js testScore.mscz mySFZ.sfz samples one.wav two.wav etc.wavCaso de prueba (Funciona con .sf3, errores con .sfz)
const WebMscore = require('webmscore'); const fs = require('fs'); // free example scores available at https://musescore.com/openscore/scores const name = 'testScore.mscz'; const exportedPrefix = 'exported'; const filedata = fs.readFileSync(`./${name}`); WebMscore.ready.then(async () => { const score = await WebMscore.load('mscz', filedata, [], false); await score.setSoundFont(fs.readFileSync('./mySFZ.sfz')); try { fs.writeFileSync(`./${exportedPrefix}.mp3`, await score.saveAudio('mp3')); } catch (err) { console.log(err) } score.destroy(); });