Metadata-Version: 2.4
Name: aiovban-pyaudio
Version: 0.2.8
Summary: A PyAudio wrapper for aiovban
Author-email: William Best <wmbest2@gmail.com>
Project-URL: Homepage, https://github.com/wmbest2/aiovban
Project-URL: Issues, https://github.com/wmbest2/aiovban/issues
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: aiovban>=1.1.0
Requires-Dist: pyaudio
Provides-Extra: cli
Requires-Dist: setproctitle; extra == "cli"
Requires-Dist: uvloop>=0.19.0; sys_platform != "win32" and extra == "cli"

# aiovban-pyaudio

A high-performance PyAudio bridge for the `aiovban` ecosystem.

## Overview

`aiovban-pyaudio` provides the necessary tools and libraries to bridge VBAN network audio with your local sound hardware. It is built on top of `aiovban` and leverages its zero-copy architecture for stable, high-bitrate audio streaming with minimal CPU overhead.

## Features

- **High-Performance Bridge**: Leverages `memoryview` and zero-copy patterns for efficient audio transfer.
- **Asynchronous Loop Support**: Full support for `uvloop` for low-latency network handling.
- **Command-Line Tools**: Ready-to-use binaries for receiving and sending audio.
- **Dynamic Resampling**: Handles stream format changes (channels, sample rate) in real-time.

## Installation

```sh
pip install aiovban-pyaudio[cli]
```

## CLI Usage

### Receiving Audio
Connect to a remote VBAN stream and play it through your local speakers:

```sh
# aiovban-receiver <host>/<stream_name>
aiovban-receiver 192.168.1.50/Stream1 --output-device "Speakers"
```

### Sending Audio
Capture audio from your local microphone and send it over the network:

```sh
aiovban-sender --address 192.168.1.50 --stream-name "Mic" --input-device "Microphone"
```

## Advanced Usage

You can use the `VBANAudioPlayer` and `VBANAudioSender` classes directly in your own `asyncio` applications for deep integration.

```python
from aiovban_pyaudio import VBANAudioPlayer
from aiovban.asyncio import AsyncVBANClient

# ... register device and get stream ...
player = VBANAudioPlayer(stream=stream)
await player.listen()
```

## License

This project is licensed under the MIT License.
