Skip to main content

arcadesynth 1.1.0

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.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 arcadesynth 1.1.0
File Size Uploaded Provenance
arcadesynth-1.1.0.tar.gz 12.5 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 25.2 kB

Release files / arcadesynth-1.1.0.tar.gz

Download URL arcadesynth-1.1.0.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2e722f913f3bbfabe7e3428b880d9e718350688ce581dbfea4d1d9223e96700d
BLAKE2b-256 checksum
How to use checksums
7ea27da0247566c30eb054bf76d1f10fdb15d059126bda96b11c1aa368b84151
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.0-py3-none-any.whl

Download URL arcadesynth-1.1.0-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b8ea6c95fa058627a4898744490d7417e193d00553ee6b9fda2716a91841fb4
BLAKE2b-256 checksum
How to use checksums
31a2dd595f684a40d70a85ca929e78c8ec0997ee1c4155b95938b598e063d29f
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.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.

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