# ๐ต Link2ABC
**Transform any link into ABC music notation with AI - simple as that!**
[](https://badge.fury.io/py/link2abc)
[](https://pypi.org/project/link2abc/)
[](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[](https://badge.fury.io/py/link2abc)\n[](https://pypi.org/project/link2abc/)\n[](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"
}