<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Magenta</title>
    <description>A research project exploring the role of machine learning in the process of creating art and music.</description>
    <link>https://magenta.tensorflow.org/</link>
    <atom:link href="https://magenta.tensorflow.org/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 24 Aug 2023 08:59:47 -0700</pubDate>
    <lastBuildDate>Thu, 24 Aug 2023 08:59:47 -0700</lastBuildDate>
    <generator>Jekyll v4.3.2</generator>
    
      <item>
        <title>Magenta Studio 2.0</title>
        <description>&lt;p&gt;TL;DR: &lt;a href=&quot;https://magenta.tensorflow.org/studio&quot;&gt;Magenta Studio&lt;/a&gt;, first released in 2019, has been updated to more seamlessly integrate with Ableton Live. No functionality has changed, there are only UI changes and internal fixes. Please download and enjoy!&lt;/p&gt;

&lt;p&gt;If you’re new to Magenta Studio, please read our &lt;a href=&quot;https://magenta.tensorflow.org/studio-announce&quot;&gt;previous post&lt;/a&gt; about what it is and how it works.&lt;/p&gt;

&lt;h2 id=&quot;whats-new&quot;&gt;What’s New&lt;/h2&gt;

&lt;p&gt;In the previous version of Magenta Studio, the &lt;a href=&quot;https://www.ableton.com/en/live/max-for-live/&quot;&gt;Max for Live (M4L)&lt;/a&gt; plugin would launch a separate application specific to your operating system for each of the tools. Unfortunately, as operating systems were upgraded, sometimes the applications stopped working. Therefore, we made the decision to integrate the tools directly into the Max for Live environment to ensure longer-term stability. The machine learning models are still directly integrated into the M4L plugin and do not require access to the Internet to use.&lt;/p&gt;

&lt;h2 id=&quot;upgrading&quot;&gt;Upgrading&lt;/h2&gt;

&lt;p&gt;To upgrade from the &lt;a href=&quot;https://magenta.tensorflow.org/v1/studio&quot;&gt;previous version of Magenta Studio&lt;/a&gt;, you can download the latest version and drop it into Live directly in the place of the old plugin. The functionality has not been altered, only the interface and integration, so it works in exactly the same way.&lt;/p&gt;

&lt;h2 id=&quot;documentation&quot;&gt;Documentation&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://magenta.tensorflow.org/studio&quot;&gt;The documentation&lt;/a&gt; has been updated to reflect the new interface. The tool-specific videos have not been updated with the new interface, but the functionality is identical.&lt;/p&gt;

&lt;h2 id=&quot;support&quot;&gt;Support&lt;/h2&gt;

&lt;p&gt;Please report any issues to the &lt;a href=&quot;https://github.com/magenta/magenta-studio&quot;&gt;GitHub repository&lt;/a&gt;. Thanks for using Magenta Studio!&lt;/p&gt;

&lt;h2 id=&quot;acknowledgements&quot;&gt;Acknowledgements&lt;/h2&gt;

&lt;p&gt;Magenta Studio is based on work by members of the Google DeepMind team’s Magenta project along with contributors to the Magenta and Magenta.js libraries. The plug-ins were implemented by &lt;a href=&quot;https://yotammann.info/&quot;&gt;Yotam Mann&lt;/a&gt; and extended by Cassie Tarakajian.&lt;/p&gt;
</description>
        <pubDate>Thu, 24 Aug 2023 07:00:01 -0700</pubDate>
        <link>https://magenta.tensorflow.org/studio-announce-2</link>
        <guid isPermaLink="true">https://magenta.tensorflow.org/studio-announce-2</guid>
        
        <category>studio</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>The 2023 I/O Preshow  – Composed by Dan Deacon (with some help from MusicLM)</title>
        <description>&lt;p&gt;Tl;dr: Dan Deacon worked with Google’s latest music AI models to compose the preshow music.
Check out the MusicLM demo in the &lt;a href=&quot;https://g.co/aitestkitchen&quot;&gt;AI Test Kitchen app&lt;/a&gt;.
Read on for more details about our collaboration with Dan Deacon.&lt;/p&gt;

&lt;h1 id=&quot;dan-deacons-io-performance&quot;&gt;Dan Deacon’s I/O Performance&lt;/h1&gt;

&lt;p&gt;On several occasions, we have had the pleasure of working with musicians that perform at Google I/O.
This is an opportunity for us to bring our latest creative machine learning tools out of the lab and into the hands of the musicians.
In previous years, we have worked with &lt;a href=&quot;https://magenta.tensorflow.org/chain-tripping&quot;&gt;YACHT&lt;/a&gt; and The &lt;a href=&quot;https://magenta.tensorflow.org/fruitgenie&quot;&gt;Flaming&lt;/a&gt; &lt;a href=&quot;https://blog.google/technology/ai/behind-magenta-tech-rocked-io/&quot;&gt;Lips&lt;/a&gt;.
With YACHT we explored custom symbolic music generation models tailored to the band, and with The Flaming Lips we explored an interaction to bridge the audience and performers.&lt;/p&gt;

&lt;p&gt;This year’s I/O pre-show was performed by electronic musician and composer Dan Deacon.
With Dan we explored how artists might interact with generative models of music audio and incorporate them into their artistic process.
Check out his performance in the video below and read on to learn more about his process using Google’s latest music AI tools:&lt;/p&gt;

&lt;figure&gt;
  &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/K_8N8w5CaOs&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; encrypted-media&quot; style=&quot;max-width:100%&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;
  &lt;figcaption&gt;Dan Deacon&apos;s performance at Google I/O 2023.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Dan used two of our new generative models in his performance: &lt;a href=&quot;https://google-research.github.io/seanet/musiclm/examples/&quot;&gt;MusicLM&lt;/a&gt; (&lt;a href=&quot;https://arxiv.org/abs/2301.11325&quot;&gt;paper&lt;/a&gt;, &lt;a href=&quot;https://g.co/aitestkitchen&quot;&gt;demo&lt;/a&gt;), which produces music based on a text-based input prompt, and &lt;a href=&quot;https://g.co/magenta/singsong&quot;&gt;SingSong&lt;/a&gt; (&lt;a href=&quot;https://arxiv.org/abs/2301.12662&quot;&gt;paper&lt;/a&gt;), which will generate an accompaniment track for an audio-based singing input.
Both of these models are part of the &lt;a href=&quot;https://ai.googleblog.com/2022/10/audiolm-language-modeling-approach-to.html&quot;&gt;AudioLM&lt;/a&gt; (&lt;a href=&quot;https://arxiv.org/abs/2209.03143&quot;&gt;paper&lt;/a&gt;) family, and they directly produce audio based on the input conditioning (i.e., text or singing) by autoregressively predicting &lt;a href=&quot;https://ai.googleblog.com/2021/08/soundstream-end-to-end-neural-audio.html&quot;&gt;SoundStream&lt;/a&gt; (&lt;a href=&quot;https://arxiv.org/abs/2107.03312&quot;&gt;paper&lt;/a&gt;) tokens with one or more Transformer language models.
SoundStream tokens can then be converted back to raw audio that can be used in conjunction with other audio editing software.&lt;/p&gt;

&lt;p&gt;For his performance, Dan used MusicLM to create the chill, relaxing piano groove that’s heard behind his two meditations starring the Duck with Lips.
Additionaly, Dan used both MusicLM and SingSong to create the Chiptune song.
Most excitingly, Dan didn’t just &lt;em&gt;use&lt;/em&gt; both SingSong and MusicLM, but actually &lt;em&gt;extended&lt;/em&gt; their capabilities to put his performance together.
We’ll discuss more of how Dan shaped the tools–and why it’s important that he did so–in the next section.&lt;/p&gt;

&lt;h1 id=&quot;working-with-dan&quot;&gt;Working with Dan&lt;/h1&gt;

&lt;p&gt;As Dan discusses at around 7 minutes into his performance, he has always been excited by the promise that new technologies bring to the compositional process.
Technology has a long and intertwined history with the art of making music.
We might not think of things like flutes, violins, or trombones in the same way we think of computers now, but these were revolutionary new technologies when they were first introduced!
They can also often seem disruptive at first–at one point in history, &lt;a href=&quot;https://journals.sagepub.com/doi/abs/10.1177/016344386008003002?journalCode=mcsa.&quot;&gt;microphones caused quite a stir&lt;/a&gt; because they let vocalists sing much more softly (opposed to singing so loud they could be heard over the band).
Yet in retrospect, microphones changed our relationship to music in many positive ways, enabling us to create, represent, and distribute music in ways that would have been inconceivable beforehand.
Importantly, each new technological development expanded the creative palette of musicians, bringing with them new textures, new techniques, and sometimes new conceptions of music itself.&lt;/p&gt;

&lt;p&gt;We view our new models as a continuation of music technology’s evolution.
We’re incredibly inspired by the opportunity for these new tools to bring new creative capabilities to humanity, while remaining conscious of–and working hard to mitigate–their potential negative consequences.
Our goal is and always has been to empower artists and musicians; a crucial piece of empowering musicians is understanding now these new tools situate themselves in different artists’ creative processes.
With that in mind, collaborating with Dan was a great opportunity for us to work towards embodying our goals of empowering musicians in the era of generative modeling.&lt;/p&gt;

&lt;figure&gt;
  &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/2yMBycveWHk&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; encrypted-media&quot; style=&quot;max-width:100%&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;
  &lt;figcaption&gt;A glimpse of our in-person workshop where we showed our new tools to Dan Deacon.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;About a month before I/O, we had a workshop with Dan where we introduced him to MusicLM and SingSong.
Initially, Dan found many interesting text prompts to our MusicLM such as “a 600ft trombone.”
He started to push the tools past their limit by, for example, playing his synthesizer into SingSong, ignoring that the system was trained on only singing inputs.
These initial experiments turned out to be really fun and promising!&lt;/p&gt;

&lt;p&gt;As we kept working with Dan, he surprised us by pushing these tools even further.
Inspired by “&lt;a href=&quot;https://en.wikipedia.org/wiki/I_Am_Sitting_in_a_Room&quot;&gt;I Am Sitting in a Room&lt;/a&gt;” (&lt;a href=&quot;https://www.youtube.com/watch?v=fAxHlLK3Oyk&quot;&gt;click here to listen&lt;/a&gt;), he fed the output of the SingSong model back into itself… over and over and over.
Again, Dan moved beyond the model’s design of accepting singing input; by feeding its own output back into itself, the input audio was out of the distribution that the model had seen during training and we weren’t sure if this would work at all.
Yet, not only did it work, but the feedback loop tended to produce music that still accompanies the input; it has the same key, tempo, and style.
This was the interaction that Dan designed to compose the Chiptune song, above.&lt;/p&gt;

&lt;p&gt;Dan began with a handful of text prompts to MusicLM, and then used the generated audio as input to SingSong and that output back through SingSong for numerous iterations.
He was able to create hundreds of audio clips that complemented each other.
From these, he handpicked his favorite clips, edited them slightly, and performed them.&lt;/p&gt;

&lt;p&gt;We’re very proud to have been a part of Dan’s amazing performance.
We’re extremely excited for the direction that this research is headed, and we’re always looking for ways to give musicians new tools to interact with.
Check out the &lt;a href=&quot;https://blog.google/technology/ai/musiclm-google-ai-test-kitchen/&quot;&gt;Google Keyword blog post&lt;/a&gt; to learn more about MusicLM and you can try it yourself by &lt;a href=&quot;https://g.co/aitestkitchen&quot;&gt;signing up via the AI Test Kitchen app&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;acknowledgements&quot;&gt;Acknowledgements&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;This year’s I/O pre-show was a huge collaborative effort. We would like to thank everyone involved in making the performance a success (in no particular order): Josh Christman, Daniel Chandler, Meghan Reinhardt, Carolyne De Bellefeuille,  Adi Goodrich, Jon Barron, Meghan Reinhardt, Carolyne De Bellefeuille, Irina Blok, Spencer Sterling, Ruben Beddeleem, Ben Poole, Cadie Desbiens-Desmeules, Chris Donahue, Jorge Gonzalez Mendez, Noah Constant, Jesse Engel, Timo Denk, Andrea Agostinelli, Neil Zeghidour, Christian Frank, Mauricio Zuluaga, Hema Manickavasagam, Tom Hume, and Lynn Cherry.&lt;/em&gt;&lt;/p&gt;

</description>
        <pubDate>Wed, 21 Jun 2023 13:00:00 -0700</pubDate>
        <link>https://magenta.tensorflow.org/dandeacon-io-preshow</link>
        <guid isPermaLink="true">https://magenta.tensorflow.org/dandeacon-io-preshow</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>The Wordcraft Writers Workshop: Creative Co-Writing with AI</title>
        <description>&lt;p&gt;A core piece of Magenta’s mission is to empower creativity using AI and machine learning. In order to evaluate how well this goal is being achieved, it is important to put tools in the hands of creators, encouraging them to share honest and critical feedback. This feedback can help researchers to thoughtfully develop the next generations of ML-powered creative tools. Most of our prior efforts to engage with creators have been in the domain of music (for example, &lt;a href=&quot;https://magenta.tensorflow.org/studio&quot;&gt;Magenta Studio&lt;/a&gt; and &lt;a href=&quot;https://nsynthsuper.withgoogle.com/&quot;&gt;NSynth&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;However, human creativity encompasses far more than just music: visual artists paint, draw, and sculpt, and writers craft stories and poetry. In recent years, we’ve seen huge advancements in machine learning techniques that can facilitate creativity in these other modalities. Creative writing is an especially interesting domain because it is so challenging for AI to get right. Even short stories commonly have narrative arcs that span paragraphs or longer, multiple characters with diverging points of view, and a careful balance of familiar archetypes and novel storytelling–all difficult traits for state-of-the-art AI to replicate. At the same time, the omnipresent writer’s block is not a problem at all for neural language models like &lt;a href=&quot;https://ai.googleblog.com/2022/01/lamda-towards-safe-grounded-and-high.html&quot;&gt;LaMDA&lt;/a&gt;, which can effortlessly generate as many words as you ask them for.&lt;/p&gt;

&lt;p&gt;Earlier this year, we invited a cohort of 13 professional creative writers to try their hands at writing stories using &lt;a href=&quot;https://g.co/research/wordcraft&quot;&gt;Wordcraft&lt;/a&gt;, an AI-augmented text editor with a wide range of generative capabilities targeted at creative writing assistance. Wordcraft can suggest story ideas, rewrite text according to user-provided instructions, and elaborate on what has already been written. It also has a chatbot interface where users can engage with LaMDA, Google’s dialog-based language model, about their stories.&lt;/p&gt;

&lt;figure&gt;
  &lt;a href=&quot;https://g.co/research/wordcraft&quot; target=&quot;_blank&quot;&gt;
    &lt;video src=&quot;/assets/wordcraft/wordcraft.webm&quot; autoplay=&quot;&quot; loop=&quot;&quot;&gt;&lt;/video&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;A demo of the Wordcraft web application&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;As in generative music, AI-assisted story writing can be a mixed bag. At its best, Wordcraft made suggestions that were inspiring and surrealistic, and writers applauded its usefulness for ideation and overcoming writer’s block. However, it also had a tendency to rehash tired tropes, and it could take wading through many dull suggestions before finding an interesting one.&lt;/p&gt;

&lt;p&gt;All of the writers’ stories are available in the Wordcraft Writer’s Workshop’s &lt;a href=&quot;https://g.co/research/wordcraft&quot;&gt;digital literary magazine&lt;/a&gt;, and a detailed writeup of what we learned about the role machine learning can play in creative writing can be found &lt;a href=&quot;https://arxiv.org/abs/2211.05030&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We hope you enjoy perusing through the stories, and we are excited to hear your ideas about how AI can create valuable creative writing tools.&lt;/p&gt;
</description>
        <pubDate>Thu, 01 Dec 2022 08:00:00 -0800</pubDate>
        <link>https://magenta.tensorflow.org/wordcraft-writers-workshop</link>
        <guid isPermaLink="true">https://magenta.tensorflow.org/wordcraft-writers-workshop</guid>
        
        <category>wordcraft,</category>
        
        <category>lamda,</category>
        
        <category>writing</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>The Chamber Ensemble Generator and CocoChorales Dataset</title>
        <description>&lt;style&gt;
  table tr.wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
  }
  table tr.wrap &gt; td {
    display: block;
    flex: 1;
  }
  td {text-align: center !important}
  .from {background-color: #d3d3d3;}
  img.inline {
    vertical-align: middle;
    display: inline-block;
    max-height: 16px;
    width: auto !important;
    margin-right: 6px;
  }
  img.centered {
    max-width: 90%;
    margin: auto;
  }
&lt;/style&gt;

&lt;figure style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;assets/cocochorales/logos.png&quot; style=&quot;width: 90%; height: auto; margin: auto&quot; alt=&quot;Logos for the Chamber Ensemble Generator and CocoChorales Dataset.&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;In this post, we’re excited to introduce the &lt;strong&gt;Chamber Ensemble Generator&lt;/strong&gt;, a system for generating realistic chamber ensemble performances, and the corresponding &lt;strong&gt;CocoChorales Dataset&lt;/strong&gt;, which contains over 1,400 hours of audio mixes with corresponding source data and MIDI, multi-f&lt;sub&gt;0&lt;/sub&gt;, and per-note performance annotations.&lt;/p&gt;

&lt;table align=&quot;center&quot; class=&quot;overview&quot;&gt;
  &lt;tbody&gt;&lt;tr&gt;
    &lt;td&gt;🎵&lt;a href=&quot;https://lukewys.github.io/cocochorales/&quot;&gt;Audio Examples&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;📝&lt;a href=&quot;https://arxiv.org/abs/2209.14458&quot;&gt;arXiv Paper&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;📂&lt;a href=&quot;https://magenta.tensorflow.org/datasets/cocochorales&quot;&gt;Dataset Download Instructions&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/ddsp/github.png&quot; class=&quot;inline&quot; /&gt;&lt;a href=&quot;https://github.com/lukewys/chamber-ensemble-generator&quot;&gt;Github Code&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Data is the bedrock that all machine learning systems are built upon. Historically, researchers applying machine learning to music have not had access to the same scale of data that other fields have. Whereas image and language machine learning researchers measure their datasets by the millions or billions of examples, music researchers feel extremely lucky if they can scrape together a few thousand examples for a given task.&lt;/p&gt;

&lt;p&gt;Modern machine learning systems require large quantities of &lt;em&gt;annotated&lt;/em&gt; data. With music systems, getting annotations for some tasks–like transcription or f&lt;sub&gt;0&lt;/sub&gt; estimation–requires tedious work by expert musicians. When annotating a single example correctly is difficult, how can we annotate hundreds of thousands of examples to make enough data to train a machine learning system?&lt;/p&gt;

&lt;p&gt;In this post, we introduce a new approach to solving these problems by using generative models to create large amounts of realistic-sounding, finely annotated, freely available music data. We combined two structured generative models–a note generation model, &lt;a href=&quot;https://magenta.tensorflow.org/coconet&quot;&gt;Coconet&lt;/a&gt;, and a notes-to-audio generative synthesis model, &lt;a href=&quot;https://magenta.tensorflow.org/midi-ddsp&quot;&gt;MIDI-DDSP&lt;/a&gt;–into a system we call the &lt;strong&gt;Chamber Ensemble Generator&lt;/strong&gt;. As its name suggests, the Chamber Ensemble Generator (or CEG) can generate performances of chamber ensembles playing in the style of four-part Bach chorales. Listen to the following examples performed by the CEG:&lt;/p&gt;

&lt;table align=&quot;center&quot;&gt;
  &lt;tbody&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;2&quot;&gt;String Ensemble Mixture:&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;2&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;assets/cocochorales/audio/strings/mix.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;1&quot;&gt;Soprano: Violin 1&lt;/td&gt;
    &lt;td colspan=&quot;1&quot;&gt;Alto: Violin 2&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr class=&quot;wrap&quot;&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;assets/cocochorales/audio/strings/1_violin.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;assets/cocochorales/audio/strings/2_violin.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;1&quot;&gt;Tenor: Viola&lt;/td&gt;
    &lt;td colspan=&quot;1&quot;&gt;Bass: Cello&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr class=&quot;wrap&quot;&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;assets/cocochorales/audio/strings/3_viola.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;assets/cocochorales/audio/strings/4_cello.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;table align=&quot;center&quot;&gt;
  &lt;tbody&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;2&quot;&gt;Woodwind Ensemble Mixture:&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;2&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;assets/cocochorales/audio/woodwind/mix.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;1&quot;&gt;Soprano: Flute&lt;/td&gt;
    &lt;td colspan=&quot;1&quot;&gt;Alto: Oboe&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr class=&quot;wrap&quot;&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;assets/cocochorales/audio/woodwind/1_flute.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;assets/cocochorales/audio/woodwind/2_oboe.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;1&quot;&gt;Tenor: Clarinet&lt;/td&gt;
    &lt;td colspan=&quot;1&quot;&gt;Bass: Bassoon&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr class=&quot;wrap&quot;&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;assets/cocochorales/audio/woodwind/3_clarinet.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;assets/cocochorales/audio/woodwind/4_bassoon.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;We then used the CEG to create a massive music dataset for machine learning systems. We call this dataset &lt;strong&gt;CocoChorales&lt;/strong&gt;. What’s exciting about the CEG is that it uses a set of structured generative models which provide annotations for many music machine learning applications like automatic music transcription, multi-f&lt;sub&gt;0&lt;/sub&gt; estimation, source separation, performance analysis, and more.&lt;/p&gt;

&lt;p&gt;Below, we dig deeper into each of these projects.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h1 id=&quot;the-chamber-ensemble-generator&quot;&gt;The Chamber Ensemble Generator&lt;/h1&gt;

&lt;figure style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;assets/cocochorales/hero_diagram.png&quot; style=&quot;width: 100%; height: auto; margin: auto&quot; alt=&quot;Overview image of the Chamber Ensemble Generator.&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;As we mentioned, the Chamber Ensemble Generator (CEG) is a set of two structured generative models that work together to create new chamber ensemble performances of four-part &lt;a href=&quot;https://en.wikipedia.org/wiki/Chorale&quot;&gt;chorales&lt;/a&gt; in the style of &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_chorale_harmonisations_by_Johann_Sebastian_Bach&quot;&gt;J.S. Bach&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As seen in the figure above, the constituent models in the CEG are two previous Magenta models: &lt;a href=&quot;https://magenta.tensorflow.org/coconet&quot;&gt;Coconet&lt;/a&gt; and &lt;a href=&quot;https://magenta.tensorflow.org/midi-ddsp&quot;&gt;MIDI-DDSP&lt;/a&gt;. Coconet is a generative model of notes, creating a set of four-instrument music pieces (“note sequences”), harmonized in the style of a Bach Chorale. Each of these four note sequences is then individually synthesized by MIDI-DDSP. MIDI-DDSP is a generative synthesis model that uses &lt;a href=&quot;https://magenta.tensorflow.org/ddsp&quot;&gt;Differentiable Digital Signal Processing (DDSP)&lt;/a&gt; that turns note sequences into realistic audio that can sound like a number of different instruments (e.g., violin, bassoon, or french horn).&lt;/p&gt;

&lt;p&gt;It’s important to note that the CEG is built on &lt;em&gt;structured&lt;/em&gt; generative models, i.e., models that have interpretable intermediate representations. On the one hand, this structure leads to a very opinionated view of music. The CEG is limited in ways that other generative music models are not; it cannot generate all styles of music, like a rock and roll ensemble for example. It can only generate chorales. However, many generative music models are notoriously “black boxes,” whose internal structures are difficult to interpret. By being built on a modular set of structured models, the internals of the CEG are easy to understand and modify. This also allows us to create a dataset with many types of annotations that would be tedious or impossible to acquire with other types of generative models (such as annotations of the velocity and vibrato applied to each individual note in a performance). In the next section, we will showcase how these interpretable structures can be used to mitigate biases of these generative models.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h1 id=&quot;the-cocochorales-dataset&quot;&gt;The CocoChorales Dataset&lt;/h1&gt;

&lt;p&gt;CocoChorales is a dataset of 240,000 examples totalling over 1,400 hours of mixture data. The Chamber Ensemble Generator (CEG) was used to create CocoChorales by sampling from the CEG’s two constituent generative models, Coconet and MIDI-DDSP. Using the CEG in this way is an example of dataset “amplification,” whereby a generative model trained on a small dataset is used to produce a much larger dataset. In this case, we are amplifying two very small datasets: Coconet is trained on the &lt;a href=&quot;https://github.com/czhuang/JSB-Chorales-dataset&quot;&gt;J.S. Bach Chorales Dataset&lt;/a&gt;, which contains 382 examples, and MIDI-DDSP is trained on &lt;a href=&quot;https://labsites.rochester.edu/air/projects/URMP.html&quot;&gt;URMP&lt;/a&gt;, which contains only 44 examples. But, using the CEG, we were able to generate 240,000 examples!&lt;/p&gt;

&lt;p&gt;CocoChorales has examples performed by 13 different instruments (violin, viola, cello, double bass, flute, oboe, clarinet, bassoon, saxophone, trumpet, french horn, trombone, and tuba) organized into 4 different types of ensembles: a string ensemble, a brass ensemble, a woodwind ensemble, and a random ensemble (see the &lt;a href=&quot;https://magenta.tensorflow.org/datasets/cocochorales&quot;&gt;CocoChorales dataset page&lt;/a&gt; for more info). Each example contains an audio mixture, audio for each source, aligned MIDI, instrument labels, fundamental frequency (f&lt;sub&gt;0&lt;/sub&gt;) for each instrument, notewise performance characteristics (e.g., vibrato, loudness, brightness etc of each note), and raw synthesis parameters.&lt;/p&gt;

&lt;figure style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;assets/cocochorales/f0_distributions.png&quot; style=&quot;width: 50%; height: auto; margin: auto&quot; alt=&quot;Fundamental frequencies (f0&apos;s) histograms showing that we are able to correct for a bias in the model.&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;What’s cool about using the structured models in the CEG, is that because the system is modular, it is easy to interpret the output of the intermediate steps of the internal CEG models. For example, the MIDI-DDSP model we used tended to produce performances that were oftentimes out of tune and skewed sharp (i.e., frequency of a note being played was often slightly higher than the “proper” tuned frequency of the note in the piece, according to a &lt;a href=&quot;https://en.wikipedia.org/wiki/12_equal_temperament&quot;&gt;12-TET scale&lt;/a&gt;). This is visualized by the orange histogram in the above image (labeled “w/o pitch aug”), which shows how in or out of tune each note is once every 4ms (here, 0.0 means perfectly “in tune”). We were able to correct for this systematic bias by directly adjusting the f&lt;sub&gt;0&lt;/sub&gt; curves output by the synthesis generation module of the MIDI-DDSP model, as shown by the blue histogram (labeled “w/ pitch aug”), which shows a distribution that is more centered on 0.0 in the figure above. This level of control is hard to achieve with black box generative models, and a big reason why we’re very excited about using the structured models in the CEG.&lt;/p&gt;

&lt;h1 id=&quot;downloading-the-dataset&quot;&gt;Downloading the Dataset&lt;/h1&gt;

&lt;p&gt;We’re really excited to see what the research community can do with the CocoChorales dataset. Further details on the dataset can be found &lt;a href=&quot;https://magenta.tensorflow.org/datasets/cocochorales&quot;&gt;here&lt;/a&gt;. Instructions on how to download the dataset can be found at &lt;a href=&quot;https://github.com/lukewys/chamber-ensemble-generator#dataset-download&quot;&gt;this Github link&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you want to learn more about either project, please see our &lt;a href=&quot;https://arxiv.org/abs/2209.14458&quot;&gt;arXiv paper&lt;/a&gt;. The code for the Chamber Ensemble Generator is available &lt;a href=&quot;https://github.com/lukewys/chamber-ensemble-generator&quot;&gt;here&lt;/a&gt; and usage instructions are &lt;a href=&quot;https://github.com/lukewys/chamber-ensemble-generator/blob/master/data_pipeline.md&quot;&gt;here&lt;/a&gt;. If you use the Chamber Ensemble Generator or CocoChorales in a research publication, we kindly ask that you use the following bibtex entry to cite it:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;@article{wu2022chamber,
  title = {The Chamber Ensemble Generator: Limitless High-Quality MIR Data via Generative Modeling},
  author = {Wu, Yusong and Gardner, Josh and Manilow, Ethan and Simon, Ian and Hawthorne, Curtis and Engel, Jesse},
  journal={arXiv preprint arXiv:2209.14458},
  year = {2022},
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Fri, 30 Sep 2022 09:00:00 -0700</pubDate>
        <link>https://magenta.tensorflow.org/ceg-and-cocochorales</link>
        <guid isPermaLink="true">https://magenta.tensorflow.org/ceg-and-cocochorales</guid>
        
        <category>chamber-ensemble-generator,</category>
        
        <category>cocochorales,</category>
        
        <category>coconet,</category>
        
        <category>midi-ddsp,</category>
        
        <category>dataset</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Autoregressive long-context music generation with Perceiver AR</title>
        <description>&lt;style&gt;
  table tr.wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
  }
  table tr.wrap &gt; td {
    display: block;
    flex: 1;
  }
  td {text-align: center !important}
  .from {background-color: #d3d3d3;}
  img.inline {
    vertical-align: middle;
    display: inline-block;
    max-height: 16px;
    width: auto !important;
    margin-right: 6px;
  }
  img.centered {
    max-width: 90%;
    margin: auto;
  }
&lt;/style&gt;

&lt;p&gt;We present our work on music generation with Perceiver AR, an autoregressive architecture that is able to generate high-quality samples as long as 65k tokens—the equivalent of minutes of music, or entire pieces!&lt;/p&gt;

&lt;table align=&quot;center&quot; class=&quot;overview&quot;&gt;
  &lt;tbody&gt;&lt;tr&gt;
    &lt;td&gt;🎵&lt;a href=&quot;https://storage.googleapis.com/perceiver-ar/index.html&quot;&gt;Music Samples&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;📝&lt;a href=&quot;https://arxiv.org/abs/2202.07765&quot;&gt;ICML Paper&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/perceiver-ar/github.png&quot; class=&quot;inline&quot; /&gt;&lt;a href=&quot;https://github.com/google-research/perceiver-ar&quot;&gt;GitHub Code&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/perceiver-ar/deepmind.png&quot; class=&quot;inline&quot; /&gt;&lt;a href=&quot;https://www.deepmind.com/publications/perceiver-ar-general-purpose-long-context-autoregressive-generation&quot;&gt;DeepMind Blog&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/oQXmwqRqpoU&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The playlist above contains samples generated by a Perceiver AR model trained on 10,000 hours of symbolic piano music (and synthesized with &lt;a href=&quot;https://www.fluidsynth.org/&quot;&gt;Fluidsynth&lt;/a&gt;).&lt;/p&gt;

&lt;h1 id=&quot;introduction&quot;&gt;Introduction&lt;/h1&gt;

&lt;p&gt;Transformer-based architectures have been recently used to generate outputs from various modalities—text, images, music—in an autoregressive fashion. However, their compute requirements scale poorly with the input size, which makes modeling very long sequences computationally infeasible. This severely limits models’ abilities in settings where long-range context is useful for capturing domain-specific properties. Music domains offer a perfect testbed, since they often exhibit long-term dependencies, repeating sequences and overall coherence over entire minutes—all necessary ingredients for producing realistic samples that are pleasing to the human ear!&lt;/p&gt;

&lt;figure style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;assets/perceiver-ar/Transformer_vs_Perceiver_AR.png&quot; style=&quot;max-width: 100%; clip: rect(0px, 140px, 140px, 0px); margin: auto&quot; alt=&quot;Transformer vs. Perceiver AR&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;To ameliorate these issues, we propose Perceiver AR, an autoregressive version of the original &lt;a href=&quot;https://www.deepmind.com/publications/perceiver-general-perception-with-iterative-attention&quot;&gt;Perceiver&lt;/a&gt; architecture. A Perceiver model maps the input to a fixed-size latent space, where all further processing takes place. This enables scaling up to inputs of over 100k tokens! Perceiver AR builds on the initial Perceiver architecture by adding causal masking. This allows us to autoregressively generate music samples of high quality and end-to-end consistency, additionally achieving state-of-the-art performance on the &lt;a href=&quot;https://magenta.tensorflow.org/datasets/maestro&quot;&gt;MAESTRO dataset&lt;/a&gt;.&lt;/p&gt;

&lt;h1 id=&quot;setup&quot;&gt;Setup&lt;/h1&gt;

&lt;figure style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;assets/perceiver-ar/Perceiver_AR_architecture.png&quot; style=&quot;width: 300px; height: auto; margin: auto&quot; alt=&quot;Perceiver AR model architecture&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;Perceiver AR first maps the inputs (in the diagram, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;[P,e,r,c,e,i,v,e,r,A,R]&lt;/code&gt;) to a fixed-size latent array, via a single cross-attention operation. These latents (3 illustrated above) then interact in a deep stack of self-attention layers to produce estimates for each target. The most recent inputs (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;[r,A,R]&lt;/code&gt;) correspond to queries, and each latent corresponds to a different target position (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{1: A, 2: R, 3: &amp;lt;EOS&amp;gt;}&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Causal masking is used in both kinds of attention operations, to maintain end-to-end autoregressive ordering. Each latent can therefore only attend to (a) itself and (b) latents corresponding to ‘earlier’ information (either input tokens or target positions). This respects the standard autoregressive formulation, where the probability distribution for the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;t&lt;/code&gt;-th output is only conditioned on what was generated at previous timesteps &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1, ..., t-1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In the music domain, we use up to 65k-token inputs, which corresponds to several minutes in the symbolic domain and one minute in the raw audio domain.&lt;/p&gt;

&lt;h2 id=&quot;symbolic-music&quot;&gt;Symbolic music&lt;/h2&gt;
&lt;p&gt;The playlist at the top showcases 8 unconditional samples. These were generated by a model that was trained on 10,000 hours of &lt;a href=&quot;http://g.co/magenta/piano-transformer&quot;&gt;transcribed YouTube piano performances&lt;/a&gt; containing examples between 1k and 32k tokens in length. The model had 1024 latents and 24 self-attention layers. Training on this large-scale dataset yields high-quality samples with stylistic and structural coherence—one can identify repeating musical themes, different chord progressions, arpeggios and even ritardandos. Moreover, the main difference from our previous model trained on YouTube piano performances is that a 32k input size was feasible this time, so we only used &lt;em&gt;full-length&lt;/em&gt; pieces for training! This allowed Perceiver AR to better model entire pieces with beginning, middle and end sections.&lt;/p&gt;

&lt;p&gt;Next, we present audio samples from the symbolic domain, obtained by training on &lt;a href=&quot;https://magenta.tensorflow.org/datasets/maestro#v300&quot;&gt;MAESTRO v3&lt;/a&gt;. The input representation in both cases was computed from MIDI files as described by &lt;a href=&quot;https://arxiv.org/abs/1809.04281&quot;&gt;Huang et al.&lt;/a&gt; in Section A.2, and the final outputs were synthesized using &lt;a href=&quot;https://www.fluidsynth.org/&quot;&gt;Fluidsynth&lt;/a&gt;.&lt;/p&gt;

&lt;table align=&quot;center&quot;&gt;
&lt;tr class=&quot;wrap&quot;&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://storage.googleapis.com/perceiver-ar/MAESTRO%20v3%20symbolic%20-%20sample%201.mp3&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://storage.googleapis.com/perceiver-ar/MAESTRO%20v3%20symbolic%20-%20sample%202.mp3&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://storage.googleapis.com/perceiver-ar/MAESTRO%20v3%20symbolic%20-%20sample%203.mp3&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://storage.googleapis.com/perceiver-ar/MAESTRO%20v3%20symbolic%20-%20sample%204.mp3&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;h2 id=&quot;raw-audio&quot;&gt;Raw audio&lt;/h2&gt;
&lt;p&gt;Perceiver AR can also be used to generate samples from the raw audio domain. Here, we applied the &lt;a href=&quot;https://arxiv.org/abs/2107.03312&quot;&gt;SoundStream codec&lt;/a&gt; to &lt;a href=&quot;https://magenta.tensorflow.org/datasets/maestro#v300&quot;&gt;MAESTRO v3&lt;/a&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.wav&lt;/code&gt; files to encode the raw audio. After training the model, we generated samples and decoded them into the source domain. Keeping the context length fixed, we experimented with 3 different codec bitrates—12kbps, 18kbps, 22kbps—which, for an input length of 65k tokens, span 54.4s, 36.8s and 29.6s of music, respectively. The examples below illustrate the trade-off between sample duration and fidelity: codecs with lower bitrates model coarser structure and enable training on a longer period of time, but sacrifice audio quality.&lt;/p&gt;

&lt;table align=&quot;center&quot;&gt;
&lt;tr class=&quot;wrap&quot;&gt;
  &lt;td colspan=&quot;1&quot;&gt; 12kbps&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://storage.googleapis.com/perceiver-ar/65k_infer/SS12_65k_1.mp3&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt; 18kbps&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://storage.googleapis.com/perceiver-ar/65k_infer/SS18_65k_1.mp3&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt; 22kbps&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://storage.googleapis.com/perceiver-ar/65k_infer/SS22_65k_1.mp3&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;You can listen to more raw audio samples &lt;a href=&quot;https://storage.googleapis.com/perceiver-ar/index.html&quot;&gt;here 🎵&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;bonus&quot;&gt;Bonus&lt;/h2&gt;
&lt;p&gt;To end on a high note (🙃), we invite you to enjoy Charlie Chen’s creation - a music box that plays Perceiver AR outputs, adding an immensely nostalgic feel to the generated music!&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/haFG05Pe2kk&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;@inproceedings{
  hawthorne2022general,
  title={General-purpose, long-context autoregressive modeling with Perceiver AR},
  author={Hawthorne, Curtis and Jaegle, Andrew and Cangea, C{\u{a}}t{\u{a}}lina and Borgeaud, Sebastian and Nash, Charlie and Malinowski, Mateusz and Dieleman, Sander and Vinyals, Oriol and Botvinick, Matthew and Simon, Ian and others},
  booktitle={The Thirty-ninth International Conference on Machine Learning},
  year={2022},
  url={https://arxiv.org/abs/2202.07765}
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Thu, 16 Jun 2022 09:00:00 -0700</pubDate>
        <link>https://magenta.tensorflow.org/perceiver-ar</link>
        <guid isPermaLink="true">https://magenta.tensorflow.org/perceiver-ar</guid>
        
        <category>perceiver;</category>
        
        <category>autoregressive;</category>
        
        <category>midi;</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>DDSP-VST: Neural Audio Synthesis for All</title>
        <description>&lt;style&gt;
  table tr.wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
  }
  table tr.wrap &gt; td {
    display: block;
    flex: 1;
  }
  td {text-align: center !important}
  .from {background-color: #d3d3d3;}
  img.inline {
    vertical-align: middle;
    display: inline-block;
    max-height: 16px;
    width: auto !important;
    margin-right: 6px;
  }
  img.centered {
    max-width: 90%;
    margin: auto;
  }
  video {
    max-width: 100% !important;
  }
&lt;/style&gt;

&lt;table align=&quot;center&quot; class=&quot;overview&quot;&gt;
  &lt;tbody&gt;&lt;tr&gt;
    &lt;td&gt;🎵&lt;a href=&quot;https://magenta.tensorflow.org/ddsp-vst&quot;&gt;Get the plugin&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/ddsp/colab.jpg&quot; class=&quot;inline&quot; /&gt;&lt;a href=&quot;https://g.co/magenta/train-ddsp-vst&quot;&gt;Train your own model&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;

&lt;p&gt;Back in 2020, we introduced &lt;a href=&quot;https://magenta.tensorflow.org/ddsp&quot;&gt;DDSP&lt;/a&gt; as a new approach to realistic neural audio synthesis of musical instruments that combines the efficiency and interpretability of classical DSP elements (such as filters, oscillators, reverberation, etc.) with the expressivity of deep learning. Since then, we’ve been able to leverage DDSP’s efficiency to power a variety of &lt;a href=&quot;https://www.youtube.com/watch?v=f8CdZxWj--A&quot;&gt;educational and creative&lt;/a&gt; web experiences, such as &lt;a href=&quot;https://sites.research.google/tonetransfer&quot;&gt;Tone Transfer&lt;/a&gt;, &lt;a href=&quot;https://soundsofindia.withgoogle.com/&quot;&gt;Sounds of India&lt;/a&gt;, and &lt;a href=&quot;http://g.co/paintwithmusic&quot;&gt;Paint with Music&lt;/a&gt;. However, there’s one question we’ve received more than any other: “Nice! When can I get that plugin?”&lt;/p&gt;

&lt;p&gt;We’re happy to announce that finally, now you can! Introducing &lt;a href=&quot;http://g.co/magenta/ddsp-vst&quot;&gt;DDSP-VST&lt;/a&gt;, a cross-platform real-time neural synthesizer and audio effect that you can run directly in your favorite digital audio workstation.&lt;/p&gt;

&lt;figure&gt;
  &lt;img src=&quot;/assets/ddsp-vst/ddsp-plugin-v1_1.png&quot; alt=&quot;&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;br /&gt;
What can you do with DDSP-VST?&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#synthesis&quot;&gt;Transform your voice&lt;/a&gt; or other sounds into a variety of musical instruments in effects mode&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#midi-synthesizer&quot;&gt;Play&lt;/a&gt; neural synthesizers with MIDI just like a typical virtual instrument&lt;/li&gt;
  &lt;li&gt;Explore &lt;a href=&quot;#tone-shaping&quot;&gt;wild and funky new timbres&lt;/a&gt; with intuitive tone shaping controls&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://g.co/magenta/train-ddsp-vst&quot;&gt;Train your own models&lt;/a&gt; for free with our web trainer, and share with your friends!&lt;/li&gt;
  &lt;li&gt;Contribute your own cool features to the plugin (&lt;a href=&quot;https://github.com/magenta/ddsp-vst&quot;&gt;it’s open source!&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;why&quot;&gt;Why?&lt;/h2&gt;
&lt;p&gt;Our goal with Magenta has always been to go beyond the research papers to create tools that help artists and musicians explore the future of Machine Learning and Creativity. The research into DDSP was inspired by the challenge of making neural audio synthesis more tangible and accessible for everyone.&lt;/p&gt;

&lt;p&gt;With DDSP-VST we hope to make it easy for anyone to not only use neural synthesizers in their music, but to also empower anyone to “get behind the steering wheel” and train and share their own models. Machine learning is infused with the bias of those who get to train the models, and we want to open that opportunity to more people to have their voices heard.&lt;/p&gt;

&lt;p&gt;Using our accompanying &lt;a href=&quot;http://g.co/magenta/train-ddsp-vst&quot;&gt;web trainer&lt;/a&gt;, anyone can train a model for free with only a few minutes of audio training data.&lt;/p&gt;

&lt;h2 id=&quot;how-does-it-work&quot;&gt;How does it work?&lt;/h2&gt;
&lt;p&gt;DDSP-VST uses the same algorithm and operating principles as &lt;a href=&quot;http://g.co/paintwithmusic&quot;&gt;other&lt;/a&gt; &lt;a href=&quot;http://g.co/magenta/ddsp&quot;&gt;DDSP&lt;/a&gt; &lt;a href=&quot;http://g.co/tonetransfer&quot;&gt;applications&lt;/a&gt; before it, with some slight adjustments to improve efficiency for low-latency real-time audio. There are 3 stages to the plugin, each with their own unique set of controls&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Feature Extraction&lt;/li&gt;
  &lt;li&gt;Predict DSP Controls&lt;/li&gt;
  &lt;li&gt;Synthesis&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;feature-extraction&quot;&gt;Feature Extraction&lt;/h3&gt;
&lt;p&gt;The key to the plugin is that it represents incoming audio as just two signals: Pitch and Volume. The volume is just the RMS value of the incoming sound, and the pitch is extracted using a trained neural network.&lt;/p&gt;

&lt;figure&gt;
  &lt;img src=&quot;/assets/ddsp-vst/feature_extraction.png&quot; alt=&quot;&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;The original paper used a &lt;a href=&quot;https://github.com/marl/crepe&quot;&gt;CREPE&lt;/a&gt; model for good accuracy, and our &lt;a href=&quot;https://g.co/tonetransfer&quot;&gt;web application&lt;/a&gt; used a &lt;a href=&quot;https://ai.googleblog.com/2019/11/spice-self-supervised-pitch-estimation.html&quot;&gt;SPICE&lt;/a&gt; model for more efficiency. For the plugin, we pushed the efficiency even further by using network distillation to train a new tiny CREPE model that is close to the accuracy of the original with just ~160k parameters (137x less).&lt;/p&gt;

&lt;h3 id=&quot;predict-dsp-controls&quot;&gt;Predict DSP Controls&lt;/h3&gt;
&lt;p&gt;The second neural network predicts the controls for an additive harmonic synthesizer and a subtractive noise synthesizer for every pitch and loudness it receives. For efficiency, we trained a much smaller recurrent neural network (RNN) than the original paper, and found we could increase the time between predictions from 4ms to 20ms without much change in audio quality for a further 5x boost in efficiency. We also had to pay special attention to not incorporate any non-causal convolutions like the web versions of DDSP, as that would create latency from the model trying to “see into the future”.&lt;/p&gt;

&lt;figure&gt;
  &lt;img src=&quot;/assets/ddsp-vst/predict_controls.png&quot; alt=&quot;&quot; /&gt;
&lt;/figure&gt;

&lt;h3 id=&quot;synthesis&quot;&gt;Synthesis&lt;/h3&gt;
&lt;p&gt;The outputs of these DSP synthesizers are then mixed together to produce the final audio output. In this way the RNN can take the volume and pitch from any input sound it wasn’t trained on and play the sound of the instrument it was trained on with the same volume and pitch contours.&lt;/p&gt;

&lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot; poster=&quot;/assets/ddsp-vst/instrument-transition-cover.png&quot;&gt;
  &lt;source src=&quot;/assets/ddsp-vst/multi-instrument-transitions.mp4#t=0.3&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;

&lt;h2 id=&quot;tone-shaping&quot;&gt;Tone Shaping&lt;/h2&gt;
&lt;p&gt;But, hold on… not all instruments can play all pitches. Flutes play high, basses play low–so, what happens if we feed in sounds with low pitches for a model trained on high pitches? We get some fun and wild new timbres!&lt;/p&gt;

&lt;p&gt;Enter “Tone shaping” , a control that allows us to easily explore this space of sounds (and also get realistic sounds if that’s what we’re after). We can see our current volume and pitch by the bouncing purple ball. The range of volumes and pitches the model was trained on are shown by the highlighted box. When the ball is inside the box, we’re giving inputs like the training data so we get more realistic timbres. When it’s outside the box, we hear how the RNN predictions break down in fun and creative ways for values outside of training.&lt;/p&gt;

&lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
  &lt;source src=&quot;/assets/ddsp-vst/DDSP-VST-Tone-Shape.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
By allowing the box to be movable in both pitch and volume, we can shape the tone, to get wild variations of timbre, or get realistic tones by moving it to cover the ball. For the most realistic results, use the Pitch Shift knob to shift the input pitch into the original range of the box which is the original pitch range of the instrument (e.g. high for flutes, low for bass, etc.)&lt;/p&gt;

&lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
  &lt;source src=&quot;/assets/ddsp-vst/DDSP-VST-Get-Creative.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;

&lt;h2 id=&quot;midi-synthesizer&quot;&gt;MIDI Synthesizer&lt;/h2&gt;
&lt;p&gt;We have also created a MIDI instrument version of the plugin, where pitch and volume contours are created directly from MIDI inputs. This enables using sequences, keyboards, arpeggiators, and other MIDI sources/effects to drive the plugin, and for neural synthesis to fit into existing workflows. It also avoids any pitch detection errors from the tiny CREPE model, for a more polished sound.&lt;/p&gt;

&lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
  &lt;source src=&quot;/assets/ddsp-vst/DDSP-MIDI-Demo.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;

&lt;h2 id=&quot;train-your-own&quot;&gt;Train your own&lt;/h2&gt;
&lt;p&gt;One of our guiding goals has always been to democratize machine learning for artists and musicians, empowering creatives to decide for themselves how to use this new technology in their creative process. This allows for more diversity and control from practitioners and less constraints and bias from researchers.&lt;/p&gt;

&lt;p&gt;One of the biggest barriers has always been allowing creatives to train their own models, as the training process usually requires a lot of training data and computational power. DDSP overcomes these challenges with the built-in structure of the model. This enables anyone to train their own model with as little as a few minutes of audio and a couple hours on a free Colab GPU. We’ve even observed that training can be finished in less than an hour on Colab Pro accounts.&lt;/p&gt;

&lt;p&gt;Try out the &lt;a href=&quot;http://g.co/magenta/train-ddsp-vst&quot;&gt;free web trainer&lt;/a&gt; to train your own models and &lt;a href=&quot;https://discord.gg/eyzhzMJMx5&quot;&gt;share with your friends&lt;/a&gt;.&lt;/p&gt;

&lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
  &lt;source src=&quot;/assets/ddsp-vst/train-video.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;

&lt;h2 id=&quot;contribute&quot;&gt;Contribute&lt;/h2&gt;
&lt;p&gt;We think this plugin offers new opportunities to engage with a community of creators and we’re excited to see what everyone does with it. Creating the plugin was a community effort, and we look forward to improving it together. If you’re a musician, please try it out and &lt;a href=&quot;https://discord.gg/eyzhzMJMx5&quot;&gt;share&lt;/a&gt; your models and music and feedback. The code is also &lt;a href=&quot;https://github.com/magenta/ddsp-vst&quot;&gt;open source&lt;/a&gt; for those willing and able to improve the plugin itself. We hope this project can also serve as a helpful starting point for others looking to make their own plugins with embedded ML models.&lt;/p&gt;

&lt;h2 id=&quot;acknowledgements&quot;&gt;Acknowledgements&lt;/h2&gt;

&lt;p&gt;This has truly been a “passion project” with many people contributing their free time and advice to help make it happen. We would especially like to thank Holly Herndon, Matt Dryhurst, Hannes Widmoser, Rigel Swavely, Chet Gnegy, and Georgi Marinov for all of their contributions, effort, and advice.&lt;/p&gt;

</description>
        <pubDate>Wed, 08 Jun 2022 13:00:00 -0700</pubDate>
        <link>https://magenta.tensorflow.org/ddsp-vst-blog</link>
        <guid isPermaLink="true">https://magenta.tensorflow.org/ddsp-vst-blog</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>MIDI-DDSP: Detailed Control of Musical Performance via Hierarchical Modeling</title>
        <description>&lt;style&gt;
  table tr.wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
  }
  table tr.wrap &gt; td {
    display: block;
    flex: 1;
  }
  td {text-align: center !important}
  .from {background-color: #d3d3d3;}
  img.inline {
    vertical-align: middle;
    display: inline-block;
    max-height: 16px;
    width: auto !important;
    margin-right: 6px;
  }
  img.centered {
    max-width: 90%;
    margin: auto;
  }
&lt;/style&gt;

&lt;figure style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;https://camo.githubusercontent.com/2224da0ddf9594de0d1be6064c3e83edf157fc70f40414993ee523d295b67547/68747470733a2f2f6d6964692d646473702e6769746875622e696f2f706963732f6d6964692d646473702d6c6f676f2e706e67&quot; style=&quot;max-width: 30%; margin: auto&quot; alt=&quot;MIDI-DDSP Logo&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;We are pleased to introduce MIDI-DDSP, an audio generation model that generates audio in a 3-level hierarchy (Notes, Performance, Synthesis) with detailed control at each level.&lt;/p&gt;

&lt;table align=&quot;center&quot; class=&quot;overview&quot;&gt;
  &lt;tbody&gt;&lt;tr&gt;
    &lt;td&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/ddsp/colab.jpg&quot; class=&quot;inline&quot; /&gt;&lt;a href=&quot;https://colab.research.google.com/drive/18kbkyTTgrgXYPaOh1tiICn3_yJGMsUNJ?usp=sharing&quot;&gt;Colab Demo&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;🤗&lt;a href=&quot;https://huggingface.co/spaces/akhaliq/midi-ddsp&quot;&gt;Spaces&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;🎵&lt;a href=&quot;https://midi-ddsp.github.io/&quot;&gt;Audio Examples&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;📝&lt;a href=&quot;https://openreview.net/pdf?id=UseMOjWENv&quot;&gt;ICLR Paper&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img alt=&quot;&quot; src=&quot;/assets/ddsp/github.png&quot; class=&quot;inline&quot; /&gt;&lt;a href=&quot;https://github.com/magenta/midi-ddsp&quot;&gt;GitHub Code&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;💻&lt;a href=&quot;https://github.com/magenta/midi-ddsp#command-line-midi-synthesis&quot;&gt;Shell Utility&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;a href=&quot;https://www.midi.org/&quot;&gt;MIDI&lt;/a&gt; is a widely used digital music standard for creating music in live performances or recordings. It allows us to use notes and control signals to play synthesizers and samplers, for instance sending “note-on” and “note-off” information when pressing a key of a MIDI piano keyboard. While synthesizers can produce many sounds for each note, it is difficult to find control settings to produce realistic-sounding audio. On the other hand, samplers and black-box neural audio synthesis (e.g., &lt;a href=&quot;https://magenta.tensorflow.org/maestro-wave2midi2wave&quot;&gt;WaveNet&lt;/a&gt;) can sound more realistic but offer less individual control.&lt;/p&gt;

&lt;p&gt;Recently, we proposed &lt;a href=&quot;https://magenta.tensorflow.org/ddsp&quot;&gt;DDSP&lt;/a&gt;, which combines DSP and neural networks to generate realistic audio with interpretable controls. While it’s fun to manipulate individual amplitudes and frequencies, these features are very low-level (250 times a second), so we wanted a way to also play DDSP models with more familiar note-level controls like MIDI.&lt;/p&gt;

&lt;figure style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;https://midi-ddsp.github.io/pics/hero_diagram.png&quot; style=&quot;max-width: 100%; margin: auto&quot; alt=&quot;The MIDI-DDSP architecture&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;In this blog post, we introduce MIDI-DDSP, which leverages the expressive power of DDSP to create realistic-sounding audio, but also enables editing from slower input data like MIDI.&lt;/p&gt;

&lt;p&gt;Specifically, MIDI-DDSP expands the DDSP synthesis into three levels: &lt;em&gt;Note&lt;/em&gt;, &lt;em&gt;Performance&lt;/em&gt;, and &lt;em&gt;Synthesis&lt;/em&gt;, as shown in the figure above. These levels are designed to be analogous to how humans create music. Given a note sequence, we use an expression generator to predict the note-wise expression controls of each note. Then, we use a synthesis generator to predict per-frame synthesis parameters from note sequence and note expression controls. Last, DDSP synthesizes audio waveform from synthesis parameters. Each level is interpretable and able to be exposed to the user, such that they can make edits and change the output audio at the Note level, the Performance level, and the Synthesis level. See the figure below for an example of this.&lt;/p&gt;

&lt;h2 id=&quot;fine-grained-control&quot;&gt;Fine-grained Control&lt;/h2&gt;

&lt;figure style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;https://midi-ddsp.github.io/pics/human-adjust-hero.png&quot; style=&quot;max-width: 100%; margin: auto&quot; alt=&quot;Fine-grained control at three levels&quot; /&gt;
&lt;/figure&gt;

&lt;table align=&quot;center&quot;&gt;
  &lt;tbody&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;2&quot;&gt;Automatic Generation&lt;/td&gt;
    &lt;td colspan=&quot;2&quot;&gt;Adjusted by Human Expert&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;2&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/fine_grained_control/original.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
    &lt;td colspan=&quot;2&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/fine_grained_control/changed.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;We define six &lt;a href=&quot;https://midi-ddsp.github.io/#note_expression_control&quot;&gt;note expression controls&lt;/a&gt; for each note. You can change the dynamics, pitch, and timbre of each note in a performance by adjusting those expression controls to craft your version of the musical piece.&lt;/p&gt;

&lt;h2 id=&quot;hierarchical-generation&quot;&gt;Hierarchical Generation&lt;/h2&gt;

&lt;p&gt;MIDI-DDSP can take input from different sources (human or other models) by designing explicit latent representations at each level. A full hierarchical generative model for music can be constructed by connecting MIDI-DDSP with an automatic composition model. Here, we show MIDI-DDSP taking note input from &lt;a href=&quot;https://magenta.tensorflow.org/people-first-hci-ml-collaborations&quot;&gt;CoCoCo&lt;/a&gt;, a score-level Bach composition interface (powered by &lt;a href=&quot;https://magenta.tensorflow.org/coconet&quot;&gt;Coconet&lt;/a&gt;, the ML model behind the &lt;a href=&quot;https://www.google.com/doodles/celebrating-johann-sebastian-bach&quot;&gt;Bach Doodle&lt;/a&gt;), and automatically synthesizing a Bach quartet by generating explicit latent for each level in the hierarchy.&lt;/p&gt;

&lt;figure style=&quot;text-align: center;&quot;&gt;
  &lt;img src=&quot;https://midi-ddsp.github.io/pics/auto-gen-hero.png&quot; style=&quot;max-width: 100%; margin: auto&quot; alt=&quot;Full end-to-end generation with Coconet&quot; /&gt;
&lt;/figure&gt;

&lt;table align=&quot;center&quot;&gt;
  &lt;tbody&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;2&quot;&gt;Full end-to-end generation with Coconet (Mix)&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;2&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/full_end_to_end_generation/mix.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;1&quot;&gt;Soprano: Flute&lt;/td&gt;
    &lt;td colspan=&quot;1&quot;&gt;Alto: Oboe&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr class=&quot;wrap&quot;&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/full_end_to_end_generation/Soprano.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/full_end_to_end_generation/Alto.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;1&quot;&gt;Tenor: Clarinet&lt;/td&gt;
    &lt;td colspan=&quot;1&quot;&gt;Bass: Bassoon&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr class=&quot;wrap&quot;&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/full_end_to_end_generation/Tenor.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/full_end_to_end_generation/Bass.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;more-audio-samples&quot;&gt;More Audio Samples&lt;/h2&gt;
&lt;p&gt;Here we present more audio samples that are automatically generated from MIDI-DDSP, some with human adjustments for refinement.&lt;/p&gt;

&lt;p&gt;Automatic Generation&lt;/p&gt;
&lt;table align=&quot;center&quot;&gt;
  &lt;tbody&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;1&quot;&gt;Game of Thrones - Cello&lt;/td&gt;
    &lt;td colspan=&quot;1&quot;&gt;BWV227.1 - String Quartet&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr class=&quot;wrap&quot;&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/more_audio_samples/Game_of_Thrones_Solo_Cello.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/more_audio_samples/bwv227.1_mix.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Human Adjustment - Pirates of the Caribbean&lt;/p&gt;
&lt;table align=&quot;center&quot;&gt;
  &lt;tbody&gt;
  &lt;tr class=&quot;wrap&quot;&gt;
    &lt;td colspan=&quot;1&quot;&gt;Automatic Generation&lt;/td&gt;
    &lt;td colspan=&quot;1&quot;&gt;Human Adjustment&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr class=&quot;wrap&quot;&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/more_audio_samples/pirates_of_the_caribbean_original.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;td colspan=&quot;1&quot;&gt;&lt;audio controls=&quot;&quot;&gt; &lt;source src=&quot;https://github.com/MIDI-DDSP/MIDI-DDSP.github.io/blob/master/assets/audio/more_audio_samples/pirates_of_the_caribbean_adjusted.wav?raw=true&quot; /&gt; &lt;/audio&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;You can listen to more &lt;a href=&quot;https://midi-ddsp.github.io&quot;&gt;audio examples here 🎵&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We hope you have fun with MIDI-DDSP and you can try it yourself to render MIDI, and even adjust note expressions or synthesis parameters! We have &lt;a href=&quot;https://github.com/magenta/midi-ddsp&quot;&gt;open-sourced&lt;/a&gt; the code, and we provided a &lt;a href=&quot;https://colab.research.google.com/drive/18kbkyTTgrgXYPaOh1tiICn3_yJGMsUNJ?usp=sharing&quot;&gt;Colab notebook&lt;/a&gt; for MIDI synthesis and interactive control. If you want to synthesize MIDI files in command-lines just like using tools like FluidSynth, we also provide a &lt;a href=&quot;https://github.com/magenta/midi-ddsp#command-line-midi-synthesis&quot;&gt;command-line interface&lt;/a&gt; for synthesis.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;@inproceedings{
  wu2022midi,
  title={MIDI-DDSP: Detailed Control of Musical Performance via Hierarchical Modeling},
  author={Yusong Wu and Ethan Manilow and Yi Deng and Rigel Swavely and Kyle Kastner and Tim Cooijmans and Aaron Courville and Cheng-Zhi Anna Huang and Jesse Engel},
  booktitle={International Conference on Learning Representations},
  year={2022},
  url={https://openreview.net/pdf?id=UseMOjWENv}
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Many thanks to &lt;a href=&quot;https://twitter.com/ak92501&quot;&gt;AK&lt;/a&gt; for creating a 🤗 Space for the project!&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 20 Jan 2022 08:00:00 -0800</pubDate>
        <link>https://magenta.tensorflow.org/midi-ddsp</link>
        <guid isPermaLink="true">https://magenta.tensorflow.org/midi-ddsp</guid>
        
        <category>ddsp;</category>
        
        <category>synthesis;</category>
        
        <category>midi;</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Paint With Music</title>
        <description>&lt;style&gt;
 video {
   margin-bottom: 24px;
  }
&lt;/style&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Editorial Note&lt;/strong&gt;: Here we present a blog post from our friends at Google Arts
&amp;amp; Culture, who built a fun musical experiment based on DDSP.&lt;/em&gt;&lt;/p&gt;

&lt;figure&gt;
  &lt;img src=&quot;/assets/musical-paint/header.png&quot; alt=&quot;&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;In June 2021, the Google Arts &amp;amp; Culture Lab released an online experiment called
&lt;a href=&quot;https://artsandculture.google.com/experiment/paint-with-music/YAGuJyDB-XbbWg&quot;&gt;Paint With Music&lt;/a&gt;, in which the users could create music by painting on sensorial
canvases. This experiment is the final outcome of an adventure that started months
prior, with a one-week sprint that gathered the Magenta team together with the Lab.
This article is a brief summary about the making of this experiment.&lt;/p&gt;

&lt;h2 id=&quot;music-for-everyone&quot;&gt;Music for everyone&lt;/h2&gt;

&lt;p&gt;The initial goal of Paint With Music was to make music accessible and fun for musicians and non-musicians alike. With that idea in mind, Paint With Music connects music with another major form of artistic expression: painting. Helped by Magenta’s &lt;a href=&quot;https://magenta.tensorflow.org/ddsp&quot;&gt;DDSP&lt;/a&gt; library (Differentiable Digital Signal Processing), the drawings of the user are translated into musical notes, performed by a chosen instrument. To make the experience more unique and personalized, the user can paint on sensorial canvases, such as the sky, or the ocean, amongst others.&lt;/p&gt;

&lt;figure&gt;
  &lt;img src=&quot;/assets/musical-paint/image-1.png&quot; alt=&quot;&quot; /&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;a-glitch-snippet-as-a-starting-point&quot;&gt;A glitch snippet as a starting point&lt;/h2&gt;

&lt;p&gt;The starting point of this project was an open-source prototype made by two Magenta researchers, Jesse Engel and Ian Simon. The prototype, called ddsp-drawing, allowed the user to draw a line on a canvas, and the Y position of the line would be translated into a pitch. High notes were obtained by drawing on the top of the canvas, whereas low notes were obtained by drawing towards the bottom. Paint With Music is built on top of this prototype, and it uses the same principle; except it has more whales and birds!&lt;/p&gt;

&lt;figure&gt;
  &lt;img src=&quot;/assets/musical-paint/image-2.png&quot; alt=&quot;&quot; /&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;the-models&quot;&gt;The models&lt;/h2&gt;

&lt;p&gt;The power of Magenta is that it comes with great examples, snippets, and even pre-trained models that are ready to use! With that collaboration, the Google Arts &amp;amp; Culture team could use Magenta DDSP’s pre-trained models for 4 different instruments: violin, saxophone, trumpet and flute.&lt;/p&gt;

&lt;figure&gt;
  &lt;img src=&quot;/assets/musical-paint/image-3.png&quot; alt=&quot;&quot; /&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;a-canvas-some-birds-and-voilà&quot;&gt;A canvas, some birds, and voilà!&lt;/h2&gt;

&lt;p&gt;To flesh out the experiment, some additional sounds and graphical elements were also added; elements of nature, such as whales and birds sounds. The graphics of Paint With Music are generated in canvas and are meant to replicate natural elements. The goal of these atmospheres was to render the experiment very easily understandable and intuitive for everyone. To enrich the sounds generated by DDSP, the javascript library &lt;a href=&quot;https://tonejs.github.io/&quot;&gt;tone.js&lt;/a&gt; was used.&lt;/p&gt;

&lt;h2 id=&quot;closing-thoughts&quot;&gt;Closing thoughts&lt;/h2&gt;

&lt;p&gt;Paint With Music was released in Summer 2021 and it has been very interesting to see what users did draw with it! Below are some of our favourite pieces shared by users.&lt;/p&gt;

&lt;figure&gt;
  &lt;img src=&quot;/assets/musical-paint/image-4.png&quot; alt=&quot;&quot; /&gt;
&lt;/figure&gt;

&lt;p&gt;The DDSP library holds a strong potential for experiments that tie the audio to the visual. Paint With Music is one interpretation of this principle, but it could be forever expanded and improved! For example, what if the user could draw with many strokes at once and create chords? What if they could change the strokes to create reverb or vibrato? The possibilities are endless and it is definitely a very fun and exciting field to explore!&lt;/p&gt;

&lt;h2 id=&quot;some-examples-of-creations&quot;&gt;Some examples of creations&lt;/h2&gt;

&lt;p&gt;Here is a gallery of examples made with our experiment. Enjoy!&lt;/p&gt;

&lt;figure&gt;
  &lt;div style=&quot;display:flex, flex-direction: row&quot;&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/1-1.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/1-2.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
  &lt;/div&gt;

  &lt;div style=&quot;display:flex, flex-direction: row&quot;&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/2-1.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/2-2.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/2-3.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
  &lt;/div&gt;

  &lt;div style=&quot;display:flex, flex-direction: row&quot;&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot; class=&quot;video-row&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/3-1.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/3-2.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/3-3.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
  &lt;/div&gt;

  &lt;div style=&quot;display:flex, flex-direction: row&quot;&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/4-1.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/4-2.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
    &lt;video playsinline=&quot;&quot; controls=&quot;&quot; preload=&quot;metadata&quot;&gt;
      &lt;source src=&quot;/assets/musical-paint/4-3.mp4#t=0.1&quot; type=&quot;video/mp4&quot; /&gt;
    &lt;/video&gt;
  &lt;/div&gt;

  &lt;figcaption&gt;
    Paint with music examples
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Special thanks: Paint With Music would not have been possible without Jesse Engel, Ian Simon, Ben Tan, Edwin Toh, Asheley Gao, Bastien Girshig, and Aurora Straton.&lt;/p&gt;
</description>
        <pubDate>Thu, 06 Jan 2022 20:00:00 -0800</pubDate>
        <link>https://magenta.tensorflow.org/paint-with-music</link>
        <guid isPermaLink="true">https://magenta.tensorflow.org/paint-with-music</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>HCI and ML: Putting People First</title>
        <description>&lt;p&gt;The goal of the Magenta project is not just to build powerful generative models, but to use those models to empower people to realize their creative goals. In seeking to optimize our models for human values, instead of just imitating datasets, we collaborate closely with Human-Computer Interaction (HCI) researchers (such as our great collaborators in &lt;a href=&quot;https://pair.withgoogle.com/&quot;&gt;People + AI Research (PAIR)&lt;/a&gt;) to iterate on our models, develop new interfaces for control, and find new ways to evaluate the true impact of our work.&lt;/p&gt;

&lt;figure&gt;
   &lt;img src=&quot;/assets/people-first-hci-ml-collaborations/img/pair_and_magenta_logos.png&quot; /&gt;
    &lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;!-- The fruitful collaboration between the People AI Research (PAIR) and Magenta teams at Google has enabled us to explore a combined HCI and ML approach --&gt;

&lt;p&gt;We’re excited about the potential of such tight-knit collaboration between machine learning (ML) and HCI researchers to create better models and interfaces that empower people using machine learning for creativity. This post highlights a collection of this work that investigates how to &lt;a href=&quot;#promoting-ownership-in-human-ai-co-creation&quot;&gt;promote creative ownership&lt;/a&gt; when co-creating with AI, &lt;a href=&quot;#expressing-and-communicating-emotion-in-co-created-music&quot;&gt;express and communicate emotion&lt;/a&gt; through AI generated music, and use AI to &lt;a href=&quot;#mediating-human-human-collaboration-with-ai&quot;&gt;mediate human-to-human collaboration&lt;/a&gt;.&lt;/p&gt;

&lt;table align=&quot;center&quot; class=&quot;overview&quot;&gt;
  &lt;tbody&gt;&lt;tr&gt;
    &lt;td&gt;🎵&lt;a href=&quot;https://pair-code.github.io/cococo/&quot;&gt;Create Music with COCOCO&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;📝&lt;a href=&quot;https://dl.acm.org/doi/10.1145/3313831.3376739&quot;&gt;COCOCO Paper&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;📝&lt;a href=&quot;https://arxiv.org/abs/2111.14951&quot;&gt;Expressive Communication Paper&lt;/a&gt;&lt;/td&gt;
    &lt;td&gt;📝&lt;a href=&quot;https://dl.acm.org/doi/10.1145/3411764.3445219&quot;&gt;Human-Human Collaboration Paper&lt;/a&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;h2 id=&quot;promoting-ownership-in-human-ai-co-creation&quot;&gt;Promoting Ownership in Human-AI Co-Creation&lt;/h2&gt;

&lt;p&gt;Recent generative music models have made it possible for anyone, regardless of their musical experience, to compose a song in partnership with AI. For example, the &lt;a href=&quot;https://www.google.com/doodles/celebrating-johann-sebastian-bach&quot;&gt;“Bach Doodle”&lt;/a&gt; was Google’s first-ever ML powered Doodle. By providing only a few notes, users could co-create a four-part composition with the AI in the style of J.S. Bach. This enabled anyone on the web to make new music in their browser.
After the release of the Bach Doodle, we became curious how novice composers engage in co-creation activities like these, and how the design of the interactive tools could impact whether they feel personally-empowered when making music with generative models. In a user study with novice composers, we found that users can struggle to evaluate or edit the music when ML models generate too much content at once. Others wanted to go beyond randomly “rolling dice” to generate a desired sound, and sought ways to control the generation based on relevant musical objectives.&lt;/p&gt;

&lt;p&gt;To improve the co-creation partnership, we developed COCOCO, a music editor web-interface that includes a set of AI Steering Tools that allowed users to restrict generated notes to particular voices and “nudge” outputs in semantically-meaningful directions.  For example, a user could choose to generate a single accompaniment in the bass voice, and steer the generation to sound more sad.&lt;/p&gt;

&lt;figure&gt;
  &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/Y_uNAgGvnng&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; encrypted-media&quot; style=&quot;max-width:100%&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;
  &lt;figcaption&gt;Watch how a user might use COCOCO&apos;s interface for steering the generated music.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;In a comparison study, we found that these new tools helped users increase their control, creative ownership, and sense of collaboration with the generative ML model.  By observing and asking questions about novices’ strategies when composing, we found that the tools allowed people to compose the song bit-by-bit, and promoted controlling and understanding each part of the piece more than if the AI generated it all at once. This study showed that providing interfaces to partition and constrain the generation of an existing ML model can make a significant difference in composers’ creative experience and their partnership with the AI.&lt;/p&gt;

&lt;p&gt;We invite you to make music using &lt;a href=&quot;https://pair-code.github.io/cococo/&quot;&gt;COCOCO&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;If you’d like to use or extend this work, please cite our full &lt;a href=&quot;https://dl.acm.org/doi/10.1145/3313831.3376739&quot;&gt;paper published at CHI’20&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;@inproceedings{louie2020novice,
  title={Novice-AI music co-creation via AI-steering tools for deep generative models},
  author={Louie, Ryan and Coenen, Andy and Huang, Cheng Zhi and Terry, Michael and Cai, Carrie J},
  booktitle={Proceedings of the 2020 CHI Conference on Human Factors in Computing Systems},
  year={2020},
  url = {https://doi.org/10.1145/3313831.3376739}
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;expressing-and-communicating-emotion-in-co-created-music&quot;&gt;Expressing and Communicating Emotion in Co-created Music&lt;/h2&gt;

&lt;p&gt;ML models are becoming more expressive and capable of generating music with long-range coherence. At the same time, better HCI interfaces for controlling them can promote feelings of ownership, as we saw with our previous project on COCOCO.  While these parallel efforts are aimed at empowering the end-user, less is known about how ML models and HCI interfaces can impact a creator’s subjective experience, and how people objectively perform on a creative task, such as composing music to express an emotion.&lt;/p&gt;

&lt;figure&gt;
   &lt;img src=&quot;/assets/people-first-hci-ml-collaborations/img/expressive_communication_framework.png&quot; /&gt;
    &lt;figcaption&gt;The Expressive Communication framework brings together composers and listeners in comparing how well emotion is communicated through music made with different generative tools.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;We created a unified framework called Expressive Communication to jointly evaluate the impact of ML and HCI advances in empowering expression. For the creative task, composers use different versions of a generative AI tool to create music with the goal of communicating a particular image and human emotion. This was inspired by real-world music creation tasks, such as making background music for a video, or creating music to set the mood for a scene in a film or video game. Additionally, the framework provides an objective measurement by using an outside listener to judge how the created music better evokes the intended imagery and emotions. We used this framework to compare two generative models capable of different degrees of long-range structure and musical coherence, and two different interfaces capable of different degrees of steering and iterative composition.&lt;/p&gt;

&lt;p&gt;Our results show that both the ML and HCI approaches (developing better pretrained models and better steering interfaces, respectively) are important and complementary ways to support composers in both communicating through music and feeling empowered in the process of co-creating with generative models. Our results also shed light on how objectives of a pretrained model, such as stronger coherence, can make certain emotions such as “fear” more difficult to express with curation of random samples alone, and how the addition of steering interfaces can help to mitigate model biases by creating samples that are less likely from the model, but more aligned with the user’s expression and musical goals.&lt;/p&gt;

&lt;p&gt;If you’d like to use or extend this work, please cite our &lt;a href=&quot;https://arxiv.org/abs/2111.14951&quot;&gt;recent paper&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;@misc{louie2021expressive,
  title={Expressive Communication: A Common Framework for Evaluating Developments in Generative Models and Steering Interfaces},
  author={Louie, Ryan and Engel, Jesse and Huang, Anna},
  year={2021},
  eprint={2111.14951},
  archivePrefix={arXiv},
  primaryClass={cs.HC}
  url={https://arxiv.org/abs/2111.14951}
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;listen-to-the-music-and-guess-which-generative-tool-was-used&quot;&gt;Listen to the music and guess which generative tool was used&lt;/h3&gt;
&lt;p&gt;We created an interactive game for you to engage more as a reader and listener! We ask you to listen to two pieces of music created for the same emotion, and then guess which generative tool was used to make the compositions below.&lt;/p&gt;

&lt;p&gt;Remember that more expressive models and more steerable interfaces led to more emotionally evocative and musically coherent pieces. Use this insight when guessing!&lt;/p&gt;

&lt;h4 id=&quot;which-music-was-made-with-the-more-vs-less-expressive-model&quot;&gt;Which music was made with the more vs. less expressive model?&lt;/h4&gt;
&lt;script&gt;

  function revealModelAnswer() {
     document.getElementById(&quot;model_sample1answer&quot;).style.display = &quot;inline&quot;;
     document.getElementById(&quot;model_sample2answer&quot;).style.display = &quot;inline&quot;;
  }

&lt;/script&gt;

&lt;div&gt;
  &lt;figure&gt;
    &lt;img src=&quot;/assets/people-first-hci-ml-collaborations/cards/card_2.png&quot; style=&quot;object-fit: contain; height: 300px&quot; /&gt;
    &lt;figcaption&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;

  &lt;table class=&quot;no-borders responsive&quot; align=&quot;center&quot; style=&quot;text-align: center&quot;&gt;
    &lt;thead&gt;
      &lt;tr&gt;
        &lt;th&gt;Music 1&lt;/th&gt;
        &lt;th&gt;Music 2&lt;/th&gt;
      &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td data-label=&quot;Music 1&quot;&gt;
          &lt;audio controls=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/people-first-hci-ml-collaborations/samples/P18_ModelBattle_ModelARadio.wav&quot; /&gt;
          &lt;/audio&gt;
        &lt;/td&gt;
        &lt;td data-label=&quot;Music 2&quot;&gt;
          &lt;audio controls=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/people-first-hci-ml-collaborations/samples/P18_ModelBattle_ModelBRadio.wav&quot; /&gt;
          &lt;/audio&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td data-label=&quot;Music 1&quot;&gt;
          &lt;span id=&quot;model_sample1answer&quot; style=&quot;display: none&quot;&gt;MusicTransformer (More Expressive)&lt;/span&gt;
        &lt;/td&gt;
        &lt;td data-label=&quot;Music 2&quot;&gt;
          &lt;span id=&quot;model_sample2answer&quot; style=&quot;display: none&quot;&gt;PerformanceRNN (Less Expressive)&lt;/span&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;

  &lt;div class=&quot;action-container&quot; align=&quot;center&quot;&gt;
    &lt;a class=&quot;action grey&quot; onclick=&quot;revealModelAnswer()&quot;&gt;Reveal the answer&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;which-music-was-made-with-the-more-vs-less-steerable-interface&quot;&gt;Which music was made with the more vs. less steerable interface?&lt;/h4&gt;
&lt;script&gt;

  function revealInterfaceAnswer() {
     document.getElementById(&quot;interface_sample1answer&quot;).style.display = &quot;inline&quot;;
     document.getElementById(&quot;interface_sample2answer&quot;).style.display = &quot;inline&quot;;
  }

&lt;/script&gt;

&lt;div&gt;
  &lt;figure&gt;
    &lt;img src=&quot;/assets/people-first-hci-ml-collaborations/cards/card_5.png&quot; style=&quot;object-fit: contain; height: 300px&quot; /&gt;
    &lt;figcaption&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;

  &lt;table class=&quot;no-borders responsive&quot; align=&quot;center&quot; style=&quot;text-align: center&quot;&gt;
    &lt;thead&gt;
      &lt;tr&gt;
        &lt;th&gt;Music 1&lt;/th&gt;
        &lt;th&gt;Music 2&lt;/th&gt;
      &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td data-label=&quot;Music 1&quot;&gt;
          &lt;audio controls=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/people-first-hci-ml-collaborations/samples/P9_InterfaceBattle_ModelARadio.wav&quot; /&gt;
          &lt;/audio&gt;
        &lt;/td&gt;
        &lt;td data-label=&quot;Music 2&quot;&gt;
          &lt;audio controls=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/people-first-hci-ml-collaborations/samples/P9_InterfaceBattle_ModelAChunks.wav&quot; /&gt;
          &lt;/audio&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td data-label=&quot;Music 1&quot;&gt;
          &lt;span id=&quot;interface_sample1answer&quot; style=&quot;display: none&quot;&gt;Radio Interface (Less Steerable)&lt;/span&gt;
        &lt;/td&gt;
        &lt;td data-label=&quot;Music 2&quot;&gt;
          &lt;span id=&quot;interface_sample2answer&quot; style=&quot;display: none&quot;&gt;Chunks Interface (More Steerable)&lt;/span&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;

  &lt;div class=&quot;action-container&quot; align=&quot;center&quot;&gt;
    &lt;a class=&quot;action grey&quot; onclick=&quot;revealInterfaceAnswer()&quot;&gt;Reveal the answer&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id=&quot;mediating-human-human-collaboration-with-ai&quot;&gt;Mediating Human-Human Collaboration with AI&lt;/h2&gt;

&lt;p&gt;Although there’s been a lot of recent research on human-AI collaboration, less is known about how generative ML tools, like the ones we are developing at Magenta, could affect human-human collaboration. Our HCI collaborators at Google studied the social dynamics of pairs of people composing music together, with and without the help of a generative music model.&lt;/p&gt;

&lt;figure&gt;
   &lt;img src=&quot;/assets/people-first-hci-ml-collaborations/img/human-human-ai-collaboration.png&quot; /&gt;
    &lt;figcaption&gt;Generative AI tools can help to provide a psychological safety net and mitigate interpersonal friction amongst human teams of composers, but can also reduce the depth of human collaboration.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;We found that generative AI models can act as a “social glue” in co-creative activities — for example, generative AI helped human collaborators maintain forward momentum and cordiality in moments when there were creative tensions or disagreements. It also helped initially establish common ground between strangers, and served as a psychological safety net. Despite increasing the ease of collaboration, however, AI assistance may reduce the depth of human-human collaboration. Rather than grappling with each other’s ideas, users often offloaded that creative work to the generative AI. Users sometimes indicated that they felt more like joint “curators” or “producers” of art, rather than as the “composers” themselves. Researchers, designers, and practitioners should carefully consider these tradeoffs between ease of collaboration and depth of collaboration when building AI-powered systems.&lt;/p&gt;

&lt;p&gt;If you’d like to use or reference this work, please cite our &lt;a href=&quot;https://dl.acm.org/doi/10.1145/3411764.3445219&quot;&gt;paper published at CHI’21&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;@inproceedings{suh2021ai,
  title={AI as Social Glue: Uncovering the Roles of Deep Generative AI during Social Music Composition},
  author={Suh, Minhyang and Youngblom, Emily and Terry, Michael and Cai, Carrie J},
  booktitle={Proceedings of the 2021 CHI Conference on Human Factors in Computing Systems},
  year={2021},
  url = {https://doi.org/10.1145/3411764.3445219}
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;These projects on promoting ownership, supporting emotional communication, and exploring human-human music creation are just a taste of what is possible when people are put first during the entire lifecycle of developing and studying generative models. This is the reason to engage in these types of collaborations now, because the human needs and understanding of the impact on people-centered outcomes are equally important for the development of generative models.&lt;/p&gt;

&lt;p&gt;We look forward to working in tandem with researchers to use cutting-edge HCI and ML research to create amazing experiences to delight and empower users. The initial interactive tools and experiences have been developed towards overcoming general challenges that any class of user, like a novice composer, could face. In the future, we hope that HCI + ML collaboration can lead to adaptive interfaces and models which best learn-from and support the personalized behaviors and needs of specific users.&lt;/p&gt;

&lt;h2 id=&quot;acknowledgements&quot;&gt;Acknowledgements&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Thank you to our paper co-authors for their significant contributions to the works we’ve covered here, including Andy Coenen, Minhyang Suh, and Emily Youngblom. A warm shout out to all the Googlers we have met during user studies: your curiosity and enthusiasm for music and using generative AI tools was energizing and much appreciated, and your thoughts and feedback has greatly impacted this work. Many thanks to the people across Google Research who have offered their help and guidance! Larger Magenta collaborators: Halley Young, Ethan Manilow, Josh Gardner, Sehmon Burnham, Ian Simon, Fjord Hawthorne, Pablo Samuel Castro, Riley Wong. PAIR Collaborators: Martin Wattenberg, Fernanda Viégas, Qian Yang, Sherry Yang, Emily Reif, Ellen Jiang, Alex Bäuerle; Fellow Research Interns: Sherry Tongshuang Wu, Katy Gero, Jialin Song, Guangzhi Sun. And many more!&lt;/em&gt;&lt;/p&gt;

&lt;!-- links --&gt;
</description>
        <pubDate>Wed, 15 Dec 2021 08:00:00 -0800</pubDate>
        <link>https://magenta.tensorflow.org/people-first-hci-ml-collaborations</link>
        <guid isPermaLink="true">https://magenta.tensorflow.org/people-first-hci-ml-collaborations</guid>
        
        <category>hci;</category>
        
        <category>co-creation;</category>
        
        <category>interaction;</category>
        
        <category>ownership;</category>
        
        <category>collaboration;</category>
        
        <category>communication;</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Modern Evolution Strategies for Creativity</title>
        <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Editorial Note&lt;/strong&gt;: We’re happy to have a featured post from our
collaborator Yingtao Tian, a member of the Google Brain Tokyo team. Here he’ll
discuss his most recent work on the intersection of non-differentiable programs
and visual creativity. You can learn more about the project in the original
&lt;a href=&quot;https://arxiv.org/abs/2109.08857&quot;&gt;paper&lt;/a&gt; and its online
&lt;a href=&quot;https://es-clip.github.io/&quot;&gt;animated version&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;inspiration&quot;&gt;Inspiration&lt;/h2&gt;

&lt;p&gt;Inspired by much of Magenta’s work that has primarily focused on the role of
machine learning for music music, we recently began to wonder how similar
approaches could inform froms of modern
visual art, such as abstract painting. To provide better context to our
approach, it’s helpful to have a brief review of the area.&lt;/p&gt;

&lt;p&gt;Looking at painting art, starting from the early 20th-century in the wider
context of &lt;a href=&quot;https://www.britannica.com/art/Modernism-art&quot;&gt;Modernism&lt;/a&gt;, a series
of avant-garde art has been advocating revolutionary, abstract point of views
instead of traditional rules of perspective. These art movements, including
&lt;a href=&quot;https://www.metmuseum.org/toah/hd/cube/hd_cube.htm&quot;&gt;Cubism&lt;/a&gt;,
&lt;a href=&quot;https://www.metmuseum.org/toah/hd/geab/hd_geab.htm&quot;&gt;Geometric Abstraction&lt;/a&gt;, and
&lt;a href=&quot;https://www.metmuseum.org/toah/hd/abex/hd_abex.htm&quot;&gt;Abstract Expressionism&lt;/a&gt;,
have far-reaching impacts to
&lt;a href=&quot;https://www.tate.org.uk/art/art-terms/m/minimalism&quot;&gt;Minimalist Art&lt;/a&gt; and
&lt;a href=&quot;https://www.artnews.com/art-in-america/features/abc-art-barbara-rose-1234580665/&quot;&gt;Minimalist Architecture&lt;/a&gt;.
Interestingly, such art forms have also been explored in computer arts, like
&lt;a href=&quot;https://www.idsia.ch/~juergen/locoart/locoart.html&quot;&gt;Low-complexity Art&lt;/a&gt;, and
&lt;a href=&quot;http://www.verostko.com/algorithm.html&quot;&gt;Algorithmic Art&lt;/a&gt;, which, in a broader
sense, also includes
&lt;a href=&quot;https://rogerjohansson.blog/2008/12/07/genetic-programming-evolution-of-mona-lisa/&quot;&gt;Genetic Algorithm&lt;/a&gt;
where the artist determines the rules governing art generation. Such an approach
has gained popularity over the years with the creative coding community,
resulting in &lt;a href=&quot;https://github.com/fogleman/primitive&quot;&gt;a&lt;/a&gt;
&lt;a href=&quot;https://github.com/kennycason/genetic_draw&quot;&gt;number&lt;/a&gt;
&lt;a href=&quot;https://arxiv.org/abs/1904.06110&quot;&gt;of&lt;/a&gt;
&lt;a href=&quot;https://link.springer.com/chapter/10.1007/978-3-030-16667-0_6&quot;&gt;sophisticated&lt;/a&gt;
&lt;a href=&quot;https://github.com/IRCSS/Procedural-painting&quot;&gt;extensions&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With the Genetic Algorithm that helps artists in various forms as an
inspiration, and especially the recent resurgence of interest in one of its
branches,
&lt;a href=&quot;https://lilianweng.github.io/lil-log/2019/09/05/evolution-strategies.html&quot;&gt;Evolution Strategies&lt;/a&gt;
(ES), in the machine learning community, we choose to explore its usage for
painting creativity applications.&lt;/p&gt;

&lt;h2 id=&quot;goals&quot;&gt;Goals&lt;/h2&gt;

&lt;p&gt;We propose to synthesize painting by placing transparent triangles using
Evolution Strategy (ES) to fit a concrete image or an abstract concept. The
fitting process can be in some way controlled by the artists and multiple
results can be presented for the artists to pick from.&lt;/p&gt;

&lt;p&gt;For fitting the image with triangles, we explore modern ES algorithms. As shown
in the figure below, we find it provides good quality and efficiency.&lt;/p&gt;

&lt;figure&gt;
  &lt;table class=&quot;no-borders responsive&quot;&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;img src=&quot;/assets/es-for-creativity/es-bitmap-target-monalisa.png&quot; alt=&quot;&quot; /&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-monalisa-50-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;figcaption&gt;
    Figure: Our method fits the painting &quot;Mona Lisa&quot;.  &lt;br /&gt;
    The target image (left) is followed by the evolution process that fits it (right)
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;We go one step further and explore fitting an abstract concept that is
represented as a natural language sentence. Like what is shown in the following
figure, we find it can produce diverse, distinct geometric abstractions that
make sense when we consider how humans may interpret the language.&lt;/p&gt;

&lt;figure&gt;
  &lt;table class=&quot;no-borders responsive&quot;&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Self-50-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-World-50-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Go-50-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;Self&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;Walt Disney World&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;Google located at 1600 Amphitheatre Parkway in Mountain View, California.&quot;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;figcaption&gt;
    Figure: Our method fits the concept represented as text.
    The concept is below the evolution process.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Finally and interestingly, the results produced by our method (to some degree)
resemble
&lt;a href=&quot;https://www.metmuseum.org/toah/hd/abex/hd_abex.htm&quot;&gt;Abstract Expressionism&lt;/a&gt; and
&lt;a href=&quot;https://www.tate.org.uk/art/art-terms/m/minimalism&quot;&gt;Minimalist Art&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;about-the-es-based-creativity&quot;&gt;About the ES-based Creativity&lt;/h2&gt;

&lt;p&gt;One benefit we find with ES-based creativity is that our proposed method can fit
any target image / concept and can handle a wide range of triangles due to the
efficiency of the ES algorithm. We show that in two figures below. Also, the ES
algorithm is capable of using the number of triangles as a “computational
budget” where extra triangles could always be utilized for gaining fitness. This
allows a human artist to use the number of triangles in order to find the right
balance between abstractness and details in the produced art.&lt;/p&gt;

&lt;figure&gt;
  &lt;table class=&quot;no-borders responsive&quot;&gt;
    &lt;thead&gt;
      &lt;tr&gt;
        &lt;th scope=&quot;col&quot;&gt;Target Image&lt;/th&gt;
        &lt;th scope=&quot;col&quot;&gt;10 Triangles&lt;/th&gt;
        &lt;th scope=&quot;col&quot;&gt;25 Triangles&lt;/th&gt;
        &lt;th scope=&quot;col&quot;&gt;50 Triangles&lt;/th&gt;
        &lt;th scope=&quot;col&quot;&gt;200 Triangles&lt;/th&gt;
      &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;img src=&quot;/assets/es-for-creativity/es-bitmap-target-darwin.png&quot; alt=&quot;&quot; /&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-darwin-10-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-darwin-25-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-darwin-50-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-darwin-200-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;img src=&quot;/assets/es-for-creativity/es-bitmap-target-monalisa.png&quot; alt=&quot;&quot; /&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-monalisa-10-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-monalisa-25-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-monalisa-50-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-monalisa-200-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;img src=&quot;/assets/es-for-creativity/es-bitmap-target-anime.png&quot; alt=&quot;&quot; /&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-anime-10-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-anime-25-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-anime-50-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-anime-200-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;img src=&quot;/assets/es-for-creativity/es-bitmap-target-landscape.png&quot; alt=&quot;&quot; /&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-landscape-10-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-landscape-25-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-landscape-50-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-landscape-200-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;img src=&quot;/assets/es-for-creativity/es-bitmap-target-impressionism.png&quot; alt=&quot;&quot; /&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-impressionism-10-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-impressionism-25-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-impressionism-50-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-bitmap-fit-impressionism-200-run-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;figcaption&gt;
    Figure: Fitting several target images with different numbers of triangles.
    Images are &quot;Darwin&quot;,  &quot;Mona Lisa&quot; (both from &lt;a href=&quot;https://alteredqualia.com/visualization/evolve/&quot;&gt;Here&lt;/a&gt;),
    &quot;Anime Face&quot; (generated by &lt;a href=&quot;https://waifulabs.com/&quot;&gt;Waifu Labs&lt;/a&gt;),
    &quot;Landscape&quot; (from &lt;a href=&quot;https://commons.wikimedia.org/w/index.php?title=File:040_Okertalsperre.jpg&amp;amp;oldid=496749636&quot;&gt;Wikipedia&lt;/a&gt;),
    &quot;Impressionism&quot; (&lt;em&gt;A May Morning in Moret&lt;/em&gt; by &lt;em&gt;Alfred Sisley&lt;/em&gt;, compiled &lt;a href=&quot;https://towardsdatascience.com/ganscapes-using-ai-to-create-new-impressionist-paintings-d6af1cf94c56&quot;&gt;here&lt;/a&gt;).
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure&gt;
  &lt;table class=&quot;no-borders responsive&quot;&gt;
    &lt;thead&gt;
      &lt;tr&gt;
        &lt;th scope=&quot;col&quot;&gt;&lt;/th&gt;
        &lt;th scope=&quot;col&quot;&gt;10 Triangles&lt;/th&gt;
        &lt;th scope=&quot;col&quot;&gt;25 Triangles&lt;/th&gt;
        &lt;th scope=&quot;col&quot;&gt;50 Triangles&lt;/th&gt;
        &lt;th scope=&quot;col&quot;&gt;200 Triangles&lt;/th&gt;
      &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;Self&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Self-10-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Self-25-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Self-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Self-200-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;Human&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Human-10-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Human-25-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Human-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Human-200-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;Walt Disney World&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-World-10-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-World-25-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-World-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-World-200-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;A picture of Tokyo&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Tokyo-10-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Tokyo-25-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Tokyo-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Tokyo-200-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center; font-size:80%&quot;&gt;
          &quot;Google located at 1600 Amphitheatre Parkway in Mountain View, California.&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Go-10-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Go-25-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Go-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Go-200-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center; font-size:80%&quot;&gt;
          &quot;The United States of America commonly known as the United States or America is a country primarily located in North America.&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-kn-10-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-kn-25-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-kn-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-kn-200-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;figcaption&gt;
    Figure: Fitting several abstract concepts with different numbers of triangles. The concept can be a single word (&quot;Self&quot; and &quot;Human&quot;), a phrase (&quot;Walt Disney Land&quot; and &quot;A picture of Tokyo&quot;), and a long sentence (last two examples).
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Another benefit specific to abstract concept fitting is that our method is given
much more freedom in arranging the configuration of triangles and can produce
different solutions, as shown below. It is desired for computer-assisted art
creation, since human creators can be put “in the loop”, not only poking around
the text prompt but also picking from multiple candidates produced by our
method.&lt;/p&gt;

&lt;figure&gt;  &lt;table class=&quot;no-borders responsive&quot;&gt;
    &lt;thead&gt;
      &lt;tr&gt;
        &lt;th scope=&quot;col&quot;&gt;&lt;/th&gt;
        &lt;th scope=&quot;col&quot; colspan=&quot;4&quot;&gt;4 Individual Runs&lt;/th&gt;
      &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;Self&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Self-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Self-50-run-2-2.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Self-50-run-2-3.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Self-50-run-2-4.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;Human&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Human-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Human-50-run-2-2.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Human-50-run-2-3.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Human-50-run-2-4.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;Walt Disney World&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-World-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-World-50-run-2-2.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-World-50-run-2-3.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-World-50-run-2-4.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &quot;A picture of Tokyo&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Tokyo-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Tokyo-50-run-2-2.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Tokyo-50-run-2-3.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Tokyo-50-run-2-4.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center; font-size:80%&quot;&gt;
          &quot;The corporate headquarters complex of Google located at 1600 Amphitheatre Parkway in Mountain View, California.&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Go-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Go-50-run-2-2.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Go-50-run-2-3.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-Go-50-run-2-4.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style=&quot;text-align:center; font-size:80%&quot;&gt;
          &quot;The United States of America commonly known as the United States or America is a country primarily located in North America.&quot;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-kn-50-run-2-1.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-kn-50-run-2-2.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-kn-50-run-2-3.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
        &lt;td style=&quot;text-align:center&quot;&gt;
          &lt;video autoplay=&quot;&quot; loop=&quot;&quot; muted=&quot;&quot; playsinline=&quot;&quot;&gt;
            &lt;source src=&quot;/assets/es-for-creativity/es-clip-kn-50-run-2-4.video.mp4&quot; type=&quot;video/mp4&quot; /&gt;
          &lt;/video&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;figcaption&gt;
    Figure: Fitting several abstract concepts with multiple runs with the same numbers of triangles.
  &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;technical-details&quot;&gt;Technical Details&lt;/h2&gt;

&lt;p&gt;The architecture of our proposed method is shown below. Basically, we represent
a configuration of triangles in a parameter space which consists of positions
and colors of triangles, render such configuration onto a canvas, and calculate
its fitness based on how well the rendered canvas fits a target image or a
concept in the form of a text prompt. The ES algorithm (we use
&lt;a href=&quot;https://people.idsia.ch//~juergen/nn2010.pdf&quot;&gt;PGPE&lt;/a&gt; with
&lt;a href=&quot;https://arxiv.org/abs/2008.02387&quot;&gt;ClipUp&lt;/a&gt; optimizer) keeps a pool of candidate
configurations and uses mutations to evolve better ones measured by the said
fitness. When fitting a concrete image, we use the pixel-wise L2 loss between
the canvas and the target image as the fitness; while for Fitting a concept, we
first represent the concept as a text and embed the text prompt using the text
encoder in &lt;a href=&quot;https://arxiv.org/abs/2103.00020&quot;&gt;CLIP&lt;/a&gt;, embed the rendered canvas
using the image encoder also available in CLIP, and use the Cosine distance for
for fitness.&lt;/p&gt;

&lt;figure&gt;
   &lt;img src=&quot;/assets/es-for-creativity/arch.jpg&quot; alt=&quot;&quot; /&gt;
   &lt;figcaption&gt;Figure: The architecture of our method.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id=&quot;closing-words&quot;&gt;Closing words&lt;/h2&gt;

&lt;p&gt;It’s interesting to see that we can leverage ES to produce results with high
quality, and produce geometric abstractions aligned with how humans perceive
language and images. It also produces a distinct art style.&lt;/p&gt;

&lt;p&gt;But this work in our opinion opens more questions than it answers — for
example, maybe in the future, further investigation into the broader spectrum of
art forms beyond the minimalism explored here should be conducted. Also, since
ES is agnostic to the domain, i.e., how the renderer works, maybe in the future
we will see ES-inspired approaches could potentially unify various domains with
significantly less effort for adoption in the future.&lt;/p&gt;

&lt;h1 id=&quot;how-to-cite--use-this-work&quot;&gt;How to Cite / Use this Work&lt;/h1&gt;

&lt;p&gt;The code for this work is
&lt;a href=&quot;https://github.com/google/brain-tokyo-workshop/tree/master/es-clip&quot;&gt;open sourced&lt;/a&gt;
and please &lt;a href=&quot;https://github.com/es-clip/es-clip.github.io/issues&quot;&gt;let us know&lt;/a&gt; if
you find it useful and/or build your work on top of it — we will be very happy
to hear that!&lt;/p&gt;

&lt;p&gt;If you use the proposed technique, please consider citing the
&lt;a href=&quot;https://arxiv.org/abs/2109.08857&quot;&gt;paper&lt;/a&gt; where it was introduced:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Yingtao Tian and David Ha. &quot;Modern Evolution Strategies for Creativity: Fitting Concrete Images and Abstract Conceptst.&quot; 2021. arXiv:2109.08857.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You can also use the following BibTeX entry:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;@misc{tian2021modern,
    title={Modern Evolution Strategies for Creativity: Fitting Concrete Images and Abstract Conceptst},
    author={Yingtao Tian and David Ha},
    year={2021},
    eprint={2109.08857},
    archivePrefix={arXiv},
    primaryClass={cs.NE}
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Thu, 18 Nov 2021 20:00:00 -0800</pubDate>
        <link>https://magenta.tensorflow.org/es-for-creativity</link>
        <guid isPermaLink="true">https://magenta.tensorflow.org/es-for-creativity</guid>
        
        
        <category>blog</category>
        
      </item>
    
  </channel>
</rss>
