Using Leap AI to Generate AI Music

Javier Calderon Jr
4 min readJul 26, 2023

Introduction

In an era where Artificial Intelligence (AI) is reshaping every facet of human life, creativity is no longer the exclusive realm of human ingenuity. AI has proven capable of generating impressive artistic creations, music being one of them. This article is a deep dive into how you can harness the power of Leap AI, a leading machine learning platform, to create your own AI music. By the end of this read, you’ll be equipped to construct a fully functional AI that can compose unique music compositions.

Leap AI — Setting the Stage

Leap AI, with its expansive collection of AI models and easy-to-use APIs, serves as a platform for both enthusiasts and professionals to create, train, and deploy AI models. Its pre-trained models can be fine-tuned for a range of tasks, including music generation, making it a suitable choice for our endeavor.

To start, ensure you have an account on Leap AI and have installed their Python SDK.

pip install leap-ai

Importing Necessary Libraries

The next step involves importing the necessary Python libraries. We’ll need the leap module for interacting with Leap AI, and numpy and midiutil for handling musical data

import leap
from midiutil.MidiFile import MIDIFile
import numpy as np

Authenticate and Initialize Leap AI

To use the Leap AI platform, you need to authenticate and initialize it using your account credentials.

leap.init("YOUR_LEAP_AI_API_KEY")

Replace “YOUR_LEAP_AI_API_KEY” with your actual API key from Leap AI.

Selecting the Model

We’re aiming for music generation, so we’ll be using a model trained for that purpose. The GPT-Music model is ideal for this.

model = leap.Model("GPT-Music")

Generating the Music

To generate music, we provide the model with a ‘seed’ or ‘prompt’, a short sequence of notes from which the model starts composing.

prompt = "C4 E4 G4"
output = model.generate(prompt, length=500, temperature=1.0)

In this code, length defines the number of notes to generate, and temperature controls the randomness of note selection.

Converting Output to MIDI

The AI outputs a string of notes. We need to convert this to a MIDI file to listen to our AI-generated music.

def create_midi_file(output, filename):
notes = output.split(' ')
midi_file = MIDIFile(1)
track = 0
time = 0
midi_file.addTrackName(track, time, "AI Music")
midi_file.addTempo(track, time, 120)

for note in notes:
note_name = note[:-1]
octave = int(note[-1])
midi_file.addNote(track, 0, note_name, octave, time, 1)
time += 1

with open(filename, 'wb') as f:
midi_file.writeFile(f)

create_midi_file(output, "ai_music.mid")

This function converts the note string into MIDI format, creating a track and adding the notes sequentially.

Tuning the Model for Specific Music Genre

Leap AI allows you to fine-tune the pre-trained model according to your requirements. If you want to generate music of a specific genre, you can feed your model a corpus of songs from that genre to tailor its composition style.

# Load the dataset
dataset = leap.Dataset.from_files("path_to_your_midi_files")

# Fine-tune the model
model.fine_tune(dataset)

Remember, the better your dataset represents the genre, the more accurately your model will generate music in that style.

Experimenting with Parameters

As you may have noticed, the generate function has parameters that you can tweak to influence the output. length determines the number of notes in the output, while temperature determines the randomness of note selection.

Experimenting with these parameters can lead to interesting results. For instance, a higher temperature can make your AI compose more experimental and unexpected sequences, while a lower temperature can make it stick closer to the original patterns. It’s all about finding the balance that suits your musical taste.

output = model.generate(prompt, length=1000, temperature=0.5)

Scheduling Regular Training

AI models improve with training. To keep your model up-to-date and make it more effective, schedule regular training sessions using new data. This can help the model learn from the latest music trends and keep your AI music compositions fresh.

# Define a schedule for training
schedule = leap.TrainingSchedule(weeks=2)

# Start the training schedule
model.start_training(schedule)

Evaluating the Model

Finally, it’s important to regularly evaluate the performance of your model. Leap AI provides tools for this as well, enabling you to see how your model is performing and where it could be improved.

# Test the model on a separate dataset
test_dataset = leap.Dataset.from_files("path_to_your_test_midi_files")

# Evaluate the model
evaluation = model.evaluate(test_dataset)

Conclusion

By following this guide, you have ventured into the exhilarating world of AI-generated music. The combination of the Leap AI platform and your creativity can lead to the birth of new musical pieces that may have otherwise never seen the light of day. Keep experimenting, keep training your model, and most importantly, keep enjoying the process. After all, music is about expression and enjoyment, so don’t let the technicalities overshadow the fun part: creating something unique. Happy composing with AI!

--

--

Javier Calderon Jr
Javier Calderon Jr

Written by Javier Calderon Jr

CTO, Tech Entrepreneur, Mad Scientist, that has a passion to Innovate Solutions that specializes in Web3, Artificial Intelligence, and Cyber Security

No responses yet