Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions .github/workflows/style.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# The mechanical house-style rules: SPDX header, no Sphinx roles in
# docstrings, no link to the .github repo from a page, no README badges or
# status banner. Pull requests check the changed files; a manual run checks
# every file. Paths that aren't ours go in .style-exclude.
name: Style

on:
pull_request:
workflow_dispatch:

permissions:
contents: read

jobs:
style:
uses: PyDevices/.github/.github/workflows/reusable-style-check.yml@publishing-v20
1 change: 1 addition & 0 deletions examples/bass_pedals_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the BassPedals: roar, tuba, pluck, fifths, octave bass, squelch, swell, glide, beat, thump and lead.

Expand Down
1 change: 1 addition & 0 deletions examples/clavichord_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Clavichord: classic funk riff, brilliant lead, warm chords, out-of-phase, muted plucks, and auto-wah.

Expand Down
1 change: 1 addition & 0 deletions examples/combo_organ_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the ComboOrgan: Continental, Beat Group, Soft Flute, Reedy Lead, and New Wave.

Expand Down
1 change: 1 addition & 0 deletions examples/compact_organ_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the CompactOrgan: Garage riff, Bright Strings, Soft Flutes, Trumpet lead, and Full Combo.

Expand Down
1 change: 1 addition & 0 deletions examples/demo_check.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""The check every demo runs on each of its sections.

Expand Down
1 change: 1 addition & 0 deletions examples/duosynth_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the DuoSynth: lead, sync sweep, thirds, ring bell, strings, pluck bass, S&H, trill, repeat pulse, wind, and FM clang.

Expand Down
1 change: 1 addition & 0 deletions examples/electric_grand70_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the ElectricGrand70: stage grand, bright rock, ballad, chorused and tremolo.

Expand Down
1 change: 1 addition & 0 deletions examples/electric_piano_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the ElectricPiano: ballad, funk bark, glass tines, dark tonebar, fast pan and short damper.

Expand Down
1 change: 1 addition & 0 deletions examples/electronic_drums5_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play ElectronicDrums5: five classic 1980s electronic drum patterns across its five patches.

Expand Down
1 change: 1 addition & 0 deletions examples/headless_synth.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Example: Headless Modular100 modular synthesizer in the rack.

Expand Down
1 change: 1 addition & 0 deletions examples/hmi_board.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""The rack on a board, open to front panels over Wi-Fi, with its own screen.

Expand Down
1 change: 1 addition & 0 deletions examples/hmi_instrument.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play an instrument demo's phrase, live, with its patches and knobs open to panels.

Expand Down
1 change: 1 addition & 0 deletions examples/mono101_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Mono101 through eleven sections, changing patch as a player would.

Expand Down
1 change: 1 addition & 0 deletions examples/mono_synth_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the MonoSynth through eleven sections, changing patch as a player would.

Expand Down
1 change: 1 addition & 0 deletions examples/play_audio.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Twenty short movements, one per instrument, rendered to WAV or played live.

Expand Down
1 change: 1 addition & 0 deletions examples/poly5_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Poly5: brass, sync sweep, strings, bells, pluck, lead, keys, pad and wind.

Expand Down
1 change: 1 addition & 0 deletions examples/poly6_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Poly6: strings, brass, pad, chord stab, unison bass, sub bass,
tremolo keys, organ with effect switching, phaser sweep, vibrato lead, and noise surf.
Expand Down
1 change: 1 addition & 0 deletions examples/poly80_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Poly80: swell brass, ribbon lead, strings, ring bells, EP, clav, organ, flute, wah, gliss pad, bass, init.

Expand Down
1 change: 1 addition & 0 deletions examples/poly8_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Poly8: strings, brass, a sync lead, a cross-mod bell, a pad, a bass, plucks, wind.

Expand Down
1 change: 1 addition & 0 deletions examples/polya6_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the PolyA6: Init chords, brass swell, PWM strings, huge pad, unison lead, sync sweep, ring bells, FM clang, series notch, pluck bass, S&H steps, and noise wind.

Expand Down
1 change: 1 addition & 0 deletions examples/polyxa_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the PolyXa: anthem stabs, brass, sync lead, strings, unison bass, plucks, steps, growl, glide pad, vibrato lead, and wind.

Expand Down
1 change: 1 addition & 0 deletions examples/rackview/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Front panels for a rack, on hmilink.

Expand Down
1 change: 1 addition & 0 deletions examples/rackview/layout.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Eurorack front-panel layout specifications and geometry."""

Expand Down
1 change: 1 addition & 0 deletions examples/rackview/lvgl_panel.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""An LVGL front panel for a rack over hmilink: the device's own screen.

Expand Down
1 change: 1 addition & 0 deletions examples/rackview/lvgl_view.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Decoupled LVGL touchscreen UI renderer with tap-to-patch interactive catenary cables."""

Expand Down
1 change: 1 addition & 0 deletions examples/reed_piano200a_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the ReedPiano200A: soul ballad, tremolo chords, snarl riff, soft ballad, dry funk and overdriven.

Expand Down
1 change: 1 addition & 0 deletions examples/reed_piano_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the ReedPiano: 1960s beat riff, snappy lead, soft plucks, wide arpeggios, and dead thud groove.

Expand Down
1 change: 1 addition & 0 deletions examples/rhythm606_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Rhythm606: four classic analog drum patterns across its four patches.

Expand Down
1 change: 1 addition & 0 deletions examples/rhythm78_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Rhythm78: four classic preset rhythm patterns across its four patches.

Expand Down
1 change: 1 addition & 0 deletions examples/rhythm808_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Rhythm808: six classic drum patterns across its six patches.

Expand Down
1 change: 1 addition & 0 deletions examples/rhythm909_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Rhythm909: five classic drum patterns across its five patches.

Expand Down
1 change: 1 addition & 0 deletions examples/soundfont_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play a short phrase on a SoundFont bank: drums first, then a piano comes in.

Expand Down
1 change: 1 addition & 0 deletions examples/string_ensemble_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the StringEnsemble: Init, Full Strings, Slow Swell, High Violins, Dark Violas,
Dry Strings, Brass Section, Muted Horns, Strings and Brass, Bass Pedal, Everything,
Expand Down
1 change: 1 addition & 0 deletions examples/tonewheel3_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Tonewheel3: Full Gospel, Jazz Trio, Rock Drive, Ballad, Whistle, and Full Organ.

Expand Down
1 change: 1 addition & 0 deletions examples/vocoder330_demo.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Play the Vocoder330 through its twelve sections: strings, choirs, the vocoder and the hold.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Synthesizers, organs and electric pianos, each one a patch on a virtual rack.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_names.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
# Generated by tools/make_faces.py from audioinstruments._rack.adapter: edit that, then run it again.
"""Which instruments the package has, written out so nothing lists a directory."""
Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""The rack every instrument is built on: a virtual Eurorack modular synthesizer in portable Python."""

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/_component.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""The audio component contract for instruments that are not a rack.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/_gm.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""General MIDI's names for the percussion keys this library uses.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/_lazy.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Import a package's public names on first use.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/_sf2.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""A SoundFont 2 (.sf2) reader, written from the SoundFont 2.04 specification.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/adapter.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""A polyphonic rack as an audio component.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/core/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""The rack, its jacks and cables, the signal kernels and the audiodsp bridge."""

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/core/bridge.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Run audiodsp nodes on the rack's float blocks.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/core/cable.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Virtual patch cable connecting an OutputJack to an InputJack."""

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/core/graph.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""A rack compiled to one ``audiograph`` graph, rendered by one C call a block.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/core/jack.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Eurorack Jack abstractions: InputJack with normaling, OutputJack with fan-out."""

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/core/module.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Base class for rack modules."""

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/core/poly.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Polyphony: one voice patch replicated N times, an allocator, a shared section.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/core/rack.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""The rack: modules, cables, processing order and patch state."""

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/core/signal.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Signal conventions and in-place buffer kernels.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""The DSP cores the modules are built from.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/amplifier.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Voltage-controlled amplifier with linear and exponential response."""

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/biquad.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Linear two-pole filters on audiodsp: synthio.Biquad inside audiofilters.Filter.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/blocks.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Block helpers for control-voltage generators.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/chorus.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""A stereo bucket-brigade chorus: two short lines swept in opposite directions.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/delay.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Bucket-brigade style delay on audiodsp's Echo."""

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/drums.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Shared analog drum synthesis cores.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/ensemble.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""A string-machine ensemble: three short lines, each swept by two slow LFOs.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/envelope.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""ADSR envelope with exponential segments, rendered a segment at a time."""

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/function_generator.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Rise/fall function generators and the trapezoid shaper.

Expand Down
1 change: 1 addition & 0 deletions lib/audioinstruments/_rack/dsp/glide.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# SPDX-FileCopyrightText: 2026 Brad Barnett
#
# SPDX-License-Identifier: MIT
"""Portamento: a pitch CV that slides to each new note in a set time.

Expand Down
Loading
Loading