mimic-sussex / sema

Sema – A Playground for Live Coding Music and Machine Learning
https://sema.codes
MIT License
153 stars 51 forks source link

magenta/music fails to execute with importScripts on WorkerGlobalScope (from 1.9.0 to 1.21.0) #288

Open frantic0 opened 3 years ago

frantic0 commented 3 years ago

importScripts("https://cdn.jsdelivr.net/npm/@magenta/music@1.21.0");

frantic0 commented 3 years ago

use-with-a-web-worker

https://magenta.github.io/magenta-js/music/index.html#use-with-a-web-worker

In your worker, worker.js,

importScripts("https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.4.0/dist/tf.min.js");
importScripts("https://cdn.jsdelivr.net/npm/@magenta/music@^1.12.0/es6/core.js");
importScripts("https://cdn.jsdelivr.net/npm/@magenta/music@^1.12.0/es6/music_vae.js");

const mvae = new music_vae.MusicVAE('https://storage.googleapis.com/magentadata/js/checkpoints/music_vae/mel_2bar_small');

// Main script asks for work.
self.onmessage = async (e) => {
  if (!mvae.isInitialized()) {
    await mvae.initialize();
    postMessage({fyi: 'model initialized'});
  }

  const output = await mvae.sample(1);
  // Send main script the result.
  postMessage({sample: output[0]});
};