CINXE.COM
Magenta Studio - Ableton Live Plugin
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Magenta Studio - Ableton Live Plugin</title> <meta name="description" content="Magenta Studio is a collection of music plugins built on Magenta's open source tools and models."> <!-- OpenGraph data --> <meta property="og:image" content="https://magenta.tensorflow.org/assets/studio/square.png"> <meta property="og:title" content="Magenta Studio - Ableton Live Plugin"> <meta property="og:description" content="Magenta Studio is a collection of music plugins built on Magenta's open source tools and models."> <meta property="og:url" content="https://magenta.tensorflow.org/studio/"> <meta property="og:site_name" content="Magenta"> <!-- Twitter Card data --> <meta name="twitter:card" content="summary"> <meta name="twitter:title" content="Magenta Studio - Ableton Live Plugin"> <meta name="twitter:description" content="Magenta Studio is a collection of music plugins built on Magenta's open source tools and models."> <meta name="twitter:image" content="https://magenta.tensorflow.org/assets/studio/square.png"> <link rel="stylesheet" href="/css/main.css"> <link rel="canonical" href="https://magenta.tensorflow.org/studio/"> <link rel="alternate" type="application/rss+xml" title="Magenta" href="https://magenta.tensorflow.org/feed.xml"> <link href="https://fonts.googleapis.com/css?family=Google+Sans:+400,500,700" media="all" rel="stylesheet"> <script src="//www.google.com/js/gweb/analytics/autotrack.js"></script> <script> new gweb.analytics.AutoTrack({ profile: 'UA-80107903-1' }); </script> </head> <body> <div class="scrim" onclick="document.body.classList.toggle('drawer-opened', false)"></div> <header> <div class="top-bar background"> <div class="top-bar-content"> <div class="logo"> <a href="/"><img src="/assets/magenta-logo.png" height="70" alt="magenta logo"></a> </div> <nav> <button class="menu-button" onclick="document.body.classList.toggle('drawer-opened', true)" aria-label="open nav menu"> <svg viewBox="0 0 18 15"> <path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/> <path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/> <path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/> </svg> </button> <div class="links"> <a href="/get-started">Get Started</a> <a href="/studio">Studio</a> <a href="/ddsp-vst">DDSP-VST</a> <a href="/demos">Demos</a> <a href="/blog">Blog</a> <a href="/research">Research</a> <a href="/talks">Talks</a> <a href="/community">Community</a> </div> </nav> </div> </div> </header> <div class="drawer"> <div class="drawer-content"> <a href="/get-started">Get Started</a> <a href="/studio">Studio</a> <a href="/ddsp-vst">DDSP-VST</a> <a href="/demos">Demos</a> <a href="/blog">Blog</a> <a href="/research">Research</a> <a href="/talks">Talks</a> <a href="/community">Community</a> </div> </div> <div class="main"> <section class="alternate"> <div class="content single"> <h1>Magenta Studio <small>(Ableton Live Plugin)</small> <small>(v2.0)</small></h1> <div class="action-container"> <!-- https://storage.googleapis.com/magenta-studio/releases/magenta_studio-1.0.0-macos.amxd --> <a class="action grey" href="https://storage.googleapis.com/magenta-studio/releases/magenta_studio-2.0.0.amxd"> <span class="studio-icon"><?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" version="1.1"><g id="surface1" fill="#37474F"><path d="M25 30h18v3H25z"/><path d="M25 15h18v3H25z"/><path d="M25 20h18v3H25z"/><path d="M25 25h18v3H25z"/><path d="M5 15h3v18H5z"/><path d="M20 15h3v18h-3z"/><path d="M15 15h3v18h-3z"/><path d="M10 15h3v18h-3z"/></g><metadata><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dc="http://purl.org/dc/elements/1.1/"><rdf:Description about="https://iconscout.com/legal#licenses" dc:title="ableton" dc:description="ableton" dc:publisher="Iconscout" dc:date="2017-12-15" dc:format="image/svg+xml" dc:language="en"><dc:creator><rdf:Bag><rdf:li>Icons8</rdf:li></rdf:Bag></dc:creator></rdf:Description></rdf:RDF></metadata></svg> </span> Download Ableton Live Plugin</a> <a class="action grey" href="https://github.com/tensorflow/magenta-studio"> <span class="studio-icon"><svg viewBox="0 0 16 16"><path d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg> </span> View on GitHub</a> </div> <br> <p>Magenta Studio is an <a href="https://www.ableton.com/en/live/">Ableton Live</a> plugin built on Magenta’s open source tools and models. They use cutting-edge machine learning techniques for music generation. </p> <div class="center-content"> <video autoplay loop muted playsinline alt="video of the different plugins in magenta studio"> <source src="/assets/studio/hero_2.mp4" type="video/mp4"> </video> </div> <br><br> <p>Magenta Studio was formerly available as a collection of standalone applications. They are not actively maintained but may still work on your operating system. For more information, please see <a href="/v1/studio">Magenta Studio v1.0</a>. </p> <h2 class="section-title">Table of Contents</h2> <ul class="toc"> <li><a href="#overview">Overview</a></li> <li><a href="#installation">Installation</a></li> <li><a href="#usage">Usage</a></li> <li><a href="#continue">Continue</a></li> <li><a href="#generate">Generate</a></li> <li><a href="#interpolate">Interpolate</a></li> <li><a href="#groove">Groove</a></li> <li><a href="#drumify">Drumify</a></li> </ul> </div> </section> <section class="alternate"> <div class="content single"> <h1 id="overview">Overview</h1> <p>Magenta Studio is a MIDI plugin for Ableton Live. It contains 5 tools: <a href="#continue">Continue</a>, <a href="#groove">Groove</a>, <a href="#generate">Generate</a>, <a href="#drumify">Drumify</a>, and <a href="#interpolate">Interpolate</a>, which let you apply Magenta models on your MIDI clips from the Session View.</p> <div class="center-content"> <img alt="side by side of 5 plugins titled continue, groove, generate, drumify, and interpolate" src="/assets/studio/ableton/all_2.png"> </div> </div> </section> <section class="alternate"> <div class="content single"> <h1 id="installation">Installation</h1> <h2 class="section-title">Requirements</h2> <ul> <li><a href="https://www.ableton.com/en/live/">Ableton Live 10.1 Suite*</a> or greater</li> </ul> <small>*Previous versions of Ableton Live require using a non-bundled version of <a href="https://cycling74.com/products/max-features">Max 8</a>.</small> <h2 class="section-title">Installation</h2> <p>Drag the downloaded Magenta Studio <code>amxd</code> file into any available MIDI track within Live. </p> <div class="center-content"> <video style="min-width: 100%" autoplay loop muted playsinline alt="video of dropping the plugin into ableton"> <source src="/assets/studio/ableton/step_4_2.mp4" type="video/mp4"> </video> </div> </div> </section> <section class="alternate"> <div class="content single"> <h1 id="usage">Usage</h1> <h2 class="section-title">Launching the plugin</h2> <p>Each of the tools can be launched by clicking on its name within the plugin. </p> <div class="center-content"> <video style="height: 500px" autoplay loop muted playsinline alt="video of launching the plugin from ableton"> <source src="/assets/studio/ableton/launching_2.mp4" type="video/mp4"> </video> </div> <h2 class="section-title">Clip selection</h2> <p>All of the plugins work by choosing one or more clips from Ableton's Session View. You must choose a track before selecting your clip. Only MIDI tracks will show up as options. Once all of your selections are made, the <b>Generate</b> button will become enabled. </p> <div class="center-content"> <video style="height: 500px" autoplay loop muted playsinline alt="video of selecting a clip by navigating through the dropdown menus"> <source src="/assets/studio/ableton/track_selection_2.mp4" type="video/mp4"> </video> </div> <h2 class="section-title">Temperature</h2> <p>All of the plugins have a temperature slider. Temperature is a parameter used for sampling in the last layer of the neural network. You can think of it as controlling randomness: higher values produce more variation and sometimes even chaos, while lower values are more conservative in their predictions. </p> <h2 class="section-title">Limitations</h2> <p> Melody input is limited to monophonic melodies (one note at a time), and drums input uses this MIDI mapping. Notes outside this range will be mapped to these 9 instruments: <table> <thead> <tr> <th>Instrument</th> <th>Pitch</th> </tr> </thead> <tbody> <tr> <td>Bass drum/Snare drum</td> <td>36/38</td> </tr> <tr> <td>Closed/Open hi-hat</td> <td>42/46</td> </tr> <tr> <td>Low/Mid/High tom</td> <td>45/48/50</td> </tr> <tr> <td>Crash/Ride cymbal</td> <td>49/51</td> </tr> </tbody> </table> </div> </section> † <section class="alternate"> <div class="content single"> <h1 id="continue">Continue</h1> <p>Continue uses the predictive power of <a href="/2016/06/10/recurrent-neural-network-generation-tutorial">recurrent neural networks (RNN)</a> to generate notes that are likely to follow your drum beat or melody. Give it an input clip and it can extend it by up to 32 measures. This can be helpful for adding variation to a drum beat or creating new material for a melodic track. It typically picks up on things like durations, key signatures and timing. It can be used to produce more random outputs by increasing the temperature. </p> <h2 class="section-title">How to use</h2> <p>Select a clip which you would like to extend, then click <b>Generate</b>. The output clips will be added to the clip slots after your selected clip. </p> <p> <strong>Note:</strong> This video uses the v1 version of Magenta Studio. The interface now launches within the Ableton Live window, but the functionality is the same. </p> <div class="center-content"> <video playsinline controls alt="video of using the Continue plugin"> <source src="/assets/studio/ableton/continue_full.mp4" type="video/mp4"> </video> </div> </div> </section> <section class="alternate"> <div class="content single"> <h1 id="generate">Generate</h1> <p>Generate is similar to <a href="#continue">Continue</a>, but it generates a 4 bar phrase with no input necessary. Choose where you would like the output to go, the number of variations, temperature, and click <b>Generate</b>. This can be helpful for breaking a creative block or as a source of inspiration for an original sample. </p> <p>Under the hood, Generate uses a <a href="/music-vae">Variational Autoencoder (VAE)</a> that has been trained on millions of melodies and rhythms to learn a summarized representation of musical qualities. Generate chooses a random combination of these summarized qualities and decodes it back to MIDI to produce a new musical clip. </p> <h2 class="section-title">How to use</h2> <p>Generate does not require any input files, so the clip selection determines where you'd like the output clips to go. </p> <p> <strong>Note:</strong> This video uses the v1 version of Magenta Studio. The interface now launches within the Ableton Live window, but the functionality is the same. </p> <div class="center-content"> <video playsinline controls alt="video of using the Generate plugin"> <source src="/assets/studio/ableton/generate_full.mp4" type="video/mp4"> </video> </div> </div> </section> <section class="alternate"> <div class="content single"> <h1 id="interpolate">Interpolate</h1> <p>Unlike the other plugins, Interpolate takes <i>two</i> drum beats or <i>two</i> melodies as inputs. It then generates up to 16 clips which combine the qualities of these two clips. It's useful for merging musical ideas, or creating a smooth morphing between them.</p> <p>Interpolate also uses a <a href="/music-vae">Variational Autoencoder (VAE)</a> similar to <a href="#generate">Generate</a>. One way to think of the VAE is as a mapping from MIDI to a compressed space in which similar musical patterns are clustered together. Each of your input patterns is represented by a position on this map. Interpolate draws a line between these positions and returns clips along this line. The number of returned clips is set by the "steps" slider.</p> <h2 class="section-title">How to use</h2> <p>Interpolate requires two inputs, and these inputs must be on the same track. The outputs are inserted after the second clip. The clips should be the same length and less than 4 measures. </p> <p> <strong>Note:</strong> This video uses the v1 version of Magenta Studio. The interface now launches within the Ableton Live window, but the functionality is the same. </p> <div class="center-content"> <video playsinline controls alt="video of using the Interpolate plugin"> <source src="/assets/studio/ableton/interpolate_full.mp4" type="video/mp4"> </video> </div> </div> </section> <section class="alternate"> <div class="content single"> <h1 id="groove" >Groove</h1> <p>Groove adjusts the timing and velocity of an input drum clip to produce the "feel" of a drummer's performance. This is similar to what a “humanize" plugin does, but achieved in a totally different way.</p> <p>We recorded 15 hours of real drummers performing on MIDI drum kits. These recordings were quantized, removing all velocity and microtiming and were used to train a neural network to predict the unquantized beats as the output. </p> <h2 class="section-title">How to use</h2> <p>Groove takes one clip as an input and places the output clip one slot below the input. </p> <p> <strong>Note:</strong> This video uses the v1 version of Magenta Studio. The interface now launches within the Ableton Live window, but the functionality is the same. </p> <div class="center-content"> <video playsinline controls alt="video of using the Groove plugin"> <source src="/assets/studio/ableton/groovae_full.mp4" type="video/mp4"> </video> </div> </div> </section> <section class="alternate"> <div class="content single no-bottom-pading"> <h1 id="drumify" >Drumify</h1> <p>Drumify creates grooves based on the rhythm of any input. It can be used to generate a drum accompaniment to a bassline or melody, or to create a drum track from a tapped rhythm. It works best with performed inputs, but it can also handle quantized clips.</p> <p>We used the same dataset of drum performances as Groove to train Drumify. However, instead of learning a translation from quantized drum patterns to performances, here we map from rhythms to performances. We extract a rhythm from each performance by removing the pitches and velocities, while keeping the precise timing details. When you provide an input sequence -- be it a melody, bassline, chord progression, or drum pattern -- we extract a rhythm in the same way and have the model turn it into a groove. </p> <h2 class="section-title">How to use</h2> <p>Drumify takes one clip as an input and places the output clip one slot below the input. </p> <p> <strong>Note:</strong> This video uses the v1 version of Magenta Studio. The interface now launches within the Ableton Live window, but the functionality is the same. </p> <div class="center-content"> <video playsinline controls alt="video of using the Drumify plugin"> <source src="/assets/studio/ableton/drumify_full.mp4" type="video/mp4"> </video> </div> </div> </section> </div> <footer> <div class="footer-content"> <div class="logo"> <a href="https://ai.google/" target="_blank" rel="noopener" title="Google AI"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 157.2 40.88"><defs><style>.cls-1{fill:none;}.cls-2{fill:#80868b;}.cls-3{fill:#80868b;}.cls-4{fill:#80868b;}.cls-5{fill:#80868b;}.cls-6{fill:#80868b;}</style></defs><g id="Running_copy" data-name="Running copy"><path class="cls-1" d="M82.91,16.35A4.8,4.8,0,0,0,79.29,18a5.66,5.66,0,0,0-1.49,4,5.53,5.53,0,0,0,1.49,3.94,4.78,4.78,0,0,0,3.62,1.58,4.47,4.47,0,0,0,3.49-1.58A5.7,5.7,0,0,0,87.81,22a5.84,5.84,0,0,0-1.41-4A4.48,4.48,0,0,0,82.91,16.35Z"></path><path class="cls-1" d="M42.8,16.35a4.92,4.92,0,0,0-3.66,1.57,5.49,5.49,0,0,0-1.51,4,5.52,5.52,0,0,0,1.52,4,5,5,0,0,0,7.3,0,5.48,5.48,0,0,0,1.53-4,5.49,5.49,0,0,0-1.51-4A4.93,4.93,0,0,0,42.8,16.35Z"></path><path class="cls-1" d="M62.89,16.35a4.93,4.93,0,0,0-3.67,1.57,5.53,5.53,0,0,0-1.51,4,5.48,5.48,0,0,0,1.53,4,5,5,0,0,0,7.3,0,5.48,5.48,0,0,0,1.53-4,5.49,5.49,0,0,0-1.51-4A4.93,4.93,0,0,0,62.89,16.35Z"></path><path class="cls-1" d="M111,16.82a4.15,4.15,0,0,0-2.12-.54,4.79,4.79,0,0,0-3.32,1.46,4.9,4.9,0,0,0-1.47,3.9l8.2-3.41A2.82,2.82,0,0,0,111,16.82Z"></path><rect class="cls-2" x="94.13" y="3.56" width="4.03" height="26.97"></rect><path class="cls-3" d="M42.8,12.74a9,9,0,0,0-6.53,2.62,8.83,8.83,0,0,0-2.68,6.55,8.84,8.84,0,0,0,2.68,6.56,9.46,9.46,0,0,0,13.07,0A8.83,8.83,0,0,0,52,21.91a8.82,8.82,0,0,0-2.67-6.55A9,9,0,0,0,42.8,12.74Zm3.65,13.15a5,5,0,0,1-7.3,0,5.52,5.52,0,0,1-1.52-4,5.49,5.49,0,0,1,1.51-4,5.06,5.06,0,0,1,7.33,0,5.49,5.49,0,0,1,1.51,4A5.48,5.48,0,0,1,46.45,25.89Z"></path><path class="cls-4" d="M18.89,15.55v3.9h9.32a8.27,8.27,0,0,1-2.12,4.9,9.76,9.76,0,0,1-7.2,2.85,9.75,9.75,0,0,1-7.24-3,10.07,10.07,0,0,1-3-7.33,10.07,10.07,0,0,1,3-7.33,9.75,9.75,0,0,1,7.24-3,9.89,9.89,0,0,1,7,2.78l2.75-2.74a13.63,13.63,0,0,0-9.77-3.93A14.07,14.07,0,0,0,8.71,6.78,13.58,13.58,0,0,0,4.44,16.84,13.56,13.56,0,0,0,8.71,26.9a14.07,14.07,0,0,0,10.18,4.19,13.12,13.12,0,0,0,9.94-4q3.38-3.36,3.37-9.1a12.59,12.59,0,0,0-.2-2.44Z"></path><path class="cls-4" d="M87.53,14.79h-.14a5.64,5.64,0,0,0-2-1.46,6.66,6.66,0,0,0-2.83-.59,8.37,8.37,0,0,0-6.15,2.69A9,9,0,0,0,73.77,22a8.86,8.86,0,0,0,2.64,6.46,8.36,8.36,0,0,0,6.15,2.68A5.87,5.87,0,0,0,87.39,29h.14v1.32a5.63,5.63,0,0,1-1.3,4,4.69,4.69,0,0,1-3.6,1.39,4.34,4.34,0,0,1-2.88-1A5.94,5.94,0,0,1,78,32.44L74.5,33.9a9.43,9.43,0,0,0,3,3.79,8.07,8.07,0,0,0,5.14,1.64,8.61,8.61,0,0,0,6.27-2.39c1.64-1.58,2.45-4,2.45-7.17V13.3H87.53ZM86.4,25.89a4.47,4.47,0,0,1-3.49,1.58,4.78,4.78,0,0,1-3.62-1.58A5.53,5.53,0,0,1,77.8,22a5.66,5.66,0,0,1,1.49-4,4.8,4.8,0,0,1,3.62-1.6A4.48,4.48,0,0,1,86.4,18a5.84,5.84,0,0,1,1.41,4A5.7,5.7,0,0,1,86.4,25.89Z"></path><path class="cls-5" d="M62.89,12.74a9,9,0,0,0-6.53,2.62,8.79,8.79,0,0,0-2.68,6.55,8.8,8.8,0,0,0,2.68,6.56,9.45,9.45,0,0,0,13.06,0,8.8,8.8,0,0,0,2.68-6.56,8.79,8.79,0,0,0-2.68-6.55A9,9,0,0,0,62.89,12.74Zm3.65,13.15a5,5,0,0,1-7.3,0,5.48,5.48,0,0,1-1.53-4,5.53,5.53,0,0,1,1.51-4,5.07,5.07,0,0,1,7.34,0,5.49,5.49,0,0,1,1.51,4A5.48,5.48,0,0,1,66.54,25.89Z"></path><path class="cls-3" d="M109.22,27.47a4.68,4.68,0,0,1-4.45-2.78L117,19.62l-.42-1a11,11,0,0,0-.91-1.81,10.64,10.64,0,0,0-1.49-1.86,7.14,7.14,0,0,0-2.36-1.56,7.73,7.73,0,0,0-3.1-.61,8.27,8.27,0,0,0-6.13,2.57,9.05,9.05,0,0,0-2.52,6.6,8.93,8.93,0,0,0,2.61,6.54,8.74,8.74,0,0,0,6.5,2.64,8.43,8.43,0,0,0,4.69-1.25,10.13,10.13,0,0,0,3-2.82l-3.13-2.08A5.26,5.26,0,0,1,109.22,27.47Zm-3.64-9.73a4.79,4.79,0,0,1,3.32-1.46,4.15,4.15,0,0,1,2.12.54,2.82,2.82,0,0,1,1.29,1.41l-8.2,3.41A4.9,4.9,0,0,1,105.58,17.74Z"></path><path class="cls-6" d="M127.47,30.54h-3.55l9.39-24.9h3.62l9.39,24.9h-3.55l-2.4-6.75H129.9Zm7.58-21L131,20.8h8.28L135.19,9.57Z"></path><path class="cls-6" d="M152.44,30.54h-3.2V5.64h3.2Z"></path></g></svg> </a> </div> <ul> <li> <a href="https://twitter.com/search?q=%23madewithmagenta" target="_blank" rel="noopener"> Twitter </a> </li> <li> <a href="/blog" target="_blank" rel="noopener"> Blog </a> </li> <li> <a href="https://github.com/tensorflow/magenta" target="_blank" rel="noopener"> GitHub </a> </li> <li> <a href="https://www.google.com/policies/privacy/" target="_blank" rel="noopener"> Privacy </a> </li> <li> <a href="https://www.google.com/policies/terms/" target="_blank" rel="noopener"> Terms </a> </li> </ul> </div> </footer> </body> <script src="/js/main.js"></script> </html>