Turn free-form musical ideas into structured prompts for text-to-music workflows.
Project description
Text-to-Music Prompt Structurer
Turn free-form musical ideas into structured prompts for text-to-music workflows.
The package detects genre, mood, BPM, key, instruments, production details, language, voice type, vocal tone, and vocal technique. It has no runtime dependencies and requires Python 3.10 or later.
Install
python -m pip install text-to-music-prompt-structurer
Command line
text-to-music-prompt "neo soul with piano, warm breathy female alto vocals in Spanish, intimate and melismatic, in d minor, nostalgic, 92 bpm"
Output:
STYLE: Soul / Neo Soul
MOOD: Nostalgic, Warm
BPM: ~92
KEY: D Minor
INSTRUMENTS: Piano
PRODUCTION: Warm tone
VOCALS:
LANGUAGE: Spanish
VOICE TYPE: Female Lead, Alto
TONE: Warm, Breathy, Intimate
STYLE: Melismatic vocals
Python
from text_to_music_prompt_structurer import MusicPromptEngine, format_prompt
prompt = MusicPromptEngine().process(
"synthwave with 808, dark and dreamy, female vocals in English"
)
print(format_prompt(prompt))
Output:
STYLE: Synthwave
MOOD: Dark, Dreamy
INSTRUMENTS: 808 Bass
PRODUCTION: Dark tone
VOCALS:
LANGUAGE: English
VOICE TYPE: Female Lead
TONE: Dark
process() returns a MusicPrompt object, so applications can use each detected value directly instead of parsing the formatted text. Its fields cover:
- Musical direction:
genre,subgenre,mood,energy,tempo,bpm, andkey. - Arrangement and sound:
instruments,production,rhythm,structure, andera. - Vocal direction:
language,voice_type,vocal_tone, andvocal_style.
format_prompt() renders only the detected fields as a ready-to-use structured prompt.
Development
git clone https://github.com/edujbarrios/text-to-music-prompt-structurer.git
cd text-to-music-prompt-structurer
python -m pip install -e ".[dev]"
python -m pytest
ruff check .
See CONTRIBUTING.md to add vocabularies or detection strategies. Release history is available in CHANGELOG.md.
License
Copyright © 2026 Eduardo J. Barrios.
This project is licensed under the Mozilla Public License 2.0. MPL 2.0 is a file-level copyleft license: modifications to covered source files must remain available under MPL 2.0, while those files may be combined with code under other licenses. See NOTICE for attribution details.
[!NOTE] This is an unofficial tool and is not affiliated with, endorsed by, or connected to Suno AI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file text_to_music_prompt_structurer-0.1.1.tar.gz.
File metadata
- Download URL: text_to_music_prompt_structurer-0.1.1.tar.gz
- Upload date:
- Size: 31.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58a6508de317ea0fba42fc45336399a06ff41a8764f1e52b87c317aa7bb2390e
|
|
| MD5 |
1032c5d1b4d3671a79b4d8b4ddc50d8c
|
|
| BLAKE2b-256 |
e6c082c0ba3ba5904fcb1472677dbe80fbb16df19df1ad1ba143699969de771d
|
File details
Details for the file text_to_music_prompt_structurer-0.1.1-py3-none-any.whl.
File metadata
- Download URL: text_to_music_prompt_structurer-0.1.1-py3-none-any.whl
- Upload date:
- Size: 34.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a734d1b2e462c04c1e9a250afdfa378ab79c9f7e8d7e582a83a3acd20b2f0f4
|
|
| MD5 |
6e38c5d4efedafb8126055bf02bc2b83
|
|
| BLAKE2b-256 |
c815202e5183c0a2987b693fc2d84de63f329f84588278673f794e5510a073c4
|