hooring 🎐
Play cool-sounding furin (Japanese wind chime) tones, driven by a wandering breeze.
Glass (Edo furin) and metal (iron furin) timbres are additively synthesized and struck at irregular intervals, following the wind. Strike loudness and spacing wander with 1/f fluctuation, like a tanzaku paper strip catching the air and moving the clapper.
Installation
Install from PyPI with pipx:
pipx install hooring
That puts hooring on your PATH. Upgrade later with pipx upgrade hooring.
To use hooring as a Python library, install it with pip:
pip install hooring
Playback needs aplay (ALSA) or ffplay (ffmpeg). Writing a WAV file does not.
Development
Clone the repository and set up the virtualenv with uv:
uv sync
uv run hooring
Tests:
uv run pytest
Usage
hooring
It keeps ringing. Stop with Ctrl+C. To hear the same breeze again, pass the printed seed= to --seed.
# A single strike
hooring --once
# Light breeze, three furin, 45 seconds
hooring -d 45 --wind breeze --voices 3
# Metal timbre
hooring --material metal --wind gusty
# Write a WAV file (defaults to 30 seconds if duration is omitted)
hooring -o natsu.wav -d 20 --seed 7
# Half volume (1 is the current maximum)
hooring --volume 0.5
Options
| Flag | Meaning |
|---|---|
-d, --duration SEC |
Seconds to play or write. Omit to keep ringing |
-o, --output FILE |
Write a WAV file instead of playing |
--seed N |
Random seed |
--wind breeze|moderate|gusty |
Wind strength |
--voices N |
Number of furin (1–6, default 2) |
--material glass|metal|mixed |
Timbre |
--once |
Play a single strike and exit |
--mono |
Mono output |
--sample-rate HZ |
Sample rate |
--volume GAIN |
Volume 0–1 (1 is the current maximum, default 1) |
From Python:
from hooring import render
audio = render(duration=8, seed=1, wind="breeze", material="glass", volume=0.5)
# stereo: shape (n, 2), float64 in [-1, 1]
Release notes
License
hooring is distributed under the terms of the MIT license.
Metadata
Release files for hooring 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hooring-0.1.6.tar.gz | 44.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hooring-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.0 kB
Release files / hooring-0.1.6.tar.gz
| Download URL | hooring-0.1.6.tar.gz |
|---|---|
| Size | 44.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
48d9611be93de98e57447d9288343385423201f0d5de0989431739fd9ad46e0d
|
|
BLAKE2b-256 checksum How to use checksums |
0d26cc0d867c0fd23b6d104c068d3f9787f6e5db55a0a93325f3d70be8570bb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.18.0 {"ci":null,"cpu":"x86_64","distro":{"id":"trixie","libc":{"lib":"glibc","version":"2.41"},"name":"Debian GNU/Linux","version":"13"},"implementation":{"name":"CPython","version":"3.13.5"},"installer":{"name":"hatch","version":"1.18.0"},"openssl_version":"OpenSSL 3.5.7 9 Jun 2026","python":"3.13.5","system":{"name":"Linux","release":"7.1.8+deb13-amd64"}} HTTPX2/2.12.0
|
Release files / hooring-0.1.6-py3-none-any.whl
| Download URL | hooring-0.1.6-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c074f0e3e362a8966ce2c02be3987533cd879e3f47b3455a4d3386bba5ce080a
|
|
BLAKE2b-256 checksum How to use checksums |
7c2e8829570f201f4fd5aa64cce40f8cd1f73e5a418b7cee7b2456a4ba3cfdb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.18.0 {"ci":null,"cpu":"x86_64","distro":{"id":"trixie","libc":{"lib":"glibc","version":"2.41"},"name":"Debian GNU/Linux","version":"13"},"implementation":{"name":"CPython","version":"3.13.5"},"installer":{"name":"hatch","version":"1.18.0"},"openssl_version":"OpenSSL 3.5.7 9 Jun 2026","python":"3.13.5","system":{"name":"Linux","release":"7.1.8+deb13-amd64"}} HTTPX2/2.12.0
|