Skip to main content

softcut

CI

Python bindings for softcut-lib — the per-voice DSP engine behind monome norns' softcut — with realtime audio I/O via miniaudio. Built with nanobind.

The primary API exposes softcut as idiomatic Python objects. An optional norns-compatible layer (softcut.norns) additionally mirrors the flat norns Lua softcut API for porting existing scripts.

Concepts

  • Voice wraps one softcut::Voice: a crossfading read/write head over an audio buffer, with rate, loop points, record/play, fades, and pre/post state-variable filters. Parameters are plain attributes; the buffer is a numpy float32 array you own (softcut-lib never allocates buffer memory). Buffer length must be a power of two — use softcut.next_power_of_two or Engine.allocate, which rounds up for you. The same array can be shared by several voices.

  • Engine is the multi-voice host: it owns a set of voices and a miniaudio device, and runs them either live (realtime mic/speaker I/O on a background audio thread) or offline via Engine.render. It is a context manager and a sequence of voices.

Live looping

import softcut, time

with softcut.Engine(voices=2) as eng:          # opens the audio device
    eng.allocate(seconds=8)                    # shared power-of-two buffer
    eng[0].configure(loop_region=(0, 4), rate=1.0, level=0.8, pan=-0.3)

    with eng[0].record(at=0):                  # rec + play on; head cut to 0s
        time.sleep(4)                          # capture 4s of mic input
    # on exit: rec off — the voice keeps looping what it captured

    eng[1].configure(loop_region=(0, 4), rate=-0.5, level=0.6, pan=0.3)
    eng[1].record_for(4, at=0)                 # blocking variant: record 4s, then stop

    time.sleep(8)                              # listen to both loops
# device closed automatically

eng.start() returns immediately and audio runs on a background thread, so the REPL stays live — set a parameter and you hear the change on the next block. record() is the non-blocking context-manager gesture; record_for(seconds) blocks the calling thread for a fixed capture.

Offline rendering

No device; process a mono numpy block through the voices and get the mixed stereo output back. This is the deterministic path used by the tests:

import numpy as np, softcut

eng = softcut.Engine(voices=1, mode="playback")
v = eng[0]
v.buffer = np.zeros(2**16, dtype=np.float32)
v.configure(loop_region=(0, 1), rate=1.0)
v.rec = v.play = True
v.cut_to(0)

out = eng.render(np.random.randn(48000).astype(np.float32))   # (48000, 2) float32

Load/save audio with whatever you like (e.g. soundfile) and assign the array to voice.buffer.

Routing and devices

Voices mix to stereo via each voice's level and pan. Engine.feedback(src, dst, amount) routes one voice's output into another's input (one block delayed; src == dst is a self-feedback delay line), and each voice's input_gain scales the engine's external (mic) input into it:

eng.feedback(0, 1, 0.4)     # voice 0 -> voice 1 input
eng[1].input_gain = 0.0     # voice 1 ignores the mic

Pick a specific device by index from softcut.list_devices():

softcut.list_devices()                      # [{'index':0,'name':...,'type':'playback',...}, ...]
eng = softcut.Engine(output_device=1, input_device=0)

norns-compatible API

For porting norns scripts (and the muscle memory that goes with them), softcut.norns mirrors the flat, 1-based, singleton norns softcut Lua API: 6 voices indexed from 1 and 2 global mono buffers numbered 1/2. Import it under the name norns scripts expect and call the functions verbatim:

from softcut import norns as softcut

softcut.buffer_clear()
softcut.buffer_read_mono("loop.wav", ch_dst=1)   # numpy + stdlib wave, no extra dep
softcut.loop(1, 1)
softcut.loop_start(1, 0.0)
softcut.loop_end(1, 4.0)
softcut.rate(1, 1.0)
softcut.level(1, 0.8)
softcut.play(1, 1)

softcut.start()                                  # open the audio device
  • Attribute passthroughrate, level, pan, play/rec/loop, loop points, position, the pre/post filters, slews, phase, buffer, voice_sync, level_cut_cut, reset.
  • Buffer/disk opsbuffer_read_* / buffer_write_*, buffer_copy_*, buffer_clear*, in pure numpy plus the standard-library wave module (WAV only, no new dependency), with preserve/mix crossfade, edge fade_time and reverse. Operations write in place, so they are safe against the running audio thread; reads are non-resampling, matching norns.

softcut.render / softcut.start / softcut.stop drive audio (norns runs its audio continuously; here you render offline or open the device explicitly). Phase polling and per-sample level/pan slews are not yet implemented; see docs/dev/norns-api.md for the full mapping and status. demos/12_norns_api.py is a narrated walkthrough built entirely on this layer.

OSC server

softcut.osc exposes softcut over the same OSC wire protocol as the reference softcut_jack_osc client, so existing norns/Lua scripts, SuperCollider, Max, or any OSC controller can drive softcut-py as a drop-in engine over the network. It is a thin dispatch layer over the norns host: each address maps to a host method, with the one translation that the wire protocol is 0-based (voices 0-5, buffers 0-1) while the host is 1-based.

from softcut.osc import SoftcutOSC
from softcut import norns

host = norns.NornsSoftcut()
host.start()                                   # open the audio device
server = SoftcutOSC(host)                       # listen on UDP 9999
server.serve_forever()                          # blocks until a /quit message

Or run it straight from the command line:

python -m softcut.osc                            # device + OSC server
python -m softcut.osc --no-audio                 # offline: buffer ops only

Then drive it from any OSC client (voice/buffer indices 0-based):

/set/param/cut/rate      0 1.0        # voice 0 rate = 1.0
/set/param/cut/loop_start 0 0.0
/set/param/cut/loop_end  0 4.0
/set/param/cut/loop_flag 0 1
/set/level/cut           0 0.8
/set/param/cut/play_flag 0 1
/softcut/buffer/read_mono "loop.wav"  0.0 0.0 -1  0 0
/poll/start/cut/phase                 # -> /poll/softcut/phase <voice> <phase>

The full namespace is mirrored: all /set/param/cut/* params, routing (/set/level|pan/cut, cut_cut, in_cut), the /softcut/buffer/* disk ops, /softcut/reset, and the phase poll. Defaults match the reference: listen on UDP 9999, reply (phase poll) to 127.0.0.1:57120.

Two transports, selected by backend= ("auto" by default):

  • python-osc — the default pure-Python transport. Install the optional extra: pip install softcut-py[osc]. The core package stays numpy-only.
  • native (experimental) — a dependency-free UDP transport built on the vendored tinyosc codec. It is not compiled into the published wheels; opt in with a source build (SKBUILD_CMAKE_DEFINE="SOFTCUT_ENABLE_TINYOSC=ON" pip install . or make build-tinyosc; reported by softcut._core.HAVE_TINYOSC). Receiving and parsing run in C, but dispatch runs under the GIL because the DSP command queue is single-producer, so it is a dependency-free transport rather than a GIL-free fast path. It is IPv4-only and less battle-tested than python-osc; prefer python-osc unless you specifically need zero-dependency OSC.

A few addresses are partial, mirroring the norns layer's gaps: enabled maps to play, in_cut uses the scalar per-voice input gain (there is no per-channel ADC matrix), and level/pan slew and the VU poll are accepted-and-ignored. See docs/guide/osc.md for the complete address table.

Build and test

make sync     # set up the environment
make test     # run the test suite
make qa       # test + lint + typecheck + format

Set SOFTCUT_TEST_AUDIO=1 to additionally exercise a real audio device in the test suite. Use make help for more targets (wheel, sdist, clean, etc.).

Releasing

CI runs QA and a Linux/macOS/Windows build smoke on every push and pull request. Pushing a v* tag builds wheels for CPython 3.10-3.14 across Linux (x86_64/aarch64), macOS (x86_64/arm64) and Windows with cibuildwheel, plus the sdist, and publishes them to PyPI via trusted publishing. make release bumps the version and creates the tag; pushing it triggers the release. (TestPyPI is available via the workflow's manual workflow_dispatch.)

Notes

  • Realtime parameter updates are safe: while the device is running, voice DSP parameter changes from Python are enqueued and applied on the audio thread via a lock-free queue rather than racing it. (The mix scalars level/pan/ input_gain and the feedback matrix are plain aligned writes.)

  • The vendored softcut-lib carries small host-portability fixes (uninitialized members that relied on embedded zero-init static storage, and an oversized debug buffer stubbed out); see the comments in thirdparty/softcut-lib.

Download files

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

Source Distribution

softcut_py-0.2.0.tar.gz (529.0 kB view details)

Uploaded Source

Built Distributions

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

softcut_py-0.2.0-cp314-cp314-win_amd64.whl (168.3 kB view details)

Uploaded CPython 3.14Windows x86-64

softcut_py-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (245.9 kB view details)

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

softcut_py-0.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (235.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

softcut_py-0.2.0-cp314-cp314-macosx_11_0_arm64.whl (212.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

softcut_py-0.2.0-cp314-cp314-macosx_10_15_x86_64.whl (227.0 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

softcut_py-0.2.0-cp313-cp313-win_amd64.whl (163.6 kB view details)

Uploaded CPython 3.13Windows x86-64

softcut_py-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (245.8 kB view details)

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

softcut_py-0.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (235.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

softcut_py-0.2.0-cp313-cp313-macosx_11_0_arm64.whl (212.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

softcut_py-0.2.0-cp313-cp313-macosx_10_14_x86_64.whl (226.8 kB view details)

Uploaded CPython 3.13macOS 10.14+ x86-64

softcut_py-0.2.0-cp312-cp312-win_amd64.whl (163.6 kB view details)

Uploaded CPython 3.12Windows x86-64

softcut_py-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (245.8 kB view details)

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

softcut_py-0.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (235.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

softcut_py-0.2.0-cp312-cp312-macosx_11_0_arm64.whl (212.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

softcut_py-0.2.0-cp312-cp312-macosx_10_14_x86_64.whl (226.9 kB view details)

Uploaded CPython 3.12macOS 10.14+ x86-64

softcut_py-0.2.0-cp311-cp311-win_amd64.whl (164.1 kB view details)

Uploaded CPython 3.11Windows x86-64

softcut_py-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (247.0 kB view details)

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

softcut_py-0.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (236.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

softcut_py-0.2.0-cp311-cp311-macosx_11_0_arm64.whl (213.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

softcut_py-0.2.0-cp311-cp311-macosx_10_14_x86_64.whl (227.8 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

softcut_py-0.2.0-cp310-cp310-win_amd64.whl (164.4 kB view details)

Uploaded CPython 3.10Windows x86-64

softcut_py-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (247.4 kB view details)

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

softcut_py-0.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (236.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

softcut_py-0.2.0-cp310-cp310-macosx_11_0_arm64.whl (213.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

softcut_py-0.2.0-cp310-cp310-macosx_10_14_x86_64.whl (228.2 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

File details

Details for the file softcut_py-0.2.0.tar.gz.

File metadata

  • Download URL: softcut_py-0.2.0.tar.gz
  • Upload date:
  • Size: 529.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for softcut_py-0.2.0.tar.gz
Algorithm Hash digest
SHA256 717440304252d101fd84397672ba4990f406d0b798aa0afc711db6ae23da579e
MD5 e546247879c13d3c8a0362de51dbd88d
BLAKE2b-256 749aaf89c1cddad86f5863af6e9ab34deccf22985f17757737c6899caa1acc89

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: softcut_py-0.2.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 168.3 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 softcut_py-0.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6fb330ffb4c175cc27936e47d5ec942eaf039a8199b3939345db5354a7d1cd4d
MD5 9d9521555c6672fda98ec55bd2a62953
BLAKE2b-256 c083c66f9386c878e19f6a110e1d467d77f3873f7fe8d48636af1176e6abf8bf

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f4dd452c92985d704e7dc84f312eb54c89d5310a0ab94d94b6bd8b824b2ef7b6
MD5 1d4633f7ade2d148606615f5009e7bd3
BLAKE2b-256 af05830dcc17612143b782e486c225035ca3238b71b24ad15a5d1f1d31c88feb

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cafef3a0878025e2cdbac995db3ca1306c9ac0321023edf074b04d9c8454d170
MD5 f11b5a2d05f75f341368d29f2c18b728
BLAKE2b-256 a9011d55fa19aadaf617d1c5931362ac0995234502e8202272d70ef127a167ea

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5bafb44310e36abfe09eeeb9cc1f128c48206c0b598d51bcffa86981e681414f
MD5 9569bfd5bdb1c00afc288e42366d934c
BLAKE2b-256 ff1c09ed1ac5c16a012c4072e956085aecb49f87a9b2d2ac552a41453e9aa7af

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f06a1e706ba841af26ea8fa5466f1c1a2f8f9ced00473a446561565db6104ff5
MD5 ff305755a6bc230f3c49347c59e9f903
BLAKE2b-256 634aa7e94ebc7f045d0130a27249b1536a64234babfda70787af6d059700352e

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: softcut_py-0.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 163.6 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 softcut_py-0.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 db0a6d00a2012c30ad4b96b1ca79961f43fa1bf0a24722a58f54152b8ca84b80
MD5 4afa97efe490e28946f22b8bddfbc5a8
BLAKE2b-256 26b27943fcde76e3fd01094c23721c024449249faaf201c490ad41dfe75a077f

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 007d66a562f50b5389127c71718215933892847f9634d8c5e562fdcd404a2c71
MD5 7f7fe385b1c4470c20cd82b60bda2b7a
BLAKE2b-256 e494f05d540dd91f1e055728d0c787a8032dee9071209adf3cbc727a6143c89b

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 487f0a57c6ca2036e6f125affb3f65740da3e80d72021bf2db0d3f62a707e7dc
MD5 d98f07412e5898fb2436840af9a8b6d6
BLAKE2b-256 c4501c7f3a7230f5f60d5dd8641b1d652398dcdfb5113b990b1b8c810f0889b6

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e186823fabef28edbb13c1d0782e69e9de4b77e192c1ca8eb16ec0aa25cffeb7
MD5 85487030e72b06cca89d4007abbc062e
BLAKE2b-256 a592ab64dcb81e9c4b739411ad47604d103c4d91402463a32ddb98e0c38e1513

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp313-cp313-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp313-cp313-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1b28b384f10c8235d041ff302ed52defe6f2af39a90759f66fec237644b92782
MD5 71f5ebd11acc237506b45811e3214937
BLAKE2b-256 7296ed75d312f40770917af0d7a79e21add9dcf0e1f12427d6cabbf1cede749e

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: softcut_py-0.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 163.6 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 softcut_py-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8d36da8b1e941bbf0bdafebe35f986ae28ce2b4e131f5885544b5ccc14b3e4d1
MD5 ba571346cb94802d667ff9a09840b4c4
BLAKE2b-256 187eb40d1f8662c3598f46473b900a44fbea48f560282fa76b39c8e8db52efc4

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3091d9e91b9d5e0f07cf055c470cc586813e167cabb0b8470307bc8e2130edb2
MD5 b79accd776d6be1889dac0162b95bb87
BLAKE2b-256 9ca894fe20b22baa86ddf5cafb48a14d124f6d6530c37569e71972fceb87cc50

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fd22bdf1a971583fb5eed5b53eb49db2af812006119cd22f97180a8c910caeaa
MD5 a831853a5f9558b4c787a197fb35f7fc
BLAKE2b-256 42832a9e1663d5d7e0b8763e658fde09c7eaa5a6a19545618e2f05f8868baa96

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ee09ac08f7740c131e35a7f59fdc041e5ea35f3e91cebb2db6e9036057c236e
MD5 0e975a35300b3a44171a86050ba6f3ef
BLAKE2b-256 1746601cbbf49ab6c8f8075b4c0f359b6e41a4ca7bb80c02e218839cbdbcdc8e

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 8fdf4816ad60f329b6b851847ce04eae77a9fb44a595eb85c18c79256c188c2f
MD5 0255af621b162915075b2475e20c51a3
BLAKE2b-256 0e36d7113ae7aa92553f6e3eda32b29cb62c65b7ef7cfd1f4029ef2bca5a1137

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: softcut_py-0.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 164.1 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 softcut_py-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6f4997f72974f085bb70cf977c14d5e0342185c197dd796f2a3adf2f1c221faa
MD5 732edb0d010b4c760bf4ecf7e80cd70e
BLAKE2b-256 2aa25922a709df13e7c93b8328bbe6eb83c5d94cec0aa5f25d1a4c6029a2c85a

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe50ba8239ef24832fcec0758b893de7f7011c7299ec30906404b779111070b1
MD5 373c4e387ca6fc38680c65d94aac0a46
BLAKE2b-256 84bc112aa465086df4b728223df2fa42b8f2e3b2596b4b59b61d5304a8861794

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ffc4ea9762deef5a2e5e5eaff803f51662f04cc1ad0738464285b601ed3d4561
MD5 23c3e0ec316c94e1797ee5c2a9f2668d
BLAKE2b-256 bf7590d6deb99eb0f3649d8417a3b32153468b5ecec9f676d3a76b1c3f732a5c

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 99fd3715c54246c030cb6a9809ca3bb5c7bd24e5976a737182f9c508ed91ef08
MD5 68bb7268bc0737b62d3c166b2acd299b
BLAKE2b-256 aef097e2c2f39ad9ec7d0bee54aaaadb09661ef29a943879a8f5525c2e9246e9

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 17a1eabcfbfd130c1887a32a342a81a550660024d2bf2995343717853e26aa18
MD5 5e0a0a35cb44d30812eb49798c8be7c3
BLAKE2b-256 64834b5fcaef69b686ef0a8d580d638d396ba50cac0d3c87096c10bf60d72215

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: softcut_py-0.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 164.4 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 softcut_py-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 afc9e18d67b2728bdd737568af5b7f04648b355c70a981458301160b7f1146f2
MD5 c70cb29283e62da0e983efe212a81196
BLAKE2b-256 54713c233688a3840969c7d4834bcd9b6e261a8b5a70b8b0a2722ac492e0c488

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9da606f12d062ced1e8789a92fe25923029b3de640bb93a6451be31b9c1c5330
MD5 121078309846f22f93ec849e5ab93cca
BLAKE2b-256 3b4d918239ec7bfeace6addb582c31c1a4de08aa0a138839ece9b2b27c106205

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 35e97b5d1305d9000e3f4e2bf41e3386b07822525429d52c563d653eb2f21951
MD5 6e0b011b0b4ed20d94890b882e3e9498
BLAKE2b-256 ff7ee5138851739407666f9c031b26ffea1cd0f757d7d3455f9590c6317f96ed

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 67df47e693810a1c8ac37df700a9311e3d6b9a1264a532dfa26a5bec8d0b5a95
MD5 78a0ba64536d83519f723acd95a4cdd1
BLAKE2b-256 157906d9d86741e2f806b98b089517b68789b00bd3844987290f016cd864d16a

See more details on using hashes here.

File details

Details for the file softcut_py-0.2.0-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for softcut_py-0.2.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3cc7e8f6ed2f90cb87d72965f5742f03ae11b6687a40b72c368493d45b8b35a6
MD5 ed9d2bed1bf925601273873e8fb63b00
BLAKE2b-256 753ff3553f071a1dee6fdc429455330f86c10d114ad7f4194c7efddb8b8be063

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.2

26 files

0.4.1

26 files

0.4.0

26 files

0.3.0

26 files

This release

0.2.0 This release

26 files

0.1.1

26 files

0.1.0

25 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