Skip to main content

arcadesynth 1.0.8

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

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.0.8

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

Built distribution (wheel)

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

Total release size: 21.1 kB

Release files / arcadesynth-1.0.8.tar.gz

Download URL arcadesynth-1.0.8.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a0c407ce74176b473c0ce61681d1cbc6ff508de8dbe14baf577f11e629d80c0a
BLAKE2b-256 checksum
How to use checksums
147088a73a7ee83fd14c8524e0532635c71c210e3f32fafd986934473d540993
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.0.8-py3-none-any.whl

Download URL arcadesynth-1.0.8-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e64a7580fa79dbe492ee16a5c8ce347e5d49195d9c78fe0b2f87695b3e53d879
BLAKE2b-256 checksum
How to use checksums
e2aac8b7b135a1b92638d2881f79c9da6909b17f4ece004a5a1e74145229274f
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.0.8

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