Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Hands-On Music Generation with Magenta
Hands-On Music Generation with Magenta

Hands-On Music Generation with Magenta: Explore the role of deep learning in music generation and assisted music composition

eBook
AU$33.99 AU$48.99
Paperback
AU$60.99
Subscription
Free Trial
Renews at AU$24.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Table of content icon View table of contents Preview book icon Preview Book

Hands-On Music Generation with Magenta

Introduction to Magenta and Generative Art

In this chapter, you'll learn the basics of generative music and what already exists. You'll learn about the new techniques of artwork generation, such as machine learning, and how those techniques can be applied to produce music and art. Google's Magenta open source research platform will be introduced, along with Google's open source machine learning platform TensorFlow, along with an overview of its different parts and the installation of the required software for this book. We'll finish the installation by generating a simple MIDI file on the command line.

The following topics will be covered in this chapter:

  • Overview of generative artwork
  • New techniques with machine learning
  • Magenta and TensorFlow in music generation
  • Installing Magenta
  • Installing the music software and synthesizers
  • Installing the code editing...

Technical requirements

In this chapter, we'll use the following tools:

  • Python, Conda, and pip, to install and execute the Magenta environment
  • Magenta, to test our setup by performing music generation
  • Magenta GPU (optional), CUDA drivers, and cuDNN drivers, to make Magenta run on the GPU
  • FluidSynth, to listen to the generated music sample using a software synthesizer
  • Other optional software we might use throughout this book, such as Audacity for audio editing, MuseScore for sheet music editing, and Jupyter Notebook for code editing.

It is recommended that you follow this book's source code when you read the chapters in this book. The source code also provides useful scripts and tips. Follow these steps to check out the code in your user directory (you can use another location if you want):

  1. First, you need to install Git, which can be installed on any platform by downloading...

Overview of generative art

The term generative art has been coined with the advent of the computer, and since the very beginning of computer science, artists and scientists used technology as a tool to produce art. Interestingly, generative art predates computers, because generative systems can be derived by hand.

In this section, we'll provide an overview of generative music by showing you interesting examples from art history going back to the 18th century. This will help you understand the different types of generative music by looking at specific examples and prepare the groundwork for later chapters.

Pen and paper generative music

There's a lot of examples of generative art in the history of mankind. A popular...

New techniques with machine learning

Machine learning is important for computer science because it allows complex functions to be modeled without them being explicitly written. Those models are automatically learned from examples, instead of being manually defined. This has a huge implication for arts in general since explicitly writing the rules of a painting or a musical score is inherently difficult.

In recent years, the advent of deep learning has propelled machine learning to new heights in terms of efficiency. Deep learning is especially important for our use case of music generation since using deep learning techniques doesn't require a preprocessing step of feature extraction, which is necessary for classical machine learning and hard to do on raw data such as image, text, and you guessed it audio. In other words, traditional machine learning algorithms...

Google's Magenta and TensorFlow in music generation

Since its launch, TensorFlow has been important for the data scientist community for being An Open Source Machine Learning Framework for Everyone. Magenta, which is based on TensorFlow, can be seen the same way: even if it's using state of the art machine learning techniques, it can still be used by anyone. Musicians and computer scientists alike can install it and generate new music in no time.

In this section, we'll look at the content of Magenta by introducing what it can and cannot do and refer to the chapters that explain the content in more depth.

Creating a music generation system

Magenta is a framework for art generation, but also for attention, storytelling...

Installing Magenta and Magenta for GPU

Installing a machine learning framework is not an easy task and often a pretty big entry barrier, mainly because Python is an infamous language concerning dependency management. We'll try to make this easy by providing clear instructions and versions. We'll be covering installation instructions for Linux, Windows, and macOS since the commands and versions are mostly the same.

In this section, we'll be installing Magenta and Magenta for GPU, if you have the proper hardware. Installing Magenta for a GPU takes a bit more work but is necessary if you want to train a model, which we will do in Chapter 7, Training Magenta Models. If you are unsure about doing this, you can skip this section and come back to it later. We'll also provide a solution if you don't have a GPU but still want to do the chapter by using cloud-based...

Installing the music software and synthesizers

During the course of this book, we'll be handling MIDI and audio files. Handling the MIDI files requires specific software that you should install now since you'll need it for the entirety of this book.

Installing the FluidSynth software synthesizer

A software synthesizer is a piece of software that will play incoming MIDI notes or MIDI files with virtual instruments from sound banks (called SoundFont) or by synthesizing audio using waveforms. We will need a software synthesizer to play the notes that are generated by our models.

For this book, we'll be using FluidSynth, a powerful and cross-platform software synth available on the command line. We'll go through...

Installing the code editing software

In this section, we'll recommend optional software regarding code editing. While not mandatory, it might help considerably to use them, especially for newcomers, for whom plain code editing software can be daunting.

Installing Jupyter Notebook (optional)

Notebooks are a great way of sharing code that contains text, explanations, figures, and other rich content. It is used extensively in the data science community because it can store and display the result of long-running operations, while also providing a dynamic runtime to edit and execute the content in.

The code for this book is available on GitHub as plain Python code, but also in the form of Jupyter Notebooks. Each chapter will...

Generating a basic MIDI file

Magenta comes with multiple command-line scripts (installed in the bin folder of your Magenta environment). Basically, each model has its own console script for dataset preparation, model training, and generation. Let's take a look:

  1. While in the Magenta environment, download the Drums RNN pre-trained model, drum_kit_rnn:
> curl --output "drum_kit_rnn.mag" "http://download.magenta.tensorflow.org/models/drum_kit_rnn.mag"
  1. Then, use the following command to generate your first few MIDI files:
> drums_rnn_generate --bundle_file="drum_kit_rnn.mag"

By default, the preceding command generates the files in /tmp/drums_rnn/generated (on Windows C:\tmp\drums_rnn\generated). You should see 10 new MIDI files, along with timestamps and a generation index.

If you are using a GPU, you can verify if TensorFlow is using it...

Summary

This chapter is important because it introduces the basic concepts of music generation with machine learning, all of which we'll build upon throughout this book.

In this chapter, we learned what generative music is and that its origins predate even the advent of computers. By looking at specific examples, we saw different types of generative music: random, algorithmic, and stochastic.

We also learned how machine learning is rapidly transforming how we generate music. By introducing music representation and various processes, we learned about MIDI, waveforms, and spectrograms, as well as various neural network architectures we'll get to look at throughout this book.

Finally, we saw an overview of what we can do with Magenta in terms of generating and processing image, audio, and score. By doing that, we introduced the primary models we'll be using throughout...

Questions

  1. On what generative principle does the musical dice game rely upon?
  2. What stochastic-based generation technique was used in the first computerized generative piece of music, Illiac Suite?
  3. What is the name of the music genre where a live coder implements generative music on the scene?

  1. What model structure is important for tracking temporally distant events in a musical score?
  2. What is the difference between autonomous and assisting music systems?
  3. What are examples of symbolic and sub-symbolic representations?
  4. How is a note represented in MIDI?
  5. What frequency range can be represented without loss at a sample rate of 96 kHz? Is it better for listening to audio?
  6. In a spectrogram, a block of 1 second of intense color at 440 Hz is shown. What is being played?
  7. What different parts of a musical score can be generated with Magenta?
...

Further reading

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Learn how machine learning, deep learning, and reinforcement learning are used in music generation
  • Generate new content by manipulating the source data using Magenta utilities, and train machine learning models with it
  • Explore various Magenta projects such as Magenta Studio, MusicVAE, and NSynth

Description

The importance of machine learning (ML) in art is growing at a rapid pace due to recent advancements in the field, and Magenta is at the forefront of this innovation. With this book, you’ll follow a hands-on approach to using ML models for music generation, learning how to integrate them into an existing music production workflow. Complete with practical examples and explanations of the theoretical background required to understand the underlying technologies, this book is the perfect starting point to begin exploring music generation. The book will help you learn how to use the models in Magenta for generating percussion sequences, monophonic and polyphonic melodies in MIDI, and instrument sounds in raw audio. Through practical examples and in-depth explanations, you’ll understand ML models such as RNNs, VAEs, and GANs. Using this knowledge, you’ll create and train your own models for advanced music generation use cases, along with preparing new datasets. Finally, you’ll get to grips with integrating Magenta with other technologies, such as digital audio workstations (DAWs), and using Magenta.js to distribute music generation apps in the browser. By the end of this book, you'll be well-versed with Magenta and have developed the skills you need to use ML models for music generation in your own style.

Who is this book for?

This book is for technically inclined artists and musically inclined computer scientists. Readers who want to get hands-on with building generative music applications that use deep learning will also find this book useful. Although prior musical or technical competence is not required, basic knowledge of the Python programming language is assumed.

What you will learn

  • Use RNN models in Magenta to generate MIDI percussion, and monophonic and polyphonic sequences
  • Use WaveNet and GAN models to generate instrument notes in the form of raw audio
  • Employ Variational Autoencoder models like MusicVAE and GrooVAE to sample, interpolate, and humanize existing sequences
  • Prepare and create your dataset on specific styles and instruments
  • Train your network on your personal datasets and fix problems when training networks
  • Apply MIDI to synchronize Magenta with existing music production tools like DAWs

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jan 31, 2020
Length: 360 pages
Edition : 1st
Language : English
ISBN-13 : 9781838825768
Vendor :
Google
Category :
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning

Product Details

Publication date : Jan 31, 2020
Length: 360 pages
Edition : 1st
Language : English
ISBN-13 : 9781838825768
Vendor :
Google
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
AU$24.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
AU$249.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just AU$5 each
Feature tick icon Exclusive print discounts
AU$349.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just AU$5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total AU$ 197.97
Hands-On Image Generation with TensorFlow
AU$75.99
Hands-On Music Generation with Magenta
AU$60.99
Generative AI with Python and TensorFlow 2
AU$60.99
Total AU$ 197.97 Stars icon

Table of Contents

15 Chapters
Section 1: Introduction to Artwork Generation Chevron down icon Chevron up icon
Introduction to Magenta and Generative Art Chevron down icon Chevron up icon
Section 2: Music Generation with Machine Learning Chevron down icon Chevron up icon
Generating Drum Sequences with the Drums RNN Chevron down icon Chevron up icon
Generating Polyphonic Melodies Chevron down icon Chevron up icon
Latent Space Interpolation with MusicVAE Chevron down icon Chevron up icon
Audio Generation with NSynth and GANSynth Chevron down icon Chevron up icon
Section 3: Training, Learning, and Generating a Specific Style Chevron down icon Chevron up icon
Data Preparation for Training Chevron down icon Chevron up icon
Training Magenta Models Chevron down icon Chevron up icon
Section 4: Making Your Models Interact with Other Applications Chevron down icon Chevron up icon
Magenta in the Browser with Magenta.js Chevron down icon Chevron up icon
Making Magenta Interact with Music Applications Chevron down icon Chevron up icon
Assessments Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(3 Ratings)
5 star 0%
4 star 100%
3 star 0%
2 star 0%
1 star 0%
Javonnii Curry Jan 12, 2021
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Audio engineer/ Data ScientistThe layout of the book is amazing. I liked how the book starts with familiarizing the reader with the pre-trained models and their configurations. I enjoyed the in-depth explanation of "one-hot encoding" sequences and the changes depending on the model. The python files are clean and very well documented. I was able to train two separate Melody RNN models one w/ basic config and the other w/ attention config. I deployed a simple Magenta.js application with the base model and had fun generating melodies with the trained model"attention config" in Ableton Live. The coolest experience overall was playing a melody in Ableton and receiving a response "generated melody" from my trained model via Magenta midi interface.Some headaches:* I had trouble setting up the conda environment by the book on a "2020 mac Catalina." I successfully created the environment and installed the dependencies following the second branch on the git repo "magenta-master" for magenta 2.1.2. If you're on a new computer I would recommend using the branch mentioned above to follow along with the book.* The coding videos were helpful to see someone using the command line. I would have liked to see a few video walkthroughs "with audio" on the chapters Magenta.js and in-depth interaction with magenta midi and Ableton.Findings:I trained a Melody RNN w/ attention config but wasn't able to initialize it on the browser with Magenta.js. This is a current inability and Magenta is tracking this issue. I was able to initialize the model I trained with the base config.
Amazon Verified review Amazon
Eric Nichols Nov 15, 2020
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
I'm a former Google employee and musician and have been following the Magenta research project since its inception. I am often surprised by how many questions show up on the public Magenta mailing list from musicians and programming hobbyists who are struggling with the basics of music generation using the open-source Magenta code. The Google team is responsive to questions, but it seems that many people have difficulty getting the basics working. This book fills that gap and provides something like a detailed "user's guide" to Magenta, along with a general overview/explanation of the music generation techniques used in Magenta.Specific topics include how to use the recurrent neural network (RNN) models in Magenta to generate monophonic music, polyphonic music, or drum sequences, how to use variational autoencoders (MusicVAE and GrooVAE) to control music generation, and using WaveNet and Generative Adversarial Networks (GANs) for generation of raw audio. Magenta.js is introduced for using Magenta in a web browser. Along the way the book introduces concepts such as convenient music representations for generation, public datasets such as the Million Song Dataset, and how to train custom Magenta models.The book is quite practical, with concrete code examples and instructions on the myriad issues that arise when tying to get Magenta to work, such as needing to install GPU drivers, setting up python conda environments, preprocessing MIDI files and converting to Google's "protobuf" format for use with Tensorflow, hooking up FluidSynth to listen generated MIDI, etc. Some of these instructions may go out of date over time, but for now they seem quite useful for people with less experience in software engineering, deep learning, or audio software.A pleasant surprise was the inclusion of a small number of exercises at the end of each chapter (e.g., "what are the advantages/disadvantages of different symbolic music representations?"), which I could see as helpful in preparing a specialized university seminar on music generation (answers are at the back of the book, so these questions are also useful for self-study).The book only provides a cursory look at the algorithms involved in music generation, so for details the reader will need to refer to the original research papers and blog posts from the Magenta team. It does provide a basic introduction, which might be all that is needed for the target audience of people who just want to start generating music.Two items seem to be notably missing from this book: 1) discussion of Coconet, the Magenta team model behind the Bach-generating "Google Doodle" in March 2019, and 2) discussion of Transformer models such as Music Transformer. I think we can blame Google for the latter, as the Music Transformer code doesn't yet appear as part fo the Magenta open source code base for some reason. The first is more surprising, but perhaps it will be added in a second edition of this book.Overall, I think this book does a great job filling in the gaps for users getting started with Magenta and music generation, and I highly recommend it for that audience. The ideal reader of the book already has some programming experience with python; I think a musician new to coding would still have a difficult challenge even with this book as a guide, but the highly-motivated hobbyist would probably have success.My main criticism is a bit superficial: I don't like the design of Packt press publications. The typesetting looks too much like a generic Microsoft Word document using default setting. The table of contents in particular is simply ugly and looks like standard self-published fare, and the font used for section headings is uninspiring. The greyscale figures in the print version are hard to read and don't do justice to the color figures in the PDF version of the book. Usually I prefer print books to ebooks, but this might be a case where I prefer the opposite, just because of the quality of the figures. I have enjoyed the content of a couple recent Packt publications, but I would encourage the publisher to improve on presentation in the future.
Amazon Verified review Amazon
Johannes Pich Apr 29, 2021
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Ich arbeite gerade mit dem Buch an meiner Bachelorarbeit und finde es super, dass man die ganzen Code-teile ganz einfach aus der Docu kopieren kann, das macht das parallele Anwenden des Code sehr angenehm.Da ich leider wenig Vorwissen zu Python habe, muss ich mir viel nebenbei anlesen, einige Äußerungen sind auch etwas kryptisch, es werden Begriffe eingeführt und erst zwei Seiten später erklärt - also das geht noch besser :) Vermutlich liest sich das noch besser, wenn man schon Vorerfahrung mit Programmieren hat.Und es sind auch ein paar Rechtschreibfehler drin, die könnte man in der nächsten Ausgabe dann auch mal korrigieren.Ansonsten super Buch und toll, dass es eine Anleitung gibt, mit der man ein selbstlernendes Kompositionssystem bauen kann!
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.