Skip to main content

AIMAT: AI Music Artist Toolkit - Simplified AI Music workflows.

Project description

AI Music Artist Toolkit (AIMAT)

Status PyPI

⚠️ AIMAT is currently under active development.
Features and setup steps may change frequently. Expect some instability!

A modular framework for experimenting with AI in music

The AI Music Artist Toolkit (AIMAT) is an environment designed to make working with AI in music easier and more practical for artists, musicians, and creative technologists. By bringing different generative models into a single, reusable workflow, AIMAT lowers some of the technical barriers that might otherwise make these tools difficult to access or experiment with.

AIMAT is also about preserving, repurposing, and combining interesting AI music projects, keeping them in one place where they can be explored in a practical, creative setting. It’s designed to help artists experiment with AI-generated sound, explore different parameters, and find new possibilities they might not have discovered otherwise.

Currently, AIMAT supports:

  • Musika — Deep learning model for generating high-quality audio.
  • Basic Pitch — Automatic Music Transcription (audio-to-MIDI).
  • MIDI-DDSP — Audio generation model for synthesizing realistic instrument sounds from MIDI.

It integrates seamlessly with Max/MSP, PD, Max for Live, and other OSC-enabled applications, making AI-generated music easy to incorporate into your creative workflows.


🚀 Features

  • ✔️ Modular and Expandable – Easily add and switch between different AI models.
  • ✔️ OSC Integration – Trigger AI music generation via Max/MSP or any OSC-compatible software.
  • ✔️ Docker-based – Simplifies setup and isolates environments.
  • ✔️ Interactive CLI – Easy-to-use commands for managing AIMAT.
  • ✔️ Cross-Platform – Works seamlessly on Windows, macOS, and Linux.

📥 Installation & Setup

1️⃣ Prerequisites


2️⃣ Setting Up AIMAT

Once you have Docker and Conda installed, follow these steps:

🐍 Create a dedicated Conda environment:

conda create -n aimat python=3.10
conda activate aimat

Install AIMAT via pip:

pip install aimat

3️⃣ Quick Start

Start AIMAT with a single command (listener runs in the background by default):

aimat start
  • Starts Docker containers with your AI models.
  • Launches the OSC listener in the background, ready to receive messages.

aimat_start_top

📌 Attached Listener Mode (Optional)

If you prefer to run the OSC listener in attached mode (foreground with continuous feedback), use:

aimat start --attached-listener

Use Ctrl+C to exit this mode.

To stop AIMAT (either mode):

aimat stop

🛠️ What Happens During Setup?

Checks for Docker & Conda – Ensures all dependencies are installed.
Configures Docker Environment – Automatically downloads and sets up AI music models.
Starts OSC Listener – Listens for incoming OSC messages to trigger music generation.


🎵 OSC Usage Examples

Use OSC messages from Max/MSP, Pure Data, or any OSC-compatible software to trigger AIMAT's AI models.

The AIMAT OSC listener expects messages on port 5005 at your computer's local IP address.

OSC Message Syntax

Send OSC messages in the following format:

/trigger_model <model_type> [additional_parameters]
  • <model_type>: The AI model you're triggering (musika, midi_ddsp, or basic_pitch).
  • [additional_parameters]: Specific parameters for each model (examples below).

Examples:

🔊 Musika (Audio Generation)

Generate audio with Musika:

/trigger_model musika 0.8 10 techno
  • 0.8: Truncation (randomness, higher = more random).
  • 10: Duration (seconds).
  • techno: Model preset (techno or misc).

🎻 MIDI-DDSP (Instrument Synthesis)

Synthesize realistic sounds from MIDI:

/trigger_model midi_ddsp your-midi-file.mid violin
  • your-midi-file.mid: MIDI file (must be in input folder).
  • violin: Instrument (violin, viola, oboe, horn, tuba, bassoon, saxophone, trumpet, flute, clarinet, cello, guitar, bass, double bass).

🎹 Basic Pitch (Audio-to-MIDI Conversion)

Convert audio into MIDI:

/trigger_model basic_pitch path/to/audio-file.wav
  • path/to/audio-file.wav: Audio file path to convert.

🎛️ Simple AIMAT Musika generation (MAX/MSP example):

aimat_musika_example


Ensure your input files (audio or MIDI) are correctly placed in AIMAT's designated input directories.

📂 Output Directories

Generated files are stored by default in your home directory under:

  • Musika: ~/aimat/musika/output
  • MIDI-DDSP: ~/aimat/midi_ddsp/output
  • Basic Pitch: ~/aimat/basic_pitch/output

⚠️ Troubleshooting

  • Listener or Docker Issues: Restart with:
aimat restart
  • Missing Generated Files: Check container logs:
docker logs <container-name>
  • Listener Logs: View detailed listener activity:
aimat logs

🔜 Future Plans

  • 🟢 GUI interface for easier model management and monitoring.
  • 🟢 Integration of additional AI music models.
  • 🟢 Expanded OSC command customization.

📜 License

MIT License © Eric Browne

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aimat-0.1.6.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aimat-0.1.6-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file aimat-0.1.6.tar.gz.

File metadata

  • Download URL: aimat-0.1.6.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for aimat-0.1.6.tar.gz
Algorithm Hash digest
SHA256 bee96d95bd3de3ab5630d442b71f663562c83fce20434c39fec3ed034580a55d
MD5 b7d6f1af0374364a3a37582e33573408
BLAKE2b-256 d267d1b3d150d6cc1361bef9403f7c15129ba2eab6477a64c9b024303ee32b96

See more details on using hashes here.

File details

Details for the file aimat-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: aimat-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for aimat-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9178b579ec161b88855aabf8ed3f5a8056e5d787c31aac75527fad016ef46a45
MD5 2fe30bd18593cee73babd67d6367fb26
BLAKE2b-256 5fe93445e7b23fc5b6354be27f2b970d0876a65b3ce3b6cb3400b9cd1f3108a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page