Skip to main content

ALSA C library bindings using ctypes for Python

Project description

pythonalsa

Python bindings for ALSA (Advanced Linux Sound Architecture) using ctypes. Control audio mixers, volume levels, and mute states directly from Python without external dependencies.

Features

  • Pure Python implementation using ctypes (no compiled extensions)
  • Control volume levels (raw values and percentages)
  • Mute/unmute audio channels
  • List all available sound cards and mixer elements
  • Clean, Pythonic API with context managers

Requirements

  • Python 3.9 or higher
  • Linux system with ALSA (libasound.so.2)

Installation

pip install pythonalsa

Usage

from pythonalsa import Card, Mixer, list_cards

# Get the default card
card = Card()
print(f"Default card: {card.name}")

# Or get a specific card
card = Card(0)

# List all cards
for card in list_cards():
    print(f"Card {card.index}: {card.name}")

# List mixers for a card
for mixer in card.list_mixers():
    print(f"Mixer: {mixer.name}")

# Get a specific mixer
mixer = card.get_mixer("Master")

# Or create mixer directly
mixer = Mixer(card=card, name="Master")

# Volume control
print(f"Current volume: {mixer.volume_percent}%")
mixer.volume_percent = 75

# Raw volume
min_vol, max_vol = mixer.volume_range
print(f"Volume range: {min_vol} - {max_vol}")
mixer.volume = 23

# Mute control
print(f"Muted: {mixer.muted}")
mixer.muted = True
mixer.muted = False

API Reference

See docstrings for Card, Mixer, list_cards, and ALSAError.

License

GPL-3.0-or-later

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

pythonalsa-0.1.0.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

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

pythonalsa-0.1.0-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file pythonalsa-0.1.0.tar.gz.

File metadata

  • Download URL: pythonalsa-0.1.0.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythonalsa-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e042309c44d5de2746696547fba37449965d7ed052ee876fc6e5a60013b2e01d
MD5 fd05b66542bb67040ea6eb47fdd3f5e7
BLAKE2b-256 c71ffe384c67f2dedd513c31889b77532bcda6bb40139399170ce5831e4c4cd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythonalsa-0.1.0.tar.gz:

Publisher: publish.yml on 865charlesw/pythonalsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pythonalsa-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pythonalsa-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pythonalsa-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 76c64b7fb50d4a33ca8b322973c9f0239d5f348d2baab5645d300db7ddee7b85
MD5 8373736c74980fd260f854e383c95e27
BLAKE2b-256 d18d881536441eaeefd15e983d259471f48bec0734c95294b2c12a5f9565fb01

See more details on using hashes here.

Provenance

The following attestation bundles were made for pythonalsa-0.1.0-py3-none-any.whl:

Publisher: publish.yml on 865charlesw/pythonalsa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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