{"categories":[{"label":"Multimedia","url":"https://skillfed.io/packages/category/multimedia"},{"label":"Sound/Audio","url":"https://skillfed.io/packages/category/multimedia-sound-audio"}],"enrichment":{"capability":"Provides a high-level Python interface to PulseAudio's libpulse library for synchronous control of audio devices, sinks, sources, and volume management.","skillfed_tags":["audio-control","system-integration","linux-only"],"use_cases":["Build a volume control CLI or GUI tool that adjusts sink/source levels and switches default devices.","Monitor PulseAudio server events (device additions, removals, property changes) in a synchronous event loop.","Automate audio routing and profile switching across multiple sound cards and HDMI outputs.","Integrate PulseAudio control into a larger audio application without managing low-level C bindings.","Query audio device properties and capabilities (channel maps, profiles, proplist metadata) for diagnostics."],"what_it_does":"pulsectl is a ctypes-based wrapper around PulseAudio's libpulse C library, exposing mixer-like controls and introspection operations through a blocking, synchronous Python API. It lets you query and manipulate audio devices (sinks, sources, cards), adjust per-channel volume, set default devices, and listen for server state changes\u2014all without submitting audio samples or managing playback directly.\n\nThe module represents audio objects as thin wrappers around C structs (e.g., PulseSinkInfo, PulseVolumeInfo) and exposes most operations as methods on a Pulse client instance. Volume is handled as a list of per-channel floats in a 0\u201365536 range, with 1.0 representing normal level and >1.0 for software boost. For async use cases, the maintainer recommends pulsectl-asyncio instead.","worth_installing":"Yes, if you need synchronous PulseAudio control on Linux and can accept dormant maintenance. The package is stable (MIT licensed, no known vulnerabilities, low install friction), but has not been actively developed for over 1.5 years. Use it for straightforward mixer tasks; for async patterns or active development, evaluate pulsectl-asyncio or direct libpulse bindings instead."},"id":"pulsectl","links":{"html":"https://skillfed.io/packages/pulsectl","md":"https://skillfed.io/packages/pulsectl.md","pypi":"https://pypi.org/project/pulsectl/"},"maintenance":{"status":"dormant"},"meta":{"latest_release":"2024-12-26","license_spdx":null,"license_treatment":"permissive","name":"pulsectl","python_support":"unspecified","summary":"Python high-level interface and ctypes-based bindings for PulseAudio (libpulse)"},"popularity":{"monthly_downloads":164916,"position":10535,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"24.12.0"}
