broadbean
Package for easily generating and manipulating signal pulses.
What it is and what it does
Broadbean is a pulse-building library that lets you compose and manipulate signal sequences declaratively—specify a square wave, a ramp, a sine, and a delay as easily as describing them in words, then modify parameters like frequency without rebuilding from scratch. It integrates with QCoDeS for laboratory automation and works with Tektronix 5000/7000 series arbitrary waveform generators, but also functions as a standalone signal-processing tool.
The package wraps numpy and matplotlib for numerical computation and visualization, with schema for validation and versioningit for version management. It targets Python 3.12+ and is actively maintained. A companion module called ripasso handles frequency filtering and compensation, factored out for potential reuse in other contexts.
Use it for:
- Design complex pulse sequences for quantum computing or condensed-matter experiments with QCoDeS integration
- Generate and visualize arbitrary waveforms for Tektronix AWG instruments without manual low-level specification
- Compose repeatable pulse patterns and modify them parametrically (e.g., sweep frequency) without rewriting sequences
- Apply frequency filtering and compensation to pulse signals via the ripasso submodule
- Prototype signal-processing workflows in Python before deployment to hardware
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Broadbean composes and manipulates pulse sequences for arbitrary waveforms, designed for use with QCoDeS and Tektronix AWG drivers but also works standalone.
Yes, if you work with pulse sequences or arbitrary waveform generation—especially in a QCoDeS lab environment or with Tektronix AWGs. The package is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. The Python 3.12+ requirement is a hard constraint; if you're on an earlier version, you cannot use it.
Install
broadbean on PyPI
pip
pip install broadbeanuv
uv add broadbeanpoetry
poetry add broadbeanInstalling broadbean
Before you install
Low install friction with a pure-wheel distribution. Active maintenance with recent commits and a stable release cycle. Requires Python 3.12 or later.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely provided you include the license notice.
Quickstart
pip install broadbean
import broadbean
# Compose a pulse sequence: square wave, then ramp, then sine
pulse = broadbean.Pulse(...) # See docs for full API
Requires Python 3.12 or later; earlier versions are not supported.
Verify before relying
- Whether ripasso (the frequency filtering submodule) is independently useful outside pulse building workflows
- Performance characteristics when composing very large or complex pulse sequences
- Compatibility details with specific Tektronix AWG models beyond the 5000/7000 series
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — numpy, matplotlib, schema, versioningit |
| Maintenance | actively maintained — 95 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 75,688/month — #14,686 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: broadbean-0.15.0-py3-none-any.whl
Keywords: Pulsebuilding, signal, processing, arbitrary, waveforms
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
qcodesQCoDeS is a Python data acquisition and control…
permissive · top 15,000 on PyPI
qualang-toolsProvides a comprehensive toolkit for writing…
permissive · top 15,000 on PyPI
attoworldAttoworld provides data handling, numerical…
unclear · top 15,000 on PyPI
oqpyOQpy generates OpenQASM 3 and OpenPulse…
permissive · top 15,000 on PyPI
openpulseOpenPulse parses and represents pulse grammar…
permissive · top 15,000 on PyPI
wavedromConverts WaveDrom-compatible JSON…
permissive · top 15,000 on PyPI
doppler-dspProvides a C99 digital signal processing…
permissive · top 15,000 on PyPI
pyPPGAnalyzes finger photoplethysmogram (PPG)…
agpl · top 15,000 on PyPI
wfdbRead, write, process, and plot physiologic…
permissive · top 15,000 on PyPI
pyjlsReads and writes JLS (Joulescope) files, a…
permissive · top 15,000 on PyPI