# basskit

Biblioteca Python profesional para [BASS Audio Library](https://www.un4seen.com/) de Un4seen.

Wrapper completo, modular y nativo para Python 3.13+ en Windows 64 bits.

## Caracteristicas

- **33 DLL incluidas** (bass.dll + 32 add-ons) en x64
- **Bindings de bajo nivel** con argtypes/restype estrictos para todas las funciones
- **API de alto nivel** en espanol: `Reproductor`, `Grabador`, `Mezclador`, `LectorTags`
- **Constantes, estructuras y callbacks** completos para todos los add-ons
- **Diagnostico integrado** con `basskit.diagnostico()`
- **Carga perezosa** de DLL (solo se cargan cuando se usan)
- **Gestion de callbacks** segura contra garbage collection

## Instalacion

```bash
pip install basskit-0.2.0-py3-none-any.whl
```

O en modo desarrollo:

```bash
pip install -e .
```

## Uso rapido

```python
import basskit

# Diagnostico del sistema
basskit.imprimir_diagnostico()

# Reproduccion de alto nivel
from basskit.alto_nivel import Reproductor, inicializar, liberar

inicializar()
rep = Reproductor()
rep.abrir("cancion.mp3")
rep.reproducir()
# rep.volumen = 0.5
# rep.posicion = 30.0
rep.detener()
liberar()
```

## Acceso de bajo nivel

```python
from basskit.dlls.bass import bass
from basskit.constantes.bass import *

bass.BASS_Init(-1, 44100, 0, 0, None)
stream = bass.BASS_StreamCreateFile(0, b"archivo.mp3", 0, 0, 0)
bass.BASS_ChannelPlay(stream, 0)
# ...
bass.BASS_StreamFree(stream)
bass.BASS_Free()
```

## Add-ons disponibles

| Modulo | DLL | Uso |
|--------|-----|-----|
| BASS_FX | bass_fx.dll | Tempo, pitch, reverse, BPM, 20 efectos DSP |
| BASSmix | bassmix.dll | Mezclador multicanal, splitting |
| BASSenc | bassenc.dll | Codificacion de audio, casting |
| BASSMIDI | bassmidi.dll | Reproduccion MIDI con soundfonts SF2 |
| BASSWASAPI | basswasapi.dll | Salida WASAPI (baja latencia) |
| BASSWMA | basswma.dll | Streaming y encoding WMA |
| BASSCD | basscd.dll | Audio CD |
| BASSloud | bassloud.dll | Medicion de volumen EBU R128 |
| Tags | tags.dll | Lectura avanzada de metadatos |
| BASSFLAC | bassflac.dll | Soporte FLAC |
| BASSOPUS | bassopus.dll | Soporte Opus |
| + 22 mas | ... | AAC, AC3, ALAC, APE, DSD, HLS, MPC, OFR, SPX, TTA, WebM, WV, VST, SSL, encoders |

## Estructura del proyecto

```
basskit/
  src/basskit/
    __init__.py          # Punto de entrada
    _version.py          # Version
    cargador.py          # Carga dinamica de DLL
    excepciones.py       # Jerarquia de errores
    rutas.py             # Resolucion de rutas
    tipos.py             # Tipos ctypes base
    constantes/          # Constantes de BASS y add-ons
    estructuras/         # Estructuras ctypes
    callbacks/           # Tipos de callback
    dlls/                # Bindings de bajo nivel
    alto_nivel/          # API Pythonica
    herramientas/        # Diagnostico y utilidades
    data/dlls/x64/       # 33 archivos DLL
  examples/              # Ejemplos de uso
  tests/                 # Tests
  docs/                  # Documentacion
```

## Licencia

El codigo de basskit es MIT.
Las DLL de BASS y add-ons pertenecen a Un4seen Developments Ltd.
Consulte https://www.un4seen.com/ para las condiciones de licencia de BASS.
