Skip to main content

arcadesynth 1.1.1

Programmatically synthesize retro arcade sound effects in Python with arcadesynth

This utility can be used to generate your own custom sound effects in code as an alternative to using sound assets. It also provides some hand-crafted sounds from the Golden age of arcade video games.

The idea was inspired by sound generation on 1980s 8-bit microcomputers which sometimes had fairly sophisticated synthesizer chips which could be programmed at a low level with a bit of know-how. The algorithms are kept fairly simple but are capable of approximating early arcade, console and computer game sounds that are generated with specialized chips or custom electronics.

Installation

arcadesynth can be installed via pip

pip install arcadesynth

Modules

  • synth - functions to build your own effects
  • synth_sample - some simple basic sounds
  • synth_example - some generic retro sound effects
  • synth_asteroids - sounds from the 1979 Atari game Asteroids
  • synth_spaceinvaders - sounds from the 1978 Taito game Space Invaders
  • synth_pacman - (WIP) sounds from the 1980 Namco game Pac-Man

Synth

This module can be used to create custom sound effects by generating waves or white noise and then manipulating the signal with envelopes, filters and more.

E.g. synthesize a retro gunshot sound in pygame.

import pygame
from arcadesynth import synth

pygame.init()
pygame.mixer.init()
ms = 500 # Length of buffer will be 500 milliseconds
buf = synth.make_white(ms, 1.0) # Fill buffer with white noise
buf = synth.lowpass_filter(buf, 1200.0, order=4) # Apply a filter to remove higher frequencies
synth.noisalise(buf, gain=0.5) # Even out the amplitude of the noise
synth.envelope(buf, 20, 30, 0.2, ms - 50) # Apply an envelope with a short attack and decay and then fade off from 20% amplitude
sound = pygame.mixer.Sound(synth.tobytes(buf))
sound.play()

Space Invaders

There are some built-in hand-crafted synthesized sounds including those from the 1978 classic Space Invaders by Taito. Sounds in the arcade machine are produced on a Texas Instruments SN76477 'complex sound generator' chip supported by custom electronics.

E.g. synthesize the sound made by the flying saucer blowing up in Space Invaders.

import pygame
from arcadesynth import synth_spaceinvaders as si

pygame.init()
pygame.mixer.init()
sound = pygame.mixer.Sound(si.si_ufodie())
sound.play()

LICENSE

arcadesynth is is released under the MIT license.

Metadata

Release files for arcadesynth 1.1.1

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

Source distribution (sdist)

Source distribution for arcadesynth 1.1.1
File Size Uploaded Provenance
arcadesynth-1.1.1.tar.gz 13.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for arcadesynth 1.1.1
File Interpreter ABI Platform
arcadesynth-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 26.9 kB

Release files / arcadesynth-1.1.1.tar.gz

Download URL arcadesynth-1.1.1.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ee77d22f5572e65fac9d27f0e3a76dfe144b15188cb11da2aa26e976516da616
BLAKE2b-256 checksum
How to use checksums
d59c80a1bfe0f68e9d1fac3b12a0606310d6348082252e854853e34af25f186c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Release files / arcadesynth-1.1.1-py3-none-any.whl

Download URL arcadesynth-1.1.1-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8fb84982bff3e80cfe244b666bbeb0445f8db6ec2b5340decc09f513be67845
BLAKE2b-256 checksum
How to use checksums
da1a16f2eec3bc645a949ac18604b42686f500e13983d13f7481f6e3276d2d99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Security for arcadesynth 1.1.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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