Skip to main content

potatoslicer-client

Multi-engine audio synthesis library for Python. Procedural audio from JSON song data — no audio files required.

Install

pip install potatoslicer-client

Quick Start

from potatoslicer.player import PotatoslicerPlayer

player = PotatoslicerPlayer()
player.start()
player.load_file("path/to/song.json")
player.play()
player.set_volume(0.3)
player.stop()
player.shutdown()

Sound Engines

Five synthesis providers, mixable in a single song:

Provider Type Description
cadenza Waveform Pulse, square, triangle, saw, noise with ADSR, vibrato, detune
famiwave Pulse/Triangle/Noise 4-bit quantized duty cycles, triangle staircase, LFSR noise
supergausskit Gaussian Interp BRR-style synthesis with gaussian filter, echo/delay
nightfm 4-Op FM 8 algorithms, per-operator ADSR, feedback, frequency multipliers
wav_sampler Sample WAV playback with pitch shifting, loop modes, trim

Song Format

Songs are JSON files. Each instrument picks its engine via the type field:

{
  "title": "My Song",
  "tempo": 140,
  "rows_per_beat": 4,
  "order": [0, 1, 0, 2],
  "instruments": {
    "kick":  { "type": "cadenza", "waveform": "pulse", "attack": 0.001 },
    "bass":  { "type": "famiwave", "channel_type": "triangle" },
    "lead":  { "type": "nightfm", "algorithm": 4, "feedback": 3 },
    "pad":   { "type": "supergausskit", "echo_delay": 80 }
  },
  "patterns": {
    "0": [
      [{"channel": 0, "note": "C-1", "instrument": "kick"}],
      [], [], []
    ]
  }
}

Architecture

PotatoslicerPlayer
  → PotatoslicerEngine
    → Sequencer (tracker-style pattern playback, Bresenham timing)
    → Synth (voice pool, per-channel rendering)
      → Providers (Cadenza, Famiwave, SuperGaussKit, NightFM, WavSampler)
    → Mixer (sum + tanh soft clip)
    → ActivityTracker (per-channel levels, FFT spectrum)
  → BufferedAudioDevice (threaded ring buffer → speakers)

API Reference

player = PotatoslicerPlayer(sample_rate=48000, num_voices=20)
player.start()                    # start audio device
player.load_file("song.json")    # load from file
player.load(song_dict)           # load from dict
player.play(loop=True)           # start playback
player.stop()                    # stop playback
player.set_volume(0.5)           # master volume 0.0-1.0
player.export_wav("out.wav")     # offline render to WAV
player.export_midi("out.mid")    # export as MIDI
player.shutdown()                # clean up audio device

License

MIT

Metadata

Release files for potatoslicer-client 0.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 potatoslicer-client 0.1.1
File Size Uploaded
potatoslicer_client-0.1.1.tar.gz 67.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for potatoslicer-client 0.1.1
File Interpreter ABI Platform
potatoslicer_client-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 148.9 kB

Release files / potatoslicer_client-0.1.1.tar.gz

Download URL potatoslicer_client-0.1.1.tar.gz
Size 67.5 kB
Tags Source
SHA-256 checksum
How to use checksums
959d60cdfaae9cf4ab7f67faad6cb93db4733ae89a1cb57bf96df1a64717fd34
BLAKE2b-256 checksum
How to use checksums
2d1c964fcc6befdca88ee8001a77adfa055a350ab99578340f4ae432018fd701
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / potatoslicer_client-0.1.1-py3-none-any.whl

Download URL potatoslicer_client-0.1.1-py3-none-any.whl
Size 81.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
21555c6953c6fa5a4179c6f29783b53e5cca1549495f95e7ce4bdedd1ed65bc8
BLAKE2b-256 checksum
How to use checksums
641a5ff24fc58c73ca6d0f398ae988880c885c8ef3f03bed3ee019beb782d32b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

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