Transform any link into music with AI - simple as that!
Project description
🎵 Link2ABC
Transform any link into ABC music notation with AI - simple as that!
Link2ABC converts any web content into beautiful ABC music notation using AI. From blog posts to ChatGPT conversations, from simple melodies to professional compositions with ChatMusician AI.
⚡ Quick Start
# Install and create music in 30 seconds
pip install link2abc
link2abc https://app.simplenote.com/p/bBs4zY
# Output: melody.abc, melody.mid
🎯 Features
- 🎵 Universal: Works with any web content
- 🤖 AI-Powered: ChatMusician integration for professional composition
- 🧱 Modular: Progressive enhancement architecture
- 💰 Cost-Effective: Cloud execution with auto-terminate
- 🎼 Multi-Format: ABC, MIDI, MP3, SVG output
- 📝 Langfuse Ready: Custom prompt injection
📦 Installation Tiers
🥇 Core (Basic)
Perfect for getting started - 99% installation success rate.
pip install link2abc
# Size: ~15MB | Success: 99% | Features: Basic rule-based generation
🤖 AI Enhanced (Recommended)
Professional music generation with ChatMusician.
pip install link2abc[ai]
# Size: ~50MB | Success: 95% | Features: + ChatMusician, Claude, ChatGPT
🧠 Neural Processing
Advanced audio synthesis with Orpheus integration.
pip install link2abc[neural]
# Size: ~2GB | Success: 80% | Features: + Neural synthesis, Voice input
🌍 Everything
All features including cloud execution.
pip install link2abc[full]
# Size: ~3GB | Success: 70% | Features: + Cloud execution, Voice bridge
🎵 Usage Examples
Basic Usage
# Convert any link to music
link2abc https://app.simplenote.com/p/bBs4zY
# Specify output format
link2abc https://app.simplenote.com/p/bBs4zY --format abc,midi,mp3
# Custom output location
link2abc https://app.simplenote.com/p/bBs4zY --output my_song
AI Enhancement
# Use ChatMusician (recommended)
link2abc https://app.simplenote.com/p/bBs4zY --ai chatmusician
# Compare different AI models
link2abc https://app.simplenote.com/p/bBs4zY --ai chatmusician,claude,chatgpt
# Custom AI prompts
link2abc https://app.simplenote.com/p/bBs4zY --prompt-file custom_prompts.yaml
Advanced Features
# Neural audio synthesis
link2abc https://app.simplenote.com/p/bBs4zY --neural
# Voice input (requires microphone)
link2abc --voice "Create a happy melody about friendship"
# Cloud execution (cost-optimized)
link2abc https://app.simplenote.com/p/bBs4zY --cloud --cost-optimize
🐍 Python API
Simple API
import linktune
# One-liner conversion
result = linktune.link_to_music("https://app.simplenote.com/p/bBs4zY")
print(f"Generated: {result['abc_file']}")
# With AI enhancement
result = linktune.link_to_music(
"https://app.simplenote.com/p/bBs4zY",
ai="chatmusician",
format=["abc", "midi", "mp3"]
)
Advanced Pipeline
from linktune import Pipeline
from linktune.blocks.ai import ChatMusicianBlock
# Custom pipeline
pipeline = Pipeline([
linktune.ContentExtractor(),
linktune.ContentAnalyzer(),
ChatMusicianBlock(),
linktune.FormatConverter()
])
# Process with custom prompts
pipeline.inject_prompt("musical_style", "Create jazz-influenced composition")
result = pipeline.run("https://app.simplenote.com/p/bBs4zY")
🤖 ChatMusician Integration
Link2ABC features first-class ChatMusician integration for professional music generation.
Setup
# Install with ChatMusician support
pip install link2abc[ai]
# Set API key
export CHATMUSICIAN_API_KEY="your-key-here"
# Generate professional music
link2abc https://app.simplenote.com/p/bBs4zY --ai chatmusician
Features
- Professional Harmonies: Advanced chord progressions
- Style Transfer: Jazz, Classical, Celtic, Folk adaptations
- Ornamental Expressions: Grace notes, trills, articulations
- Multi-Format Output: ABC, MIDI, MP3, SVG generation
📝 Langfuse Prompt Customization
Inject custom prompts at any pipeline stage:
# prompts.yaml
content_analysis: |
Analyze this content for musical elements:
- Identify emotional tone and energy level
- Extract key themes and narrative arc
- Suggest appropriate musical genre
chatmusician_composition: |
Generate ABC notation that:
- Reflects the emotional journey
- Uses sophisticated harmonic progressions
- Includes ornamental expressions
- Maintains musical coherence
link2abc https://app.simplenote.com/p/bBs4zY --prompt-file prompts.yaml
⚙️ Configuration
Environment Variables
# AI Services
export CHATMUSICIAN_API_KEY="your-key"
export OPENAI_API_KEY="your-key"
export ANTHROPIC_API_KEY="your-key"
# Langfuse
export LANGFUSE_PUBLIC_KEY="your-key"
# Cloud Execution
export AWS_ACCESS_KEY_ID="your-key"
export AWS_SECRET_ACCESS_KEY="your-secret"
Config File
# ~/.link2abc/config.yaml
ai:
default: "chatmusician"
chatmusician:
endpoint: "https://api.chatmusician.com"
model: "latest"
output:
default_format: ["abc", "midi"]
directory: "~/Music/Link2ABC"
cloud:
auto_terminate: true
cost_optimize: true
instance_type: "t3.medium"
🧪 Testing Your Installation
# Test basic functionality
link2abc --test
# Test AI features (if installed)
link2abc --test-ai
# Test with real content
link2abc https://app.simplenote.com/p/bBs4zY
# Check available features
python -c "import linktune; print(linktune.get_installed_tiers())"
📊 Performance & Cost
Execution Speed
- Basic: 0.1-0.5 seconds
- AI Enhanced: 1-5 seconds
- Neural: 5-15 seconds
- Cloud: 0.3-2 seconds + startup
Cloud Cost (with auto-terminate)
- Basic Processing: $0.001-0.01 per conversion
- AI Generation: $0.01-0.05 per conversion
- Neural Synthesis: $0.05-0.20 per conversion
🔧 Development
Setup Development Environment
git clone https://github.com/jgwill/link2abc
cd link2abc
pip install -e ".[dev]"
pre-commit install
Run Tests
# Basic tests
pytest tests/unit/
# Integration tests (requires AI keys)
pytest tests/integration/
# Full test suite
pytest
Contributing
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
📚 Documentation
- Full Documentation: https://link2abc.readthedocs.io
- API Reference: https://link2abc.readthedocs.io/api/
- Examples: https://github.com/jgwill/link2abc/tree/main/examples
- Tutorials: https://link2abc.readthedocs.io/tutorials/
🤝 Support
- Issues: https://github.com/jgwill/link2abc/issues
- Discussions: https://github.com/jgwill/link2abc/discussions
- Documentation: https://link2abc.readthedocs.io
- Email: jerry@gmusic.dev
📄 License
MIT License - see LICENSE file for details.
🎵 Examples
Check out the examples directory for:
- Basic link conversion examples
- AI-enhanced composition tutorials
- Custom pipeline implementations
- Langfuse prompt templates
- Integration with other tools
Transform any link into ABC music notation with AI - simple as that! 🎵✨
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
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 link2abc-0.1.0.tar.gz.
File metadata
- Download URL: link2abc-0.1.0.tar.gz
- Upload date:
- Size: 60.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58bf3d7cce37d7d814453ab28d3dc18ba3dd49ddcbbc26e5b0b9747c3ba065f3
|
|
| MD5 |
6693048c9b22f3b0e733a0a1a4dc4339
|
|
| BLAKE2b-256 |
b008160aea35a0808e621c970468cc8d4b6504dbb22ec6bf2899f669058522c4
|
File details
Details for the file link2abc-0.1.0-py3-none-any.whl.
File metadata
- Download URL: link2abc-0.1.0-py3-none-any.whl
- Upload date:
- Size: 53.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8af36fcab7e6f43227bf405c963eca8d8e126aa3a40bee3bc8b567f056cf5ab8
|
|
| MD5 |
f569083c324e34809806c01cf1e2b715
|
|
| BLAKE2b-256 |
bbd490199aab85854789e57f1934c7033e48d12766b2d9bc552d64e46018e0f6
|