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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| arcadesynth-1.0.8.tar.gz | 10.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.