logo

Get in touch

Awesome Image Awesome Image

Developer's Guide May 13, 2024

Voice into Music: AI Composition with Python Magenta

Written by Mahipalsinh Rana

17,068

Magenta is an interesting project with a friendly Open-Source nature that is concerned with the crossing over of human creativity and artificial intelligence. Google Research Team is a joint creator of Magenta which makes it possible for artwork makers, human artists, musicians, and creators of all the forms to use machine learning tools along with the machine learning techniques, which will then inspire a whole new dimension of expression. 

Magenta has a set of tools and models created for music makers who want to create and discover new musical ideas. The creativity of a songsmith the one who mixes sound or an amateur lover of music is endless with all the versatile sounds that can be generated by Magenta’s system.

Installing Magenta: A Step-by-Step Guide

Earlier installing Magenta Poured created a virtual environment for managing cleanly needed dependencies. Provided that you are in the virtual environment now, you can go ahead and install Magenta using either pip or Git/ Git as shown in the instructions.

Method 1: Using pip

With pip, you can install Magenta in a snap. Open your terminal or command prompt and enter the following command:

Command: pip install magenta

Method 2: Using Git

Alternatively, you can install Magenta using Git, which is often referred to as the preferred method of implementation. 

Step 1: Open your terminal and clone the Magenta Git repository by running the following command

Command: git clone https://github.com/tensorflow/magenta.git

Step 2: Navigate into the Magenta directory and install it with the setup.py file using the following command

Command: python install setup.py

Verify Installation

To verify that Magenta has been successfully installed, you can check its version by running the following command:

Command: magenta -–version

Output: Magenta 2.4.1   

How Magenta Works?

Magenta is a computer program that utilizes the neural network. The program is empowered through a large amount of music and art training. It’s demonstrated during training that it gets to observe the common patterns and styles in music and arts. And then, it can produce its own music or art using what it has learned. 

What is more, Magenta can engineer songs that no one has ever heard of, which is the fascinating factor about it. This is done by adjusting the previously mastered patterns with something remarkable and out of the box. 

Read More: Most Popular Python Web Frameworks to Use in 2024

Generating Music with Magenta:

Once you have Magenta installed, you can get started with the music creation instantly! Magenta Studio gives you a myriad of functions and models to help you compose music. Let’s take the easy example, using Magenta’s “MusicVAE” model to create an audio-sounding mixtape. 

prerequisite:

First of all, if you want to generate outputs, you either have to train your own model or download pre-trained checkpoints from the table below. 

Here you will find the different checkpoints of the “MusicVAE” model:

ID

config

Description

link

cat-mel_2bar_big cat-mel_2bar_big 2-bar melodies Download
hierdec-mel_16bar hierdec-mel_16bar 16-bar melodies Download
hierdec-trio_16bar hierdec-trio_16bar 16-bar “trios” (drums, melody, and bass) Download
cat-drums_2bar_small.lokl cat-drums_2bar_small 2-bar drums w/ 9 classes trained for more realistic sampling Download
cat-drums_2bar_small.hikl cat-drums_2bar_small 2-bar drums w/ 9 classes trained for better reconstruction and interpolation Download
nade-drums_2bar_full nade-drums_2bar_full 2-bar drums w/ 61 classes Download
groovae_4bar groovae_4bar 4-bar groove autoencoder. Download
groovae_2bar_humanize groovae_2bar_humanize The 2-bar model converts a quantized, constant-velocity drum pattern into a “humanized” groove. Download
groovae_2bar_tap_fixed_velocity groovae_2bar_tap_fixed_velocity The 2-bar model that converts a constant-velocity single-drum “tap” pattern into a groove. Download
groovae_2bar_add_closed_hh groovae_2bar_add_closed_hh 2-bar model that adds (or replaces) closed hi-hat for an existing groove. Download
groovae_2bar_hits_control groovae_2bar_hits_control 2-bar groove autoencoder, with the input hits provided to the decoder as a conditioning signal. Download

Using Magenta, you can seamlessly blend your creative input with AI-generated music, opening up new avenues for musical exploration and expression.

Example

Input voice: <link of the input voice>

Output music: <link of the output music>

Code explanation:

Beginning the development process, we define the model’s configuration through the use of configs. CONFIG_MAP[model_name]. This approach to configuration covers parameters and settings that are responsible for defining the behavior and design of the network. When we choose a certain model name from the configuration map, for example, ‘cat-mel_2bar_big’, we are actually selecting the model that has been trained on a dataset that is specifically designed for the generation of melodies with two-bar phrases. 

Then we specify the model’s parameters and generate the TrainedModel object. With this, we mean the object in blue which shows the pre-trained  MusicVAE model and enables you to use it for generating new musical sequences with it. Initially, the model is configured and the batch size for generating sequences is set up.  Further, the model checkpoint that was downloaded previously is indicated either by a directory or path. This procedure forms the structure and prepares the model for the process of creating music in response to our input MIDI file.

Learn More: CI/CD Pipeline Integration for Liferay with Jenkins

Conclusion

In conclusion, Magenta opens up a world of possibilities at the intersection of creativity and artificial intelligence. Whether you’re a musician looking for inspiration, an artist exploring new visual styles, or a developer interested in cutting-edge technology, Magenta provides a powerful toolkit for unleashing your creativity.

References: To explore more about Magenta and its capabilities, check out its official package on PyPi and repository on GitHub.

PyPi: https://pypi.org/project/magenta/

GitHub: https://github.com/magenta/magenta

Meet the idealistic leader behind Inexture Solutions – Mahipalsinh Rana! With over 15 years of experience in Enterprise software design and development, Mahipalsinh Rana brings a wealth of technical knowledge and expertise to his role as CTO. He is also a liferay consultant with over a decade of experience in the industry.

Bringing Software Development Expertise to Every
Corner of the World

United States

India

Germany

United Kingdom

Canada

Singapore

Australia

New Zealand

Dubai

Qatar

Kuwait

Finland

Brazil

Netherlands

Ireland

Japan

Kenya

South Africa