Skip to content

Commit 953ab78

Browse files
authored
The core's distribution is pydevices-audiodsp (#47)
* The core's distribution is pydevices-audiodsp The DSP repository was renamed audiodsp on 2026-09-21 and publishes as pydevices-audiodsp from its first release under that name. The install hint AudioOut raises, the audio docs and the deps-to-distribution table the browser tools use say so. * ecosystem: audioif, the audio hardware layer, joins the map Generated by the org's generate_sites.py from its repository database; the control plane's idempotency check compares this file against that output.
1 parent 50a34c3 commit 953ab78

8 files changed

Lines changed: 14 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
- **The DSP repository is `audiodsp` now** (renamed 2026-09-21), and everything
44
here that named it follows. One thing you can notice: on CPython,
55
`audiodev.accel` looks for the core's extension under its new name,
6-
`_audiodsp`, which arrives with the core's v0.5.0. With an older core
6+
`_audiodsp`, which arrives with the core's first release under its new name. With an older core
77
installed the C remix is not found and `audiodev` falls back to the Python
88
one — slower, same bytes. `_audioif` in `audiodev/pump.py` is a different
99
module, the pump's platform driver, and keeps its name.

docs/audio.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,11 @@ satisfying CircuitPython's audiosample pull protocol — a
109109
`WaveFile`, or any effect chained on top of one (`audiofilters`,
110110
`audiodelays`, `audiofreeverb`, `audiospeed`), all provided by the
111111
`audiodsp` usermod on MicroPython or the separately installed
112-
`pydevices-audioif` CPython distribution (`import synthio`,
112+
`pydevices-audiodsp` CPython distribution (`import synthio`,
113113
`import audiomixer`, ...). CPython users install it from TestPyPI with:
114114

115115
```sh
116-
python -m pip install --index-url https://test.pypi.org/simple/ pydevices-audioif
116+
python -m pip install --index-url https://test.pypi.org/simple/ pydevices-audiodsp
117117
```
118118

119119
Neither `pydevices` distribution depends on it; importing `audiodev` and
@@ -241,7 +241,7 @@ concrete backend. `audiodev` itself does not import `displaydev`.
241241
pygame's bundled SDL) and `audiodev.web_audio` (PyScript/Pyodide, via
242242
`AudioContext`/`getUserMedia`) still exist and still work as raw
243243
`PCMOutput`/`PCMInput` transports and can back `AudioOut` when
244-
`pydevices-audioif` is installed. Automatic selection uses MicroPython wasm,
244+
`pydevices-audiodsp` is installed. Automatic selection uses MicroPython wasm,
245245
Pyodide Web Audio, Windows `uwin32`, `usdl2`, then pygame-ce, in that order.
246246
Constructing `AudioOut` without `audiocore` fails immediately with the install
247247
command above; direct raw `write()`/`readinto()` remains independent.

docs/ecosystem.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ Standard hardware driver engine and companion reference code.
1919

2020
- [`pydevices`](https://github.com/PyDevices/pydevices) — Unified pure-Python hardware abstraction layer and core device contract for MicroPython, CircuitPython, CPython, direct WebAssembly, Pyodide, and Android.
2121
- [`displayif`](https://github.com/PyDevices/displayif) — High-performance C hardware bus engines (SPI, I2C, Intel 8080, RGB/DPI, MIPI DSI) and native usermod display drivers for MicroPython and CircuitPython.
22-
- [`audiodsp`](https://github.com/PyDevices/audiodsp) — CircuitPython's audio system (audiocore, synthio, audiomixer, effects, audiomp3) ported to MicroPython and CPython, extending CircuitPython along the way: dynamics, routing, convolution, and offline rendering. Ships as pydevices-audioif; the instrument and effect libraries built on it ship from audiocomponents.
22+
- [`audiodsp`](https://github.com/PyDevices/audiodsp) — CircuitPython's audio system (audiocore, synthio, audiomixer, effects, audiomp3) ported to MicroPython and CPython, extending CircuitPython along the way: dynamics, routing, convolution, and offline rendering. Ships as pydevices-audiodsp; the instrument and effect libraries built on it ship from audiocomponents.
23+
- [`audioif`](https://github.com/PyDevices/audioif) — The part of the audio stack that knows what a thread is, where the clock comes from and where the sound goes: a pinned task and the I2S peripheral on ESP32, a native thread on unix and Windows, and a CircuitPython-shaped audiobusio.I2SOut over all of it. With it in a firmware, a graph keeps an exact clock while a screen redraws and a USB stack runs, and audiodev plays through it without being asked. The portable half of the pump, and every DSP node, is audiodsp.
2324
- [`audiocomponents`](https://github.com/PyDevices/audiocomponents) — The instrument and effect libraries for audiodsp: audioinstruments (53 modelled classics, from the TR-808 to the DX7) and audioeffects (46 effect classes and racks), pure Python on MicroPython and CPython. Ships as pydevices-audioinstruments and pydevices-audioeffects, each a standalone distribution and a MIP package.
24-
- [`usbif`](https://github.com/PyDevices/usbif) — A board a computer sees as a sound card, a MIDI instrument, a keyboard, a drive or a webcam — and, on the same board, a USB host that a keyboard, thumb drive, MIDI controller or camera plugs into. The third PyDevices *if module after displayif and audiodsp: a native C module with a thin, stable Python surface that runs unchanged on a workstation.
25+
- [`usbif`](https://github.com/PyDevices/usbif) — A board a computer sees as a sound card, a MIDI instrument, a keyboard, a drive or a webcam — and, on the same board, a USB host that a keyboard, thumb drive, MIDI controller or camera plugs into. One of the PyDevices *if modules, with displayif, audioif and cameraif: a native C module with a thin, stable Python surface that runs unchanged on a workstation.
2526
- [`cameraif`](https://github.com/PyDevices/cameraif) — Point the board at something and read the frame. The sensor is found by probing rather than named in code, so a different camera is a build-time option away, not a rewrite. Hardware JPEG, zero-copy frames and hardware scaling straight into a display's scanout buffer, with every rate in its README measured on the board it names.
2627
- [`pydevices-examples`](https://github.com/PyDevices/pydevices-examples) — Comprehensive example code, direct MicroPython WebAssembly demos, board configurations, and multi-interpreter showcase benchmarks.
2728

lib/audiodev/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ still directly usable for raw `write()`/`readinto()`.
1414
| Module | Host | Role |
1515
|--------|------|------|
1616
| `audiodev` | all | `AudioFormat`, `PCMOutput` / `PCMInput` / `ToneOutput` bases, latency helpers |
17-
| `audiodev.sample_out` | MicroPython (`audiodsp` usermod) and CPython (`pydevices-audioif`) | `AudioOut` — pulls `audiocore.get_buffer` on a lookahead schedule, pushes into a transport |
17+
| `audiodev.sample_out` | MicroPython (`audiodsp` usermod) and CPython (`pydevices-audiodsp`) | `AudioOut` — pulls `audiocore.get_buffer` on a lookahead schedule, pushes into a transport |
1818
| `audiodev.pump` | any firmware carrying the `audiopump` module | Hands the graph to the C pump instead, off the interpreter thread. Used without being asked; absent, nothing here does anything |
1919
| `audiodev.sdl2_audio` | desktop MicroPython, CircuitPython, CPython, Jupyter | SDL2 queued PCM transport through `usdl2` |
2020
| `audiodev.pygame_audio` | CPython desktop with pygame-ce installed | Queued PCM transport on pygame-ce's bundled SDL |
@@ -197,7 +197,7 @@ Consequences worth knowing:
197197
different rate plays at the wrong pitch, never raises. `bits_per_sample`/
198198
`channel_count` mismatches *do* raise (`_check_format`), because those
199199
corrupt every byte a software queue reads, unlike a rate mismatch.
200-
- **CPython needs a separate package.** Install `pydevices-audioif` from
200+
- **CPython needs a separate package.** Install `pydevices-audiodsp` from
201201
TestPyPI before constructing `AudioOut`; raw PCM (`write()`/`readinto()`)
202202
remains usable without it.
203203
- `sample_out.sample_out(transport_module, format, **kwargs)` is the one-line

lib/audiodev/sample_out.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,9 @@ def _load_audiocore():
123123
)
124124
else:
125125
message = (
126-
"AudioOut requires pydevices-audioif; install it with: "
126+
"AudioOut requires pydevices-audiodsp; install it with: "
127127
"python -m pip install --index-url https://test.pypi.org/simple/ "
128-
"pydevices-audioif"
128+
"pydevices-audiodsp"
129129
)
130130
raise ImportError(message) from exc
131131

tests/test_audio_playback_golden.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
def _cpython_oracle_candidate():
3232
"""Return the workspace audiodsp source tree when its extension is built.
3333
34-
``pydevices`` deliberately does not depend on ``pydevices-audioif``. In
34+
``pydevices`` deliberately does not depend on ``pydevices-audiodsp``. In
3535
the multi-repository workspace, though, include CPython in this integration
3636
parity test whenever the sibling checkout has an in-place extension for
3737
the running interpreter.

tests/test_audiodev.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ def import_without_audiocore(name, *args, **kwargs):
390390
with mock.patch("builtins.__import__", side_effect=import_without_audiocore):
391391
with self.assertRaisesRegex(
392392
ImportError,
393-
r"python -m pip install --index-url https://test\.pypi\.org/simple/ pydevices-audioif",
393+
r"python -m pip install --index-url https://test\.pypi\.org/simple/ pydevices-audiodsp",
394394
):
395395
sample_out.AudioOut(FakePCMOutput(AudioFormat(8000, 1, 16)))
396396

tools/_browser_url.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
_WHEEL_REWRITE = {
4747
"appdev": "pydevices",
4848
"audioeffects": "pydevices-audioeffects",
49-
"audiodsp": "pydevices-audioif",
49+
"audiodsp": "pydevices-audiodsp",
5050
"audioinstruments": "pydevices-audioinstruments",
5151
"display-driver": "pydevices-lvgl",
5252
"displaydev": "pydevices",

0 commit comments

Comments
 (0)