You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Copy file name to clipboardExpand all lines: docs/ecosystem.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,9 +19,10 @@ Standard hardware driver engine and companion reference code.
19
19
20
20
-[`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.
21
21
-[`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.
23
24
-[`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 displayifand 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.
25
26
-[`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.
26
27
-[`pydevices-examples`](https://github.com/PyDevices/pydevices-examples) — Comprehensive example code, direct MicroPython WebAssembly demos, board configurations, and multi-interpreter showcase benchmarks.
|`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 |
18
18
|`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 |
19
19
|`audiodev.sdl2_audio`| desktop MicroPython, CircuitPython, CPython, Jupyter | SDL2 queued PCM transport through `usdl2`|
20
20
|`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:
197
197
different rate plays at the wrong pitch, never raises. `bits_per_sample`/
198
198
`channel_count` mismatches *do* raise (`_check_format`), because those
199
199
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
201
201
TestPyPI before constructing `AudioOut`; raw PCM (`write()`/`readinto()`)
202
202
remains usable without it.
203
203
-`sample_out.sample_out(transport_module, format, **kwargs)` is the one-line
0 commit comments