Skip to main content

High-performance Python DSP toolkit built on C++ libraries via nanobind

Project description

cydsp

High-performance Python DSP toolkit built on C++ libraries via nanobind. All processing uses float32 in a planar [channels, frames] layout with block-based APIs that accept and return AudioBuffer objects.

Backends

Library License What it provides
signalsmith-dsp MIT Filters, FFT, delay, envelopes, spectral processing, rates, mix
DaisySP MIT Oscillators, effects, dynamics, drums, physical modeling, noise
STK MIT Physical modeling instruments, generators, filters, delays, effects
madronalib MIT FDN reverbs, resampling, generators, projections, windows
HISSTools Library BSD-3 Convolution, spectral processing, statistical analysis, windows
CHOC ISC FLAC codec (read/write)

Requirements

  • Python >= 3.10
  • numpy
  • C++17 compiler
  • CMake >= 3.15

Install

pip install cydsp

Or if you prefer to build from source (requires uv and cmake):

git clone https://github.com/shakfu/cydsp.git
cd cydsp
uv sync            # install dependencies + build extension
uv run pytest      # run tests
uv build           # build wheel

Use make help for additional targets (build, test, lint, format, typecheck, qa, coverage, etc.).

CLI

cydsp ships with a command-line interface accessible via cydsp or python -m cydsp.

# File info
cydsp info drums.wav
cydsp info drums.wav --json

# Process with effect chain (single file)
cydsp process input.wav -o output.wav \
  -f highpass:cutoff_hz=80 \
  -f compress:ratio=4,threshold=-18 \
  -f normalize_peak:target_db=-1

# Apply a preset
cydsp process vocals.wav -o out.wav -p vocal_chain
cydsp process input.wav -o out.wav -f lowpass:cutoff_hz=12000 -p master

# Batch mode -- process multiple files to a directory
cydsp process *.wav -O out/ -f lowpass:cutoff_hz=2000

# Dry run -- show chain without reading/writing files
cydsp process input.wav -n -f highpass:cutoff_hz=80 -f compress:ratio=4

# Verbose / quiet
cydsp -v process input.wav -o out.wav -f lowpass:cutoff_hz=1000
cydsp -q process input.wav -o out.wav -p master

# Analyze
cydsp analyze input.wav loudness
cydsp analyze input.wav pitch --fmin=80 --fmax=800
cydsp analyze input.wav onsets --json
cydsp analyze input.wav info

# Synthesize
cydsp synth tone.wav sine --freq=440 --duration=2.0
cydsp synth kick.wav drum --type=analog_bass_drum --freq=60
cydsp synth melody.wav note --instrument=clarinet --freq=440 --duration=1.0
cydsp synth seq.wav sequence --instrument=flute \
  --notes='[{"freq":440,"start":0,"dur":0.5},{"freq":554,"start":0.5,"dur":0.5}]'

# Convert
cydsp convert input.wav output.flac
cydsp convert input.wav output.wav --sample-rate=44100 --channels=1 -b 24

# Presets
cydsp preset list
cydsp preset list spatial
cydsp preset info master
cydsp preset apply master input.wav output.wav target_lufs=-16

# Pipe (stdin/stdout streaming)
cat input.wav | cydsp pipe -f lowpass:cutoff_hz=1000 > output.wav
cat input.wav | cydsp pipe -p telephone > output.wav
cydsp pipe -f highpass:cutoff_hz=80 < in.wav | cydsp pipe -f compress:ratio=4 > out.wav

# Benchmark
cydsp benchmark lowpass:cutoff_hz=1000
cydsp benchmark compress:ratio=4,threshold=-20 -n 100 --duration=2.0
cydsp benchmark reverb:preset=hall --channels=2 --json

# List available functions
cydsp list
cydsp list filters
cydsp list effects

Presets

30 built-in presets across 8 categories:

Category Presets
mastering master, master_pop, master_hiphop, master_classical, master_edm, master_podcast
voice vocal_chain
spatial room, hall, plate, cathedral, chamber
dynamics gentle_compress, heavy_compress, brick_wall
creative radio, underwater, megaphone, tape_warmth, shimmer, vaporwave, walkie_talkie
lofi telephone, lo_fi, vinyl, 8bit
cleanup dc_remove, de_noise, normalize, normalize_lufs

Quick start

from cydsp.buffer import AudioBuffer
from cydsp import effects, analysis

# Read, process, write
buf = (
    AudioBuffer.from_file("input.wav")
    .pipe(effects.highpass, freq=80.0)
    .pipe(effects.compress, threshold=-18.0, ratio=4.0)
    .pipe(analysis.normalize_lufs, target_lufs=-14.0)
)
buf.write("output.wav")

Modules

cydsp.buffer -- AudioBuffer

The central data type. A 2D float32 array with shape [channels, frames] plus metadata (sample_rate, channel_layout, label).

from cydsp.buffer import AudioBuffer

# Construction
buf = AudioBuffer(np.zeros((2, 44100), dtype=np.float32), sample_rate=44100)
buf = AudioBuffer.from_file("input.wav")       # read WAV/FLAC
buf = AudioBuffer.sine(440.0, channels=1, frames=44100, sample_rate=44100)
buf = AudioBuffer.noise(channels=2, frames=44100, sample_rate=44100)
buf = AudioBuffer.zeros(channels=1, frames=1024, sample_rate=44100)
buf = AudioBuffer.impulse(channels=1, frames=1024, sample_rate=44100)

# Properties
buf.channels        # number of channels
buf.frames          # number of frames
buf.sample_rate     # sample rate in Hz
buf.duration        # duration in seconds
buf.mono            # 1D view (mono buffers only)
buf.channel(0)      # 1D view of channel 0

# Channel operations
buf.to_mono("mean")                    # downmix
buf.to_channels(2)                     # upmix mono to stereo
AudioBuffer.concat_channels(a, b)      # stack channels

# Arithmetic
buf + other          # add
buf * 0.5            # scale
buf.gain_db(-6.0)    # apply dB gain

# I/O
buf.write("output.wav")                # write WAV/FLAC (detected by extension)
buf.write("output.flac", bit_depth=24)

# Pipeline
buf.pipe(effects.lowpass, freq=1000.0)

cydsp.io -- Audio file I/O

Read and write WAV (8/16/24/32-bit PCM) and FLAC (16/24-bit) files. Zero external dependencies for WAV (uses stdlib wave); FLAC uses the CHOC codec.

from cydsp import io

buf = io.read("file.wav")          # auto-detect by extension
buf = io.read("file.flac")
io.write("out.wav", buf)           # 16-bit default
io.write("out.flac", buf, bit_depth=24)

# Format-specific
buf = io.read_wav("file.wav")
io.write_wav("out.wav", buf, bit_depth=24)
buf = io.read_flac("file.flac")
io.write_flac("out.flac", buf, bit_depth=16)

# Byte-level (for stdin/stdout/pipe workflows)
buf = io.read_wav_bytes(raw_bytes)           # parse WAV from bytes
raw = io.write_wav_bytes(buf, bit_depth=16)  # serialize to WAV bytes

cydsp.ops -- Core DSP operations

Low-level building blocks: delay, envelopes, FFT, convolution, sample rates, mixing, panning, normalization.

from cydsp import ops

# Delay
ops.delay(buf, delay_samples=100)
ops.delay_varying(buf, delays=delay_curve)

# Envelopes
ops.box_filter(buf, length=64)
ops.box_stack_filter(buf, size=32, layers=4)
ops.peak_hold(buf, length=128)
ops.peak_decay(buf, length=256)

# FFT
spectra = ops.rfft(buf)                        # forward real FFT
buf = ops.irfft(spectra, size=1024, sample_rate=44100)  # inverse

# Convolution
ops.convolve(buf, ir, normalize=True)

# Sample rates
ops.upsample_2x(buf)
ops.oversample_roundtrip(buf)

# Mixing
ops.hadamard(buf)              # Hadamard matrix mixing
ops.householder(buf)           # Householder reflection
ops.crossfade(buf_a, buf_b, x=0.5)
ops.mix_buffers(a, b, c, gains=[1.0, 0.5, 0.8])

# LFO
lfo_signal = ops.lfo(frames=44100, low=0.0, high=1.0, rate=2.0)

# Normalization
ops.normalize_peak(buf, target_db=-1.0)
ops.trim_silence(buf, threshold_db=-60.0)

# Fades
ops.fade_in(buf, duration_ms=10.0)
ops.fade_out(buf, duration_ms=50.0, curve="exp")

# Panning and stereo
ops.pan(buf, position=0.3)     # equal-power pan
ops.mid_side_encode(buf)
ops.mid_side_decode(buf)
ops.stereo_widen(buf, width=1.5)

cydsp.effects -- Filters, effects, dynamics, mastering

52 functions covering signalsmith biquad filters, DaisySP effects/filters/dynamics, composed effects, reverbs, mastering chains, and STK effects.

Biquad filters (signalsmith)

All filter functions take freq in Hz, auto-converted to normalized frequency.

from cydsp import effects

effects.lowpass(buf, freq=1000.0, q=0.707)
effects.highpass(buf, freq=80.0)
effects.bandpass(buf, freq=1000.0, q=2.0)
effects.notch(buf, freq=50.0)
effects.peak(buf, freq=1000.0, gain=2.0, q=1.0)
effects.peak_db(buf, freq=1000.0, db=6.0)
effects.high_shelf(buf, freq=8000.0, gain=1.5)
effects.high_shelf_db(buf, freq=8000.0, db=3.0)
effects.low_shelf(buf, freq=200.0, gain=0.8)
effects.low_shelf_db(buf, freq=200.0, db=-2.0)
effects.allpass(buf, freq=1000.0)

DaisySP effects

effects.autowah(buf, wah=0.5)
effects.chorus(buf, rate=1.0, depth=0.5)
effects.decimator(buf, downsample_factor=0.5, bitcrush_factor=0.5)
effects.flanger(buf, rate=0.2, depth=0.5, feedback=0.5)
effects.overdrive(buf, drive=0.7)
effects.phaser(buf, rate=0.3, depth=0.5, feedback=0.5)
effects.pitch_shift(buf, semitones=12.0)
effects.sample_rate_reduce(buf, factor=0.5)
effects.tremolo(buf, rate=5.0, depth=0.8)
effects.wavefold(buf, gain=2.0)
effects.bitcrush(buf, bits=8)
effects.fold(buf, gain=2.0)
effects.reverb_sc(buf, feedback=0.8, lpfreq=10000.0)
effects.dc_block(buf)

DaisySP filters

effects.svf_lowpass(buf, freq=1000.0, res=0.5)
effects.svf_highpass(buf, freq=200.0, res=0.5)
effects.svf_bandpass(buf, freq=1000.0, res=0.7)
effects.svf_notch(buf, freq=1000.0, res=0.5)
effects.svf_peak(buf, freq=1000.0, res=0.8)
effects.ladder_filter(buf, freq=800.0, res=0.6, mode="lp24")
effects.moog_ladder(buf, freq=1000.0, res=0.7)
effects.tone_lowpass(buf, freq=2000.0)
effects.tone_highpass(buf, freq=100.0)
effects.modal_bandpass(buf, freq=440.0, q=50.0)
effects.comb_filter(buf, freq=500.0, revtime=0.5)

Dynamics

effects.compress(buf, threshold=-20.0, ratio=4.0, attack=0.01, release=0.1)
effects.limit(buf, threshold=-1.0)

Composed effects

effects.saturate(buf, drive=0.7, mode="soft")    # soft, hard, or tape
effects.exciter(buf, freq=3000.0, drive=0.4)
effects.de_esser(buf, freq=6000.0, threshold=-20.0)
effects.parallel_compress(buf, mix=0.5, threshold=-24.0, ratio=8.0)
effects.noise_gate(buf, threshold_db=-40.0)
effects.stereo_delay(buf, delay_l=0.25, delay_r=0.375, feedback=0.4, ping_pong=True)
effects.multiband_compress(buf, crossovers=[200.0, 2000.0, 8000.0])

Reverb

effects.reverb(buf, preset="hall", decay=2.0, mix=0.3)
# Presets: room, hall, plate, chamber, cathedral

Mastering and vocal chains

effects.master(buf, target_lufs=-14.0)
effects.vocal_chain(buf, de_ess_freq=6000.0, comp_threshold=-18.0)

STK effects

effects.stk_reverb(buf, algorithm="freeverb", decay=1.5, mix=0.3)
effects.stk_chorus(buf, mod_depth=0.02, mod_freq=1.0, mix=0.5)
effects.stk_echo(buf, delay=0.25, max_delay=1.0, mix=0.5)

cydsp.spectral -- STFT and spectral processing

Short-time Fourier transform, spectral utilities, and spectral transforms.

from cydsp import spectral

# STFT
spec = spectral.stft(buf, window_size=2048, hop_size=512)
buf = spectral.istft(spec)

# Spectral utilities
mag = spectral.magnitude(spec)
ph = spectral.phase(spec)
spec = spectral.from_polar(mag, ph)
spec = spectral.apply_mask(spec, mask)
spec = spectral.spectral_gate(spec, threshold_db=-40.0)
spec = spectral.spectral_emphasis(spec, low_db=-3.0, high_db=3.0)
freq = spectral.bin_freq(bin_index=10, fft_size=2048, sample_rate=44100)
b = spectral.freq_to_bin(freq=1000.0, fft_size=2048, sample_rate=44100)

# Spectral transforms
stretched = spectral.time_stretch(buf, rate=0.5)        # half speed
locked = spectral.phase_lock(spec)                       # identity phase-locking
frozen = spectral.spectral_freeze(buf, frame_index=10)   # frozen texture
morphed = spectral.spectral_morph(spec_a, spec_b, x=0.5)
shifted = spectral.pitch_shift_spectral(buf, semitones=5.0)
denoised = spectral.spectral_denoise(buf, noise_frames=10)

# EQ matching
matched = spectral.eq_match(source_buf, target_buf, strength=1.0)

cydsp.synthesis -- Oscillators, noise, drums, physical modeling

Sound generators using DaisySP and STK backends.

from cydsp import synthesis

# Oscillators
synthesis.oscillator(freq=440.0, waveform="saw", frames=44100)
synthesis.fm2(freq=440.0, ratio=2.0, index=1.0, frames=44100)
synthesis.formant_oscillator(freq=440.0, formant_freq=800.0, frames=44100)
synthesis.bl_oscillator(freq=440.0, waveform="saw", frames=44100)

# Noise
synthesis.white_noise(frames=44100, amp=0.5)
synthesis.clocked_noise(freq=1000.0, frames=44100)
synthesis.dust(density=100.0, frames=44100)

# Drums
synthesis.analog_bass_drum(freq=60.0, frames=44100)
synthesis.analog_snare_drum(freq=200.0, frames=44100)
synthesis.hihat(freq=3000.0, frames=44100)
synthesis.synthetic_bass_drum(freq=60.0, frames=44100)
synthesis.synthetic_snare_drum(freq=200.0, frames=44100)

# Physical modeling
synthesis.karplus_strong(buf, freq=440.0, brightness=0.5, damping=0.5)
synthesis.modal_voice(freq=440.0, frames=44100)
synthesis.string_voice(freq=440.0, frames=44100)
synthesis.pluck(freq=440.0, frames=44100)
synthesis.drip(freq=1000.0, frames=44100)

# STK synthesis
synthesis.synth_note("clarinet", freq=440.0, amplitude=0.8, duration=1.0)
synthesis.synth_sequence("flute", notes=[
    {"freq": 440.0, "amp": 0.8, "start": 0.0, "dur": 0.5},
    {"freq": 554.37, "amp": 0.7, "start": 0.5, "dur": 0.5},
])

Available STK instruments: clarinet, flute, brass, bowed, plucked, sitar, stifkarp, saxofony, recorder, blowbotl, blowhole, whistle.

cydsp.analysis -- Loudness, spectral features, pitch, onsets, resampling

from cydsp import analysis

# Loudness (ITU-R BS.1770-4)
lufs = analysis.loudness_lufs(buf)
buf = analysis.normalize_lufs(buf, target_lufs=-14.0)

# Spectral features
centroid = analysis.spectral_centroid(buf)
bandwidth = analysis.spectral_bandwidth(buf)
rolloff = analysis.spectral_rolloff(buf, percentile=0.85)
flux = analysis.spectral_flux(buf, rectify=True)
flatness = analysis.spectral_flatness_curve(buf)
chroma = analysis.chromagram(buf, n_chroma=12, tuning_hz=440.0)

# Pitch detection (YIN algorithm)
f0, confidence = analysis.pitch_detect(buf, method="yin", fmin=50.0, fmax=2000.0)

# Onset detection
onsets = analysis.onset_detect(buf, method="spectral_flux", threshold=0.5)

# Resampling
buf_48k = analysis.resample(buf, target_sr=48000.0)       # madronalib backend
buf_22k = analysis.resample_fft(buf, target_sr=22050.0)   # FFT-based

cydsp.stream -- Real-time streaming infrastructure

Block-based processing, ring buffers, and processor chains for streaming audio.

from cydsp.stream import (
    RingBuffer, BlockProcessor, CallbackProcessor, ProcessorChain, process_blocks
)

# Ring buffer
rb = RingBuffer(channels=2, capacity=8192)
rb.write(frame_data)
chunk = rb.read(512)

# Block processor
class MyProcessor(BlockProcessor):
    def process_block(self, block):
        return block * 0.5

proc = MyProcessor(block_size=512)
out = proc.process(buf)

# Callback processor
proc = CallbackProcessor(block_size=512, fn=lambda b: b * 0.5)

# Chain processors
chain = ProcessorChain([proc1, proc2, proc3])
out = chain.process(buf)

# Process with overlap-add
out = process_blocks(buf, block_size=2048, hop_size=512, fn=my_spectral_fn)

cydsp._core -- C++ bindings (low-level)

Direct access to the C++ extension module with 12 submodules. All high-level Python modules build on these.

Submodule Backend Contents
filters signalsmith Biquad with 16 filter designs, BiquadDesign enum
fft signalsmith FFT (complex), RealFFT (real)
delay signalsmith Delay (linear), DelayCubic (cubic interpolation)
envelopes signalsmith CubicLfo, BoxFilter, BoxStackFilter, PeakHold, PeakDecayLinear
spectral signalsmith STFT (multi-channel analysis/synthesis)
rates signalsmith Oversampler2x
mix signalsmith Hadamard, Householder, cheap_energy_crossfade
daisysp DaisySP 9 submodules, ~60 classes (oscillators, filters, effects, dynamics, drums, noise, physical modeling, control, utility)
stk STK 5 submodules, 39 classes (instruments, generators, filters, delays, effects)
madronalib madronalib FDN reverbs, resampling, generators, 18 projection functions, 6 window functions
hisstools HISSTools Convolution (mono/multi), spectral processing, 24 statistics functions, 28 window functions, partial tracking
choc CHOC FLAC read/write
from cydsp._core import filters, fft, delay, daisysp, stk, madronalib, hisstools

# Example: direct biquad usage
bq = filters.Biquad()
bq.lowpass(0.1, 0.707)
out = bq.process(input_array)

# Example: direct FFT
f = fft.RealFFT(1024)
spectrum = f.fft(signal)

# Example: DaisySP oscillator
osc = daisysp.oscillators.Oscillator()
osc.init(44100.0)
osc.set_freq(440.0)
samples = osc.process(1024)

Full type stubs are provided in _core.pyi for IDE autocompletion and type checking.

Architecture

cydsp/
  __init__.py          # package root (__version__ only)
  __main__.py          # CLI entry point (argparse, subcommand handlers)
  _cli.py              # function/preset registries, fx parser, type coercion
  _core.cpython-*.so   # compiled C++ extension (nanobind)
  _core.pyi            # type stubs for C++ extension
  _helpers.py          # shared private utilities
  buffer.py            # AudioBuffer class
  io.py                # audio file I/O (WAV + FLAC)
  ops.py               # delay, envelopes, FFT, convolution, rates, mix, pan
  effects.py           # filters, effects, dynamics, reverb, mastering
  spectral.py          # STFT, spectral transforms, eq_match
  synthesis.py         # oscillators, noise, drums, physical modeling
  analysis.py          # loudness, spectral features, pitch, onsets, resample
  stream.py            # ring buffer, block processors, overlap-add

Development

make build    # rebuild extension after C++ changes
make test     # run 1114 tests
make qa       # test + lint + typecheck + format
make coverage # tests with coverage report

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cydsp-0.1.2.tar.gz (2.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cydsp-0.1.2-cp314-cp314-win_amd64.whl (596.2 kB view details)

Uploaded CPython 3.14Windows x86-64

cydsp-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (676.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cydsp-0.1.2-cp314-cp314-macosx_11_0_arm64.whl (561.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

cydsp-0.1.2-cp314-cp314-macosx_10_15_x86_64.whl (618.6 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

cydsp-0.1.2-cp313-cp313-win_amd64.whl (578.2 kB view details)

Uploaded CPython 3.13Windows x86-64

cydsp-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (676.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cydsp-0.1.2-cp313-cp313-macosx_11_0_arm64.whl (561.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cydsp-0.1.2-cp313-cp313-macosx_10_15_x86_64.whl (618.6 kB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

cydsp-0.1.2-cp312-cp312-win_amd64.whl (578.2 kB view details)

Uploaded CPython 3.12Windows x86-64

cydsp-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (676.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cydsp-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (561.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cydsp-0.1.2-cp312-cp312-macosx_10_15_x86_64.whl (618.7 kB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

cydsp-0.1.2-cp311-cp311-win_amd64.whl (578.0 kB view details)

Uploaded CPython 3.11Windows x86-64

cydsp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (676.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cydsp-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (562.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cydsp-0.1.2-cp311-cp311-macosx_10_15_x86_64.whl (616.1 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

cydsp-0.1.2-cp310-cp310-win_amd64.whl (577.8 kB view details)

Uploaded CPython 3.10Windows x86-64

cydsp-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (676.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

cydsp-0.1.2-cp310-cp310-macosx_11_0_arm64.whl (561.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cydsp-0.1.2-cp310-cp310-macosx_10_15_x86_64.whl (615.6 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

Details for the file cydsp-0.1.2.tar.gz.

File metadata

  • Download URL: cydsp-0.1.2.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cydsp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f01c04c2a63e823aa1308e094b014a8d546ffc3e30fa8c8a6cbf6f6290773e0e
MD5 7dbacca599d2a8186a8d6e74ce0a6f57
BLAKE2b-256 c9b8150a42636ea9f205762ff18d8775588dbba77c5c1f1dd449e5986adc6e92

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: cydsp-0.1.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 596.2 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cydsp-0.1.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c6324ba74e2063f712c85fcaca1fe59247a1b4b4d0d0ad49abbed6aa7fcb7ff0
MD5 fbc0fe7b3754580d593d122f370562e3
BLAKE2b-256 fb24b30b1f3b6b094c87e6a207ec9476285376fca2478c1704d18ab323d547b8

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6010552aefbf1356e288a1295df1c53451ab7853ad1efac57008c84b1f7ee75f
MD5 50e394eb4d02d1ba1b5064ed27e4d066
BLAKE2b-256 41a722cabf906b5604c97bd64bfdcdd14aa9e3b7a921b912f9fc3fc1517214dd

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df5d84f4db9bff2366239df3f72f7cd4cc60f6571289b527473f3f06e1c66c4e
MD5 11ed1e9a7c26a8b64c2c413510922de8
BLAKE2b-256 3a8fc0a8dac4164890f92c4d924e74dc9eea448f36b399f9ef55d70d64339eba

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 510bb9a9d62adfce5fd526ee4be5fcb78efba3a708f16df7ded5e8af8069498a
MD5 08deb7e56002a12f6699a11be90ffba8
BLAKE2b-256 c7619d1124db7e5a98906948e7f1f5b7a976056bcf704e4902716544a0f5966c

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cydsp-0.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 578.2 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cydsp-0.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9e35dd32ec88cedbb6f784e8b35908274658ce1b2e874427d2daf46c722f10d1
MD5 20109c9635d7be67dadb38e6289ff3aa
BLAKE2b-256 1dd3dcdb94514d9153127cf76dd65680e1963798e64681538037074d17f91993

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 443c6ed34133df4af4d7d6e78c81dc6d09d09c6d6f881481c02b5c22f14f216a
MD5 2f760c5e883fcaac5609a5036ceecc40
BLAKE2b-256 9c33f6eee9f533b0fdabce57e2008cbe619d88fbc4e8f98b01f17dd9369cbc6a

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41e6d0314ec4151ac07d2b67548a28c77b9aa2db6c79ea92fb81769942d70012
MD5 c383c135be9773f91e7b28036cae9f9d
BLAKE2b-256 40421535b9d6b76f525514e4deae6854d4528ddc8621a944925f483fe0483771

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 da39af8ba916aecf2119cb172a0aabed99073d7afe772d6066a736753f761b9c
MD5 44fb7ec2c5bbe0727405d1d680e7ee3f
BLAKE2b-256 3394a86c9df3d71ac303c44ce69d007d6066e0da5ef67423ef60c3973da6ed34

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cydsp-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 578.2 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cydsp-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c5f5a232f802ab307816d5c92a3c95a830a3c296831d8a900e625a2bf71a5d66
MD5 26d2f025c31e6875d455da3e2eabd598
BLAKE2b-256 ab7b7299fdabeeb8221f19a3e8272bd8c1bee1996fa998a8c7f5d50f129b3d76

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 38e04846fa9a7baa6c17b00b398b370b198af8f1317bae4beb7658813a645556
MD5 754861fe30d5bddd58824c88f7ed1645
BLAKE2b-256 7a910152ecc74747c6072f56a6b88f8f74a06769cd468fe6f029933de6283652

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13626a62e1a119f0b69c3c7dd49e9badfc870a3039d61b035649b8e25fda8f88
MD5 e3f1c974219db73f773b2bd7c1f5e169
BLAKE2b-256 0b36fb9c028e50eb8f63c0b6a84eda8f9671d3f38644fed924091e7dc5808a07

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 196c73bb3ca567465c816b052ae76fcfa1358fc2fb0b2b615c61b9c8565a6eab
MD5 611eed1b8b8c5bcf1ec2af3b5ceeacd3
BLAKE2b-256 184c4e94f930f105c99350b4ed3d3f603af89a83195d354c022729a92fd84c28

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cydsp-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 578.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cydsp-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ca6d3a5b86246f749e173956c3ede36b063f312d8cf7b0f477887d171b703b71
MD5 7bbd0e5a2db2f932a60287d3e97c6f3d
BLAKE2b-256 387a589b891e022c770744fec6baca10d05a280e9bf11b137782fefa2192d6ab

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 69d3d2394fc6d8c468eba8c746897810e322e8bd3917e1aa6f0cc0e35c90dc1a
MD5 270613358f426138b1ba953256de719e
BLAKE2b-256 ca8cc1b34204391a0dfcb809d73b8e6af58d2d07cf721941eccbae4ca8c0ebc6

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 59aabbb7707b39f77b65f7ddd7983ede359f9e75b16bcfd9c36518d2b958c525
MD5 5a6d59f95803489dea4021f834dd0418
BLAKE2b-256 d45c8a7001e5f971c7b9224bace5307c5f97a2ec1f2520c94e68febac9155ad0

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1c4467c290c6fbb1c3c4faaef035f3df15945160d46a7b5006fadecd614113b7
MD5 87e6e904b4251e2f744d1f332a9e0716
BLAKE2b-256 28037e2fda54dba85f72502a0f0e307fd564fcc2e1056c3b45de7ea37b19b812

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cydsp-0.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 577.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cydsp-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4ae115295ed5afe1c4617f8ec761a3622706b2588b21b9761650814b5a65af3f
MD5 fe161e9e697090245ea5cc808cf99316
BLAKE2b-256 bdd05993a1a0af39d421c3997475b62ae7996abce9d00cc6fbf72bf961521ef7

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7913a113b93270d0e0eafe9e1e9ca9b9e4637f1013a5f3cf65819410f7fbf01
MD5 1c7034ab8505c4f8ccaef0ec4e36f8e9
BLAKE2b-256 8f6cf63f20bb3cfb79ff0da5f8f34d05c83ebbc1830bc9b1b4f61a5bf48a64e9

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 85be03727e25d5eb0d1451deeee19a236f997ba3536798822f6e652d5083957a
MD5 bfbdcbdea52a74afa94ffb926bfd854a
BLAKE2b-256 778ee401391d6b35d63d97f8231fb73e4355778df352c8258bf2102c838f62be

See more details on using hashes here.

File details

Details for the file cydsp-0.1.2-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for cydsp-0.1.2-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 836ed153ce417816502c4bf91b55d6066bcd30799a35b3fb0d4ca65c2aa7006b
MD5 f718aded5792d92113f06ff1a26c5090
BLAKE2b-256 44baf885b4ad12c174ad1516b22c733356024cd76418262c98391ab358d9504a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page