rydia-core
rydia-core is a Rust-based DSP library providing small, composable UGens for offline audio experimentation, with Python bindings via PyO3.
The library focuses on explicit state, sample-by-sample processing, and numerically robust building blocks inspired by SuperCollider UGens and classic DSP literature.
rydia-core is designed for experimentation, analysis, and algorithmic sound construction rather than real-time audio I/O or plugin development.
Minimal example
1. Sine oscillator
import rydia
osc = rydia.SinOsc(48000.0)
samples = []
for _ in range(48000):
samples.append(osc.process(440.0))
This produces one second of a 440 Hz sine wave at 48 kHz.
2. LFO-driven auto pan
import rydia
lfo = rydia.Lfo(48000.0, waveform=0) # sine LFO
signal = 0.5
for _ in range(10):
mod, _ = lfo.process(0.25)
left, right = rydia.pan2(signal, mod)
print(left, right)
The LFO output is used as a stereo pan modulation signal.
3. Delay line
import rydia
delay = rydia.DelayL(48000.0, 1.0)
for i in range(10):
y = delay.process(float(i), 0.1)
print(y)
This applies a fractional delay using linear interpolation.
For more advanced usage and complete examples, see the examples/ directory.
Provided UGens
Oscillators
-
SinOsc
Phase-accumulating sine oscillator. -
WhiteNoise
Uniform white noise generator in the range [-1, 1].
Low-frequency modulation
Lfo
Sine / triangle / saw LFO with an additional quarter-phase output.
Delay-based primitives
-
DelayS,DelayN,DelayL
Sample, nearest-neighbor, and linearly interpolated delays. -
CombS,CombN,CombL
Feedback comb filters. -
AllpassS,AllpassN,AllpassL
Allpass filters based on SuperCollider-style formulations.
Filters and utilities
-
Biquad
Transposed Direct Form II biquad executor.
Accepts already-normalized coefficients (RBJ-compatible). -
LeakDc
DC-blocking filter (high-pass) useful after rectifiers and nonlinearities. -
RingBufferS,RingBufferN,RingBufferL
Power-of-two ring buffers for delay-based structures. -
pan2
Equal-power stereo panner.
Design principles
- Explicit state, no hidden global context
- Sample-by-sample processing
- Deterministic behavior
- Defensive testing against numerical instability
- Rust as the source of truth for DSP logic
Python is treated as a thin orchestration and experimentation layer.
Non-goals
rydia-core intentionally does not provide:
- Real-time audio I/O
- Plugin formats (VST, AU, AAX)
- High-level synthesis graphs, schedulers, or DAW-like workflows
- Automatic filter design helpers or large DSP toolkits
Those concerns are expected to live in higher-level systems.
Project status
- Python >= 3.10
- Rust core with Python bindings
- Offline / non-realtime oriented
- Experimental / research-focused
- API may evolve within 0.1.x
rydia-core favors clarity and composability over completeness or convenience.
Metadata
Release files for rydia-core 0.2.0
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 | Actions |
|---|---|---|---|---|
| rydia_core-0.2.0.tar.gz | 49.1 kB | Without provenance | Details for rydia_core-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| rydia_core-0.2.0-cp310-cp310-macosx_11_0_arm64.whl | CPython 3.10 | CPython 3.10 | macOS 11.0+ ARM64 | Details for rydia_core-0.2.0-cp310-cp310-macosx_11_0_arm64.whl |
Total release size: 309.8 kB
Release files / rydia_core-0.2.0.tar.gz
| Download URL | rydia_core-0.2.0.tar.gz |
|---|---|
| Size | 49.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c516b7c8b5b5b5f2996747601c94c0410d76a7f18f4317a191d78f5a6bf9f1e8
|
|
BLAKE2b-256 checksum How to use checksums |
bc282e1e484150a5611d5dff35dbfe6ca8511d427e8980251cdd37d09ea8a0bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / rydia_core-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | rydia_core-0.2.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 260.7 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
837a96276a9fc193021b49ad5fd93643db09f03558f606a904c3c0ba8e60c9c9
|
|
BLAKE2b-256 checksum How to use checksums |
226ac9807d41ee09964c6dd6ec1dfa68b014ae4b4da58395be597a904ac0aaf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for rydia-core 0.2.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.