Magenta returns to Moogfest

By | machinelearning, ML, TensorFlow

Magenta was first announced to the public
nearly one year ago at Moogfest, a yearly music
festival in Durham, NC that brings together together artists, futurist thinkers,
inventors, entrepreneurs, designers, engineers, scientists, and musicians to
explore emerging sound technologies.

This year we will be returning
to continue the conversation, share what we’ve built in the last year, and help
you make music with Magenta.

Read More

Learning from A.I. Duet

By | machinelearning, ML, TensorFlow

Google Creative Lab just released A.I.
, an interactive experiment
which lets you play a music duet with the computer. You no longer need code or
special equipment to play along with a Magenta music generation model. Just point
your browser at A.I. Duet
and use your laptop keyboard or a MIDI keyboard to make some music. You can learn
more by reading Alex Chen’s
Google Blog post.
A.I. Duet is a really fun way to interact with a Magenta music model.
As A.I. Duet is open source,
it can also grow into a powerful tool for machine learning research.
I learned a lot by experimenting with the underlying code.

Read More

Tuning Recurrent Neural Networks with Reinforcement Learning

By | machinelearning, ML, TensorFlow

We are excited to announce our new RL Tuner algorithm, a method for enchancing the performance of an LSTM trained on data using Reinforcement Learning (RL). We create an RL reward function that teaches the model to follow certain rules, while still allowing it to retain information learned from data. We use RL Tuner to teach concepts of music theory to an LSTM trained to generate melodies. The two videos below show samples from the original LSTM model, and the same model enchanced using RL Tuner.

Read More

Multistyle Pastiche Generator

By | machinelearning, ML, TensorFlow

Vincent Dumoulin,
Jonathon Shlens,
Manjunath Kudlur
have extended image style transfer by creating a single network which performs
more than one stylization of an image. The
paper[1] has also been summarized
in a
Research Blog
post. The source code and trained models behind the paper
are being released here.

The model creates a succinct description of a style. These descriptions can be
combined to create new mixtures of styles. Below is a picture of Picabo[5] stylized with a mixture of 3 different styles. Adjust the sliders below the
image to create more styles.




var pasticheDemo = function(img_id, url_prefix) {

function getValue(index) {
return parseFloat(document.getElementById(img_id + ‘_style_’ + index).value);

function normalizeValues(values) {
var sum = values[0] + values[1] + values[2];
if (sum <= 0) {
return [0, 0, 0];
var normValue = function(v) {
return Math.round(v * 20 / sum) * 50;
var norm = [
normValue(values[0]), normValue(values[1]), normValue(values[2])];
sum = norm[0] + norm[1] + norm[2];
var diff = 1000 – sum;
var max = Math.max(norm[0], norm[1], norm[2]);
if (norm[0] == max) {
norm[0] += diff;
} else if (norm[1] == max) {
norm[1] += diff;
} else {
norm[2] += diff;
return norm;

function imageHash(values) {
var toString = function(v) {
var str = String(v);
while (str.length < 3) {
str = '0' + str;
// AdBlock Plus looks for patterns that match common ad image sizes.
// Breaking up the number with a character is enough to bypass this.
str = str[0] + 'a' + str.substr(1);
return str;
return toString(values[0]) + '_' + toString(values[1]) + '_' +

function getImageUrl(prefix, values) {
href = '/assets/style_blends/' + prefix + '_' + imageHash(values) + '.jpg';
return href;

var preloadedImages = null;

function createImage(values) {
var img = new Image(); = img_id;
var contents = {
'isloaded': false,
'image': img
img.onload = function() {
contents.isloaded = true;
img.src = getImageUrl(url_prefix, values);
return contents;

function getImage(values) {
var hash = imageHash(values);
var contents = preloadedImages[hash];
if (contents.isloaded) {
return contents.image;
} else {
preloadedImages[hash] = createImage(values);
return contents.image;

function loadAllImages() {
var images = {};
for (var x = 0; x <= 1000; x += 50) {
for (var y = 0; y <= 1000 – x; y += 50) {
for (var z = 0; z <= 1000 – x – y; z += 50) {
if (x + y + z == 1000 || x + y + z == 0) {
images[imageHash([x, y, z])] = createImage([x, y, z]);
return images;

function displayImage(image) {
var current = document.getElementById(img_id);
// Load the new image with the height of the current image so the slider
// stays in the same place.
image.width = current.width;
image.height = current.height;
var parent = current.parentElement;

function setWeightLabels(values) {
for (var index = 0; index < 3; ++index) {
var weight = document.getElementById(img_id + '_weight_' + index);
weight.innerHTML = (values[index] / 10) + '%';

function sliderChange() {
if (preloadedImages == null) {
preloadedImages = loadAllImages();

var img = document.getElementById(img_id);
var values = [getValue(0), getValue(1), getValue(2)];
var normalized = normalizeValues(values);

document.getElementById(img_id + '_style_0').oninput = sliderChange;
document.getElementById(img_id + '_style_1').oninput = sliderChange;
document.getElementById(img_id + '_style_2').oninput = sliderChange;

pasticheDemo('picabo_deck', 'picabo');

Read More

Magenta MIDI Interface

By | machinelearning, ML, TensorFlow

The magenta team is happy to announce our first step toward providing an easy-to-use
interface between musicians and TensorFlow. This release makes it
possible to connect a TensorFlow model to a MIDI controller and synthesizer in
real time.

Don’t have your own MIDI keyboard? There are many free software
components you can download and use with our interface. Find out more details on
setting up your own TensorFlow-powered MIDI rig in the

Read More

Generating Long-Term Structure in Songs and Stories

By | machinelearning, ML, TensorFlow

One of the difficult problems in using machine learning to generate sequences, such as melodies, is creating long-term structure. Long-term structure comes very naturally to people, but it’s very hard for machines. Basic machine learning systems can generate a short melody that stays in key, but they have trouble generating a longer melody that follows a chord progression, or follows a multi-bar song structure of verses and choruses. Likewise, they can produce a screenplay with grammatically correct sentences, but not one with a compelling plot line. Without long-term structure, the content produced by recurrent neural networks (RNNs) often seems wandering and random.

But what if these RNN models could recognize and reproduce longer-term structure? Read More

Music, Art and Machine Intelligence (MAMI) Conference

By | machinelearning, ML, TensorFlow

This past June, Magenta, in parternship with the
Artists and Machine Intelligence group, hosted
the Music, Art and Machine Intelligence (MAMI) Conference in San Francisco.
MAMI brought together artists and researchers to share their work and explore
new ideas in the burgeoning space intersecting art and machine learning.

AMI has posted a wonderful summary
of the event on their blog, which we encourage you to read.

Many of the lectures have also been made available on YouTube,
including talks by Google ML researchers Samy Bengio
and Blaise Aguera y Arcas,
Wekinator creator Rebecca Fiebrink,
and artist Mario Klingmann.

We hope you will find the content of the conference as stimulating as we did
and take part in the ongoing conversation in our discussion group.

– Magenta

Source link

Welcome to Magenta!

By | machinelearning, ML, TensorFlow

We’re happy to announce Magenta, a project from the Google Brain
that asks: Can we use
machine learning to create compelling art and music? If so, how? If
not, why not? We’ll use TensorFlow, and
we’ll release our models and tools in open source on our GitHub. We’ll
also post demos, tutorial blog postings and technical papers. Soon
we’ll begin accepting code contributions from the community at
large. If you’d like to keep up on Magenta as it grows, you can follow
us on our GitHub and join our

What is Magenta?

Magenta has two goals. First, it’s a research project to advance the
state of the art in machine intelligence for music and art
generation. Machine learning has already been used extensively to
understand content, as in speech recognition or translation. With
Magenta, we want to explore the other side—developing algorithms that
can learn how to generate art and music, potentially creating
compelling and artistic content on their own.

Second, Magenta is an attempt to build a community of artists, coders
and machine learning researchers. The core Magenta team will build
open-source infrastructure around TensorFlow for making art and music.
We’ll start with audio and video support, tools for working with
formats like MIDI, and platforms that help artists connect to machine
learning models. For example, we want to make it super simple to play
music along with a Magenta performance model.

We don’t know what artists and musicians will do with these new tools,
but we’re excited to find out. Look at the history of creative
tools. Daguerre and later Eastman didn’t imagine what Annie
or Richard
would accomplish
in photography. Surely Rickenbacker and Gibson didn’t have Jimi
St. Vincent in
mind. We believe that the models that have worked so well in speech
recognition, translation and image annotation will seed an exciting
new crop of tools for art and music creation.

To start, Magenta is being developed by a small team of researchers
from the Google Brain team. If you’re a researcher or a coder, you
can check out our alpha-version
code. Once we have a
stable set of tools and models, we’ll invite external contributors to
check in code to our GitHub. If you’re a musician or an artist (or
aspire to be one—it’s easier than you might think!), we hope you’ll
try using these tools to make some noise or images or videos… or
whatever you like.

Our goal is to build a community where the right people are there to
help out. If the Magenta tools don’t work for you, let us know. We
encourage you to join our discussion list and shape how Magenta
evolves. We’d love to know what you think of our work—as an artist,
musician, researcher, coder, or just an aficionado. You can follow our
progress and check out some of the music and art Magenta helps create
right here on this blog. As we begin accepting code from community
contributors, the blog will also be open to posts from these
contributors, not just Google Brain team members.

Research Themes

We’ll talk about our research goals in more depth later, via a series
of tutorial blog postings. But here’s a short outline to give an idea
of where we’re heading.


Our main goal is to design algorithms that learn how to generate art
and music. There’s been a lot of great work in image generation from
neural networks, such as
from A. Mordvintsev et al. at Google and Neural Style
from L. Gatys et al. at
U. Tübingen. We believe this area is in its infancy, and expect to see
fast progress here. For those following machine learning closely, it
should be clear that this progress is already well underway. But
there remain a number of interesting questions: How can we make models
like these truly
generative? How can
we better take advantage of user feedback?

Attention and Surprise

It’s not enough just to sample images or sequences from some learned
distribution. Art is dynamic! Artists and musicians draw our
attention to one thing at the expense of another. They change their
story over time—is any Beatles album exactly like another?—and there’s
always some element of surprise at play. How do we capture effects
like attention and surprise in a machine learning model? While we
don’t have a complete answer for this question, we can point to some
interesting models such as the Show, Attend and Tell
by Xu et al. from the MILA
in Montreal that learns to control
an attentional lens, using it to generate descriptive sentences of


This leads to perhaps our biggest challenge: combining generation,
attention and surprise to tell a compelling story. So much
machine-generated music and art is good in small chunks, but lacks any
sort of long-term narrative arc. (To be fair, my own 2002 music
into this category). Alternately, some machine generated content does
have long-term structure, but that structure is provided TO rather
than learned BY the algorithm. This is the case, for example, in David
Cope’s very interesting Experiments in Musical Intelligence
, in
which an AI model deconstructs compositions by human composers, finds
common signatures in them, and recombines them into new works. The
design of models that learn to construct long narrative arcs is
important not only for music and art generation, but also areas like
language modeling, where it remains a challenge to carry meaning even
across a long paragraph, much less whole stories. Attention models
like the Show, Attend and Tell point to one promising direction, but
this remains a very challenging task.


Evaluating the output of generative models is deceivingly
difficult. The time will come when Magenta has 20 different music
generation models available in open source. How do we decide which
ones are good? One option is to compare model output to training data
by measuring
likelihood. For
music and art, this doesn’t work very well. As argued very nicely in
A note on generative models (Theis
et al.), it’s easy to generate outputs that are close in terms of
likelihood, but far in terms of appeal (and vice versa). This
motivates work in artificial adversaries such as Generative

by Goodfellow et al. from MILA in Montreal. In the end, to answer the
evaluation question we need to get Magenta tools in the hands of
artists and musicians, and Magenta media in front of viewers and
listeners. As Magenta evolves, we’ll be working on good ways to
achieve this.

Other Google efforts

Finally, we want to mention other Google efforts and resources related
to Magenta. The Artists and Machine Intelligence
project is connecting with artists
to ask: What do art and technology have to do with each other? What is
machine intelligence, and what does ‘machine intelligence art’ look,
sound and feel like? Check out their
blog for more
about AMI.

The Google Cultural
is fostering
the discovery of exhibits and collections from museums and archives
all around the world. Via their Lab at the Cultural Institute, they’re also
connecting directly with artists. As we make TensorFlow/Magenta the
best machine learning platform in the world for art and music
generation, we’ll work closely with both AMI and the Google Cultural
Institute to connect artists with technology. To learn more about our
various efforts, be sure to check out the Google Research

Source link