RaveForce  by chaosprint

Reinforcement learning toolkit for AI music generation

Created 7 years ago
250 stars

Top 100.0% on SourcePulse

GitHubView on GitHub
Project Summary

RaveForce provides a Python toolkit for defining and experimenting with music generation tasks using reinforcement learning, inspired by the OpenAI Gym interface. It targets researchers and developers interested in AI-driven music composition and live coding practices, offering a streamlined approach to training agents capable of synthesizing musical loops and mimicking target sounds. The primary benefit is simplifying the complex process of building and training agents for intricate audio synthesis tasks.

How It Works

RaveForce employs a reinforcement learning architecture where a deep neural network agent receives current states (synthesized audio) and outputs parameters for live coding code. This code is then processed by the Glicol live coding engine, written in Rust and accessed via WebAssembly, to perform non-real-time synthesis. The agent receives rewards based on the similarity between the synthesized audio and a target, and observations, to iteratively improve its performance. This approach bridges the gap between simulation and real-world music practices like live coding, with the switch to Glicol from SuperCollider motivated by improved synthesis speed and browser accessibility.

Quick Start & Requirements

  • Install: pip install raveforce
  • Prerequisites: Familiarity with Glicol syntax is essential. Further details and syntax guides are available at the Glicol website: https://glicol.org.
  • Usage: The package provides a gym.make interface for defining musical tasks, as demonstrated in the provided Python example, allowing users to reset environments, sample actions, and step through the generation process.

Highlighted Details

  • OpenAI Gym-style API for defining and training music generation agents.
  • Integration with Glicol, a Rust-based live coding language accessible via WebAssembly for synthesis.
  • Supports defining custom musical tasks, including parameter tweaking for synths and mimicking target audio samples.
  • Referenced in the paper: "RaveForce: A Deep Reinforcement Learning Environment for Music Generation." (Lan et al., 2019).

Maintenance & Community

No specific details regarding maintainers, community channels (e.g., Discord, Slack), or roadmaps were provided in the README snippet.

Licensing & Compatibility

The Glicol branch (main) is licensed under the MIT License, which is permissive for commercial use and integration into closed-source projects. The older SuperCollider branch was licensed under GPL-3.0.

Limitations & Caveats

The project previously switched from SuperCollider to Glicol due to speed limitations in non-real-time synthesis, suggesting that performance may still be a consideration compared to true real-time audio engines. Users must acquire familiarity with the Glicol live coding language to effectively utilize the toolkit.

Health Check
Last Commit

3 years ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
1 stars in the last 30 days

Explore Similar Projects

Starred by Luis Capelo Luis Capelo(Cofounder of Lightning AI), Patrick von Platen Patrick von Platen(Author of Hugging Face Diffusers; Research Engineer at Mistral), and
2 more.

muzic by microsoft

0.1%
5k
AI research project for music understanding and generation
Created 4 years ago
Updated 1 year ago
Starred by Aravind Srinivas Aravind Srinivas(Cofounder of Perplexity), Dan Abramov Dan Abramov(Core Contributor to React; Coauthor of Redux, Create React App), and
11 more.

jukebox by openai

0.0%
8k
Generative model for music research paper
Created 6 years ago
Updated 1 year ago
Feedback? Help us improve.