Skip to main content

Transform any link or clipboard content into music with AI - mobile-friendly!

Project description

🎵 Link2ABC

Transform any link into ABC music notation with AI - simple as that!

PyPI version Python Support License: MIT

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

📱 Mobile/Termux Installation (Android)

Link2ABC works perfectly on Android/Termux! The core package uses mobile-friendly dependencies:

# On Termux (Android)
pkg update && pkg upgrade
pkg install python python-pip
pip install link2abc

# Optional: For faster parsing (if you have build tools)
pip install link2abc[parsing]

# Test installation
link2abc --test

Why mobile-friendly? Link2ABC automatically detects your environment:

  • Termux/Android: Uses built-in html.parser (no compilation needed)
  • Desktop/Server: Uses lxml for faster parsing (when available)
  • 🔄 Automatic fallback: Seamless experience across all platforms

🎵 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

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Ensure all tests pass
  5. Submit a pull request

📚 Documentation

🤝 Support

📄 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

link2abc-0.2.0.tar.gz (88.7 kB view details)

Uploaded Source

Built Distribution

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

link2abc-0.2.0-py3-none-any.whl (70.7 kB view details)

Uploaded Python 3

File details

Details for the file link2abc-0.2.0.tar.gz.

File metadata

  • Download URL: link2abc-0.2.0.tar.gz
  • Upload date:
  • Size: 88.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for link2abc-0.2.0.tar.gz
Algorithm Hash digest
SHA256 befb7ee910e6fe8df5e02e184a1e0de694ccc10915c14c6afd8a545056dab289
MD5 881862a3b3d1166ffdb1c1dd4b3f042f
BLAKE2b-256 0d64f175044ab9fe84e19ee8c3a7a1a1cade4dcdbbf720709704edd23c3f8a95

See more details on using hashes here.

File details

Details for the file link2abc-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: link2abc-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 70.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for link2abc-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2fadebc606e770fe8318683788f9ec608d9f67dfd0c7abdc0377de82263ff2ce
MD5 b770e65d0b4eb446268e3dd9f6e4a383
BLAKE2b-256 8b5fb4da0ebbd0f4655c9e13e75c7b1e414dd458388413f171cb967aaf7e5668

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