Skip to main content

🎼 ABC ↔ MusicXML Transformation Engine with Redis Stream Processing

Project description

🎼 ABCWeaver - ABC ↔ MusicXML Transformation Engine

ABCWeaver is a powerful Python package for bidirectional transformation between ABC notation and MusicXML format, enhanced with Redis stream processing capabilities through the nyro package.

✨ Features

  • Bidirectional Conversion: ABC ↔ MusicXML with full musical integrity
  • Redis Streams: Enhanced processing through nyro package integration
  • CLI Interface: Intuitive command-line tools for all operations
  • Customer Processing: Stream-based customer-specific enhancements
  • Validation: Comprehensive syntax checking for both formats
  • Batch Operations: Process multiple files efficiently

🚀 Installation

pip install abcweaver

For development:

pip install abcweaver[dev]

📖 Quick Start

Create MusicXML from ABC

abcweaver create "C D E F G A B c" --output melody.musicxml --title "Simple Scale"

Insert ABC into existing MusicXML

abcweaver insert score.musicxml "G2 A2 B2 c2" --part "Melody" --instrument "Flute"

Extract ABC from MusicXML

abcweaver extract score.musicxml --part "P1" --output melody.abc

Stream Processing with Redis

# Send ABC to Redis stream
abcweaver stream-send "C D E F" --stream "song_evolution" 

# Consume and process
abcweaver stream-consume --stream "song_evolution" --target output.musicxml

🏗️ Architecture

ABCWeaver is built with modular architecture:

  • Core: ABC parsing, MusicXML handling, format conversion
  • Streams: Redis integration via nyro package
  • Commands: CLI interface for all operations
  • Utils: Helper functions and constants

🔧 Dependencies

  • click: CLI framework
  • lxml: XML processing
  • nyro: Redis stream management
  • pydantic: Data validation
  • rich: Beautiful CLI output

🎼 Use Cases

  • Music Composition: Convert ABC notation to professional MusicXML scores
  • Score Analysis: Extract ABC patterns from existing MusicXML files
  • Stream Processing: Real-time musical data transformation via Redis
  • Batch Conversion: Process large collections of musical notation
  • Educational Tools: Bridge between simple ABC and complex MusicXML formats

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

📡 G.Music Assembly

Part of the G.Music Assembly ecosystem - transforming musical creativity through collaborative AI orchestration.

♠️🌿🎸🧵 Assembly Mode Engaged

📄 License

MIT License - see LICENSE file for details.

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

abcweaver-0.1.1.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

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

abcweaver-0.1.1-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file abcweaver-0.1.1.tar.gz.

File metadata

  • Download URL: abcweaver-0.1.1.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for abcweaver-0.1.1.tar.gz
Algorithm Hash digest
SHA256 13148e54d3d3467294105b1d790042e7b13c8ee5d78d044353eed927a45892ba
MD5 26855e61d838205ac4aef00ab9804abc
BLAKE2b-256 78a804ee94b038d2eb1680449502c87754c3a7911baf99a17984eea8dd9ec535

See more details on using hashes here.

File details

Details for the file abcweaver-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: abcweaver-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 23.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for abcweaver-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7b5f324e825dace0309bee72e8fd5d0a8265de0f2b414ecfb7c917dbeb6f5b1e
MD5 570a0c9e5dcee34e3163463cccb577bb
BLAKE2b-256 ed79b5a47e321e0c501a0bf39d246140264b87b6825fb41bc8209eb654cac8b3

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