Input music creation requirements and let 4 AI Agents automatically complete lyrics, composition, and arrangement.
Supports pop, rock, folk, electronic, and more music styles — style-agnostic.
| Module | Function | Output |
|---|---|---|
| 🎤 Magic (Director) | Task assignment, Agent coordination, quality control | Creation plan + progress tracking |
| 📝 Word (Lyricist) | Lyrics creation, rhyme optimization, emotional expression | Complete lyrics + structure analysis |
| 🎼 Kiki (Composer) | Melody creation, chord arrangement, rhythm design | Numbered notation + chord charts |
| 🎹 Cat (Arranger) | Arrangement production, instrument selection, mixing suggestions | Arrangement plan + MIDI files |
Figure 1: Music creation input form
Figure 3: Lyrics creation and sentiment analysis
Figure 4: Numbered notation and chord arrangement
┌─────────────────────────────────────────────────────────────────┐
│ Frontend │
│ Python + PyQt6 + Qt Widgets │
│ │
│ ┌──────────┐ ┌────────────┐ ┌──────────┐ ┌──────────────┐ │
│ │Main Window│ │AgentStatus │ │ ScoreView│ │SettingsDialog│ │
│ └────┬─────┘ └────────────┘ └──────────┘ └──────────────┘ │
│ │ Agent Orchestration │
├───────┼─────────────────────────────────────────────────────────┤
│ │ │
├───────┼─────────────────────────────────────────────────────────┤
│ ▼ Backend │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Orchestrator │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │
│ │ │ │ Magic │ │ Word │ │ Kiki │ │ │ │
│ │ │ │Director │ │Lyricist │ │Composer │ │ │ │
│ │ │ └────┬────┘ └────┬────┘ └────┬────┘ │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ └────────────┴────────────┘ │ │ │
│ │ │ │ │ │ │
│ │ │ ▼ │ │ │
│ │ │ ┌────────────────┐ │ │ │
│ │ │ │ Cat │ (depends on all) │ │ │
│ │ │ │ Arranger │ │ │ │
│ │ │ └────────────────┘ │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────── AI Router ───────────────────────┐ │ │
│ │ │ OpenAI │ Anthropic │ DeepSeek │ Custom LLM │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────── Services ────────────────────────┐ │ │
│ │ │ MCP Manager │ Skill Registry │ Database │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
MagicMusic/
├── data/ # Database files (created at runtime)
│ └── magicmusic.db
├── dist/ # Build output
│ └── MagicMusic.exe
├── docs/
│ ├── mcp-guide.md # MCP usage guide
│ └── api-setup.md # API configuration guide
├── static/
│ └── Screenshot/
│ ├── main_interface.png
│ ├── agent_status.png
│ ├── lyrics_result.png
│ └── score_result.png
├── agents/
│ ├── __init__.py
│ ├── base_agent.py # Agent base class
│ ├── orchestrator.py # Orchestrator
│ ├── magic.py # Director Agent
│ ├── word.py # Lyricist Agent
│ ├── kiki.py # Composer Agent
│ └── cat.py # Arranger Agent
├── ai/
│ ├── __init__.py
│ ├── ai_router.py # AI router
│ ├── llm_client.py # LLM client
│ └── providers/
│ ├── openai_provider.py
│ ├── anthropic_provider.py
│ └── deepseek_provider.py
├── core/
│ ├── __init__.py
│ └── music_theory.py # Music theory utilities
├── db/
│ ├── __init__.py
│ ├── database.py # Database management
│ └── models.py # Data models
├── memory/
│ ├── __init__.py
│ └── memory_manager.py # Memory management
├── skills/
│ ├── __init__.py
│ ├── skill_registry.py # Skill registry
│ ├── search_web.py # Web search
│ ├── read_url.py # URL reading
│ └── compare_sources.py # Source comparison
├── mcp/
│ ├── __init__.py
│ ├── config.py # MCP configuration
│ ├── client.py # MCP client
│ ├── manager.py # MCP manager
│ └── store.py # MCP storage
├── ui/
│ ├── __init__.py
│ ├── main_window.py # Main window
│ └── admin/
│ ├── api_config.py # API configuration
│ ├── agent_manager.py # Agent management
│ ├── skill_manager.py # Skill management
│ ├── mcp_manager.py # MCP management
│ └── memory_manager.py # Memory management
├── .gitignore
├── main.py # Program entry
├── README.md # This document (English)
├── README.zh-CN.md # Chinese documentation
├── RELEASE_NOTES_v1.0.0.md # Release notes
└── requirements.txt # Python dependencies
| Layer | Technology | Version |
|---|---|---|
| Frontend | Python + PyQt6 | 3.14+ / 6.x |
| Backend | Python + SQLite | 3.14+ / 3.x |
| AI Integration | OpenAI Compatible API | Multiple |
| Build | PyInstaller | 6.19.0 |
| Database | SQLite3 | Built-in |
# 1. Download executable
# Visit https://github.com/YOUR_USERNAME/MagicMusic/releases/latest
# Download MagicMusic.exe
# 2. Double-click to run
MagicMusic.exe
# 3. Configure AI service
# Settings → AI Service Configuration → Add provider information# 1. Clone repository
git clone https://github.com/YOUR_USERNAME/MagicMusic.git
cd MagicMusic
# 2. Install dependencies
pip install -r requirements.txt
# 3. Run program
python main.pyMain Interface: Desktop application (no port)
Configuration Steps:
- Click menu Settings → AI Service Configuration
- Click "Add Provider"
- Fill in information:
Provider Name: Kimi-K2.5
Usage Type: LLM - Text Generation
API URL: https://api.moonshot.cn/v1
Model: kimi-k2.5
API Key: sk-xxxxxxxxxxxxxxxx
- Click "Test" to verify configuration
- Configuration is automatically saved
Supported AI Providers:
- ✅ Kimi (Moonshot AI)
- ✅ DeepSeek
- ✅ Qwen (Alibaba Cloud)
- ✅ ERNIE Bot (Baidu)
- ✅ Any OpenAI compatible API
1. Input Requirements
Create a pop song about "Spring"
Target audience: Young people
Emotional tone: Warm, hopeful
Tempo: Moderate
2. Agent Collaboration
Magic (Director) → Analyze requirements, assign tasks
↓
Word (Lyricist) → Create lyrics (verse + chorus)
↓
Kiki (Composer) → Create melody (notation + chords)
↓
Cat (Arranger) → Arrangement production (MIDI + instruments)
3. Output Results
✅ Complete lyrics (with structure analysis)
✅ Numbered notation (with chord markings)
✅ MIDI files
✅ Arrangement plan
AI Service Configuration Table (api_providers)
CREATE TABLE api_providers (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
provider_type TEXT NOT NULL DEFAULT 'llm',
config TEXT NOT NULL DEFAULT '{}',
enabled INTEGER NOT NULL DEFAULT 1,
created_at TEXT NOT NULL DEFAULT (datetime('now'))
);MCP Configuration Table (mcp_configs)
CREATE TABLE mcp_configs (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
transport_type TEXT NOT NULL DEFAULT 'stdio',
command TEXT,
url TEXT,
enabled INTEGER NOT NULL DEFAULT 1
);| Plugin Type | Status | Description |
|---|---|---|
stdio |
✅ | Local process communication |
http |
✅ | HTTP API calls |
websocket |
✅ | WebSocket bidirectional communication |
Configuration Example:
{
"name": "github_mcp",
"transport_type": "stdio",
"command": "npx",
"args": ["@modelcontextprotocol/server-github"]
}| Version | Status | Focus |
|---|---|---|
| v0.0.1 | ✅ | Project skeleton + basic Agents |
| v0.1.0 | ✅ | MCP manager + UI interface |
| v1.0.0 | ✅ | Complete features + configuration persistence |
| v1.1.0 | 🔜 | More music style support |
| v1.5.0 | 📋 | MIDI export + audio generation |
| v2.0.0 | 📋 | Historical project library + industry benchmarks |
Copyright © 2026 Magic&Kiki. All rights reserved.
- Magic (Director): Task assignment, progress tracking, quality control
- Word (Lyricist): Lyrics creation, rhyme optimization, sentiment analysis
- Kiki (Composer): Melody generation, chord arrangement, rhythm design
- Cat (Arranger): Arrangement production, instrument selection, MIDI generation
- Complete external tool integration support
- Supports STDIO/HTTP/WebSocket transport
- Graphical configuration interface
- Instant save and load
- Pluggable skill architecture
- Web search, URL reading, source comparison
- Skill registration and management
- Dynamic loading and unloading
- Local SQLite database
- AI service configuration instant save
- MCP configuration instant save
- Configuration persists after restart
- Development: Magic&Kiki
- Technical Support: Python + PyQt6
- Release Notes - Detailed version information
- Build Report - Technical details
- GitHub Release Guide - How to publish
A: No! The packaged exe file is standalone and requires no dependencies.
A: No. All configurations are saved to the local database and automatically loaded on restart.
A: All OpenAI compatible API providers, such as Kimi, DeepSeek, Qwen, etc.
A: Please submit issues in GitHub Issues and we'll handle them promptly.
Current Version: 1.0.0
Last Updated: 2026-04-08
Status: ✅ Stable
