link2abc


Namelink2abc JSON
Version 0.2.1 PyPI version JSON
download
home_pageNone
SummaryTransform any link or clipboard content into music with AI - mobile-friendly!
upload_time2025-07-21 18:26:42
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords abc ai chatmusician link-to-abc music notation orpheus web-to-music
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ๐ŸŽต Link2ABC

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

[![PyPI version](https://badge.fury.io/py/link2abc.svg)](https://badge.fury.io/py/link2abc)
[![Python Support](https://img.shields.io/pypi/pyversions/link2abc.svg)](https://pypi.org/project/link2abc/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/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

```bash
# 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.

```bash
pip install link2abc
# Size: ~15MB | Success: 99% | Features: Basic rule-based generation
```

### ๐Ÿค– AI Enhanced (Recommended)  
Professional music generation with ChatMusician.

```bash
pip install link2abc[ai]
# Size: ~50MB | Success: 95% | Features: + ChatMusician, Claude, ChatGPT
```

### ๐Ÿง  Neural Processing
Advanced audio synthesis with Orpheus integration.

```bash
pip install link2abc[neural] 
# Size: ~2GB | Success: 80% | Features: + Neural synthesis, Voice input
```

### ๐ŸŒ Everything
All features including cloud execution.

```bash
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:

```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
```python
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
```python
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
```bash
# 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:

```yaml
# 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
```

```bash
link2abc https://app.simplenote.com/p/bBs4zY --prompt-file prompts.yaml
```

## โš™๏ธ Configuration

### Environment Variables
```bash
# 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
```yaml
# ~/.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

```bash
# 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
```bash
git clone https://github.com/jgwill/link2abc
cd link2abc
pip install -e ".[dev]"
pre-commit install
```

### Run Tests
```bash
# 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

- **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](LICENSE) file for details.

## ๐ŸŽต Examples

Check out the [examples directory](examples/) 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!** ๐ŸŽตโœจ
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "link2abc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "abc, ai, chatmusician, link-to-abc, music, notation, orpheus, web-to-music",
    "author": null,
    "author_email": "\"Jerry G.Music Assembly\" <jerry@gmusic.dev>",
    "download_url": "https://files.pythonhosted.org/packages/36/47/e1dd32da72d9d63552f2b8b61b160d06e2908362c1431778a8f195aae1bc/link2abc-0.2.1.tar.gz",
    "platform": null,
    "description": "# \ud83c\udfb5 Link2ABC\n\n**Transform any link into ABC music notation with AI - simple as that!**\n\n[![PyPI version](https://badge.fury.io/py/link2abc.svg)](https://badge.fury.io/py/link2abc)\n[![Python Support](https://img.shields.io/pypi/pyversions/link2abc.svg)](https://pypi.org/project/link2abc/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nLink2ABC 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.\n\n## \u26a1 Quick Start\n\n```bash\n# Install and create music in 30 seconds\npip install link2abc\nlink2abc https://app.simplenote.com/p/bBs4zY\n# Output: melody.abc, melody.mid\n```\n\n## \ud83c\udfaf Features\n\n- **\ud83c\udfb5 Universal**: Works with any web content\n- **\ud83e\udd16 AI-Powered**: ChatMusician integration for professional composition\n- **\ud83e\uddf1 Modular**: Progressive enhancement architecture  \n- **\ud83d\udcb0 Cost-Effective**: Cloud execution with auto-terminate\n- **\ud83c\udfbc Multi-Format**: ABC, MIDI, MP3, SVG output\n- **\ud83d\udcdd Langfuse Ready**: Custom prompt injection\n\n## \ud83d\udce6 Installation Tiers\n\n### \ud83e\udd47 Core (Basic)\nPerfect for getting started - 99% installation success rate.\n\n```bash\npip install link2abc\n# Size: ~15MB | Success: 99% | Features: Basic rule-based generation\n```\n\n### \ud83e\udd16 AI Enhanced (Recommended)  \nProfessional music generation with ChatMusician.\n\n```bash\npip install link2abc[ai]\n# Size: ~50MB | Success: 95% | Features: + ChatMusician, Claude, ChatGPT\n```\n\n### \ud83e\udde0 Neural Processing\nAdvanced audio synthesis with Orpheus integration.\n\n```bash\npip install link2abc[neural] \n# Size: ~2GB | Success: 80% | Features: + Neural synthesis, Voice input\n```\n\n### \ud83c\udf0d Everything\nAll features including cloud execution.\n\n```bash\npip install link2abc[full]\n# Size: ~3GB | Success: 70% | Features: + Cloud execution, Voice bridge\n```\n\n### \ud83d\udcf1 Mobile/Termux Installation (Android)\n\nLink2ABC works perfectly on Android/Termux! The core package uses mobile-friendly dependencies:\n\n```bash\n# On Termux (Android)\npkg update && pkg upgrade\npkg install python python-pip\npip install link2abc\n\n# Optional: For faster parsing (if you have build tools)\npip install link2abc[parsing]\n\n# Test installation\nlink2abc --test\n```\n\n**Why mobile-friendly?** Link2ABC automatically detects your environment:\n- \u2705 **Termux/Android**: Uses built-in `html.parser` (no compilation needed)\n- \u26a1 **Desktop/Server**: Uses `lxml` for faster parsing (when available)\n- \ud83d\udd04 **Automatic fallback**: Seamless experience across all platforms\n\n## \ud83c\udfb5 Usage Examples\n\n### Basic Usage\n```bash\n# Convert any link to music\nlink2abc https://app.simplenote.com/p/bBs4zY\n\n# Specify output format\nlink2abc https://app.simplenote.com/p/bBs4zY --format abc,midi,mp3\n\n# Custom output location\nlink2abc https://app.simplenote.com/p/bBs4zY --output my_song\n```\n\n### AI Enhancement\n```bash\n# Use ChatMusician (recommended)\nlink2abc https://app.simplenote.com/p/bBs4zY --ai chatmusician\n\n# Compare different AI models\nlink2abc https://app.simplenote.com/p/bBs4zY --ai chatmusician,claude,chatgpt\n\n# Custom AI prompts\nlink2abc https://app.simplenote.com/p/bBs4zY --prompt-file custom_prompts.yaml\n```\n\n### Advanced Features\n```bash\n# Neural audio synthesis\nlink2abc https://app.simplenote.com/p/bBs4zY --neural\n\n# Voice input (requires microphone)\nlink2abc --voice \"Create a happy melody about friendship\"\n\n# Cloud execution (cost-optimized)\nlink2abc https://app.simplenote.com/p/bBs4zY --cloud --cost-optimize\n```\n\n## \ud83d\udc0d Python API\n\n### Simple API\n```python\nimport linktune\n\n# One-liner conversion\nresult = linktune.link_to_music(\"https://app.simplenote.com/p/bBs4zY\")\nprint(f\"Generated: {result['abc_file']}\")\n\n# With AI enhancement\nresult = linktune.link_to_music(\n    \"https://app.simplenote.com/p/bBs4zY\", \n    ai=\"chatmusician\",\n    format=[\"abc\", \"midi\", \"mp3\"]\n)\n```\n\n### Advanced Pipeline\n```python\nfrom linktune import Pipeline\nfrom linktune.blocks.ai import ChatMusicianBlock\n\n# Custom pipeline\npipeline = Pipeline([\n    linktune.ContentExtractor(),\n    linktune.ContentAnalyzer(),\n    ChatMusicianBlock(),\n    linktune.FormatConverter()\n])\n\n# Process with custom prompts\npipeline.inject_prompt(\"musical_style\", \"Create jazz-influenced composition\")\nresult = pipeline.run(\"https://app.simplenote.com/p/bBs4zY\")\n```\n\n## \ud83e\udd16 ChatMusician Integration\n\nLink2ABC features first-class ChatMusician integration for professional music generation.\n\n### Setup\n```bash\n# Install with ChatMusician support\npip install link2abc[ai]\n\n# Set API key\nexport CHATMUSICIAN_API_KEY=\"your-key-here\"\n\n# Generate professional music\nlink2abc https://app.simplenote.com/p/bBs4zY --ai chatmusician\n```\n\n### Features\n- **Professional Harmonies**: Advanced chord progressions\n- **Style Transfer**: Jazz, Classical, Celtic, Folk adaptations\n- **Ornamental Expressions**: Grace notes, trills, articulations\n- **Multi-Format Output**: ABC, MIDI, MP3, SVG generation\n\n## \ud83d\udcdd Langfuse Prompt Customization\n\nInject custom prompts at any pipeline stage:\n\n```yaml\n# prompts.yaml\ncontent_analysis: |\n  Analyze this content for musical elements:\n  - Identify emotional tone and energy level\n  - Extract key themes and narrative arc\n  - Suggest appropriate musical genre\n\nchatmusician_composition: |\n  Generate ABC notation that:\n  - Reflects the emotional journey\n  - Uses sophisticated harmonic progressions\n  - Includes ornamental expressions\n  - Maintains musical coherence\n```\n\n```bash\nlink2abc https://app.simplenote.com/p/bBs4zY --prompt-file prompts.yaml\n```\n\n## \u2699\ufe0f Configuration\n\n### Environment Variables\n```bash\n# AI Services\nexport CHATMUSICIAN_API_KEY=\"your-key\"\nexport OPENAI_API_KEY=\"your-key\"\nexport ANTHROPIC_API_KEY=\"your-key\"\n\n# Langfuse\nexport LANGFUSE_PUBLIC_KEY=\"your-key\"\n\n# Cloud Execution\nexport AWS_ACCESS_KEY_ID=\"your-key\"\nexport AWS_SECRET_ACCESS_KEY=\"your-secret\"\n```\n\n### Config File\n```yaml\n# ~/.link2abc/config.yaml\nai:\n  default: \"chatmusician\"\n  chatmusician:\n    endpoint: \"https://api.chatmusician.com\"\n    model: \"latest\"\n  \noutput:\n  default_format: [\"abc\", \"midi\"]\n  directory: \"~/Music/Link2ABC\"\n\ncloud:\n  auto_terminate: true\n  cost_optimize: true\n  instance_type: \"t3.medium\"\n```\n\n## \ud83e\uddea Testing Your Installation\n\n```bash\n# Test basic functionality\nlink2abc --test\n\n# Test AI features (if installed)\nlink2abc --test-ai\n\n# Test with real content\nlink2abc https://app.simplenote.com/p/bBs4zY\n\n# Check available features\npython -c \"import linktune; print(linktune.get_installed_tiers())\"\n```\n\n## \ud83d\udcca Performance & Cost\n\n### Execution Speed\n- **Basic**: 0.1-0.5 seconds\n- **AI Enhanced**: 1-5 seconds  \n- **Neural**: 5-15 seconds\n- **Cloud**: 0.3-2 seconds + startup\n\n### Cloud Cost (with auto-terminate)\n- **Basic Processing**: $0.001-0.01 per conversion\n- **AI Generation**: $0.01-0.05 per conversion\n- **Neural Synthesis**: $0.05-0.20 per conversion\n\n## \ud83d\udd27 Development\n\n### Setup Development Environment\n```bash\ngit clone https://github.com/jgwill/link2abc\ncd link2abc\npip install -e \".[dev]\"\npre-commit install\n```\n\n### Run Tests\n```bash\n# Basic tests\npytest tests/unit/\n\n# Integration tests (requires AI keys)\npytest tests/integration/ \n\n# Full test suite\npytest\n```\n\n### Contributing\n1. Fork the repository\n2. Create a feature branch\n3. Add tests for new functionality\n4. Ensure all tests pass\n5. Submit a pull request\n\n## \ud83d\udcda Documentation\n\n- **Full Documentation**: https://link2abc.readthedocs.io\n- **API Reference**: https://link2abc.readthedocs.io/api/\n- **Examples**: https://github.com/jgwill/link2abc/tree/main/examples\n- **Tutorials**: https://link2abc.readthedocs.io/tutorials/\n\n## \ud83e\udd1d Support\n\n- **Issues**: https://github.com/jgwill/link2abc/issues\n- **Discussions**: https://github.com/jgwill/link2abc/discussions\n- **Documentation**: https://link2abc.readthedocs.io\n- **Email**: jerry@gmusic.dev\n\n## \ud83d\udcc4 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## \ud83c\udfb5 Examples\n\nCheck out the [examples directory](examples/) for:\n- Basic link conversion examples\n- AI-enhanced composition tutorials  \n- Custom pipeline implementations\n- Langfuse prompt templates\n- Integration with other tools\n\n---\n\n**Transform any link into ABC music notation with AI - simple as that!** \ud83c\udfb5\u2728",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Transform any link or clipboard content into music with AI - mobile-friendly!",
    "version": "0.2.1",
    "project_urls": {
        "Changelog": "https://github.com/jgwill/link2abc/blob/main/CHANGELOG.md",
        "Documentation": "https://link2abc.readthedocs.io",
        "Homepage": "https://github.com/jgwill/link2abc",
        "Issues": "https://github.com/jgwill/link2abc/issues",
        "Repository": "https://github.com/jgwill/link2abc"
    },
    "split_keywords": [
        "abc",
        " ai",
        " chatmusician",
        " link-to-abc",
        " music",
        " notation",
        " orpheus",
        " web-to-music"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "08718b050c099422497f01b8afbae1fe912207998243f7b0d4eb16550578ee6c",
                "md5": "34cbfa7a8a907b9050ab0a6247c2128c",
                "sha256": "f82656cb54fd4a8112d6caa3b9ca3f70eb53bfa37187876d8539da5cfeaecba6"
            },
            "downloads": -1,
            "filename": "link2abc-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "34cbfa7a8a907b9050ab0a6247c2128c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 70733,
            "upload_time": "2025-07-21T18:26:41",
            "upload_time_iso_8601": "2025-07-21T18:26:41.079422Z",
            "url": "https://files.pythonhosted.org/packages/08/71/8b050c099422497f01b8afbae1fe912207998243f7b0d4eb16550578ee6c/link2abc-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3647e1dd32da72d9d63552f2b8b61b160d06e2908362c1431778a8f195aae1bc",
                "md5": "44e0d72e743335945af9904e8f8cb7ab",
                "sha256": "1b4cd8499869de28bf2e14aef741dd41dec62154dfaaffd4c1c7d7cdab3d76b2"
            },
            "downloads": -1,
            "filename": "link2abc-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "44e0d72e743335945af9904e8f8cb7ab",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 88716,
            "upload_time": "2025-07-21T18:26:42",
            "upload_time_iso_8601": "2025-07-21T18:26:42.629911Z",
            "url": "https://files.pythonhosted.org/packages/36/47/e1dd32da72d9d63552f2b8b61b160d06e2908362c1431778a8f195aae1bc/link2abc-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-21 18:26:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jgwill",
    "github_project": "link2abc",
    "github_not_found": true,
    "lcname": "link2abc"
}
        
Elapsed time: 1.28481s