Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@magenta/music
Advanced tools
This JavaScript implementation of Magenta's musical note-based models uses [TensorFlow.js](https://js.tensorflow.org) for GPU-accelerated inference.
This JavaScript implementation of Magenta's musical note-based models uses TensorFlow.js for GPU-accelerated inference.
We have made an effort to port our most useful models, but please file an issue if you think something is missing, or feel free to submit a Pull Request!
For the Python TensorFlow implementations, see the main Magenta repo.
Here are a few applications built with MagentaMusic.js:
MusicRNN implements Magenta's LSTM-based language models. These include MelodyRNN, DrumsRNN, ImprovRNN, and PerformanceRNN.
MusicVAE implements several configurations of Magenta's variational autoencoder model called MusicVAE including melody and drum "loop" models, 4- and 16-bar "trio" models, and chord-conditioned "multi-track" models.
There are two main ways to get MagentaMusic.js in your JavaScript project: via script tags or by installing it from NPM and using a build tool like yarn.
Add the following code to an HTML file:
<html>
<head>
<!-- Load MagentaMusic.js -->
<script src="https://cdn.jsdelivr.net/npm/@magenta/music"> </script>
<!-- Place your code in the script tag below. You can also use an external .js file -->
<script>
// Notice there is no 'import' statement. 'mm' is available on the index-page
// because of the script tag above.
const model = mm.MusicVAE('/path/to/checkpoint');
const sample = model.sample();
<!-- TODO(adarob, teropa) Add code to play back sample. -->
</script>
</head>
<body>
</body>
</html>
Open up that html file in your browser and the code should run!
See TODO(adarob, teropa): INSERT DEMO LINK for a complete example application with code.
Add MagentaMusic.js to your project using yarn or npm.
import * as mm from '@magenta/music';
const model = mm.MusicVAE('/path/to/checkpoint');
const sample = model.sample();
// TODO(adarob, teropa) Add code to play back sample.
See our demos for example usage.
yarn install
to install dependencies.
yarn test
to run tests.
yarn bundle
to produce a bundled version in dist/
.
yarn run-demos
to build and run the demo.
Since MagentaMusic.js does not support training models, you must use weights from a model trained with the Python-based Magenta models. We are also making available our own hosted pre-trained checkpoints.
Several pre-trained MusicRNN and MusicVAE checkpoints are hosted on GCS. You can access a JSON index available checkpoints at https://goo.gl/magenta/js-checkpoints.
The JSON is formatted as a list of entries with the the following interface:
interface Checkpoint {
id: string; // A unique id for this checkpoint.
model: 'MusicRNN'|'MusicVAE'; // The model class.
description: string; // A short human-readable description of the trained model.
url: string; // Path to the checkpoint directory.
}
While we do not plan to remove any of the current checkpoints, we will be adding more in the future.
If your application has a high QPS, you must mirror these files on your own server.
To use your own checkpoints with one of our models, you must first convert the weights to the appropriate format using the provided checkpoint_converter script.
This tool is dependent on tfjs-converter, which you must first install using pip install tensorflowjs
. Once installed, you can execute the script as follows:
../scripts/checkpoint_converter.py /path/to/model.ckpt /path/to/output_dir
There are additonal flags available to reduce the size of the output by removing unused (training) variables or using weight quantization. Call ../scripts/checkpoint_converter.py -h
to list the avilable options.
TODO(iansimon): This will be dependent on how we end up setting up the model instantiation and config.
FAQs
Make music with machine learning, in the browser.
The npm package @magenta/music receives a total of 1,074 weekly downloads. As such, @magenta/music popularity was classified as popular.
We found that @magenta/music demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.