Skip to main content

Minimal Python bindings for miniaudio

Project description

cyminiaudio

Minimal Python bindings for miniaudio (v0.11.24).

A Cython-based audio library providing high-level Python APIs for audio playback, recording, effects processing, and real-time audio applications.

Features

  • Audio Playback - High-level engine for sound playback with volume, pan, pitch control
  • 3D Spatial Audio - Position, direction, velocity, distance attenuation, Doppler effect
  • Audio Decoding - Decode MP3, WAV, FLAC, and other formats to PCM
  • Audio Encoding - Record and save audio to WAV files
  • Waveform Generation - Sine, square, triangle, sawtooth waveforms
  • Noise Generation - White, pink, and brownian noise
  • Audio Filters - Low-pass, high-pass, band-pass, notch, peak, shelf filters
  • Effects - Delay with wet/dry/decay control
  • Data Conversion - Sample rate conversion, channel conversion, format conversion
  • Volume Control - Panning, fading, gain with smoothing
  • Node Graph - Build custom audio processing pipelines
  • Resource Manager - Async audio loading and caching
  • Ring Buffers - Lock-free buffers for real-time audio
  • Audio Buffers - In-memory buffers for procedural audio
  • Low-Level Device Access - Direct device control for advanced use cases
  • Device Enumeration - List and select audio devices

Installation

pip install cyminiaudio

To build from source, requires Python 3.10+ and a C compiler.

# Clone the repository
git clone https://github.com/user/cyminiaudio.git
cd cyminiaudio

# Install with uv (recommended)
make build

# Or install with pip
pip install .

Quick Start

Simple Playback

import cyminiaudio as cma
import time

# Create an audio engine and play a sound
with cma.Engine() as engine:
    sound = engine.play("music.mp3")
    sound.volume = 0.5
    time.sleep(5)  # Play for 5 seconds

Sound Control

import cyminiaudio as cma

with cma.Engine() as engine:
    with cma.Sound(engine, "music.mp3") as sound:
        sound.volume = 0.8
        sound.pan = -0.5      # Pan left
        sound.pitch = 1.2     # Higher pitch
        sound.looping = True
        sound.start()
        time.sleep(10)

Waveform Generation

import cyminiaudio as cma

# Generate a sine wave
waveform = cma.Waveform(
    waveform_type=cma.WaveformType.SINE,
    amplitude=0.5,
    frequency=440.0
)
data = waveform.read(1024)  # Read 1024 frames

Audio Filters

import cyminiaudio as cma

# Apply a low-pass filter
lpf = cma.LowPassFilter(cutoff=1000.0, order=2)
waveform = cma.Waveform(frequency=440.0)
data = waveform.read(1024)
filtered = lpf.process(data)

Node Graph Processing

import cyminiaudio as cma

# Create a processing graph with filters
with cma.NodeGraph(channels=2) as graph:
    lpf = cma.LPFNode(graph, cutoff=1000.0)
    delay = cma.DelayNode(graph, delay_ms=250.0, decay=0.5)
    # Connect nodes and process audio...

Audio Recording

import cyminiaudio as cma

# Record audio to a WAV file
with cma.Encoder("output.wav", channels=2, sample_rate=48000) as encoder:
    waveform = cma.Waveform(frequency=440.0)
    for _ in range(100):
        data = waveform.read(1024)
        encoder.write(data)

Data Conversion

import cyminiaudio as cma

# Resample audio from 44100 to 48000 Hz
resampler = cma.LinearResampler(
    sample_rate_in=44100,
    sample_rate_out=48000
)
output = resampler.process(input_data)

# Convert mono to stereo
converter = cma.ChannelConverter(channels_in=1, channels_out=2)
stereo = converter.process(mono_data)

Volume and Panning

import cyminiaudio as cma

# Apply panning
panner = cma.Panner()
panner.pan = -0.5  # Pan left
output = panner.process(data)

# Apply volume with smoothing (avoids clicks)
gainer = cma.Gainer(channels=2)
gainer.set_gain(0.5)
output = gainer.process(data)

# Convert between linear and dB
db = cma.volume_linear_to_db(0.5)  # -6.02 dB
linear = cma.volume_db_to_linear(-6.0)  # ~0.5

3D Spatial Audio

import cyminiaudio as cma

# Create a spatializer for 3D audio
listener = cma.SpatializerListener(channels=2)
listener.position = (0.0, 0.0, 0.0)
listener.direction = (0.0, 0.0, -1.0)

spatializer = cma.Spatializer(channels=2, listener=listener)
spatializer.position = (5.0, 0.0, -3.0)  # Sound position
output = spatializer.process(input_data)

Device Enumeration

# List available audio devices
devices = cyminiaudio.list_devices()
for dev in devices['playback']:
    print(f"{dev.name} (default: {dev.is_default})")

Low-Level Device Access

# Direct device access for advanced use cases
with cyminiaudio.Device(
    device_type=cyminiaudio.DeviceType.PLAYBACK,
    sample_rate=48000,
    period_size_ms=20
) as device:
    device.start()
    # ... handle audio callbacks ...
    device.stop()

Architecture

                        +-------------------+
                        |      Engine       |  High-level playback
                        |  (owns Device)    |
                        +--------+----------+
                                 |
                        +--------v----------+
                        |      Sound        |  Per-file playback control
                        | volume, pan, pitch|  (holds ref to Engine)
                        +-------------------+

    +------------+     +-------------------+     +-------------+
    |  Waveform  |     |    NodeGraph      |     |   Decoder   |
    |  Noise     +---->| DataSourceNode    +---->|   Encoder   |
    | AudioBuffer|     | SplitterNode      |     +-------------+
    +------------+     | LPFNode, HPFNode  |
      Data Sources     | DelayNode, ...    |     +-------------+
                       +-------------------+     |   Device    |
                        Processing Pipeline      |   Context   |
                                                 +-------------+
    +------------+     +-------------------+      Low-level I/O
    | LowPassF.  |     | Panner, Fader     |
    | HighPassF. |     | Gainer            |     +-------------+
    | BandPassF. |     | Spatializer       |     | RingBuffer  |
    | NotchF.    |     | SpatializerList.  |     | PCMRingBuf  |
    +------------+     +-------------------+     +-------------+
     Standalone         Volume / Spatial        Real-time Buffers
      Filters

Layer overview:

  • Engine / Sound: Highest-level API. Engine manages an audio device internally; Sound objects control individual file playback. Sounds hold a reference to their Engine, preventing premature garbage collection.
  • Data Sources: Waveform, Noise, AudioBuffer, and Decoder all implement the miniaudio data source interface. They can be read directly or fed into a NodeGraph via DataSourceNode.
  • NodeGraph: Build custom processing pipelines by connecting nodes (filters, splitters, delays) together. Audio flows from source nodes through processing nodes to the graph endpoint.
  • Standalone Filters: Process PCM data in-place without a NodeGraph. Useful for one-shot batch processing.
  • Device / Context: Low-level device access for advanced use cases (custom callbacks, device enumeration).
  • GIL Release: All I/O and DSP methods (filter processing, decoding, encoding, device start/stop) release the GIL during C calls, enabling true multithreaded audio processing.

API Reference

Core Classes

Class Description
Engine High-level audio engine for playback
Sound Individual sound with full parameter control
Decoder Decode audio files to PCM
Encoder Encode PCM to audio files
Waveform Procedural waveform generator
Noise Procedural noise generator

Filters

Class Description
LowPassFilter Attenuates frequencies above cutoff
HighPassFilter Attenuates frequencies below cutoff
BandPassFilter Passes frequencies within a range
NotchFilter Attenuates a specific frequency
PeakFilter Peaking EQ for boost/cut
LowShelfFilter Boosts/cuts below threshold
HighShelfFilter Boosts/cuts above threshold

Effects

Class Description
Delay Audio delay with wet/dry/decay

Data Conversion

Class Description
LinearResampler Sample rate conversion
ChannelConverter Channel count conversion (mono/stereo)
DataConverter General format/rate/channel conversion

Volume and Panning

Class Description
Panner Stereo panning control
Fader Volume fading over time
Gainer Gain control with smoothing

3D Audio / Spatialization

Class Description
SpatializerListener Listener position/orientation
Spatializer 3D audio positioning and attenuation

Audio Buffers

Class Description
AudioBuffer In-memory audio buffer
AudioBufferRef Non-owning reference to audio data
PagedAudioBuffer Large audio buffer with paged memory

Low-Level Device Access

Class Description
Device Direct audio device access
Context Device context for enumeration

Node Graph

Class Description
NodeGraph Audio processing graph container
SplitterNode Splits audio to multiple outputs
LPFNode Low-pass filter node
HPFNode High-pass filter node
BPFNode Band-pass filter node
DelayNode Delay effect node
NotchNode Notch filter node
PeakNode Peak EQ node
LoShelfNode Low shelf filter node
HiShelfNode High shelf filter node
BiquadNode Generic biquad filter node
DataSourceNode Data source as graph node

Resource Management

Class Description
ResourceManager Async audio loading and caching
ResourceDataSource Loaded audio data source
RingBuffer Lock-free byte buffer
PCMRingBuffer Lock-free PCM frame buffer

Utility Functions

Function Description
get_version() Get miniaudio version string
list_devices() List available audio devices
get_default_device() Get default playback/capture device
volume_linear_to_db() Convert linear volume to decibels
volume_db_to_linear() Convert decibels to linear volume
copy_pcm_frames() Copy PCM frames between buffers
mix_pcm_frames_f32() Mix PCM frames with volume
apply_volume_factor_pcm_frames() Apply volume in-place
copy_and_apply_volume_factor_pcm_frames() Copy and apply volume

Enums

Enum Values
Format U8, S16, S24, S32, F32
DeviceType PLAYBACK, CAPTURE, DUPLEX, LOOPBACK
WaveformType SINE, SQUARE, TRIANGLE, SAWTOOTH
NoiseType WHITE, PINK, BROWNIAN
AttenuationModel NONE, INVERSE, LINEAR, EXPONENTIAL
NodeState STARTED, STOPPED
PanMode BALANCE, PAN
Positioning ABSOLUTE, RELATIVE

Development

# Install dependencies
make sync

# Build
make build

# Run tests
make test

# Run all QA checks (test, lint, typecheck, format)
make qa

# Build wheel
make wheel

# Clean build artifacts
make clean

Requirements

  • Python 3.10+
  • Cython 3.0+
  • CMake 3.15+
  • C compiler (gcc, clang, MSVC)

Platform-specific

  • macOS: CoreAudio, AudioToolbox, CoreFoundation (included in system)
  • Linux: ALSA development libraries (libasound2-dev on Debian/Ubuntu)
  • Windows: Windows SDK

Troubleshooting

Linux: "Failed to initialize device" or ALSA errors

Install the ALSA development headers:

# Debian/Ubuntu
sudo apt-get install libasound2-dev

# Fedora/RHEL
sudo dnf install alsa-lib-devel

# Arch
sudo pacman -S alsa-lib

macOS: Microphone permission denied

macOS requires explicit microphone permission for capture devices. When using DeviceType.CAPTURE or DeviceType.DUPLEX, grant microphone access to your terminal app in System Settings > Privacy & Security > Microphone.

Build from source fails: "CMake not found"

cyminiaudio requires CMake 3.15+ and Cython 3.0+ to build from source:

pip install cmake cython
# or
brew install cmake  # macOS
sudo apt-get install cmake  # Linux

No sound output / wrong device

List available devices and select a specific one:

import cyminiaudio as cma

devices = cma.list_devices()
for dev in devices['playback']:
    print(f"{dev.name} (default: {dev.is_default})")

High latency or audio glitches

Reduce the period size for lower latency (at the cost of higher CPU usage):

device = cma.Device(
    device_type=cma.DeviceType.PLAYBACK,
    period_size_ms=10,  # Lower = less latency
    periods=2,          # Double buffering
)

Import error: "undefined symbol" or ABI mismatch

This typically means the installed wheel was built for a different Python version. Reinstall:

pip install --force-reinstall cyminiaudio

Or build from source for your exact Python version:

pip install --no-binary cyminiaudio cyminiaudio

License

MIT

See LICENSE file.

See Also

  • miniaudio - The underlying C audio library (v0.11.24)
  • pyminiaudio - Alternative cffi-based Python bindings

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

cyminiaudio-0.1.2.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

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

cyminiaudio-0.1.2-cp314-cp314-win_amd64.whl (497.6 kB view details)

Uploaded CPython 3.14Windows x86-64

cyminiaudio-0.1.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (593.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cyminiaudio-0.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (563.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cyminiaudio-0.1.2-cp314-cp314-macosx_11_0_arm64.whl (488.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

cyminiaudio-0.1.2-cp314-cp314-macosx_10_15_x86_64.whl (535.5 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

cyminiaudio-0.1.2-cp313-cp313-win_amd64.whl (481.4 kB view details)

Uploaded CPython 3.13Windows x86-64

cyminiaudio-0.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (591.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cyminiaudio-0.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (560.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cyminiaudio-0.1.2-cp313-cp313-macosx_11_0_arm64.whl (484.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cyminiaudio-0.1.2-cp313-cp313-macosx_10_13_x86_64.whl (534.4 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

cyminiaudio-0.1.2-cp312-cp312-win_amd64.whl (482.1 kB view details)

Uploaded CPython 3.12Windows x86-64

cyminiaudio-0.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (590.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cyminiaudio-0.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (556.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cyminiaudio-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (486.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cyminiaudio-0.1.2-cp312-cp312-macosx_10_13_x86_64.whl (534.8 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

cyminiaudio-0.1.2-cp311-cp311-win_amd64.whl (520.5 kB view details)

Uploaded CPython 3.11Windows x86-64

cyminiaudio-0.1.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (612.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cyminiaudio-0.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (577.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cyminiaudio-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (492.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cyminiaudio-0.1.2-cp311-cp311-macosx_10_9_x86_64.whl (530.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

cyminiaudio-0.1.2-cp310-cp310-win_amd64.whl (519.7 kB view details)

Uploaded CPython 3.10Windows x86-64

cyminiaudio-0.1.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (611.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cyminiaudio-0.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (577.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cyminiaudio-0.1.2-cp310-cp310-macosx_11_0_arm64.whl (491.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cyminiaudio-0.1.2-cp310-cp310-macosx_10_9_x86_64.whl (528.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file cyminiaudio-0.1.2.tar.gz.

File metadata

  • Download URL: cyminiaudio-0.1.2.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cyminiaudio-0.1.2.tar.gz
Algorithm Hash digest
SHA256 043d3199c9997f97cef29590efc8d25d944e90e54fb37bea056a5dcae0ffcb8b
MD5 0fcb05cc151fe4f7610e8e2c4737c158
BLAKE2b-256 a93cff5498a2e4e1972460e567a87a641d42552a19d1c97e8c811d58c730ad5d

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 1acda4f621d71a7a7221b1d38ae03f5c3abfc96cc0adb16bf58f9d15d7f7e965
MD5 1f7c728013577301f734a47239a7c532
BLAKE2b-256 c9fc9213ae1aef066c31feeb41fcf2046ea0def35c2635f4a412ce6d6598f9f0

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c4ea5a3b188515e54539b167d8e914e703485fdf1b2b3f56fac4ec4976f441e3
MD5 5c393b9e57ff9706c46f3f517efc9f5c
BLAKE2b-256 1bb92843fe726581eb4e1fecf3deb0568e0b040c18cfd2876ac5b88dea09c877

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4c4d493434823ee436801b62aed54a6608037e333046dae08237b478f127e9b1
MD5 b6de3fe0f46947316461a93f06516c4f
BLAKE2b-256 0da260c69604986963994f5635ae0a36f85f1bd6ac75e5f43bc9b4852da79f0c

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cac7962376ad472b8c683f62256d93a4546ccb38f4cb9cb7d0c543019b3b8aed
MD5 4e44f05013f3a7f9b19a2a3e07c74f35
BLAKE2b-256 b5a56114410d78f90d3fa89487b3e74c7d48788a7013fe891846a31c85ce7f70

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 eace0e9d61c843977e75760a5ab62e93c76d23223a7b7d421d2ebae619822330
MD5 3ca40479c4a75797a5e2196e9826c88e
BLAKE2b-256 d7eb5afb04249ac3c177d6d90ffb98ea207c7676d3c70605254f22cd6e149fb0

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 81fa2dddd0dc052c589c3a3fca914dfb6ea3f1c40e1fa66839f45691c50eddc0
MD5 94533c219e5664047aeb375a59ead709
BLAKE2b-256 b5625845df7aaca80c7850773f384c4a0452d92517292be44240896bcff1e950

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e1576cf1e8f70bdc6abace09708c7bcbf6a4509421c7c56cee8c851f16e73d5
MD5 085ec4a75a8fbd165f1021ce254105e1
BLAKE2b-256 0cb360425f6a3473498feee58b720733eebcb94a5daabfb447cee9f8a2225b00

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 663e93929c31c765b7d593c535adfcc768b9983ce94834d3de2789dc32db3c19
MD5 41503fbae1361cf1915eff3792cfd56b
BLAKE2b-256 5548d430731176cb76e4c3cadf90354994aa10e7d87c9a6b9b89b1aba728ba6d

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e897aacdc3c1def932797fd3abfff36dd0e29a37e94706da1398df3c4f1b848b
MD5 c7750a6c1711a8b84cc8e7727a7263af
BLAKE2b-256 01e4bb5fa1f933f8cc5a07fce2387c898509934b6f07882d1206f5555f758fc2

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ccf42422e0cb7959c4c4cd53a5519008c893f747bbb221a4cbf332787efe828f
MD5 b44a846dc1a6dc7a89330c937a5c69be
BLAKE2b-256 0d72bd212015efdc2ce7bcfe75be18621de9e028826f3aec86a182d7602c1685

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0cd69a85d4082c780320c44b233e82dd3a3e1fd4aac250426cead1c10085d408
MD5 0726b39622d7099e0673b4b8e5a643a4
BLAKE2b-256 afdf90f00bf680213bb42a9c634e621c429598978940940d59560d4e7e90aa62

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f04541323872fec7791bd24fb1c1ea49b853ee9eb9df74ba5d947efc60dc68af
MD5 6057a95f7a05d1dd122e1305a4af8ce0
BLAKE2b-256 e6729d5ceb9ec4d0bc61f54fbb81ebebcfa8d1ed3a1cc4125c397b1a13df6dbc

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cd0fc5d205da1c3b6253d0d2f56cc9a5c0250491cf2971534fb5bb1937f692ce
MD5 3cfb88fc7ff9c59cbf2fad846b7db49c
BLAKE2b-256 1565e1c452e40287e951c50a491c7956956a9c58021601fd1d2c24092e629e15

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a6d7be7fe91fa7ccdb5a0c9dcaa5f4668a2b2bdf47043028c75ff101f94ef3f0
MD5 8599d1b8bcf1b17301e1de37867e70fa
BLAKE2b-256 3e359c239b62510dce98a8f25a5ee630a20b76a74c18ac232860ae2e61519821

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 af1b98d418d8a9ebca8ed55f6489022e7a3ef44f3ef8587b346af9d2b9a90df5
MD5 50a5aa0866243763b9ee8349eb4cf23a
BLAKE2b-256 9ce8767fdfe0fbda9cdedcbbaed7a64579b144490ecd66ba98d472cc3ed8ed85

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b9dbe7b0908dc510c19609b70f84d63aa499dbb30a1b02a11917e7bf716db532
MD5 718ccfc04b08f176b3e7b7559a846839
BLAKE2b-256 b3386786d0241b8723a2a438f7bb82a0d9b4031d1f4fba0867a94062449acc8e

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 39d645336d9a5c706a9a464f1d72f1d28c167d1e706ab0b93fa74257941988de
MD5 6de94cad3f4cd0c408ef02ea650fe731
BLAKE2b-256 5c71453cb4f9afb3ffa3d542ddc42b807a54414a169d2b6d33cc625c648ebfae

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0b5a8b0b93fcfccfc1e491b1b74cd9478330c8b9b620e0982492ff2de894b508
MD5 466178f62c653ece2fbb7369f20fe0a7
BLAKE2b-256 bca258857e0af1743dfabb7fa57379a1f8d8d556b9927d01aeae3b16ff1c5ee7

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6fffdef0c77fc5987bed83cfc985b20603ebdd4a1b755b684db974cfe107fe17
MD5 9a79c8fc7e2226c34ccf1306f1beb608
BLAKE2b-256 0b1d28cf7eb634c784d7f95bc1a613cec0a4f4eac34ae169aeadacdbd865e412

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c3bce7f39073677d8dc40bf3ac70942114684aaabd6a9d7fcc9e0b53a93db74e
MD5 826f87bfabb797d8eec8afac4263f9dd
BLAKE2b-256 3f5a39aba2d946cc079903c5ed7bc86f3453cf51be0953b88c4343017dbfb837

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 68ff3729fe5a2c068abe76bd7fa295f557d980ce52722a42b8c77a4a10597310
MD5 3721000b2b3b3272db9cc2cf7a69b188
BLAKE2b-256 ed6e61ce7434611c6d8502f249d505645af506dd0a1b68d0a573cf6a13dc7cf9

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d7ac6e1b58628bf50f0b0ed3475b3799a633aee28e5fccf104222e5b81be7595
MD5 b4b5ecf876878b69a45f2fe15f820502
BLAKE2b-256 f2cf917090969d14bd2b9a64b9d2474150d082fa44d2e95852bf00f224ef30a6

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e579f409a1bb9658eccaa01153212e21f9f25a35790158c51e74d5897934e97c
MD5 36f24cfdd1207bf6994cc5cbc284e282
BLAKE2b-256 36f02af9f77f519e219c62b5594eb5a798506eadefdf299e24939e2afd7bf119

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 365809495b0f442b052f5b6fe209a662ad1d4b8eaf494e20b861983820d0a390
MD5 6cbfadc7d67fbed356326aa8fa8fc866
BLAKE2b-256 7bbcde8fc99401eba81c6efd9841249ad8014f0d1bfc3beb8fa58dffc47a1b89

See more details on using hashes here.

File details

Details for the file cyminiaudio-0.1.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyminiaudio-0.1.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 98af50f05b9a4f2ae3b2d71e0c7a1e1c4bacbe2517604ed77835f5a5ebe6e852
MD5 c8cbfe420c23a300ec68b149c142cd0f
BLAKE2b-256 f6308e25068166a6871060252ab995c3a4c371312ed02a121316852819e332ad

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