Skip to main content

AY-3-8910 Standalone Library and Python Wrapper

A Python wrapper for the AY-3-8910, AY-3-8912 and AY-3-8913 sound chip emulators, featuring real-time audio playback and cycle-accurate synthesis.

A Note on this Project's Origin

This project is primarily the result of a series of experiments using various IA Code Assists for code generation and error handling. Rather than using it on academic examples, it seemed more interesting to apply it to a project that could meet a real practical need.

This, therefore, is the reason for AY8910's existence: you can dissect the code to see how Gemini and Junie (with my guidance) went about building it, or you can ignore all that and just use this library for your own needs!

This project contains a standalone C++ library for the AY-3-8910 sound chip. It now features a unified API with three main classes:

  • ay8910: Emulates the 3-channel PSG with 2 I/O ports.
  • ay8912: Emulates the 3-channel PSG with 1 I/O port.
  • ay8913: Emulates the 3-channel PSG with 0 I/O port.

At instantiation, you can choose between three emulation backends:

  • CAPRICE32 (default): The recommended engine. High accuracy, stereo mixing, and integrated live audio.
  • MAME: Based on the MAME implementation.
  • AY_EMUL31: A port of Sergey Bulba's Ay_Emul 3.1.

Quick Start (Live Audio)

import ay8910_wrapper as ay
import time

# Initialize an AY-3-8912 using the Caprice32 backend (default)
psg = ay.ay8912(clock=1000000, sample_rate=44100)
psg.set_stereo_mix(255, 13, 170, 170, 13, 255)

# Start live playback!
psg.play()

# Set registers - sound changes immediately
psg.set_register(0, 254) # Tone A Fine
psg.set_register(1, 0)   # Tone A Coarse
psg.set_register(7, 0x3E) # Enable Tone A, disable others
psg.set_register(8, 15)   # Max volume

time.sleep(1)
psg.stop()
# Play a .ym file using the live player
ym_live_player PATH\TO\YM_FILE.YM

# Explicitly choose a backend
ym_live_player PATH\TO\YM_FILE.YM --backend MAME
ym_live_player PATH\TO\YM_FILE.YM --backend AY_EMUL31

Installation

You can install the library directly from PyPI:

# Base installation (emulator only)
pip install ay8910_wrapper

# Full installation with playback tools and LHA support
pip install ay8910_wrapper[tools]

The base installation has no external dependencies. The [tools] option adds lhafile, numpy, and sounddevice which are required for the command-line players and real-time audio output.

For developers who want to compile from source or contribute, please refer to the Contributing Guide.

Usage Examples

1. Basic Tone (Live Playback)

The simplest way to hear a sound in real-time.

import ay8910_wrapper as ay
import time

# Create an AY-3-8912 (1 I/O port) as used in Amstrad CPC
psg = ay.ay8912(backend=ay.Backend.CAPRICE32, clock=1000000)

# Start live audio
psg.play()

# Set a 440Hz tone on Channel A
# Period = 1000000 / (16 * 440) ≈ 142
psg.set_register(0, 142 & 0xFF)
psg.set_register(1, (142 >> 8) & 0x0F)
psg.set_register(7, 0xFE)  # Enable Tone A
psg.set_register(8, 15)    # Max volume

time.sleep(1)
psg.stop()

2. Generating Audio Data (WAV Export)

Generate samples manually and save them to a file.

import ay8910_wrapper as ay
import wave, struct

psg = ay.ay8910(backend=ay.Backend.MAME, clock=2000000)

# Configure a noise effect (e.g., snare drum)
psg.set_register(6, 15)   # Noise period
psg.set_register(7, 0xF7) # Enable Noise on Channel A
psg.set_register(8, 16)   # Use envelope
psg.set_register(11, 0)   # Envelope period fine
psg.set_register(12, 10)  # Envelope period coarse
psg.set_register(13, 0x00) # Decay shape (\___)

# Generate 0.5s of audio at 44100Hz
samples = psg.generate(22050)

with wave.open("noise_effect.wav", "wb") as f:
    f.setnchannels(1)
    f.setsampwidth(2)
    f.setframerate(44100)
    f.writeframes(struct.pack('<' + ('h' * len(samples)), *samples))

3. Advanced Configuration (MAME & Resistors)

Simulate specific hardware analog characteristics.

import ay8910_wrapper as ay

# Use MAME backend for advanced hardware flags
psg = ay.ay8910(backend=ay.Backend.MAME, clock=1750000)

# Enable resistor-based output modeling (high accuracy)
psg.set_flags(ay.AY8910_RESISTOR_OUTPUT | ay.AY8910_SINGLE_OUTPUT)

# Set specific load resistors for ZX Spectrum (~1k Ohm)
psg.set_resistors_load(1000.0, 1000.0, 1000.0)

psg.play()
# ... program registers ...

4. Using DirectOutput for manual playback control

For more fine-grained control over the audio stream, use the DirectOutput class directly.

import ay8910_wrapper as ay
from ay8910_wrapper import DirectOutput

# Create any PSG instance
psg = ay.ay8910(backend=ay.Backend.MAME)

# Initialize and start the audio output manually
audio = DirectOutput(psg)
audio.start()

# ... sound generation ...

# Stop playback when done
audio.stop()

For a complete list of all available functions, classes, and constants, please see the API Reference.

Scripts and Tools

The project includes several scripts for playing chiptunes and running tests. For a detailed description of how to use them, please see the Scripts and Tools page.

Unified Architecture

The new architecture allows you to choose the exact chip model and the emulation engine that best fits your needs.

# Initialize an AY-3-8910 (2 I/O ports) using the Caprice32 backend
psg_8910 = ay.ay8910(backend=ay.Backend.CAPRICE32)

# Initialize an AY-3-8912 (1 I/O port) using the MAME backend
psg_8912 = ay.ay8912(backend=ay.Backend.MAME)

# Initialize an AY-3-8913 (0 I/O ports) using the Ay_Emul31 backend
psg_8913 = ay.ay8913(backend=ay.Backend.AY_EMUL31)

Contributing Guide

If you wish to contribute to the project or compile it from source, please refer to our Contributing Guide.

It contains all the necessary information about:

  • The development workflow (GitHub Flow)
  • Using uv for environment management
  • Compilation and test commands
  • Continuous integration processes (GitHub Actions)

Acknowledgments

This project relies on the incredible work of the following open-source projects:

  • MAME: The original AY-3-8910 and YM2149 emulation cores were derived from the MAME project. Their commitment to accuracy and historical preservation is a cornerstone of this library.
  • Caprice32: The Amstrad CPC-specific PSG emulation logic and amplitude tables were integrated from the Caprice32 project, providing authentic sound for CPC-related audio tasks.
  • Ay_Emul: The ay_emul31 engine is based on the work of Sergey Bulba. It's a port of his original Pascal source code (version 3.1) to C++.
  • Sergey Bulba: Special thanks for the AY/YM amplitude tables used in the Caprice32 and Ay_Emul31 engines, which are essential for reproducing the characteristic sound of these chips.
  • Gemini & Junie: This project was built with the assistance of AI, demonstrating the potential of human-AI collaboration in software development.

License

This project is licensed under the MIT License - see the License for details. The original MAME and Caprice32 cores have their own licensing terms (see LICENSE_MAME.md).

Metadata

Release files for ay8910-wrapper 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ay8910-wrapper 1.0.0
File Size Uploaded Provenance
ay8910_wrapper-1.0.0.tar.gz 183.2 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for ay8910-wrapper 1.0.0
File
ay8910_wrapper-1.0.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
ay8910_wrapper-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
ay8910_wrapper-1.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
ay8910_wrapper-1.0.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
ay8910_wrapper-1.0.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
ay8910_wrapper-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
ay8910_wrapper-1.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
ay8910_wrapper-1.0.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
ay8910_wrapper-1.0.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
ay8910_wrapper-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
ay8910_wrapper-1.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
ay8910_wrapper-1.0.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
ay8910_wrapper-1.0.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
ay8910_wrapper-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
ay8910_wrapper-1.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
ay8910_wrapper-1.0.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
ay8910_wrapper-1.0.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
ay8910_wrapper-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
ay8910_wrapper-1.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
ay8910_wrapper-1.0.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
ay8910_wrapper-1.0.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
ay8910_wrapper-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
ay8910_wrapper-1.0.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
ay8910_wrapper-1.0.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details

Total release size: 10.1 MB

Release files / ay8910_wrapper-1.0.0.tar.gz

Download URL ay8910_wrapper-1.0.0.tar.gz
Size 183.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8d5af2cedb837c889db81b7e1a21f4239284ee6e5eed4623c160a238b169000a
BLAKE2b-256 checksum
How to use checksums
ef1457e2ab84e0b385e944a975cdbc1afd58c6be6b1006f680a15d485caf6842
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp314-cp314-win_amd64.whl

Download URL ay8910_wrapper-1.0.0-cp314-cp314-win_amd64.whl
Size 143.0 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
6673fba9a7e92164653ea7a6734406502e120a336e94663c603b379596f15f38
BLAKE2b-256 checksum
How to use checksums
5684b0922b05dca1c5a0a063ca610d1d0a50057481224bbc314e38863f7262c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
8750b65203cbeacf73f2f0dbb66964b22df548729e82af33d84178d209c852c3
BLAKE2b-256 checksum
How to use checksums
c9acda036da7b2d20b57ee30fa172508c3927e380a37e1e03088ac1a3ca55d3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 171.7 kB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e0b2b437d6690a1c7cb1c018c8177bc468b6b993a3b34bac3a3a2221fa2ce1e8
BLAKE2b-256 checksum
How to use checksums
389bc25229ac5500ca56256527fc9c28267a754c05d0a1fb1c2307bc67a7fd48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL ay8910_wrapper-1.0.0-cp314-cp314-macosx_11_0_arm64.whl
Size 138.3 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e241f5e7e724f92e99cee5a3780e45a9f1f2e69983348178df313663345258fc
BLAKE2b-256 checksum
How to use checksums
0500f05bfcb4a75885b3c1299b6aa982209ffa81906674bea44ba3c1cb55182d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp313-cp313-win_amd64.whl

Download URL ay8910_wrapper-1.0.0-cp313-cp313-win_amd64.whl
Size 139.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
3ed6aabef803b7011d2e43301fc2eb6a16ecf9702b55eb22c966f0feaa3f1dfa
BLAKE2b-256 checksum
How to use checksums
67eb2563108a0f65688c8ec332964fc9a70bde3741a895575fe3f62eacc806b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
cbc48a5a75ced9ff5c04c6ec2b594abd75e15af9ca573944628377b40046f298
BLAKE2b-256 checksum
How to use checksums
ef43021643e93afa2e900fce6eb2438295b381cdbad6a83db5f6ba7d1882544d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 171.8 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a3802d691ca188264cafbc34baa7d66961a94f640078225163771506d4c5a17f
BLAKE2b-256 checksum
How to use checksums
90c7dd752d01d6f208e1a71713865b36c4593864dbac97528d8298a27ce7222e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL ay8910_wrapper-1.0.0-cp313-cp313-macosx_11_0_arm64.whl
Size 137.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
033c4ae43ac8707c9227a87f37566b23961e8dc0d8ab83a2d16161bcd7287ece
BLAKE2b-256 checksum
How to use checksums
7bffea9d221d4a74389cb586d354e249ab4708a52cece5ecbfc0e0cdc10bc258
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp312-cp312-win_amd64.whl

Download URL ay8910_wrapper-1.0.0-cp312-cp312-win_amd64.whl
Size 139.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
04bead0b89ff92cce6b2e3363cfcd3ded6557f222f4b40aabe192087bdb16f4a
BLAKE2b-256 checksum
How to use checksums
fd01c50dd7040fd5677543dee9f3d1ab12869a4bb7f10a6b0801b38bd603108e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
2d2f8d64e17af2258b267ead63997b132255ae68b6276cabce339c77b944d6a3
BLAKE2b-256 checksum
How to use checksums
184a1d0317adc1ddf0f162b78deb94103304cb6f9dc4be4aaa0bceb0d51623e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 171.8 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d992b6da1f8c9c0163994e95eb5464263cf7bc8e444d69fbb5ee317a0c40a89f
BLAKE2b-256 checksum
How to use checksums
c67e3e2d3a5018ec707e7c8e468f6fa7311c297f5542f19d94ef6db8bf2e22fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL ay8910_wrapper-1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Size 137.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
50b47eaac90bd2d1f9046c439e6580bf1c56987c45145a0113b968887da58f15
BLAKE2b-256 checksum
How to use checksums
cb1727dcd8bd54b8dd8c329a3d88214d0732ec30e1e9788700d71d1e08d4eb93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp311-cp311-win_amd64.whl

Download URL ay8910_wrapper-1.0.0-cp311-cp311-win_amd64.whl
Size 138.9 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
81d6e30376aca9b12ecb77934e24b2ea127e116525c231be5dbf5484dd896b52
BLAKE2b-256 checksum
How to use checksums
02ebb3555c3e3a4f4dcf809c7097472dfed38626acd8c2dfec06f9e1bd0109c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
91e10ea328b225ae1cefe57aa9a0487727b5b8398a8da88322d17eb7e8bff963
BLAKE2b-256 checksum
How to use checksums
4896e9e300683fec9d1a4d25e78428a10c03af7470821baa6400e1d0bb6fb815
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 169.1 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6cbf2f315d1b1827ec737685d400e1010847e5858cc2063f2477531d01d7a504
BLAKE2b-256 checksum
How to use checksums
e5d1104f9bd235bfa5a9313901a6308685f7037234b1477917f86c147f35c01d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL ay8910_wrapper-1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Size 137.9 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
04f06164e97493c49bc07d45e087b6b99f8156150e8de8dbaf95bb9a4f2e6eb4
BLAKE2b-256 checksum
How to use checksums
87d682665593dc3d19e1960e5ab6cb48e7bb9e824bda0d3461c2f7d89d892439
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp310-cp310-win_amd64.whl

Download URL ay8910_wrapper-1.0.0-cp310-cp310-win_amd64.whl
Size 138.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
0a5c4ed956c1d2e37d95fe57a21b731740f9a9546cfaf816bae623ba8da5029d
BLAKE2b-256 checksum
How to use checksums
e489ac8d0a519b30db1a18fa6c09f275e97c4d69f0898d2d9f9dd183de023edb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1ab5f91bb69f702f241480dc3b15154570ba35efa37f00c0ae056b9725065770
BLAKE2b-256 checksum
How to use checksums
3e262869234ad298a8dca4851e5c3d4b8696f0fed75f5fc02d4e92129d1de492
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 167.8 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
94e2b64bd45a815085740f7ef294e41c117f25c91324951c7cd0b03d241efe61
BLAKE2b-256 checksum
How to use checksums
453007fae04f443699e2a6f8f77bea327af46e225148085ad75177cc5be1d8dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL ay8910_wrapper-1.0.0-cp310-cp310-macosx_11_0_arm64.whl
Size 136.6 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4fee09ff6858ff280b013c33348e27f6d514edb8ce19a3dd653a33c12930d0f7
BLAKE2b-256 checksum
How to use checksums
1000998a82236ff02a8cebee0bbd2fdfef385547cd740206572a8c26ce5c6004
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp39-cp39-win_amd64.whl

Download URL ay8910_wrapper-1.0.0-cp39-cp39-win_amd64.whl
Size 142.0 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
0f5419f02fc9f9430d7eb10a925b6c7d0337e4609e81c43f8d115816a3551835
BLAKE2b-256 checksum
How to use checksums
2b17858a9638388e06febf1bae2043923f82413489cefe1e5d79f70f89d81a59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 1.2 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
efc06d4baeb0644f78edf7af555d78da07d8a32275f42d085b9a2ddc91eb5138
BLAKE2b-256 checksum
How to use checksums
dbd5d8611c012882ad0f15c9351d1fa75d529fa0da1a3fc69449d8b033e27d3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ay8910_wrapper-1.0.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 167.5 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
db665f7ebbfe89e5c4729714f78f2a45c7a45a58092eeb069dfb9fc8113776f7
BLAKE2b-256 checksum
How to use checksums
6d2e267a70287fb48155183f1e89a7f5ef47fed977e5ff3c20f87c9a8fa895dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Release files / ay8910_wrapper-1.0.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL ay8910_wrapper-1.0.0-cp39-cp39-macosx_11_0_arm64.whl
Size 136.7 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e16e431109b49f706447ddcbb6f8273a7dce220aac76892088e30a7d98238d5d
BLAKE2b-256 checksum
How to use checksums
4d27351c9dc2b5b5ef54f62ddb34c1535999b971b4f0737d393362c05c564670
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

Security for ay8910-wrapper 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 25 files in this release have been uploaded with provenance metadata.

Select from 25 files

Attestation for ay8910_wrapper-1.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page