diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml new file mode 100644 index 0000000..ab9fc31 --- /dev/null +++ b/.github/workflows/style.yml @@ -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 diff --git a/examples/bass_pedals_demo.py b/examples/bass_pedals_demo.py index c2ea60f..68e30e6 100644 --- a/examples/bass_pedals_demo.py +++ b/examples/bass_pedals_demo.py @@ -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. diff --git a/examples/clavichord_demo.py b/examples/clavichord_demo.py index 19bd383..3b219e6 100644 --- a/examples/clavichord_demo.py +++ b/examples/clavichord_demo.py @@ -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. diff --git a/examples/combo_organ_demo.py b/examples/combo_organ_demo.py index c5b9e36..c4670e2 100644 --- a/examples/combo_organ_demo.py +++ b/examples/combo_organ_demo.py @@ -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. diff --git a/examples/compact_organ_demo.py b/examples/compact_organ_demo.py index c3911f0..d73ac00 100644 --- a/examples/compact_organ_demo.py +++ b/examples/compact_organ_demo.py @@ -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. diff --git a/examples/demo_check.py b/examples/demo_check.py index 2920e36..3be9f09 100644 --- a/examples/demo_check.py +++ b/examples/demo_check.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The check every demo runs on each of its sections. diff --git a/examples/duosynth_demo.py b/examples/duosynth_demo.py index 2ed6c80..56e4c24 100644 --- a/examples/duosynth_demo.py +++ b/examples/duosynth_demo.py @@ -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. diff --git a/examples/electric_grand70_demo.py b/examples/electric_grand70_demo.py index 0209bd7..defc49c 100644 --- a/examples/electric_grand70_demo.py +++ b/examples/electric_grand70_demo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Play the ElectricGrand70: stage grand, bright rock, ballad, chorused and tremolo. diff --git a/examples/electric_piano_demo.py b/examples/electric_piano_demo.py index 342de65..0696e12 100644 --- a/examples/electric_piano_demo.py +++ b/examples/electric_piano_demo.py @@ -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. diff --git a/examples/electronic_drums5_demo.py b/examples/electronic_drums5_demo.py index 1446430..3b6804a 100644 --- a/examples/electronic_drums5_demo.py +++ b/examples/electronic_drums5_demo.py @@ -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. diff --git a/examples/headless_synth.py b/examples/headless_synth.py index 1a06a6d..ea1eaab 100644 --- a/examples/headless_synth.py +++ b/examples/headless_synth.py @@ -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. diff --git a/examples/hmi_board.py b/examples/hmi_board.py index c7171e0..83113e9 100644 --- a/examples/hmi_board.py +++ b/examples/hmi_board.py @@ -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. diff --git a/examples/hmi_instrument.py b/examples/hmi_instrument.py index cf5f381..b1cb538 100644 --- a/examples/hmi_instrument.py +++ b/examples/hmi_instrument.py @@ -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. diff --git a/examples/mono101_demo.py b/examples/mono101_demo.py index c11b3a1..bb638f2 100644 --- a/examples/mono101_demo.py +++ b/examples/mono101_demo.py @@ -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. diff --git a/examples/mono_synth_demo.py b/examples/mono_synth_demo.py index bcf5c5e..066df8e 100644 --- a/examples/mono_synth_demo.py +++ b/examples/mono_synth_demo.py @@ -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. diff --git a/examples/play_audio.py b/examples/play_audio.py index a493466..e115c60 100644 --- a/examples/play_audio.py +++ b/examples/play_audio.py @@ -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. diff --git a/examples/poly5_demo.py b/examples/poly5_demo.py index c9178da..3cb5374 100644 --- a/examples/poly5_demo.py +++ b/examples/poly5_demo.py @@ -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. diff --git a/examples/poly6_demo.py b/examples/poly6_demo.py index aef73ed..4b0e92c 100644 --- a/examples/poly6_demo.py +++ b/examples/poly6_demo.py @@ -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. diff --git a/examples/poly80_demo.py b/examples/poly80_demo.py index 6235198..68b1885 100644 --- a/examples/poly80_demo.py +++ b/examples/poly80_demo.py @@ -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. diff --git a/examples/poly8_demo.py b/examples/poly8_demo.py index d91fd40..0842e99 100644 --- a/examples/poly8_demo.py +++ b/examples/poly8_demo.py @@ -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. diff --git a/examples/polya6_demo.py b/examples/polya6_demo.py index dd36274..90a9cae 100644 --- a/examples/polya6_demo.py +++ b/examples/polya6_demo.py @@ -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. diff --git a/examples/polyxa_demo.py b/examples/polyxa_demo.py index 19cd926..be35ae1 100644 --- a/examples/polyxa_demo.py +++ b/examples/polyxa_demo.py @@ -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. diff --git a/examples/rackview/__init__.py b/examples/rackview/__init__.py index 83e04bd..57ea6a9 100644 --- a/examples/rackview/__init__.py +++ b/examples/rackview/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Front panels for a rack, on hmilink. diff --git a/examples/rackview/layout.py b/examples/rackview/layout.py index de1ffdf..45391e6 100644 --- a/examples/rackview/layout.py +++ b/examples/rackview/layout.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Eurorack front-panel layout specifications and geometry.""" diff --git a/examples/rackview/lvgl_panel.py b/examples/rackview/lvgl_panel.py index 7d0e393..d1aab47 100644 --- a/examples/rackview/lvgl_panel.py +++ b/examples/rackview/lvgl_panel.py @@ -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. diff --git a/examples/rackview/lvgl_view.py b/examples/rackview/lvgl_view.py index 143a7da..bc5d603 100644 --- a/examples/rackview/lvgl_view.py +++ b/examples/rackview/lvgl_view.py @@ -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.""" diff --git a/examples/reed_piano200a_demo.py b/examples/reed_piano200a_demo.py index 32ed27c..81e8155 100644 --- a/examples/reed_piano200a_demo.py +++ b/examples/reed_piano200a_demo.py @@ -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. diff --git a/examples/reed_piano_demo.py b/examples/reed_piano_demo.py index a17ec55..126a43a 100644 --- a/examples/reed_piano_demo.py +++ b/examples/reed_piano_demo.py @@ -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. diff --git a/examples/rhythm606_demo.py b/examples/rhythm606_demo.py index 45f5f08..8dc5826 100644 --- a/examples/rhythm606_demo.py +++ b/examples/rhythm606_demo.py @@ -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. diff --git a/examples/rhythm78_demo.py b/examples/rhythm78_demo.py index e1916f9..ccfc006 100644 --- a/examples/rhythm78_demo.py +++ b/examples/rhythm78_demo.py @@ -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. diff --git a/examples/rhythm808_demo.py b/examples/rhythm808_demo.py index d1828b7..ff229fc 100644 --- a/examples/rhythm808_demo.py +++ b/examples/rhythm808_demo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Play the Rhythm808: six classic drum patterns across its six patches. diff --git a/examples/rhythm909_demo.py b/examples/rhythm909_demo.py index a4d8c3f..6b82aae 100644 --- a/examples/rhythm909_demo.py +++ b/examples/rhythm909_demo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Play the Rhythm909: five classic drum patterns across its five patches. diff --git a/examples/soundfont_demo.py b/examples/soundfont_demo.py index 0defccb..61fa582 100644 --- a/examples/soundfont_demo.py +++ b/examples/soundfont_demo.py @@ -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. diff --git a/examples/string_ensemble_demo.py b/examples/string_ensemble_demo.py index 04874f9..2b27901 100644 --- a/examples/string_ensemble_demo.py +++ b/examples/string_ensemble_demo.py @@ -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, diff --git a/examples/tonewheel3_demo.py b/examples/tonewheel3_demo.py index 2331fbf..1eddd4c 100644 --- a/examples/tonewheel3_demo.py +++ b/examples/tonewheel3_demo.py @@ -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. diff --git a/examples/vocoder330_demo.py b/examples/vocoder330_demo.py index 976243b..64fac59 100644 --- a/examples/vocoder330_demo.py +++ b/examples/vocoder330_demo.py @@ -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. diff --git a/lib/audioinstruments/__init__.py b/lib/audioinstruments/__init__.py index 935e4b6..839cc03 100644 --- a/lib/audioinstruments/__init__.py +++ b/lib/audioinstruments/__init__.py @@ -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. diff --git a/lib/audioinstruments/_names.py b/lib/audioinstruments/_names.py index 2345b90..cdff0d6 100644 --- a/lib/audioinstruments/_names.py +++ b/lib/audioinstruments/_names.py @@ -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.""" diff --git a/lib/audioinstruments/_rack/__init__.py b/lib/audioinstruments/_rack/__init__.py index 71c69f0..37dbf19 100644 --- a/lib/audioinstruments/_rack/__init__.py +++ b/lib/audioinstruments/_rack/__init__.py @@ -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.""" diff --git a/lib/audioinstruments/_rack/_component.py b/lib/audioinstruments/_rack/_component.py index d31d761..4e69e87 100644 --- a/lib/audioinstruments/_rack/_component.py +++ b/lib/audioinstruments/_rack/_component.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The audio component contract for instruments that are not a rack. diff --git a/lib/audioinstruments/_rack/_gm.py b/lib/audioinstruments/_rack/_gm.py index d96dae8..6fd9cc1 100644 --- a/lib/audioinstruments/_rack/_gm.py +++ b/lib/audioinstruments/_rack/_gm.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """General MIDI's names for the percussion keys this library uses. diff --git a/lib/audioinstruments/_rack/_lazy.py b/lib/audioinstruments/_rack/_lazy.py index 7690ace..085d53d 100644 --- a/lib/audioinstruments/_rack/_lazy.py +++ b/lib/audioinstruments/_rack/_lazy.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Import a package's public names on first use. diff --git a/lib/audioinstruments/_rack/_sf2.py b/lib/audioinstruments/_rack/_sf2.py index abbd639..1d8cce1 100644 --- a/lib/audioinstruments/_rack/_sf2.py +++ b/lib/audioinstruments/_rack/_sf2.py @@ -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. diff --git a/lib/audioinstruments/_rack/adapter.py b/lib/audioinstruments/_rack/adapter.py index c64dd0a..e91b6fd 100644 --- a/lib/audioinstruments/_rack/adapter.py +++ b/lib/audioinstruments/_rack/adapter.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A polyphonic rack as an audio component. diff --git a/lib/audioinstruments/_rack/core/__init__.py b/lib/audioinstruments/_rack/core/__init__.py index 8aec105..1958ff6 100644 --- a/lib/audioinstruments/_rack/core/__init__.py +++ b/lib/audioinstruments/_rack/core/__init__.py @@ -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.""" diff --git a/lib/audioinstruments/_rack/core/bridge.py b/lib/audioinstruments/_rack/core/bridge.py index c4f6dd0..a574b2e 100644 --- a/lib/audioinstruments/_rack/core/bridge.py +++ b/lib/audioinstruments/_rack/core/bridge.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Run audiodsp nodes on the rack's float blocks. diff --git a/lib/audioinstruments/_rack/core/cable.py b/lib/audioinstruments/_rack/core/cable.py index 2b12016..6437f55 100644 --- a/lib/audioinstruments/_rack/core/cable.py +++ b/lib/audioinstruments/_rack/core/cable.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Virtual patch cable connecting an OutputJack to an InputJack.""" diff --git a/lib/audioinstruments/_rack/core/graph.py b/lib/audioinstruments/_rack/core/graph.py index 40311c4..47271ad 100644 --- a/lib/audioinstruments/_rack/core/graph.py +++ b/lib/audioinstruments/_rack/core/graph.py @@ -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. diff --git a/lib/audioinstruments/_rack/core/jack.py b/lib/audioinstruments/_rack/core/jack.py index 44b5d37..ad7327b 100644 --- a/lib/audioinstruments/_rack/core/jack.py +++ b/lib/audioinstruments/_rack/core/jack.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Eurorack Jack abstractions: InputJack with normaling, OutputJack with fan-out.""" diff --git a/lib/audioinstruments/_rack/core/module.py b/lib/audioinstruments/_rack/core/module.py index 0cbf3d5..1f33079 100644 --- a/lib/audioinstruments/_rack/core/module.py +++ b/lib/audioinstruments/_rack/core/module.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Base class for rack modules.""" diff --git a/lib/audioinstruments/_rack/core/poly.py b/lib/audioinstruments/_rack/core/poly.py index 1240183..4f07dd2 100644 --- a/lib/audioinstruments/_rack/core/poly.py +++ b/lib/audioinstruments/_rack/core/poly.py @@ -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. diff --git a/lib/audioinstruments/_rack/core/rack.py b/lib/audioinstruments/_rack/core/rack.py index 2d08b2d..10da052 100644 --- a/lib/audioinstruments/_rack/core/rack.py +++ b/lib/audioinstruments/_rack/core/rack.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The rack: modules, cables, processing order and patch state.""" diff --git a/lib/audioinstruments/_rack/core/signal.py b/lib/audioinstruments/_rack/core/signal.py index 8c8153c..6169ed4 100644 --- a/lib/audioinstruments/_rack/core/signal.py +++ b/lib/audioinstruments/_rack/core/signal.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Signal conventions and in-place buffer kernels. diff --git a/lib/audioinstruments/_rack/dsp/__init__.py b/lib/audioinstruments/_rack/dsp/__init__.py index ef0da64..fa247d6 100644 --- a/lib/audioinstruments/_rack/dsp/__init__.py +++ b/lib/audioinstruments/_rack/dsp/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The DSP cores the modules are built from. diff --git a/lib/audioinstruments/_rack/dsp/amplifier.py b/lib/audioinstruments/_rack/dsp/amplifier.py index 8df6f0a..cff6488 100644 --- a/lib/audioinstruments/_rack/dsp/amplifier.py +++ b/lib/audioinstruments/_rack/dsp/amplifier.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Voltage-controlled amplifier with linear and exponential response.""" diff --git a/lib/audioinstruments/_rack/dsp/biquad.py b/lib/audioinstruments/_rack/dsp/biquad.py index e07385d..3553064 100644 --- a/lib/audioinstruments/_rack/dsp/biquad.py +++ b/lib/audioinstruments/_rack/dsp/biquad.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Linear two-pole filters on audiodsp: synthio.Biquad inside audiofilters.Filter. diff --git a/lib/audioinstruments/_rack/dsp/blocks.py b/lib/audioinstruments/_rack/dsp/blocks.py index 4a521c9..399732c 100644 --- a/lib/audioinstruments/_rack/dsp/blocks.py +++ b/lib/audioinstruments/_rack/dsp/blocks.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Block helpers for control-voltage generators. diff --git a/lib/audioinstruments/_rack/dsp/chorus.py b/lib/audioinstruments/_rack/dsp/chorus.py index 49556d1..d629a37 100644 --- a/lib/audioinstruments/_rack/dsp/chorus.py +++ b/lib/audioinstruments/_rack/dsp/chorus.py @@ -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. diff --git a/lib/audioinstruments/_rack/dsp/delay.py b/lib/audioinstruments/_rack/dsp/delay.py index 446427b..a1dc203 100644 --- a/lib/audioinstruments/_rack/dsp/delay.py +++ b/lib/audioinstruments/_rack/dsp/delay.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Bucket-brigade style delay on audiodsp's Echo.""" diff --git a/lib/audioinstruments/_rack/dsp/drums.py b/lib/audioinstruments/_rack/dsp/drums.py index 12be440..4f0dabd 100644 --- a/lib/audioinstruments/_rack/dsp/drums.py +++ b/lib/audioinstruments/_rack/dsp/drums.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Shared analog drum synthesis cores. diff --git a/lib/audioinstruments/_rack/dsp/ensemble.py b/lib/audioinstruments/_rack/dsp/ensemble.py index 3b05757..b3bb836 100644 --- a/lib/audioinstruments/_rack/dsp/ensemble.py +++ b/lib/audioinstruments/_rack/dsp/ensemble.py @@ -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. diff --git a/lib/audioinstruments/_rack/dsp/envelope.py b/lib/audioinstruments/_rack/dsp/envelope.py index 2395828..69e4ef7 100644 --- a/lib/audioinstruments/_rack/dsp/envelope.py +++ b/lib/audioinstruments/_rack/dsp/envelope.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ADSR envelope with exponential segments, rendered a segment at a time.""" diff --git a/lib/audioinstruments/_rack/dsp/function_generator.py b/lib/audioinstruments/_rack/dsp/function_generator.py index b1b0cc3..a77ffcc 100644 --- a/lib/audioinstruments/_rack/dsp/function_generator.py +++ b/lib/audioinstruments/_rack/dsp/function_generator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rise/fall function generators and the trapezoid shaper. diff --git a/lib/audioinstruments/_rack/dsp/glide.py b/lib/audioinstruments/_rack/dsp/glide.py index 892468f..72e3da6 100644 --- a/lib/audioinstruments/_rack/dsp/glide.py +++ b/lib/audioinstruments/_rack/dsp/glide.py @@ -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. diff --git a/lib/audioinstruments/_rack/dsp/granular.py b/lib/audioinstruments/_rack/dsp/granular.py index 9e7b463..16d597e 100644 --- a/lib/audioinstruments/_rack/dsp/granular.py +++ b/lib/audioinstruments/_rack/dsp/granular.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Granular texture engine: a recording buffer scrubbed by a pool of grains. diff --git a/lib/audioinstruments/_rack/dsp/keys.py b/lib/audioinstruments/_rack/dsp/keys.py index d53bbd8..57670a5 100644 --- a/lib/audioinstruments/_rack/dsp/keys.py +++ b/lib/audioinstruments/_rack/dsp/keys.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Struck keys: a hammer, a bank of tuned modes it rings, and a magnetic pickup. diff --git a/lib/audioinstruments/_rack/dsp/ladder.py b/lib/audioinstruments/_rack/dsp/ladder.py index f9cf6eb..5a35503 100644 --- a/lib/audioinstruments/_rack/dsp/ladder.py +++ b/lib/audioinstruments/_rack/dsp/ladder.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Four-pole ladder filters with a saturating feedback loop. diff --git a/lib/audioinstruments/_rack/dsp/lfo.py b/lib/audioinstruments/_rack/dsp/lfo.py index 83dda0f..727bb44 100644 --- a/lib/audioinstruments/_rack/dsp/lfo.py +++ b/lib/audioinstruments/_rack/dsp/lfo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Low-frequency oscillator with sine, triangle, saw and square outputs.""" diff --git a/lib/audioinstruments/_rack/dsp/lpg.py b/lib/audioinstruments/_rack/dsp/lpg.py index ef654fc..706cfb6 100644 --- a/lib/audioinstruments/_rack/dsp/lpg.py +++ b/lib/audioinstruments/_rack/dsp/lpg.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Vactrol low-pass gate: a sluggish control element driving a filter and a gain.""" diff --git a/lib/audioinstruments/_rack/dsp/macro_oscillator.py b/lib/audioinstruments/_rack/dsp/macro_oscillator.py index cb0d6d8..e7d0749 100644 --- a/lib/audioinstruments/_rack/dsp/macro_oscillator.py +++ b/lib/audioinstruments/_rack/dsp/macro_oscillator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A macro-oscillator with eight models and a built-in low-pass gate. diff --git a/lib/audioinstruments/_rack/dsp/modal.py b/lib/audioinstruments/_rack/dsp/modal.py index 2e182b2..7f0fd9c 100644 --- a/lib/audioinstruments/_rack/dsp/modal.py +++ b/lib/audioinstruments/_rack/dsp/modal.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Physical-modelling resonators on audiodsp: a modal bank and a string. diff --git a/lib/audioinstruments/_rack/dsp/noise.py b/lib/audioinstruments/_rack/dsp/noise.py index c63cba5..7f35a7b 100644 --- a/lib/audioinstruments/_rack/dsp/noise.py +++ b/lib/audioinstruments/_rack/dsp/noise.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """White and pink noise.""" diff --git a/lib/audioinstruments/_rack/dsp/organ.py b/lib/audioinstruments/_rack/dsp/organ.py index 87c3b6d..5702b5b 100644 --- a/lib/audioinstruments/_rack/dsp/organ.py +++ b/lib/audioinstruments/_rack/dsp/organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Organ cores: a footage tone generator, key click, percussion, scanner vibrato, swell pedal. diff --git a/lib/audioinstruments/_rack/dsp/oscillator.py b/lib/audioinstruments/_rack/dsp/oscillator.py index b9be6bd..7818675 100644 --- a/lib/audioinstruments/_rack/dsp/oscillator.py +++ b/lib/audioinstruments/_rack/dsp/oscillator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Band-limited oscillators: a multi-wave VCO and a continuous wave blender. diff --git a/lib/audioinstruments/_rack/dsp/reverb.py b/lib/audioinstruments/_rack/dsp/reverb.py index 256c6b9..78c3368 100644 --- a/lib/audioinstruments/_rack/dsp/reverb.py +++ b/lib/audioinstruments/_rack/dsp/reverb.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Reverb on audiodsp's Freeverb. diff --git a/lib/audioinstruments/_rack/dsp/rotary.py b/lib/audioinstruments/_rack/dsp/rotary.py index 456a22d..b17d6d8 100644 --- a/lib/audioinstruments/_rack/dsp/rotary.py +++ b/lib/audioinstruments/_rack/dsp/rotary.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rotary speaker core: tube amplifier overdrive, crossover, horn and drum rotors, stereo mics. diff --git a/lib/audioinstruments/_rack/dsp/saturation.py b/lib/audioinstruments/_rack/dsp/saturation.py index 10d3579..9fae976 100644 --- a/lib/audioinstruments/_rack/dsp/saturation.py +++ b/lib/audioinstruments/_rack/dsp/saturation.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Overdrive on audiodsp's Distortion, with a shelving tone control after it.""" diff --git a/lib/audioinstruments/_rack/dsp/sequencers.py b/lib/audioinstruments/_rack/dsp/sequencers.py index 866d565..e457783 100644 --- a/lib/audioinstruments/_rack/dsp/sequencers.py +++ b/lib/audioinstruments/_rack/dsp/sequencers.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Step sequencers and clock logic. diff --git a/lib/audioinstruments/_rack/dsp/tremolo.py b/lib/audioinstruments/_rack/dsp/tremolo.py index ba3d63c..430913c 100644 --- a/lib/audioinstruments/_rack/dsp/tremolo.py +++ b/lib/audioinstruments/_rack/dsp/tremolo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tremolo and auto-pan: a sine LFO that modulates amplitude or pans stereo. diff --git a/lib/audioinstruments/_rack/dsp/twopole.py b/lib/audioinstruments/_rack/dsp/twopole.py index 1f44017..33ec263 100644 --- a/lib/audioinstruments/_rack/dsp/twopole.py +++ b/lib/audioinstruments/_rack/dsp/twopole.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Two-pole filters with a nonlinearity inside the loop. diff --git a/lib/audioinstruments/_rack/dsp/utility.py b/lib/audioinstruments/_rack/dsp/utility.py index 9e7aeca..bc3d747 100644 --- a/lib/audioinstruments/_rack/dsp/utility.py +++ b/lib/audioinstruments/_rack/dsp/utility.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Utility circuits: sample and hold, slew (glide), ring modulation, inversion.""" diff --git a/lib/audioinstruments/_rack/dsp/wavefolder.py b/lib/audioinstruments/_rack/dsp/wavefolder.py index 91b8039..82b46d5 100644 --- a/lib/audioinstruments/_rack/dsp/wavefolder.py +++ b/lib/audioinstruments/_rack/dsp/wavefolder.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """West Coast wavefolder: three sine-shaped folds with symmetry control.""" diff --git a/lib/audioinstruments/_rack/dsp/west_coast.py b/lib/audioinstruments/_rack/dsp/west_coast.py index 65b591a..266fd94 100644 --- a/lib/audioinstruments/_rack/dsp/west_coast.py +++ b/lib/audioinstruments/_rack/dsp/west_coast.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """WestCoast0's voice: triangle VCO, overtone multiplier, wavefolder, dynamics gate. diff --git a/lib/audioinstruments/_rack/hmi.py b/lib/audioinstruments/_rack/hmi.py index 740ec84..0b09e7e 100644 --- a/lib/audioinstruments/_rack/hmi.py +++ b/lib/audioinstruments/_rack/hmi.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The rack as an hmilink model: any screen as its front panel. diff --git a/lib/audioinstruments/_rack/instruments/__init__.py b/lib/audioinstruments/_rack/instruments/__init__.py index 7d9b74a..06fbd68 100644 --- a/lib/audioinstruments/_rack/instruments/__init__.py +++ b/lib/audioinstruments/_rack/instruments/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Instruments: voice patches with their presets, ready for ``audioinstruments._rack.adapter.create()``. diff --git a/lib/audioinstruments/_rack/instruments/bass_pedals.py b/lib/audioinstruments/_rack/instruments/bass_pedals.py index 4360628..d64f5a5 100644 --- a/lib/audioinstruments/_rack/instruments/bass_pedals.py +++ b/lib/audioinstruments/_rack/instruments/bass_pedals.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """BassPedals, a monophonic pedal bass synthesizer inspired by the Moog Taurus. diff --git a/lib/audioinstruments/_rack/instruments/clavichord.py b/lib/audioinstruments/_rack/instruments/clavichord.py index f3466b7..aacbe44 100644 --- a/lib/audioinstruments/_rack/instruments/clavichord.py +++ b/lib/audioinstruments/_rack/instruments/clavichord.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Clavichord, a ten-voice struck-string electric clavichord with two pickups, four tone tabs and a mute, inspired by the Hohner Clavinet D6. diff --git a/lib/audioinstruments/_rack/instruments/combo_organ.py b/lib/audioinstruments/_rack/instruments/combo_organ.py index 9b39854..7b9e5ce 100644 --- a/lib/audioinstruments/_rack/instruments/combo_organ.py +++ b/lib/audioinstruments/_rack/instruments/combo_organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ComboOrgan, a fully polyphonic divide-down transistor combo organ with footage drawbars, a mixture, two tone colours, a bass octave and a vibrato, inspired by the Vox Continental. diff --git a/lib/audioinstruments/_rack/instruments/compact_organ.py b/lib/audioinstruments/_rack/instruments/compact_organ.py index 40f3ace..f726c0f 100644 --- a/lib/audioinstruments/_rack/instruments/compact_organ.py +++ b/lib/audioinstruments/_rack/instruments/compact_organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """CompactOrgan, a fully polyphonic divide-down transistor combo organ with voice tabs, a bass section and a pitch vibrato, after the portable combo organs of the mid-1960s. diff --git a/lib/audioinstruments/_rack/instruments/duosynth.py b/lib/audioinstruments/_rack/instruments/duosynth.py index 71130d4..d8620ba 100644 --- a/lib/audioinstruments/_rack/instruments/duosynth.py +++ b/lib/audioinstruments/_rack/instruments/duosynth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """DuoSynth, a duophonic two-oscillator synthesizer inspired by the ARP Odyssey. diff --git a/lib/audioinstruments/_rack/instruments/electric_grand70.py b/lib/audioinstruments/_rack/instruments/electric_grand70.py index 08f9e59..e62de80 100644 --- a/lib/audioinstruments/_rack/instruments/electric_grand70.py +++ b/lib/audioinstruments/_rack/instruments/electric_grand70.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricGrand70, a ten-voice electric grand piano inspired by the Yamaha CP-70. diff --git a/lib/audioinstruments/_rack/instruments/electric_piano.py b/lib/audioinstruments/_rack/instruments/electric_piano.py index f74f399..c013649 100644 --- a/lib/audioinstruments/_rack/instruments/electric_piano.py +++ b/lib/audioinstruments/_rack/instruments/electric_piano.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricPiano, a ten-voice tine electric piano inspired by the Fender Rhodes Suitcase 73. diff --git a/lib/audioinstruments/_rack/instruments/electronic_drums5.py b/lib/audioinstruments/_rack/instruments/electronic_drums5.py index e5bb379..4a7248b 100644 --- a/lib/audioinstruments/_rack/instruments/electronic_drums5.py +++ b/lib/audioinstruments/_rack/instruments/electronic_drums5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectronicDrums5, an electronic drum kit with swept tones and noise hats, inspired by the Simmons SDS-V. diff --git a/lib/audioinstruments/_rack/instruments/mono101.py b/lib/audioinstruments/_rack/instruments/mono101.py index 30066f2..d916c14 100644 --- a/lib/audioinstruments/_rack/instruments/mono101.py +++ b/lib/audioinstruments/_rack/instruments/mono101.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Mono101, a monophonic bass and lead synth inspired by the Roland SH-101. diff --git a/lib/audioinstruments/_rack/instruments/mono_synth.py b/lib/audioinstruments/_rack/instruments/mono_synth.py index 02eccc0..41fe24f 100644 --- a/lib/audioinstruments/_rack/instruments/mono_synth.py +++ b/lib/audioinstruments/_rack/instruments/mono_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MonoSynth, a monophonic bass and lead synth inspired by the Moog Minimoog Model D. diff --git a/lib/audioinstruments/_rack/instruments/poly106.py b/lib/audioinstruments/_rack/instruments/poly106.py index 10c2786..43e7876 100644 --- a/lib/audioinstruments/_rack/instruments/poly106.py +++ b/lib/audioinstruments/_rack/instruments/poly106.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly106, a six-voice poly synth inspired by the Roland Juno-106. diff --git a/lib/audioinstruments/_rack/instruments/poly5.py b/lib/audioinstruments/_rack/instruments/poly5.py index a9fb694..1d2cbfe 100644 --- a/lib/audioinstruments/_rack/instruments/poly5.py +++ b/lib/audioinstruments/_rack/instruments/poly5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly5, a five-voice two-oscillator poly synth inspired by the Sequential Prophet-5 (rev 3). diff --git a/lib/audioinstruments/_rack/instruments/poly6.py b/lib/audioinstruments/_rack/instruments/poly6.py index 9f1540c..f208db9 100644 --- a/lib/audioinstruments/_rack/instruments/poly6.py +++ b/lib/audioinstruments/_rack/instruments/poly6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly6, a six-voice poly synth inspired by the Korg Polysix. diff --git a/lib/audioinstruments/_rack/instruments/poly8.py b/lib/audioinstruments/_rack/instruments/poly8.py index d908070..1dc2b8d 100644 --- a/lib/audioinstruments/_rack/instruments/poly8.py +++ b/lib/audioinstruments/_rack/instruments/poly8.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly8, an eight-voice two-oscillator poly synth inspired by the Roland Jupiter-8. diff --git a/lib/audioinstruments/_rack/instruments/poly80.py b/lib/audioinstruments/_rack/instruments/poly80.py index 3235ddb..d209bc2 100644 --- a/lib/audioinstruments/_rack/instruments/poly80.py +++ b/lib/audioinstruments/_rack/instruments/poly80.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly80, an eight-voice polysynth inspired by the Yamaha CS-80. diff --git a/lib/audioinstruments/_rack/instruments/polya6.py b/lib/audioinstruments/_rack/instruments/polya6.py index e949832..d785040 100644 --- a/lib/audioinstruments/_rack/instruments/polya6.py +++ b/lib/audioinstruments/_rack/instruments/polya6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyA6, a sixteen-voice poly synth inspired by the Alesis Andromeda A6. diff --git a/lib/audioinstruments/_rack/instruments/polyxa.py b/lib/audioinstruments/_rack/instruments/polyxa.py index 2e9b1c2..630379e 100644 --- a/lib/audioinstruments/_rack/instruments/polyxa.py +++ b/lib/audioinstruments/_rack/instruments/polyxa.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyXa, an eight-voice two-oscillator poly synth inspired by the Oberheim OB-Xa. diff --git a/lib/audioinstruments/_rack/instruments/reed_piano.py b/lib/audioinstruments/_rack/instruments/reed_piano.py index 1f7881a..aa71630 100644 --- a/lib/audioinstruments/_rack/instruments/reed_piano.py +++ b/lib/audioinstruments/_rack/instruments/reed_piano.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano, a ten-voice plucked-reed electric piano inspired by the Hohner Pianet. diff --git a/lib/audioinstruments/_rack/instruments/reed_piano200a.py b/lib/audioinstruments/_rack/instruments/reed_piano200a.py index 3506fd9..492299d 100644 --- a/lib/audioinstruments/_rack/instruments/reed_piano200a.py +++ b/lib/audioinstruments/_rack/instruments/reed_piano200a.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano200A, a ten-voice struck-reed electric piano inspired by the Wurlitzer 200A. diff --git a/lib/audioinstruments/_rack/instruments/rhythm606.py b/lib/audioinstruments/_rack/instruments/rhythm606.py index 50096c7..b3e2c37 100644 --- a/lib/audioinstruments/_rack/instruments/rhythm606.py +++ b/lib/audioinstruments/_rack/instruments/rhythm606.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm606, an analog drum machine with seven sounds, inspired by the Roland TR-606. diff --git a/lib/audioinstruments/_rack/instruments/rhythm78.py b/lib/audioinstruments/_rack/instruments/rhythm78.py index fc087a7..85ada8f 100644 --- a/lib/audioinstruments/_rack/instruments/rhythm78.py +++ b/lib/audioinstruments/_rack/instruments/rhythm78.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm78, an analog preset rhythm machine with fifteen sounds, inspired by the Roland CR-78. diff --git a/lib/audioinstruments/_rack/instruments/rhythm808.py b/lib/audioinstruments/_rack/instruments/rhythm808.py index a617e05..41a0106 100644 --- a/lib/audioinstruments/_rack/instruments/rhythm808.py +++ b/lib/audioinstruments/_rack/instruments/rhythm808.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm808, an analog drum machine with sixteen sounds, one circuit per pad, inspired by the Roland TR-808. diff --git a/lib/audioinstruments/_rack/instruments/rhythm909.py b/lib/audioinstruments/_rack/instruments/rhythm909.py index d18d613..9a6af47 100644 --- a/lib/audioinstruments/_rack/instruments/rhythm909.py +++ b/lib/audioinstruments/_rack/instruments/rhythm909.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm909, a drum machine with eleven synthesized sounds, inspired by the Roland TR-909. diff --git a/lib/audioinstruments/_rack/instruments/string_ensemble.py b/lib/audioinstruments/_rack/instruments/string_ensemble.py index 7dce7c2..4ff9a35 100644 --- a/lib/audioinstruments/_rack/instruments/string_ensemble.py +++ b/lib/audioinstruments/_rack/instruments/string_ensemble.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """StringEnsemble, a fully polyphonic divide-down string machine with one shared envelope, a monophonic bass and a three-phase ensemble, inspired by the ARP/Eminent Solina String Ensemble. diff --git a/lib/audioinstruments/_rack/instruments/tonewheel3.py b/lib/audioinstruments/_rack/instruments/tonewheel3.py index 5d7d3a3..ee1c3a7 100644 --- a/lib/audioinstruments/_rack/instruments/tonewheel3.py +++ b/lib/audioinstruments/_rack/instruments/tonewheel3.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tonewheel3, a sixteen-voice tonewheel organ with nine drawbars, single-trigger percussion, key click, a scanner vibrato and chorus, an overdriven rotary speaker, inspired by the Hammond B-3. diff --git a/lib/audioinstruments/_rack/instruments/vocoder330.py b/lib/audioinstruments/_rack/instruments/vocoder330.py index 802dee6..a57dd85 100644 --- a/lib/audioinstruments/_rack/instruments/vocoder330.py +++ b/lib/audioinstruments/_rack/instruments/vocoder330.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Vocoder330, a fully polyphonic string, choir and ten-band vocoder keyboard, inspired by the Roland VP-330 Vocoder Plus. diff --git a/lib/audioinstruments/_rack/midi_cc.py b/lib/audioinstruments/_rack/midi_cc.py index 9849fff..2ee7a0f 100644 --- a/lib/audioinstruments/_rack/midi_cc.py +++ b/lib/audioinstruments/_rack/midi_cc.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Scaling functions for every MIDI 1.0 Control Change code. diff --git a/lib/audioinstruments/_rack/midi_dispatch.py b/lib/audioinstruments/_rack/midi_dispatch.py index 88cb8c8..9e930d1 100644 --- a/lib/audioinstruments/_rack/midi_dispatch.py +++ b/lib/audioinstruments/_rack/midi_dispatch.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Play instruments from MIDI: bytes, `adafruit_midi` messages or a file. diff --git a/lib/audioinstruments/_rack/modules/__init__.py b/lib/audioinstruments/_rack/modules/__init__.py index 83d51b7..e25bf30 100644 --- a/lib/audioinstruments/_rack/modules/__init__.py +++ b/lib/audioinstruments/_rack/modules/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Synth module implementations for the rack. diff --git a/lib/audioinstruments/_rack/modules/_drums_graph.py b/lib/audioinstruments/_rack/modules/_drums_graph.py index 2aaab1b..d141700 100644 --- a/lib/audioinstruments/_rack/modules/_drums_graph.py +++ b/lib/audioinstruments/_rack/modules/_drums_graph.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Graph fragments for the drum cores in ``_rack/dsp/drums.py``. diff --git a/lib/audioinstruments/_rack/modules/_util.py b/lib/audioinstruments/_rack/modules/_util.py index 1017992..edb9aad 100644 --- a/lib/audioinstruments/_rack/modules/_util.py +++ b/lib/audioinstruments/_rack/modules/_util.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Small helpers the module panels share.""" diff --git a/lib/audioinstruments/_rack/modules/acid303.py b/lib/audioinstruments/_rack/modules/acid303.py index 2cc21b7..ace201e 100644 --- a/lib/audioinstruments/_rack/modules/acid303.py +++ b/lib/audioinstruments/_rack/modules/acid303.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Acid303, a bass voice inspired by the Roland TB-303: saw or square VCO, the diode ladder with accent circuit, a decay envelope, slide, and a 16-step sequencer with gate, accent diff --git a/lib/audioinstruments/_rack/modules/bass_pedals/__init__.py b/lib/audioinstruments/_rack/modules/bass_pedals/__init__.py index 19196e4..c6a22c8 100644 --- a/lib/audioinstruments/_rack/modules/bass_pedals/__init__.py +++ b/lib/audioinstruments/_rack/modules/bass_pedals/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """BassPedals, a monophonic pedal bass synthesizer inspired by the Moog Taurus. diff --git a/lib/audioinstruments/_rack/modules/bass_pedals/voice.py b/lib/audioinstruments/_rack/modules/bass_pedals/voice.py index 0dfc986..290865d 100644 --- a/lib/audioinstruments/_rack/modules/bass_pedals/voice.py +++ b/lib/audioinstruments/_rack/modules/bass_pedals/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """BassPedals voice, inspired by the Moog Taurus. diff --git a/lib/audioinstruments/_rack/modules/clavichord/__init__.py b/lib/audioinstruments/_rack/modules/clavichord/__init__.py index 5eef2f8..38e2c78 100644 --- a/lib/audioinstruments/_rack/modules/clavichord/__init__.py +++ b/lib/audioinstruments/_rack/modules/clavichord/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Clavichord, modules inspired by the Hohner Clavinet D6. diff --git a/lib/audioinstruments/_rack/modules/clavichord/output.py b/lib/audioinstruments/_rack/modules/clavichord/output.py index 465fbc6..d3a9a7c 100644 --- a/lib/audioinstruments/_rack/modules/clavichord/output.py +++ b/lib/audioinstruments/_rack/modules/clavichord/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Clavichord output section: tone tabs, auto-wah and amplitude tremolo. diff --git a/lib/audioinstruments/_rack/modules/clavichord/voice.py b/lib/audioinstruments/_rack/modules/clavichord/voice.py index ffd8d9a..319fdba 100644 --- a/lib/audioinstruments/_rack/modules/clavichord/voice.py +++ b/lib/audioinstruments/_rack/modules/clavichord/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Clavichord voice, inspired by one voice of the Hohner Clavinet D6. diff --git a/lib/audioinstruments/_rack/modules/combo_organ/__init__.py b/lib/audioinstruments/_rack/modules/combo_organ/__init__.py index b461888..6e491b4 100644 --- a/lib/audioinstruments/_rack/modules/combo_organ/__init__.py +++ b/lib/audioinstruments/_rack/modules/combo_organ/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ComboOrgan modules: voice, vibrato LFO and master output.""" diff --git a/lib/audioinstruments/_rack/modules/combo_organ/output.py b/lib/audioinstruments/_rack/modules/combo_organ/output.py index 263b272..05cafee 100644 --- a/lib/audioinstruments/_rack/modules/combo_organ/output.py +++ b/lib/audioinstruments/_rack/modules/combo_organ/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ComboOrgan output section: tone colours, bass section, swell. diff --git a/lib/audioinstruments/_rack/modules/combo_organ/vibrato.py b/lib/audioinstruments/_rack/modules/combo_organ/vibrato.py index b9a551a..6fd1441 100644 --- a/lib/audioinstruments/_rack/modules/combo_organ/vibrato.py +++ b/lib/audioinstruments/_rack/modules/combo_organ/vibrato.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ComboOrgan master pitch vibrato: shared LFO wobbling all voices together. diff --git a/lib/audioinstruments/_rack/modules/combo_organ/voice.py b/lib/audioinstruments/_rack/modules/combo_organ/voice.py index 7dd308b..53c74d4 100644 --- a/lib/audioinstruments/_rack/modules/combo_organ/voice.py +++ b/lib/audioinstruments/_rack/modules/combo_organ/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ComboOrgan voice: the key's footages summed into one table, plus the mixture's fifth and third. diff --git a/lib/audioinstruments/_rack/modules/compact_organ/__init__.py b/lib/audioinstruments/_rack/modules/compact_organ/__init__.py index 5340285..47209e0 100644 --- a/lib/audioinstruments/_rack/modules/compact_organ/__init__.py +++ b/lib/audioinstruments/_rack/modules/compact_organ/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """CompactOrgan synth modules: voice, master pitch vibrato, and master tab output.""" diff --git a/lib/audioinstruments/_rack/modules/compact_organ/output.py b/lib/audioinstruments/_rack/modules/compact_organ/output.py index 19d9bde..a5bf5e9 100644 --- a/lib/audioinstruments/_rack/modules/compact_organ/output.py +++ b/lib/audioinstruments/_rack/modules/compact_organ/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """CompactOrgan output section: voice tab filters, Multi-Tone booster, bass section, swell. diff --git a/lib/audioinstruments/_rack/modules/compact_organ/vibrato.py b/lib/audioinstruments/_rack/modules/compact_organ/vibrato.py index 13f83c3..d2bcc46 100644 --- a/lib/audioinstruments/_rack/modules/compact_organ/vibrato.py +++ b/lib/audioinstruments/_rack/modules/compact_organ/vibrato.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """CompactOrgan master pitch vibrato: shared LFO wobbling all voices together. diff --git a/lib/audioinstruments/_rack/modules/compact_organ/voice.py b/lib/audioinstruments/_rack/modules/compact_organ/voice.py index 035f93e..4fbd5a9 100644 --- a/lib/audioinstruments/_rack/modules/compact_organ/voice.py +++ b/lib/audioinstruments/_rack/modules/compact_organ/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """CompactOrgan voice: divide-down footage oscillators and keyer gate. diff --git a/lib/audioinstruments/_rack/modules/drum_synth.py b/lib/audioinstruments/_rack/modules/drum_synth.py index fb564b4..20f2975 100644 --- a/lib/audioinstruments/_rack/modules/drum_synth.py +++ b/lib/audioinstruments/_rack/modules/drum_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """DrumSynth, a percussion voice inspired by the Moog DFAM: two VCOs with FM, noise, a ladder filter, two decay envelopes and an eight-step pitch and velocity sequencer. diff --git a/lib/audioinstruments/_rack/modules/duo20.py b/lib/audioinstruments/_rack/modules/duo20.py index 098186a..0487be7 100644 --- a/lib/audioinstruments/_rack/modules/duo20.py +++ b/lib/audioinstruments/_rack/modules/duo20.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Duo20, a voice inspired by the Korg MS-20: two VCOs, a high-pass into a low-pass Sallen-Key pair with diode-clipped peak, two envelopes, a modulation generator, noise, sample diff --git a/lib/audioinstruments/_rack/modules/duosynth/__init__.py b/lib/audioinstruments/_rack/modules/duosynth/__init__.py index f27ab6c..77dee81 100644 --- a/lib/audioinstruments/_rack/modules/duosynth/__init__.py +++ b/lib/audioinstruments/_rack/modules/duosynth/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """DuoSynth, a set of modules inspired by the ARP Odyssey. diff --git a/lib/audioinstruments/_rack/modules/duosynth/lfo.py b/lib/audioinstruments/_rack/modules/duosynth/lfo.py index a506cfa..2dc185a 100644 --- a/lib/audioinstruments/_rack/modules/duosynth/lfo.py +++ b/lib/audioinstruments/_rack/modules/duosynth/lfo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """DuoSynth LFO, inspired by the ARP Odyssey's low-frequency oscillator. diff --git a/lib/audioinstruments/_rack/modules/duosynth/output.py b/lib/audioinstruments/_rack/modules/duosynth/output.py index f4f4a8f..05e5f84 100644 --- a/lib/audioinstruments/_rack/modules/duosynth/output.py +++ b/lib/audioinstruments/_rack/modules/duosynth/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """DuoSynth output section: a DC block after the voice. diff --git a/lib/audioinstruments/_rack/modules/duosynth/voice.py b/lib/audioinstruments/_rack/modules/duosynth/voice.py index be43f93..e0a7b6f 100644 --- a/lib/audioinstruments/_rack/modules/duosynth/voice.py +++ b/lib/audioinstruments/_rack/modules/duosynth/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """DuoSynth voice, inspired by the ARP Odyssey. diff --git a/lib/audioinstruments/_rack/modules/electric_grand70/__init__.py b/lib/audioinstruments/_rack/modules/electric_grand70/__init__.py index 1420ff6..2fd6fdd 100644 --- a/lib/audioinstruments/_rack/modules/electric_grand70/__init__.py +++ b/lib/audioinstruments/_rack/modules/electric_grand70/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricGrand70, modules inspired by the Yamaha CP-70. diff --git a/lib/audioinstruments/_rack/modules/electric_grand70/output.py b/lib/audioinstruments/_rack/modules/electric_grand70/output.py index 4824e7a..90ba7cc 100644 --- a/lib/audioinstruments/_rack/modules/electric_grand70/output.py +++ b/lib/audioinstruments/_rack/modules/electric_grand70/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricGrand70 output section, inspired by the Yamaha CP-70 preamp and tremolo. diff --git a/lib/audioinstruments/_rack/modules/electric_grand70/voice.py b/lib/audioinstruments/_rack/modules/electric_grand70/voice.py index 666fb3d..2e11062 100644 --- a/lib/audioinstruments/_rack/modules/electric_grand70/voice.py +++ b/lib/audioinstruments/_rack/modules/electric_grand70/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricGrand70 voice: struck piano strings read by piezo pickups. diff --git a/lib/audioinstruments/_rack/modules/electric_piano/__init__.py b/lib/audioinstruments/_rack/modules/electric_piano/__init__.py index e316100..1860999 100644 --- a/lib/audioinstruments/_rack/modules/electric_piano/__init__.py +++ b/lib/audioinstruments/_rack/modules/electric_piano/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricPiano, modules inspired by the Fender Rhodes Suitcase 73. diff --git a/lib/audioinstruments/_rack/modules/electric_piano/output.py b/lib/audioinstruments/_rack/modules/electric_piano/output.py index c6d12d6..84144b4 100644 --- a/lib/audioinstruments/_rack/modules/electric_piano/output.py +++ b/lib/audioinstruments/_rack/modules/electric_piano/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricPiano output section, inspired by the Fender Rhodes Suitcase 73 preamp. diff --git a/lib/audioinstruments/_rack/modules/electric_piano/voice.py b/lib/audioinstruments/_rack/modules/electric_piano/voice.py index a62842a..c3f3ca9 100644 --- a/lib/audioinstruments/_rack/modules/electric_piano/voice.py +++ b/lib/audioinstruments/_rack/modules/electric_piano/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricPiano voice, inspired by one voice of the Fender Rhodes Suitcase 73. diff --git a/lib/audioinstruments/_rack/modules/electronic_drums5/__init__.py b/lib/audioinstruments/_rack/modules/electronic_drums5/__init__.py index 7d889d1..087a86e 100644 --- a/lib/audioinstruments/_rack/modules/electronic_drums5/__init__.py +++ b/lib/audioinstruments/_rack/modules/electronic_drums5/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Voice module for ElectronicDrums5, inspired by the Simmons SDS-V.""" diff --git a/lib/audioinstruments/_rack/modules/electronic_drums5/voice.py b/lib/audioinstruments/_rack/modules/electronic_drums5/voice.py index b9821c6..fc991ec 100644 --- a/lib/audioinstruments/_rack/modules/electronic_drums5/voice.py +++ b/lib/audioinstruments/_rack/modules/electronic_drums5/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Channel voice module for ElectronicDrums5, inspired by the Simmons SDS-V.""" diff --git a/lib/audioinstruments/_rack/modules/function_generator.py b/lib/audioinstruments/_rack/modules/function_generator.py index d96329f..01324d8 100644 --- a/lib/audioinstruments/_rack/modules/function_generator.py +++ b/lib/audioinstruments/_rack/modules/function_generator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """FunctionGenerator, a dual function generator inspired by Make Noise Maths, with attenuverters and analog logic. diff --git a/lib/audioinstruments/_rack/modules/granular_processor.py b/lib/audioinstruments/_rack/modules/granular_processor.py index dc83d9e..c3eab8c 100644 --- a/lib/audioinstruments/_rack/modules/granular_processor.py +++ b/lib/audioinstruments/_rack/modules/granular_processor.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """GranularProcessor, a granular texture processor inspired by Mutable Instruments Clouds, with a diffuse reverb. diff --git a/lib/audioinstruments/_rack/modules/hybrid_mono.py b/lib/audioinstruments/_rack/modules/hybrid_mono.py index 366e3da..2b0816d 100644 --- a/lib/audioinstruments/_rack/modules/hybrid_mono.py +++ b/lib/audioinstruments/_rack/modules/hybrid_mono.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """HybridMono, a voice inspired by the EDP Wasp: two DCOs, a CMOS multimode filter whose inverter stages clip, an envelope, an LFO and a VCA, with a small patch panel. diff --git a/lib/audioinstruments/_rack/modules/macro_oscillator.py b/lib/audioinstruments/_rack/modules/macro_oscillator.py index 0173a81..9b2a4b6 100644 --- a/lib/audioinstruments/_rack/modules/macro_oscillator.py +++ b/lib/audioinstruments/_rack/modules/macro_oscillator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MacroOscillator, a macro oscillator inspired by Mutable Instruments Plaits: eight models, harmonics, timbre and morph controls, a trigger-driven low-pass gate, and main and aux outputs. diff --git a/lib/audioinstruments/_rack/modules/midi_cv.py b/lib/audioinstruments/_rack/modules/midi_cv.py index 7adc55c..0f2eb06 100644 --- a/lib/audioinstruments/_rack/modules/midi_cv.py +++ b/lib/audioinstruments/_rack/modules/midi_cv.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MIDI to CV: pitch, gate, velocity, wheels, transport, knobs and pads as jacks. diff --git a/lib/audioinstruments/_rack/modules/modal_resonator.py b/lib/audioinstruments/_rack/modules/modal_resonator.py index 624d58f..fdb1743 100644 --- a/lib/audioinstruments/_rack/modules/modal_resonator.py +++ b/lib/audioinstruments/_rack/modules/modal_resonator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ModalResonator, a resonator inspired by Mutable Instruments Rings: a modal bank (bells, bars), a sympathetic string, or an inharmonic membrane, struck by a trigger or excited by audio. diff --git a/lib/audioinstruments/_rack/modules/modular100/__init__.py b/lib/audioinstruments/_rack/modules/modular100/__init__.py index 507ef66..e9f4531 100644 --- a/lib/audioinstruments/_rack/modules/modular100/__init__.py +++ b/lib/audioinstruments/_rack/modules/modular100/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular100, a set of single modules inspired by the Roland System-100M (and Behringer's System 100 Eurorack modules). diff --git a/lib/audioinstruments/_rack/modules/modular100/env_lfo.py b/lib/audioinstruments/_rack/modules/modular100/env_lfo.py index bfca065..03e655d 100644 --- a/lib/audioinstruments/_rack/modules/modular100/env_lfo.py +++ b/lib/audioinstruments/_rack/modules/modular100/env_lfo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular100 dual envelope and LFO, inspired by the Roland 140. diff --git a/lib/audioinstruments/_rack/modules/modular100/utility.py b/lib/audioinstruments/_rack/modules/modular100/utility.py index b35971e..2514273 100644 --- a/lib/audioinstruments/_rack/modules/modular100/utility.py +++ b/lib/audioinstruments/_rack/modules/modular100/utility.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular100 utility, inspired by the Roland 150: ring modulator, noise, sample and hold, and an LFO. diff --git a/lib/audioinstruments/_rack/modules/modular100/vca.py b/lib/audioinstruments/_rack/modules/modular100/vca.py index e11bb67..de1562f 100644 --- a/lib/audioinstruments/_rack/modules/modular100/vca.py +++ b/lib/audioinstruments/_rack/modules/modular100/vca.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular100 dual VCA, inspired by the Roland 130: two amplifiers with input mixers and linear or exponential response.""" diff --git a/lib/audioinstruments/_rack/modules/modular100/vcf.py b/lib/audioinstruments/_rack/modules/modular100/vcf.py index 2bb4c6c..a5b943a 100644 --- a/lib/audioinstruments/_rack/modules/modular100/vcf.py +++ b/lib/audioinstruments/_rack/modules/modular100/vcf.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular100 dual VCF, inspired by the Roland 121: two 24 dB/oct resonant low-pass filters with input mixers. diff --git a/lib/audioinstruments/_rack/modules/modular100/vco.py b/lib/audioinstruments/_rack/modules/modular100/vco.py index 6c4fad1..5fd7ad1 100644 --- a/lib/audioinstruments/_rack/modules/modular100/vco.py +++ b/lib/audioinstruments/_rack/modules/modular100/vco.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular100 dual VCO, inspired by the Roland 112: two oscillators with range switches, PWM and sync. diff --git a/lib/audioinstruments/_rack/modules/modular55/__init__.py b/lib/audioinstruments/_rack/modules/modular55/__init__.py index b056e34..e5d5f97 100644 --- a/lib/audioinstruments/_rack/modules/modular55/__init__.py +++ b/lib/audioinstruments/_rack/modules/modular55/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular55, a set of single modules inspired by the Moog System 55 (and Behringer's System 55 Eurorack modules). diff --git a/lib/audioinstruments/_rack/modules/modular55/envelope.py b/lib/audioinstruments/_rack/modules/modular55/envelope.py index 4806e66..3a5d31f 100644 --- a/lib/audioinstruments/_rack/modules/modular55/envelope.py +++ b/lib/audioinstruments/_rack/modules/modular55/envelope.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular55 envelope generator, inspired by the Moog 911: T1 attack, T2 decay, Es sustain, T3 release.""" diff --git a/lib/audioinstruments/_rack/modules/modular55/highpass.py b/lib/audioinstruments/_rack/modules/modular55/highpass.py index 495ce20..c5873e9 100644 --- a/lib/audioinstruments/_rack/modules/modular55/highpass.py +++ b/lib/audioinstruments/_rack/modules/modular55/highpass.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular55 high-pass filter, inspired by the Moog 904B: 24 dB/oct, two ranges, three control inputs. diff --git a/lib/audioinstruments/_rack/modules/modular55/lowpass.py b/lib/audioinstruments/_rack/modules/modular55/lowpass.py index 9bd1611..cef5ee9 100644 --- a/lib/audioinstruments/_rack/modules/modular55/lowpass.py +++ b/lib/audioinstruments/_rack/modules/modular55/lowpass.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular55 low-pass filter, inspired by the Moog 904A: a 24 dB/oct transistor ladder with regeneration and three ranges.""" diff --git a/lib/audioinstruments/_rack/modules/modular55/vca.py b/lib/audioinstruments/_rack/modules/modular55/vca.py index aceaf5c..2690195 100644 --- a/lib/audioinstruments/_rack/modules/modular55/vca.py +++ b/lib/audioinstruments/_rack/modules/modular55/vca.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular55 VCA, inspired by the Moog 902: differential inputs and outputs, linear or exponential, fixed CV bias.""" diff --git a/lib/audioinstruments/_rack/modules/modular55/vco.py b/lib/audioinstruments/_rack/modules/modular55/vco.py index 59d2813..be77e6e 100644 --- a/lib/audioinstruments/_rack/modules/modular55/vco.py +++ b/lib/audioinstruments/_rack/modules/modular55/vco.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Modular55 VCO, inspired by the Moog 921: range switch, coarse and fine tune, linear FM, sync, five waveforms at once.""" diff --git a/lib/audioinstruments/_rack/modules/mono101/__init__.py b/lib/audioinstruments/_rack/modules/mono101/__init__.py index 2828265..86fd841 100644 --- a/lib/audioinstruments/_rack/modules/mono101/__init__.py +++ b/lib/audioinstruments/_rack/modules/mono101/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Mono101, a set of modules inspired by the Roland SH-101. diff --git a/lib/audioinstruments/_rack/modules/mono101/lfo.py b/lib/audioinstruments/_rack/modules/mono101/lfo.py index 7b32dc8..1386053 100644 --- a/lib/audioinstruments/_rack/modules/mono101/lfo.py +++ b/lib/audioinstruments/_rack/modules/mono101/lfo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Mono101 LFO, inspired by the Roland SH-101's modulation oscillator. diff --git a/lib/audioinstruments/_rack/modules/mono101/voice.py b/lib/audioinstruments/_rack/modules/mono101/voice.py index 1c3c1a1..c975c5e 100644 --- a/lib/audioinstruments/_rack/modules/mono101/voice.py +++ b/lib/audioinstruments/_rack/modules/mono101/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Mono101 voice, inspired by the Roland SH-101. diff --git a/lib/audioinstruments/_rack/modules/mono_one.py b/lib/audioinstruments/_rack/modules/mono_one.py index 04cf325..90bf8c9 100644 --- a/lib/audioinstruments/_rack/modules/mono_one.py +++ b/lib/audioinstruments/_rack/modules/mono_one.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MonoOne, a voice inspired by the Sequential Pro-One: two VCOs with sync, a four-pole filter, two ADSRs, an LFO, glide, and the poly-mod matrix that sends the filter envelope and VCO B diff --git a/lib/audioinstruments/_rack/modules/mono_synth/__init__.py b/lib/audioinstruments/_rack/modules/mono_synth/__init__.py index 41090e3..3917c60 100644 --- a/lib/audioinstruments/_rack/modules/mono_synth/__init__.py +++ b/lib/audioinstruments/_rack/modules/mono_synth/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MonoSynth, a monophonic synth module inspired by the Moog Minimoog Model D. diff --git a/lib/audioinstruments/_rack/modules/mono_synth/voice.py b/lib/audioinstruments/_rack/modules/mono_synth/voice.py index 2ce8ae3..3d8ba57 100644 --- a/lib/audioinstruments/_rack/modules/mono_synth/voice.py +++ b/lib/audioinstruments/_rack/modules/mono_synth/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MonoSynth voice, inspired by the Moog Minimoog Model D. diff --git a/lib/audioinstruments/_rack/modules/paraphonic_synth.py b/lib/audioinstruments/_rack/modules/paraphonic_synth.py index 3e00d99..5d8bc63 100644 --- a/lib/audioinstruments/_rack/modules/paraphonic_synth.py +++ b/lib/audioinstruments/_rack/modules/paraphonic_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ParaphonicSynth, a paraphonic voice inspired by the Behringer Neutron: two wave-blending VCOs, a multimode filter, overdrive, a bucket-brigade delay, two envelopes, an LFO and utilities.""" diff --git a/lib/audioinstruments/_rack/modules/patch2600.py b/lib/audioinstruments/_rack/modules/patch2600.py index 8875393..c11fe19 100644 --- a/lib/audioinstruments/_rack/modules/patch2600.py +++ b/lib/audioinstruments/_rack/modules/patch2600.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Patch2600, a semi-modular voice inspired by the ARP 2600 (and Behringer's 2600): three VCOs, a ladder VCF, a VCA, two envelopes, ring modulator, noise, sample and hold, a voltage processor and a spring reverb. diff --git a/lib/audioinstruments/_rack/modules/pin_matrix3.py b/lib/audioinstruments/_rack/modules/pin_matrix3.py index f3305db..b5674f8 100644 --- a/lib/audioinstruments/_rack/modules/pin_matrix3.py +++ b/lib/audioinstruments/_rack/modules/pin_matrix3.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PinMatrix3, a synthesizer with a 16 x 16 pin matrix, inspired by the EMS VCS3. diff --git a/lib/audioinstruments/_rack/modules/poly106/__init__.py b/lib/audioinstruments/_rack/modules/poly106/__init__.py index 37a2e9a..bab316b 100644 --- a/lib/audioinstruments/_rack/modules/poly106/__init__.py +++ b/lib/audioinstruments/_rack/modules/poly106/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly106, a set of modules inspired by the Roland Juno-106. diff --git a/lib/audioinstruments/_rack/modules/poly106/lfo.py b/lib/audioinstruments/_rack/modules/poly106/lfo.py index 703cd41..a4a7327 100644 --- a/lib/audioinstruments/_rack/modules/poly106/lfo.py +++ b/lib/audioinstruments/_rack/modules/poly106/lfo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly106 LFO, inspired by the Roland Juno-106's: one triangle for every voice. diff --git a/lib/audioinstruments/_rack/modules/poly106/output.py b/lib/audioinstruments/_rack/modules/poly106/output.py index cadf628..40f2bae 100644 --- a/lib/audioinstruments/_rack/modules/poly106/output.py +++ b/lib/audioinstruments/_rack/modules/poly106/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly106 output section, inspired by the Roland Juno-106's: the HPF and the chorus. diff --git a/lib/audioinstruments/_rack/modules/poly106/voice.py b/lib/audioinstruments/_rack/modules/poly106/voice.py index 1dd1235..cb896a6 100644 --- a/lib/audioinstruments/_rack/modules/poly106/voice.py +++ b/lib/audioinstruments/_rack/modules/poly106/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly106 voice, inspired by one voice of the Roland Juno-106. diff --git a/lib/audioinstruments/_rack/modules/poly5/__init__.py b/lib/audioinstruments/_rack/modules/poly5/__init__.py index 87f912e..e891c5f 100644 --- a/lib/audioinstruments/_rack/modules/poly5/__init__.py +++ b/lib/audioinstruments/_rack/modules/poly5/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly5, a set of modules inspired by the Sequential Prophet-5. diff --git a/lib/audioinstruments/_rack/modules/poly5/lfo.py b/lib/audioinstruments/_rack/modules/poly5/lfo.py index 3b03c61..62cfe16 100644 --- a/lib/audioinstruments/_rack/modules/poly5/lfo.py +++ b/lib/audioinstruments/_rack/modules/poly5/lfo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly5 LFO and Wheel-Mod source, inspired by the Sequential Prophet-5. diff --git a/lib/audioinstruments/_rack/modules/poly5/voice.py b/lib/audioinstruments/_rack/modules/poly5/voice.py index 7797422..bf5b979 100644 --- a/lib/audioinstruments/_rack/modules/poly5/voice.py +++ b/lib/audioinstruments/_rack/modules/poly5/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly5 voice, inspired by one voice of the Sequential Prophet-5 (rev 3). diff --git a/lib/audioinstruments/_rack/modules/poly6/__init__.py b/lib/audioinstruments/_rack/modules/poly6/__init__.py index 4d11da8..e4096fd 100644 --- a/lib/audioinstruments/_rack/modules/poly6/__init__.py +++ b/lib/audioinstruments/_rack/modules/poly6/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly6 modules inspired by the Korg Polysix.""" diff --git a/lib/audioinstruments/_rack/modules/poly6/lfo.py b/lib/audioinstruments/_rack/modules/poly6/lfo.py index fff8a08..8cb56c2 100644 --- a/lib/audioinstruments/_rack/modules/poly6/lfo.py +++ b/lib/audioinstruments/_rack/modules/poly6/lfo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly6 LFO module: the modulation generator (MG) and a dedicated PWM LFO. diff --git a/lib/audioinstruments/_rack/modules/poly6/output.py b/lib/audioinstruments/_rack/modules/poly6/output.py index c3280b1..530b45e 100644 --- a/lib/audioinstruments/_rack/modules/poly6/output.py +++ b/lib/audioinstruments/_rack/modules/poly6/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly6 output section, inspired by the Korg Polysix's effects: chorus, phase, ensemble. diff --git a/lib/audioinstruments/_rack/modules/poly6/voice.py b/lib/audioinstruments/_rack/modules/poly6/voice.py index c3418dc..492c9af 100644 --- a/lib/audioinstruments/_rack/modules/poly6/voice.py +++ b/lib/audioinstruments/_rack/modules/poly6/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly6 voice module, inspired by one voice of the Korg Polysix. diff --git a/lib/audioinstruments/_rack/modules/poly8/__init__.py b/lib/audioinstruments/_rack/modules/poly8/__init__.py index 914e127..577d675 100644 --- a/lib/audioinstruments/_rack/modules/poly8/__init__.py +++ b/lib/audioinstruments/_rack/modules/poly8/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly8, a set of modules inspired by the Roland Jupiter-8. diff --git a/lib/audioinstruments/_rack/modules/poly8/lfo.py b/lib/audioinstruments/_rack/modules/poly8/lfo.py index 90f925d..71fd8b6 100644 --- a/lib/audioinstruments/_rack/modules/poly8/lfo.py +++ b/lib/audioinstruments/_rack/modules/poly8/lfo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly8 LFO, inspired by the Roland Jupiter-8's: one LFO for every voice, with a delay. diff --git a/lib/audioinstruments/_rack/modules/poly8/voice.py b/lib/audioinstruments/_rack/modules/poly8/voice.py index ff7b0e9..aa247c6 100644 --- a/lib/audioinstruments/_rack/modules/poly8/voice.py +++ b/lib/audioinstruments/_rack/modules/poly8/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly8 voice, inspired by one voice of the Roland Jupiter-8. diff --git a/lib/audioinstruments/_rack/modules/poly80/__init__.py b/lib/audioinstruments/_rack/modules/poly80/__init__.py index 75cd9d6..766c97c 100644 --- a/lib/audioinstruments/_rack/modules/poly80/__init__.py +++ b/lib/audioinstruments/_rack/modules/poly80/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly80: the voice, the modulation and the output modules of the eight-voice Poly80. diff --git a/lib/audioinstruments/_rack/modules/poly80/mod.py b/lib/audioinstruments/_rack/modules/poly80/mod.py index 03c24ac..017642b 100644 --- a/lib/audioinstruments/_rack/modules/poly80/mod.py +++ b/lib/audioinstruments/_rack/modules/poly80/mod.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly80 modulation section: shared sub-oscillator, PWM LFOs, and voice triggers. diff --git a/lib/audioinstruments/_rack/modules/poly80/output.py b/lib/audioinstruments/_rack/modules/poly80/output.py index 99a80b5..52c2a68 100644 --- a/lib/audioinstruments/_rack/modules/poly80/output.py +++ b/lib/audioinstruments/_rack/modules/poly80/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly80 output section: ring modulator, tremolo/chorus, and DC block. diff --git a/lib/audioinstruments/_rack/modules/poly80/voice.py b/lib/audioinstruments/_rack/modules/poly80/voice.py index b53b63a..888db82 100644 --- a/lib/audioinstruments/_rack/modules/poly80/voice.py +++ b/lib/audioinstruments/_rack/modules/poly80/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly80 voice: two complete synth channels with series resonant filters. diff --git a/lib/audioinstruments/_rack/modules/poly_midi_cv.py b/lib/audioinstruments/_rack/modules/poly_midi_cv.py index 8957f55..c6a76a4 100644 --- a/lib/audioinstruments/_rack/modules/poly_midi_cv.py +++ b/lib/audioinstruments/_rack/modules/poly_midi_cv.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly MIDI to CV: MidiCV with a pitch, a gate, a velocity and a pressure jack per voice. diff --git a/lib/audioinstruments/_rack/modules/polya6/__init__.py b/lib/audioinstruments/_rack/modules/polya6/__init__.py index 998f9b0..5f3bb17 100644 --- a/lib/audioinstruments/_rack/modules/polya6/__init__.py +++ b/lib/audioinstruments/_rack/modules/polya6/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyA6, a set of modules inspired by the Alesis Andromeda A6. diff --git a/lib/audioinstruments/_rack/modules/polya6/noise.py b/lib/audioinstruments/_rack/modules/polya6/noise.py index 6f5c66d..49bbbb7 100644 --- a/lib/audioinstruments/_rack/modules/polya6/noise.py +++ b/lib/audioinstruments/_rack/modules/polya6/noise.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyA6 noise generator: shared white and pink noise for every voice.""" diff --git a/lib/audioinstruments/_rack/modules/polya6/output.py b/lib/audioinstruments/_rack/modules/polya6/output.py index a5bb8ad..39a42e8 100644 --- a/lib/audioinstruments/_rack/modules/polya6/output.py +++ b/lib/audioinstruments/_rack/modules/polya6/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyA6 output section: analogue distortion followed by a DC block. diff --git a/lib/audioinstruments/_rack/modules/polya6/voice.py b/lib/audioinstruments/_rack/modules/polya6/voice.py index 11b6b12..19e8858 100644 --- a/lib/audioinstruments/_rack/modules/polya6/voice.py +++ b/lib/audioinstruments/_rack/modules/polya6/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyA6 voice, inspired by one voice of the Alesis Andromeda A6. diff --git a/lib/audioinstruments/_rack/modules/polyrhythm_synth.py b/lib/audioinstruments/_rack/modules/polyrhythm_synth.py index 0e555dc..faad6a4 100644 --- a/lib/audioinstruments/_rack/modules/polyrhythm_synth.py +++ b/lib/audioinstruments/_rack/modules/polyrhythm_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyrhythmSynth, a voice inspired by the Moog Subharmonicon: two VCOs, each with two subharmonic oscillators at integer divisions of its pitch, a four-divider polyrhythm engine driving diff --git a/lib/audioinstruments/_rack/modules/polyxa/__init__.py b/lib/audioinstruments/_rack/modules/polyxa/__init__.py index 9fd1066..32fff85 100644 --- a/lib/audioinstruments/_rack/modules/polyxa/__init__.py +++ b/lib/audioinstruments/_rack/modules/polyxa/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyXa, a set of modules inspired by the Oberheim OB-Xa. diff --git a/lib/audioinstruments/_rack/modules/polyxa/lfo.py b/lib/audioinstruments/_rack/modules/polyxa/lfo.py index ee60cce..38593d6 100644 --- a/lib/audioinstruments/_rack/modules/polyxa/lfo.py +++ b/lib/audioinstruments/_rack/modules/polyxa/lfo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyXa LFO, inspired by the Oberheim OB-Xa's: one LFO for every voice. diff --git a/lib/audioinstruments/_rack/modules/polyxa/output.py b/lib/audioinstruments/_rack/modules/polyxa/output.py index 8ca58fe..f047a69 100644 --- a/lib/audioinstruments/_rack/modules/polyxa/output.py +++ b/lib/audioinstruments/_rack/modules/polyxa/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyXa output section: a DC block after the voices. diff --git a/lib/audioinstruments/_rack/modules/polyxa/voice.py b/lib/audioinstruments/_rack/modules/polyxa/voice.py index 0dc49e4..96c6da5 100644 --- a/lib/audioinstruments/_rack/modules/polyxa/voice.py +++ b/lib/audioinstruments/_rack/modules/polyxa/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyXa voice, inspired by one voice of the Oberheim OB-Xa. diff --git a/lib/audioinstruments/_rack/modules/random_sequencer.py b/lib/audioinstruments/_rack/modules/random_sequencer.py index d888376..582e73d 100644 --- a/lib/audioinstruments/_rack/modules/random_sequencer.py +++ b/lib/audioinstruments/_rack/modules/random_sequencer.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """RandomSequencer, a random looping sequencer inspired by the Music Thing Turing Machine. diff --git a/lib/audioinstruments/_rack/modules/reed_piano/__init__.py b/lib/audioinstruments/_rack/modules/reed_piano/__init__.py index aad6583..1d3f960 100644 --- a/lib/audioinstruments/_rack/modules/reed_piano/__init__.py +++ b/lib/audioinstruments/_rack/modules/reed_piano/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano modules: plucked-reed voice and output section.""" diff --git a/lib/audioinstruments/_rack/modules/reed_piano/output.py b/lib/audioinstruments/_rack/modules/reed_piano/output.py index dd205b9..9c697c8 100644 --- a/lib/audioinstruments/_rack/modules/reed_piano/output.py +++ b/lib/audioinstruments/_rack/modules/reed_piano/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano output section, inspired by the Hohner Pianet preamp and built-in pan. diff --git a/lib/audioinstruments/_rack/modules/reed_piano/voice.py b/lib/audioinstruments/_rack/modules/reed_piano/voice.py index 00f14bc..5e4a70b 100644 --- a/lib/audioinstruments/_rack/modules/reed_piano/voice.py +++ b/lib/audioinstruments/_rack/modules/reed_piano/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano voice, inspired by one voice of the Hohner Pianet T electric piano. diff --git a/lib/audioinstruments/_rack/modules/reed_piano200a/__init__.py b/lib/audioinstruments/_rack/modules/reed_piano200a/__init__.py index a272456..27cbf74 100644 --- a/lib/audioinstruments/_rack/modules/reed_piano200a/__init__.py +++ b/lib/audioinstruments/_rack/modules/reed_piano200a/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano200A voice and output modules.""" diff --git a/lib/audioinstruments/_rack/modules/reed_piano200a/output.py b/lib/audioinstruments/_rack/modules/reed_piano200a/output.py index e185c2e..5e25011 100644 --- a/lib/audioinstruments/_rack/modules/reed_piano200a/output.py +++ b/lib/audioinstruments/_rack/modules/reed_piano200a/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano200A output section, inspired by the Wurlitzer 200A amplifier and tremolo. diff --git a/lib/audioinstruments/_rack/modules/reed_piano200a/voice.py b/lib/audioinstruments/_rack/modules/reed_piano200a/voice.py index 60d0fc0..f1077ce 100644 --- a/lib/audioinstruments/_rack/modules/reed_piano200a/voice.py +++ b/lib/audioinstruments/_rack/modules/reed_piano200a/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano200A voice, inspired by one voice of the Wurlitzer 200A electric piano. diff --git a/lib/audioinstruments/_rack/modules/rhythm606/__init__.py b/lib/audioinstruments/_rack/modules/rhythm606/__init__.py index 9974063..1816844 100644 --- a/lib/audioinstruments/_rack/modules/rhythm606/__init__.py +++ b/lib/audioinstruments/_rack/modules/rhythm606/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Voice modules for Rhythm606, inspired by the Roland TR-606.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm606/bass_drum.py b/lib/audioinstruments/_rack/modules/rhythm606/bass_drum.py index 552ebc7..3dadbbf 100644 --- a/lib/audioinstruments/_rack/modules/rhythm606/bass_drum.py +++ b/lib/audioinstruments/_rack/modules/rhythm606/bass_drum.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Bass drum module for Rhythm606, inspired by the TR-606 bass drum.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm606/cymbal.py b/lib/audioinstruments/_rack/modules/rhythm606/cymbal.py index 385a465..acb24e5 100644 --- a/lib/audioinstruments/_rack/modules/rhythm606/cymbal.py +++ b/lib/audioinstruments/_rack/modules/rhythm606/cymbal.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Cymbal module for Rhythm606, inspired by the TR-606 cymbal.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm606/hats.py b/lib/audioinstruments/_rack/modules/rhythm606/hats.py index f618ab9..5d82a40 100644 --- a/lib/audioinstruments/_rack/modules/rhythm606/hats.py +++ b/lib/audioinstruments/_rack/modules/rhythm606/hats.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Closed and open hi-hat modules for Rhythm606, inspired by the TR-606.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm606/snare.py b/lib/audioinstruments/_rack/modules/rhythm606/snare.py index 78e9c8d..5fa3557 100644 --- a/lib/audioinstruments/_rack/modules/rhythm606/snare.py +++ b/lib/audioinstruments/_rack/modules/rhythm606/snare.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Snare drum module for Rhythm606, inspired by the TR-606 snare drum.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm606/tom.py b/lib/audioinstruments/_rack/modules/rhythm606/tom.py index 6775121..99a107c 100644 --- a/lib/audioinstruments/_rack/modules/rhythm606/tom.py +++ b/lib/audioinstruments/_rack/modules/rhythm606/tom.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Low and high tom modules for Rhythm606, inspired by the TR-606 toms.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm78/__init__.py b/lib/audioinstruments/_rack/modules/rhythm78/__init__.py index 0773226..b2921f2 100644 --- a/lib/audioinstruments/_rack/modules/rhythm78/__init__.py +++ b/lib/audioinstruments/_rack/modules/rhythm78/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Voice and output modules for Rhythm78, inspired by the Roland CR-78.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm78/cowbell.py b/lib/audioinstruments/_rack/modules/rhythm78/cowbell.py index b8a19e1..6eef9d3 100644 --- a/lib/audioinstruments/_rack/modules/rhythm78/cowbell.py +++ b/lib/audioinstruments/_rack/modules/rhythm78/cowbell.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Cowbell voice module for Rhythm78, inspired by the Roland CR-78.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm78/drum.py b/lib/audioinstruments/_rack/modules/rhythm78/drum.py index 4dbb332..e58ea77 100644 --- a/lib/audioinstruments/_rack/modules/rhythm78/drum.py +++ b/lib/audioinstruments/_rack/modules/rhythm78/drum.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Bridged-T drum voice module for Rhythm78, inspired by the Roland CR-78.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm78/guiro.py b/lib/audioinstruments/_rack/modules/rhythm78/guiro.py index f777d35..3a12762 100644 --- a/lib/audioinstruments/_rack/modules/rhythm78/guiro.py +++ b/lib/audioinstruments/_rack/modules/rhythm78/guiro.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Guiro voice module for Rhythm78, inspired by the Roland CR-78.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm78/hats.py b/lib/audioinstruments/_rack/modules/rhythm78/hats.py index 4b12bf2..6552dc6 100644 --- a/lib/audioinstruments/_rack/modules/rhythm78/hats.py +++ b/lib/audioinstruments/_rack/modules/rhythm78/hats.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Hi-hat and cymbal voice modules for Rhythm78, inspired by the Roland CR-78.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm78/metal.py b/lib/audioinstruments/_rack/modules/rhythm78/metal.py index f198b20..05b1021 100644 --- a/lib/audioinstruments/_rack/modules/rhythm78/metal.py +++ b/lib/audioinstruments/_rack/modules/rhythm78/metal.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Metal beat voice module for Rhythm78, inspired by the Roland CR-78.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm78/output.py b/lib/audioinstruments/_rack/modules/rhythm78/output.py index 71ce8f5..5891172 100644 --- a/lib/audioinstruments/_rack/modules/rhythm78/output.py +++ b/lib/audioinstruments/_rack/modules/rhythm78/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Output stage for Rhythm78 with volume control, tone tilt filter, and soft ceiling.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm78/snare.py b/lib/audioinstruments/_rack/modules/rhythm78/snare.py index ee0790b..070a7b2 100644 --- a/lib/audioinstruments/_rack/modules/rhythm78/snare.py +++ b/lib/audioinstruments/_rack/modules/rhythm78/snare.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Snare drum voice module for Rhythm78, inspired by the Roland CR-78.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm78/tambourine.py b/lib/audioinstruments/_rack/modules/rhythm78/tambourine.py index 9f4ed35..787c402 100644 --- a/lib/audioinstruments/_rack/modules/rhythm78/tambourine.py +++ b/lib/audioinstruments/_rack/modules/rhythm78/tambourine.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tambourine voice module for Rhythm78, inspired by the Roland CR-78.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/__init__.py b/lib/audioinstruments/_rack/modules/rhythm808/__init__.py index 8b5cd56..095efb5 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/__init__.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/__init__.py @@ -1,3 +1,4 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Voice and output modules for Rhythm808.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/bass_drum.py b/lib/audioinstruments/_rack/modules/rhythm808/bass_drum.py index 2d02bbc..92f25a9 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/bass_drum.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/bass_drum.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Bass drum module for Rhythm808, inspired by the TR-808 bass drum.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/clap.py b/lib/audioinstruments/_rack/modules/rhythm808/clap.py index 7bdf66b..000391c 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/clap.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/clap.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Hand clap module for Rhythm808, inspired by the TR-808 hand clap.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/claves.py b/lib/audioinstruments/_rack/modules/rhythm808/claves.py index 382d743..f26fa4d 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/claves.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/claves.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Claves module for Rhythm808, inspired by the TR-808 claves.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/conga.py b/lib/audioinstruments/_rack/modules/rhythm808/conga.py index e6bca5b..13cd0de 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/conga.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/conga.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Conga module for Rhythm808, inspired by the TR-808 low, mid, and high congas.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/cowbell.py b/lib/audioinstruments/_rack/modules/rhythm808/cowbell.py index 63b7e20..5c0f307 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/cowbell.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/cowbell.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Cowbell module for Rhythm808, inspired by the TR-808 cowbell.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/cymbal.py b/lib/audioinstruments/_rack/modules/rhythm808/cymbal.py index a383539..8f67443 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/cymbal.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/cymbal.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Cymbal module for Rhythm808, inspired by the TR-808 cymbal.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/hats.py b/lib/audioinstruments/_rack/modules/rhythm808/hats.py index f3b0498..f575edb 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/hats.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/hats.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Closed and open hi-hat modules for Rhythm808, inspired by the TR-808.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/maracas.py b/lib/audioinstruments/_rack/modules/rhythm808/maracas.py index b175b06..b1564d1 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/maracas.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/maracas.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Maracas module for Rhythm808, inspired by the TR-808 maracas.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/output.py b/lib/audioinstruments/_rack/modules/rhythm808/output.py index 8d437df..01d6309 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/output.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Output stage for Rhythm808 with volume control and soft ceiling saturation.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/rim_shot.py b/lib/audioinstruments/_rack/modules/rhythm808/rim_shot.py index 9cbae92..0d5e20c 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/rim_shot.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/rim_shot.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rim shot module for Rhythm808, inspired by the TR-808 rim shot.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/snare.py b/lib/audioinstruments/_rack/modules/rhythm808/snare.py index 4e2603b..6261f0f 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/snare.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/snare.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Snare drum module for Rhythm808, inspired by the TR-808 snare drum.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm808/tom.py b/lib/audioinstruments/_rack/modules/rhythm808/tom.py index 3b05528..e210965 100644 --- a/lib/audioinstruments/_rack/modules/rhythm808/tom.py +++ b/lib/audioinstruments/_rack/modules/rhythm808/tom.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tom module for Rhythm808, inspired by the TR-808 low, mid, and high toms.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm909/__init__.py b/lib/audioinstruments/_rack/modules/rhythm909/__init__.py index 222cebc..823701f 100644 --- a/lib/audioinstruments/_rack/modules/rhythm909/__init__.py +++ b/lib/audioinstruments/_rack/modules/rhythm909/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Voice modules for Rhythm909, inspired by the Roland TR-909.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm909/bass_drum.py b/lib/audioinstruments/_rack/modules/rhythm909/bass_drum.py index 0669403..0d2a63f 100644 --- a/lib/audioinstruments/_rack/modules/rhythm909/bass_drum.py +++ b/lib/audioinstruments/_rack/modules/rhythm909/bass_drum.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Bass drum module for Rhythm909, inspired by the TR-909 bass drum.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm909/clap.py b/lib/audioinstruments/_rack/modules/rhythm909/clap.py index f8f8a1a..339b781 100644 --- a/lib/audioinstruments/_rack/modules/rhythm909/clap.py +++ b/lib/audioinstruments/_rack/modules/rhythm909/clap.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Hand clap module for Rhythm909, inspired by the TR-909 hand clap.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm909/cymbal.py b/lib/audioinstruments/_rack/modules/rhythm909/cymbal.py index f273cfb..de86427 100644 --- a/lib/audioinstruments/_rack/modules/rhythm909/cymbal.py +++ b/lib/audioinstruments/_rack/modules/rhythm909/cymbal.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Crash and ride cymbal modules for Rhythm909, inspired by the TR-909 cymbals.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm909/hats.py b/lib/audioinstruments/_rack/modules/rhythm909/hats.py index 3c25f7c..a5dec60 100644 --- a/lib/audioinstruments/_rack/modules/rhythm909/hats.py +++ b/lib/audioinstruments/_rack/modules/rhythm909/hats.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Hi-hat modules for Rhythm909, inspired by the TR-909 closed and open hi-hats.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm909/rim_shot.py b/lib/audioinstruments/_rack/modules/rhythm909/rim_shot.py index 223dc18..efd7ad0 100644 --- a/lib/audioinstruments/_rack/modules/rhythm909/rim_shot.py +++ b/lib/audioinstruments/_rack/modules/rhythm909/rim_shot.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rim shot module for Rhythm909, inspired by the TR-909 rim shot.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm909/snare.py b/lib/audioinstruments/_rack/modules/rhythm909/snare.py index 535d0bc..a689553 100644 --- a/lib/audioinstruments/_rack/modules/rhythm909/snare.py +++ b/lib/audioinstruments/_rack/modules/rhythm909/snare.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Snare drum module for Rhythm909, inspired by the TR-909 snare drum.""" diff --git a/lib/audioinstruments/_rack/modules/rhythm909/tom.py b/lib/audioinstruments/_rack/modules/rhythm909/tom.py index 1f2bd37..e1c90ae 100644 --- a/lib/audioinstruments/_rack/modules/rhythm909/tom.py +++ b/lib/audioinstruments/_rack/modules/rhythm909/tom.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tom module for Rhythm909, inspired by the TR-909 low, mid, and high toms.""" diff --git a/lib/audioinstruments/_rack/modules/rotary_speaker.py b/lib/audioinstruments/_rack/modules/rotary_speaker.py index c5f90a1..c393b96 100644 --- a/lib/audioinstruments/_rack/modules/rotary_speaker.py +++ b/lib/audioinstruments/_rack/modules/rotary_speaker.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rotary speaker module: tube drive, 800 Hz crossover, horn and drum rotors, stereo imaging.""" diff --git a/lib/audioinstruments/_rack/modules/semi32.py b/lib/audioinstruments/_rack/modules/semi32.py index af24798..5806030 100644 --- a/lib/audioinstruments/_rack/modules/semi32.py +++ b/lib/audioinstruments/_rack/modules/semi32.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Semi32, a voice inspired by the Moog Mother-32: one VCO, a ladder filter switchable to high-pass, an AD envelope with a sustain switch, an LFO, noise, and a 32-step sequencer diff --git a/lib/audioinstruments/_rack/modules/state_variable_mono.py b/lib/audioinstruments/_rack/modules/state_variable_mono.py index 51370a1..550eec5 100644 --- a/lib/audioinstruments/_rack/modules/state_variable_mono.py +++ b/lib/audioinstruments/_rack/modules/state_variable_mono.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """StateVariableMono, a voice inspired by the Oberheim SEM: two VCOs, a 12 dB multimode filter that morphs from low-pass through notch to high-pass (or switches to band-pass), two ADS diff --git a/lib/audioinstruments/_rack/modules/string_ensemble/__init__.py b/lib/audioinstruments/_rack/modules/string_ensemble/__init__.py index 76c0d5c..d4bed20 100644 --- a/lib/audioinstruments/_rack/modules/string_ensemble/__init__.py +++ b/lib/audioinstruments/_rack/modules/string_ensemble/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """StringEnsemble synth modules.""" diff --git a/lib/audioinstruments/_rack/modules/string_ensemble/bass.py b/lib/audioinstruments/_rack/modules/string_ensemble/bass.py index fcf58d6..4c4a63b 100644 --- a/lib/audioinstruments/_rack/modules/string_ensemble/bass.py +++ b/lib/audioinstruments/_rack/modules/string_ensemble/bass.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """StringEnsemble monophonic bass section. diff --git a/lib/audioinstruments/_rack/modules/string_ensemble/envelope.py b/lib/audioinstruments/_rack/modules/string_ensemble/envelope.py index ece8505..01c1b8a 100644 --- a/lib/audioinstruments/_rack/modules/string_ensemble/envelope.py +++ b/lib/audioinstruments/_rack/modules/string_ensemble/envelope.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """StringEnsemble paraphonic shared envelope generator. diff --git a/lib/audioinstruments/_rack/modules/string_ensemble/output.py b/lib/audioinstruments/_rack/modules/string_ensemble/output.py index 45f3392..e9a7060 100644 --- a/lib/audioinstruments/_rack/modules/string_ensemble/output.py +++ b/lib/audioinstruments/_rack/modules/string_ensemble/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """StringEnsemble output section: bus low-pass, VCA, ensemble, master volume and DC block. diff --git a/lib/audioinstruments/_rack/modules/string_ensemble/voice.py b/lib/audioinstruments/_rack/modules/string_ensemble/voice.py index 9b311ad..3aed3b9 100644 --- a/lib/audioinstruments/_rack/modules/string_ensemble/voice.py +++ b/lib/audioinstruments/_rack/modules/string_ensemble/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """StringEnsemble voice, inspired by one key of the ARP/Eminent Solina String Ensemble. diff --git a/lib/audioinstruments/_rack/modules/tonewheel3/__init__.py b/lib/audioinstruments/_rack/modules/tonewheel3/__init__.py index d32f2fd..d6a47a5 100644 --- a/lib/audioinstruments/_rack/modules/tonewheel3/__init__.py +++ b/lib/audioinstruments/_rack/modules/tonewheel3/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tonewheel3 modules.""" diff --git a/lib/audioinstruments/_rack/modules/tonewheel3/expression.py b/lib/audioinstruments/_rack/modules/tonewheel3/expression.py index 6d92038..8aa21bf 100644 --- a/lib/audioinstruments/_rack/modules/tonewheel3/expression.py +++ b/lib/audioinstruments/_rack/modules/tonewheel3/expression.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tonewheel3 expression pedal: the swell, between the vibrato and the speaker's amplifier. diff --git a/lib/audioinstruments/_rack/modules/tonewheel3/percussion.py b/lib/audioinstruments/_rack/modules/tonewheel3/percussion.py index 59b316e..678ff75 100644 --- a/lib/audioinstruments/_rack/modules/tonewheel3/percussion.py +++ b/lib/audioinstruments/_rack/modules/tonewheel3/percussion.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tonewheel3 percussion: the decaying envelope the whole manual shares. diff --git a/lib/audioinstruments/_rack/modules/tonewheel3/rotary.py b/lib/audioinstruments/_rack/modules/tonewheel3/rotary.py index 7229ce8..855ddd1 100644 --- a/lib/audioinstruments/_rack/modules/tonewheel3/rotary.py +++ b/lib/audioinstruments/_rack/modules/tonewheel3/rotary.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tonewheel3 rotary speaker module.""" diff --git a/lib/audioinstruments/_rack/modules/tonewheel3/vibrato.py b/lib/audioinstruments/_rack/modules/tonewheel3/vibrato.py index 17ce609..4b121d1 100644 --- a/lib/audioinstruments/_rack/modules/tonewheel3/vibrato.py +++ b/lib/audioinstruments/_rack/modules/tonewheel3/vibrato.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tonewheel3 scanner vibrato and chorus, on the manual's mix. diff --git a/lib/audioinstruments/_rack/modules/tonewheel3/voice.py b/lib/audioinstruments/_rack/modules/tonewheel3/voice.py index 4f10d6d..9513252 100644 --- a/lib/audioinstruments/_rack/modules/tonewheel3/voice.py +++ b/lib/audioinstruments/_rack/modules/tonewheel3/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tonewheel3 voice: one key's nine footages, its percussion harmonic and its key click. diff --git a/lib/audioinstruments/_rack/modules/tremolo.py b/lib/audioinstruments/_rack/modules/tremolo.py index caa0445..7fae5b3 100644 --- a/lib/audioinstruments/_rack/modules/tremolo.py +++ b/lib/audioinstruments/_rack/modules/tremolo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tremolo and stereo auto-pan module on audiodsp.""" diff --git a/lib/audioinstruments/_rack/modules/vocoder330/__init__.py b/lib/audioinstruments/_rack/modules/vocoder330/__init__.py index 154ec99..1305c8d 100644 --- a/lib/audioinstruments/_rack/modules/vocoder330/__init__.py +++ b/lib/audioinstruments/_rack/modules/vocoder330/__init__.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Vocoder330 synth modules.""" diff --git a/lib/audioinstruments/_rack/modules/vocoder330/bank.py b/lib/audioinstruments/_rack/modules/vocoder330/bank.py index 3b33bf8..984944d 100644 --- a/lib/audioinstruments/_rack/modules/vocoder330/bank.py +++ b/lib/audioinstruments/_rack/modules/vocoder330/bank.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Vocoder330 bank: a ten-band vocoder, once for the whole keyboard. diff --git a/lib/audioinstruments/_rack/modules/vocoder330/filters.py b/lib/audioinstruments/_rack/modules/vocoder330/filters.py index f58510c..77edef4 100644 --- a/lib/audioinstruments/_rack/modules/vocoder330/filters.py +++ b/lib/audioinstruments/_rack/modules/vocoder330/filters.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Two helpers for the Vocoder330's band-pass filters. diff --git a/lib/audioinstruments/_rack/modules/vocoder330/keys.py b/lib/audioinstruments/_rack/modules/vocoder330/keys.py index 03c4b21..111f0dd 100644 --- a/lib/audioinstruments/_rack/modules/vocoder330/keys.py +++ b/lib/audioinstruments/_rack/modules/vocoder330/keys.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Vocoder330 keys: what the whole keyboard shares, read off the voices' gates. diff --git a/lib/audioinstruments/_rack/modules/vocoder330/mic.py b/lib/audioinstruments/_rack/modules/vocoder330/mic.py index 6d77665..306020c 100644 --- a/lib/audioinstruments/_rack/modules/vocoder330/mic.py +++ b/lib/audioinstruments/_rack/modules/vocoder330/mic.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Vocoder330 mic: the voice the vocoder listens to. diff --git a/lib/audioinstruments/_rack/modules/vocoder330/output.py b/lib/audioinstruments/_rack/modules/vocoder330/output.py index b8b0dde..9d8bfad 100644 --- a/lib/audioinstruments/_rack/modules/vocoder330/output.py +++ b/lib/audioinstruments/_rack/modules/vocoder330/output.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Vocoder330 output: the rest of the shared section, filtered once for the keyboard. diff --git a/lib/audioinstruments/_rack/modules/vocoder330/voice.py b/lib/audioinstruments/_rack/modules/vocoder330/voice.py index a67c91a..7d0774e 100644 --- a/lib/audioinstruments/_rack/modules/vocoder330/voice.py +++ b/lib/audioinstruments/_rack/modules/vocoder330/voice.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Vocoder330 voice: one key of a keyboard that sounds every key it is given. diff --git a/lib/audioinstruments/_rack/modules/voice_mix.py b/lib/audioinstruments/_rack/modules/voice_mix.py index ed00b81..fb68142 100644 --- a/lib/audioinstruments/_rack/modules/voice_mix.py +++ b/lib/audioinstruments/_rack/modules/voice_mix.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Voice mix: sums the voices of a polyphonic patch into a stereo pair. diff --git a/lib/audioinstruments/_rack/modules/west_coast0.py b/lib/audioinstruments/_rack/modules/west_coast0.py index f6332e0..d06e33f 100644 --- a/lib/audioinstruments/_rack/modules/west_coast0.py +++ b/lib/audioinstruments/_rack/modules/west_coast0.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """WestCoast0, a voice inspired by the Make Noise 0-Coast: triangle VCO with linear FM, overtone multiplier, wavefolder, balance, a dynamics low-pass gate, and the Slope and Contour diff --git a/lib/audioinstruments/_rack/modules/west_coast_synth.py b/lib/audioinstruments/_rack/modules/west_coast_synth.py index dc2b5b4..5582732 100644 --- a/lib/audioinstruments/_rack/modules/west_coast_synth.py +++ b/lib/audioinstruments/_rack/modules/west_coast_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """WestCoastSynth, a West Coast voice inspired by the Buchla Music Easel: a complex oscillator (modulation and principal oscillators with FM or AM), a timbre wavefolder, two vactrol diff --git a/lib/audioinstruments/_rack/sequencer.py b/lib/audioinstruments/_rack/sequencer.py index 3690c25..9dbcc74 100644 --- a/lib/audioinstruments/_rack/sequencer.py +++ b/lib/audioinstruments/_rack/sequencer.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A step sequencer that keeps time in frames instead of in Python. diff --git a/lib/audioinstruments/_rack/soundfont.py b/lib/audioinstruments/_rack/soundfont.py index cb5aa72..31971b8 100644 --- a/lib/audioinstruments/_rack/soundfont.py +++ b/lib/audioinstruments/_rack/soundfont.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A SoundFont 2 bank as an instrument: every melodic preset under one program change, played through `audiosampler`. diff --git a/lib/audioinstruments/_rack/soundfont_drums.py b/lib/audioinstruments/_rack/soundfont_drums.py index 738eb01..c14f760 100644 --- a/lib/audioinstruments/_rack/soundfont_drums.py +++ b/lib/audioinstruments/_rack/soundfont_drums.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A SoundFont 2 bank's kits as a drum instrument: bank 128, one patch per kit, the General MIDI percussion keys 35-81 as the pads. diff --git a/lib/audioinstruments/acid303.py b/lib/audioinstruments/acid303.py index 781dc9d..b548e85 100644 --- a/lib/audioinstruments/acid303.py +++ b/lib/audioinstruments/acid303.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.modules.acid303.Acid303: edit that, then run it again. """Acid303, a bass voice inspired by the Roland TB-303: saw or square VCO, the diode ladder with accent circuit, a decay envelope, slide, and a 16-step sequencer with gate, accent and slide per step.""" diff --git a/lib/audioinstruments/bass_pedals.py b/lib/audioinstruments/bass_pedals.py index 2ca9fb2..eabca45 100644 --- a/lib/audioinstruments/bass_pedals.py +++ b/lib/audioinstruments/bass_pedals.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.bass_pedals.BassPedals: edit that, then run it again. """BassPedals, a monophonic pedal bass synthesizer inspired by the Moog Taurus.""" diff --git a/lib/audioinstruments/clavichord.py b/lib/audioinstruments/clavichord.py index d3d12d5..c67a44c 100644 --- a/lib/audioinstruments/clavichord.py +++ b/lib/audioinstruments/clavichord.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.clavichord.Clavichord: edit that, then run it again. """Clavichord, a ten-voice struck-string electric clavichord with two pickups, four tone tabs and a mute, inspired by the Hohner Clavinet D6.""" diff --git a/lib/audioinstruments/combo_organ.py b/lib/audioinstruments/combo_organ.py index 35ba77e..03044f3 100644 --- a/lib/audioinstruments/combo_organ.py +++ b/lib/audioinstruments/combo_organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.combo_organ.ComboOrgan: edit that, then run it again. """ComboOrgan, a fully polyphonic divide-down transistor combo organ with footage drawbars, a mixture, two tone colours, a bass octave and a vibrato, inspired by the Vox Continental.""" diff --git a/lib/audioinstruments/compact_organ.py b/lib/audioinstruments/compact_organ.py index c996ebb..37ffc3f 100644 --- a/lib/audioinstruments/compact_organ.py +++ b/lib/audioinstruments/compact_organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.compact_organ.CompactOrgan: edit that, then run it again. """CompactOrgan, a fully polyphonic divide-down transistor combo organ with voice tabs, a bass section and a pitch vibrato, after the portable combo organs of the mid-1960s.""" diff --git a/lib/audioinstruments/duo20.py b/lib/audioinstruments/duo20.py index b94bb6d..b0bbacb 100644 --- a/lib/audioinstruments/duo20.py +++ b/lib/audioinstruments/duo20.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.modules.duo20.Duo20: edit that, then run it again. """Duo20, a voice inspired by the Korg MS-20: two VCOs, a high-pass into a low-pass Sallen-Key pair with diode-clipped peak, two envelopes, a modulation generator, noise, sample and hold, and a patch panel.""" diff --git a/lib/audioinstruments/duosynth.py b/lib/audioinstruments/duosynth.py index bddeb65..d63a014 100644 --- a/lib/audioinstruments/duosynth.py +++ b/lib/audioinstruments/duosynth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.duosynth.DuoSynth: edit that, then run it again. """DuoSynth, a duophonic two-oscillator synthesizer inspired by the ARP Odyssey.""" diff --git a/lib/audioinstruments/electric_grand70.py b/lib/audioinstruments/electric_grand70.py index a8e7bf8..2353bd4 100644 --- a/lib/audioinstruments/electric_grand70.py +++ b/lib/audioinstruments/electric_grand70.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.electric_grand70.ElectricGrand70: edit that, then run it again. """ElectricGrand70, a ten-voice electric grand piano inspired by the Yamaha CP-70.""" diff --git a/lib/audioinstruments/electric_piano.py b/lib/audioinstruments/electric_piano.py index 804498b..1a38625 100644 --- a/lib/audioinstruments/electric_piano.py +++ b/lib/audioinstruments/electric_piano.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.electric_piano.ElectricPiano: edit that, then run it again. """ElectricPiano, a ten-voice tine electric piano inspired by the Fender Rhodes Suitcase 73.""" diff --git a/lib/audioinstruments/electronic_drums5.py b/lib/audioinstruments/electronic_drums5.py index 7186182..ce4474c 100644 --- a/lib/audioinstruments/electronic_drums5.py +++ b/lib/audioinstruments/electronic_drums5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.electronic_drums5.ElectronicDrums5: edit that, then run it again. """ElectronicDrums5, an electronic drum kit with swept tones and noise hats, inspired by the Simmons SDS-V.""" diff --git a/lib/audioinstruments/hybrid_mono.py b/lib/audioinstruments/hybrid_mono.py index 22c8aa3..eb0c6d3 100644 --- a/lib/audioinstruments/hybrid_mono.py +++ b/lib/audioinstruments/hybrid_mono.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.modules.hybrid_mono.HybridMono: edit that, then run it again. """HybridMono, a voice inspired by the EDP Wasp: two DCOs, a CMOS multimode filter whose inverter stages clip, an envelope, an LFO and a VCA, with a small patch panel.""" diff --git a/lib/audioinstruments/midi_cc.py b/lib/audioinstruments/midi_cc.py index 713804f..b822565 100644 --- a/lib/audioinstruments/midi_cc.py +++ b/lib/audioinstruments/midi_cc.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """``audioinstruments._rack.midi_cc``, under the name it has always had here.""" diff --git a/lib/audioinstruments/midi_dispatch.py b/lib/audioinstruments/midi_dispatch.py index 6234bb1..105afb7 100644 --- a/lib/audioinstruments/midi_dispatch.py +++ b/lib/audioinstruments/midi_dispatch.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """``audioinstruments._rack.midi_dispatch``, under the name it has always had here.""" diff --git a/lib/audioinstruments/mono101.py b/lib/audioinstruments/mono101.py index b5cc9ee..1dc221f 100644 --- a/lib/audioinstruments/mono101.py +++ b/lib/audioinstruments/mono101.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.mono101.Mono101: edit that, then run it again. """Mono101, a monophonic bass and lead synth inspired by the Roland SH-101.""" diff --git a/lib/audioinstruments/mono_one.py b/lib/audioinstruments/mono_one.py index b666331..751aed9 100644 --- a/lib/audioinstruments/mono_one.py +++ b/lib/audioinstruments/mono_one.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.modules.mono_one.MonoOne: edit that, then run it again. """MonoOne, a voice inspired by the Sequential Pro-One: two VCOs with sync, a four-pole filter, two ADSRs, an LFO, glide, and the poly-mod matrix that sends the filter envelope and VCO B to VCO A's frequency and pulse width and to the filter cutoff.""" diff --git a/lib/audioinstruments/mono_synth.py b/lib/audioinstruments/mono_synth.py index 74819c0..3c64aba 100644 --- a/lib/audioinstruments/mono_synth.py +++ b/lib/audioinstruments/mono_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.mono_synth.MonoSynth: edit that, then run it again. """MonoSynth, a monophonic bass and lead synth inspired by the Moog Minimoog Model D.""" diff --git a/lib/audioinstruments/panel.py b/lib/audioinstruments/panel.py index 7b12cde..dc6a620 100644 --- a/lib/audioinstruments/panel.py +++ b/lib/audioinstruments/panel.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """An instrument as a control panel sees it. diff --git a/lib/audioinstruments/panel_view.py b/lib/audioinstruments/panel_view.py index fd3f80f..ab00217 100644 --- a/lib/audioinstruments/panel_view.py +++ b/lib/audioinstruments/panel_view.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The control panel for an instrument: one file, laid out from the shared controls. diff --git a/lib/audioinstruments/patch2600.py b/lib/audioinstruments/patch2600.py index ba4cf08..4c7626d 100644 --- a/lib/audioinstruments/patch2600.py +++ b/lib/audioinstruments/patch2600.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.modules.patch2600.Patch2600: edit that, then run it again. """Patch2600, a semi-modular voice inspired by the ARP 2600 (and Behringer's 2600): three VCOs, a ladder VCF, a VCA, two envelopes, ring modulator, noise, sample and hold, a voltage processor and a spring reverb.""" diff --git a/lib/audioinstruments/poly106.py b/lib/audioinstruments/poly106.py index db522c6..9da2876 100644 --- a/lib/audioinstruments/poly106.py +++ b/lib/audioinstruments/poly106.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.poly106.Poly106: edit that, then run it again. """Poly106, a six-voice poly synth inspired by the Roland Juno-106.""" diff --git a/lib/audioinstruments/poly5.py b/lib/audioinstruments/poly5.py index b10b2ff..7510172 100644 --- a/lib/audioinstruments/poly5.py +++ b/lib/audioinstruments/poly5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.poly5.Poly5: edit that, then run it again. """Poly5, a five-voice two-oscillator poly synth inspired by the Sequential Prophet-5 (rev 3).""" diff --git a/lib/audioinstruments/poly6.py b/lib/audioinstruments/poly6.py index ea4bed8..5d4ac34 100644 --- a/lib/audioinstruments/poly6.py +++ b/lib/audioinstruments/poly6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.poly6.Poly6: edit that, then run it again. """Poly6, a six-voice poly synth inspired by the Korg Polysix.""" diff --git a/lib/audioinstruments/poly8.py b/lib/audioinstruments/poly8.py index 2410f3c..ac58e69 100644 --- a/lib/audioinstruments/poly8.py +++ b/lib/audioinstruments/poly8.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.poly8.Poly8: edit that, then run it again. """Poly8, an eight-voice two-oscillator poly synth inspired by the Roland Jupiter-8.""" diff --git a/lib/audioinstruments/poly80.py b/lib/audioinstruments/poly80.py index b92cf6d..de3b5db 100644 --- a/lib/audioinstruments/poly80.py +++ b/lib/audioinstruments/poly80.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.poly80.Poly80: edit that, then run it again. """Poly80, an eight-voice polysynth inspired by the Yamaha CS-80.""" diff --git a/lib/audioinstruments/polya6.py b/lib/audioinstruments/polya6.py index 88d1160..d355b3f 100644 --- a/lib/audioinstruments/polya6.py +++ b/lib/audioinstruments/polya6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.polya6.PolyA6: edit that, then run it again. """PolyA6, a sixteen-voice poly synth inspired by the Alesis Andromeda A6.""" diff --git a/lib/audioinstruments/polyxa.py b/lib/audioinstruments/polyxa.py index 5c5a292..e57126e 100644 --- a/lib/audioinstruments/polyxa.py +++ b/lib/audioinstruments/polyxa.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.polyxa.PolyXa: edit that, then run it again. """PolyXa, an eight-voice two-oscillator poly synth inspired by the Oberheim OB-Xa.""" diff --git a/lib/audioinstruments/reed_piano.py b/lib/audioinstruments/reed_piano.py index 5db3639..e6c6fc1 100644 --- a/lib/audioinstruments/reed_piano.py +++ b/lib/audioinstruments/reed_piano.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.reed_piano.ReedPiano: edit that, then run it again. """ReedPiano, a ten-voice plucked-reed electric piano inspired by the Hohner Pianet.""" diff --git a/lib/audioinstruments/reed_piano200a.py b/lib/audioinstruments/reed_piano200a.py index d235164..f9c6287 100644 --- a/lib/audioinstruments/reed_piano200a.py +++ b/lib/audioinstruments/reed_piano200a.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.reed_piano200a.ReedPiano200A: edit that, then run it again. """ReedPiano200A, a ten-voice struck-reed electric piano inspired by the Wurlitzer 200A.""" diff --git a/lib/audioinstruments/rhythm606.py b/lib/audioinstruments/rhythm606.py index 4b4b372..e6aa0b8 100644 --- a/lib/audioinstruments/rhythm606.py +++ b/lib/audioinstruments/rhythm606.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.rhythm606.Rhythm606: edit that, then run it again. """Rhythm606, an analog drum machine with seven sounds, inspired by the Roland TR-606.""" diff --git a/lib/audioinstruments/rhythm78.py b/lib/audioinstruments/rhythm78.py index 0ae9743..475cb79 100644 --- a/lib/audioinstruments/rhythm78.py +++ b/lib/audioinstruments/rhythm78.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.rhythm78.Rhythm78: edit that, then run it again. """Rhythm78, an analog preset rhythm machine with fifteen sounds, inspired by the Roland CR-78.""" diff --git a/lib/audioinstruments/rhythm808.py b/lib/audioinstruments/rhythm808.py index 3a37dac..797ea93 100644 --- a/lib/audioinstruments/rhythm808.py +++ b/lib/audioinstruments/rhythm808.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.rhythm808.Rhythm808: edit that, then run it again. """Rhythm808, an analog drum machine with sixteen sounds, one circuit per pad, inspired by the Roland TR-808.""" diff --git a/lib/audioinstruments/rhythm909.py b/lib/audioinstruments/rhythm909.py index 9271ebd..422a84f 100644 --- a/lib/audioinstruments/rhythm909.py +++ b/lib/audioinstruments/rhythm909.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.rhythm909.Rhythm909: edit that, then run it again. """Rhythm909, a drum machine with eleven synthesized sounds, inspired by the Roland TR-909.""" diff --git a/lib/audioinstruments/sequencer.py b/lib/audioinstruments/sequencer.py index ff3cc65..a5deb46 100644 --- a/lib/audioinstruments/sequencer.py +++ b/lib/audioinstruments/sequencer.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """``audioinstruments._rack.sequencer``, under the name it has always had here.""" diff --git a/lib/audioinstruments/soundfont.py b/lib/audioinstruments/soundfont.py index d2638a2..3f6bddb 100644 --- a/lib/audioinstruments/soundfont.py +++ b/lib/audioinstruments/soundfont.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.soundfont: edit that, then run it again. """A SoundFont 2 bank as an instrument: every melodic preset under one program change, played through `audiosampler`.""" diff --git a/lib/audioinstruments/soundfont_drums.py b/lib/audioinstruments/soundfont_drums.py index ec51dc6..d77eac3 100644 --- a/lib/audioinstruments/soundfont_drums.py +++ b/lib/audioinstruments/soundfont_drums.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.soundfont_drums: edit that, then run it again. """A SoundFont 2 bank's kits as a drum instrument: bank 128, one patch per kit, the General MIDI percussion keys 35-81 as the pads.""" diff --git a/lib/audioinstruments/state_variable_mono.py b/lib/audioinstruments/state_variable_mono.py index 8e1dd5a..8c09b51 100644 --- a/lib/audioinstruments/state_variable_mono.py +++ b/lib/audioinstruments/state_variable_mono.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.modules.state_variable_mono.StateVariableMono: edit that, then run it again. """StateVariableMono, a voice inspired by the Oberheim SEM: two VCOs, a 12 dB multimode filter that morphs from low-pass through notch to high-pass (or switches to band-pass), two ADS envelopes, an LFO and a VCA, with a patch panel.""" diff --git a/lib/audioinstruments/string_ensemble.py b/lib/audioinstruments/string_ensemble.py index 82783bd..daf2cda 100644 --- a/lib/audioinstruments/string_ensemble.py +++ b/lib/audioinstruments/string_ensemble.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.string_ensemble.StringEnsemble: edit that, then run it again. """StringEnsemble, a fully polyphonic divide-down string machine with one shared envelope, a monophonic bass and a three-phase ensemble, inspired by the ARP/Eminent Solina String Ensemble.""" diff --git a/lib/audioinstruments/tonewheel3.py b/lib/audioinstruments/tonewheel3.py index addf4af..2518058 100644 --- a/lib/audioinstruments/tonewheel3.py +++ b/lib/audioinstruments/tonewheel3.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.tonewheel3.Tonewheel3: edit that, then run it again. """Tonewheel3, a sixteen-voice tonewheel organ with nine drawbars, single-trigger percussion, key click, a scanner vibrato and chorus, an overdriven rotary speaker, inspired by the Hammond B-3.""" diff --git a/lib/audioinstruments/vocoder330.py b/lib/audioinstruments/vocoder330.py index b6af8fa..f502b50 100644 --- a/lib/audioinstruments/vocoder330.py +++ b/lib/audioinstruments/vocoder330.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.instruments.vocoder330.Vocoder330: edit that, then run it again. """Vocoder330, a fully polyphonic string, choir and ten-band vocoder keyboard, inspired by the Roland VP-330 Vocoder Plus.""" diff --git a/lib/audioinstruments/west_coast_synth.py b/lib/audioinstruments/west_coast_synth.py index 22f8d90..066dc94 100644 --- a/lib/audioinstruments/west_coast_synth.py +++ b/lib/audioinstruments/west_coast_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT # Generated by tools/make_faces.py from audioinstruments._rack.modules.west_coast_synth.WestCoastSynth: edit that, then run it again. """WestCoastSynth, a West Coast voice inspired by the Buchla Music Easel: a complex oscillator (modulation and principal oscillators with FM or AM), a timbre wavefolder, two vactrol low-pass gates, two function generators and a random voltage source.""" diff --git a/manifest.py b/manifest.py index cf51a32..5663e9d 100644 --- a/manifest.py +++ b/manifest.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MicroPython manifest for audioinstruments: freeze the instruments and the rack under them. diff --git a/tests/conftest.py b/tests/conftest.py index 7a59969..69339c9 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Shared test helpers.""" diff --git a/tests/mpy/bench.py b/tests/mpy/bench.py index 81b53c1..00456e0 100644 --- a/tests/mpy/bench.py +++ b/tests/mpy/bench.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Time one block of each demo rack. Runs on CPython and MicroPython. diff --git a/tests/mpy/probe_nodes.py b/tests/mpy/probe_nodes.py index 370fbb4..bbb720f 100644 --- a/tests/mpy/probe_nodes.py +++ b/tests/mpy/probe_nodes.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A scratch probe: what this interpreter's audiodsp and cores are. diff --git a/tests/mpy/run.py b/tests/mpy/run.py index 0334014..a886eef 100644 --- a/tests/mpy/run.py +++ b/tests/mpy/run.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Run the rack's MicroPython-side tests. diff --git a/tests/mpy/test_alloc.py b/tests/mpy/test_alloc.py index 4ebae42..5f078da 100644 --- a/tests/mpy/test_alloc.py +++ b/tests/mpy/test_alloc.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Allocation on MicroPython: what a block costs must not grow with the block. diff --git a/tests/mpy/test_bass_pedals.py b/tests/mpy/test_bass_pedals.py index 9563cb2..e8d8ac2 100644 --- a/tests/mpy/test_bass_pedals.py +++ b/tests/mpy/test_bass_pedals.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The BassPedals on MicroPython: every patch plays, the lower pedal sounds, and a voice allocates the same at any block size.""" diff --git a/tests/mpy/test_bridge.py b/tests/mpy/test_bridge.py index a77c1d3..4482876 100644 --- a/tests/mpy/test_bridge.py +++ b/tests/mpy/test_bridge.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The audiodsp bridge on MicroPython: lockstep, and no allocation in the pull.""" diff --git a/tests/mpy/test_clavichord.py b/tests/mpy/test_clavichord.py index e65b264..80093ef 100644 --- a/tests/mpy/test_clavichord.py +++ b/tests/mpy/test_clavichord.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Clavichord on MicroPython: patches play through the ring, pickups and tabs work, sustain holds.""" diff --git a/tests/mpy/test_combo_organ.py b/tests/mpy/test_combo_organ.py index f6316a3..2419b75 100644 --- a/tests/mpy/test_combo_organ.py +++ b/tests/mpy/test_combo_organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ComboOrgan on MicroPython: six presets, 49 voices, bass section, flat allocation.""" diff --git a/tests/mpy/test_compact_organ.py b/tests/mpy/test_compact_organ.py index ad5e1ec..fa35b5a 100644 --- a/tests/mpy/test_compact_organ.py +++ b/tests/mpy/test_compact_organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """CompactOrgan on MicroPython: six presets, 49 voices, bass section, flat allocation.""" diff --git a/tests/mpy/test_duosynth.py b/tests/mpy/test_duosynth.py index 7a89ca7..8bbc3c5 100644 --- a/tests/mpy/test_duosynth.py +++ b/tests/mpy/test_duosynth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The DuoSynth on MicroPython: patches play through the ring, duo priority, and voice allocation.""" diff --git a/tests/mpy/test_electric_grand70.py b/tests/mpy/test_electric_grand70.py index d7d6054..02165ea 100644 --- a/tests/mpy/test_electric_grand70.py +++ b/tests/mpy/test_electric_grand70.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The ElectricGrand70 on MicroPython: patches play through the ring, tremolo modulates, and damper/sustain work.""" diff --git a/tests/mpy/test_electric_piano.py b/tests/mpy/test_electric_piano.py index 4f3625a..28bb60b 100644 --- a/tests/mpy/test_electric_piano.py +++ b/tests/mpy/test_electric_piano.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The ElectricPiano on MicroPython: patches play through the ring, vibrato pans, and damper/sustain work.""" diff --git a/tests/mpy/test_electronic_drums5.py b/tests/mpy/test_electronic_drums5.py index 7db611c..0c5d123 100644 --- a/tests/mpy/test_electronic_drums5.py +++ b/tests/mpy/test_electronic_drums5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectronicDrums5 on MicroPython: 8 voices, 5 presets, every pad sounds, macros, re-strike, hat choke, flat allocation.""" diff --git a/tests/mpy/test_ensemble.py b/tests/mpy/test_ensemble.py index 54ed924..d1bc458 100644 --- a/tests/mpy/test_ensemble.py +++ b/tests/mpy/test_ensemble.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """EnsembleCore on MicroPython: the sweep tables, the latency, a wire when off, a steady sum, no click on a switch, and the four-line configuration. diff --git a/tests/mpy/test_face.py b/tests/mpy/test_face.py index 412d78a..c38e44a 100644 --- a/tests/mpy/test_face.py +++ b/tests/mpy/test_face.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The audioinstruments face on MicroPython: every instrument by name, and the graph.""" diff --git a/tests/mpy/test_graph_live_patch.py b/tests/mpy/test_graph_live_patch.py index 717d015..1551925 100644 --- a/tests/mpy/test_graph_live_patch.py +++ b/tests/mpy/test_graph_live_patch.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A patch changed while it plays, on MicroPython: the checks of tools/live_patch.py. diff --git a/tests/mpy/test_graph_modal_resonator.py b/tests/mpy/test_graph_modal_resonator.py index 9df09d9..d729341 100644 --- a/tests/mpy/test_graph_modal_resonator.py +++ b/tests/mpy/test_graph_modal_resonator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ModalResonator in graph form on MicroPython: it compiles, plays, and tracks the rack. diff --git a/tests/mpy/test_graph_mono_duo_a6.py b/tests/mpy/test_graph_mono_duo_a6.py index f1e086b..7fbd954 100644 --- a/tests/mpy/test_graph_mono_duo_a6.py +++ b/tests/mpy/test_graph_mono_duo_a6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """HybridMono, Duo20 and PolyA6 in graph form on MicroPython: picked by default, and they play. diff --git a/tests/mpy/test_graph_poly106.py b/tests/mpy/test_graph_poly106.py index a0a15c3..0bc852a 100644 --- a/tests/mpy/test_graph_poly106.py +++ b/tests/mpy/test_graph_poly106.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly106's graph form on MicroPython: picked by default, and it plays. diff --git a/tests/mpy/test_graph_poly5.py b/tests/mpy/test_graph_poly5.py index 6148cbd..1a2e532 100644 --- a/tests/mpy/test_graph_poly5.py +++ b/tests/mpy/test_graph_poly5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly5's graph form on MicroPython: picked by default, and it plays. diff --git a/tests/mpy/test_graph_poly6.py b/tests/mpy/test_graph_poly6.py index d4eab9e..141d111 100644 --- a/tests/mpy/test_graph_poly6.py +++ b/tests/mpy/test_graph_poly6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly6's graph form on MicroPython: picked by default, and it plays. diff --git a/tests/mpy/test_graph_pump.py b/tests/mpy/test_graph_pump.py index 05e4215..ae99481 100644 --- a/tests/mpy/test_graph_pump.py +++ b/tests/mpy/test_graph_pump.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly6 with its graph pulled a block at a time, as the audio pump pulls it. diff --git a/tests/mpy/test_graph_pump_swap.py b/tests/mpy/test_graph_pump_swap.py index 5a2dee5..d771c50 100644 --- a/tests/mpy/test_graph_pump_swap.py +++ b/tests/mpy/test_graph_pump_swap.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A patch changed while the audio pump plays it, on MicroPython: tools/pump_swap.py's checks. diff --git a/tests/mpy/test_graph_west_coast.py b/tests/mpy/test_graph_west_coast.py index 2b2a382..34be1a7 100644 --- a/tests/mpy/test_graph_west_coast.py +++ b/tests/mpy/test_graph_west_coast.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """WestCoastSynth in graph form on MicroPython: it compiles, plays, and tracks the rack. diff --git a/tests/mpy/test_kernels.py b/tests/mpy/test_kernels.py index 41d2870..0d9af01 100644 --- a/tests/mpy/test_kernels.py +++ b/tests/mpy/test_kernels.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The kernels give the same answers under ulab as under numpy.""" diff --git a/tests/mpy/test_lazy.py b/tests/mpy/test_lazy.py index 48a0e0c..e73255a 100644 --- a/tests/mpy/test_lazy.py +++ b/tests/mpy/test_lazy.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Importing the rack, or one synth, must not import the other synths. diff --git a/tests/mpy/test_midi_cv_duo.py b/tests/mpy/test_midi_cv_duo.py index 451ae6a..a46a7a4 100644 --- a/tests/mpy/test_midi_cv_duo.py +++ b/tests/mpy/test_midi_cv_duo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MidiCV's ``"duo"`` priority on MicroPython: the two lines and the trig rule.""" diff --git a/tests/mpy/test_midi_cv_expression.py b/tests/mpy/test_midi_cv_expression.py index c21e6e6..d60bd14 100644 --- a/tests/mpy/test_midi_cv_expression.py +++ b/tests/mpy/test_midi_cv_expression.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MidiCV's ``expr`` (CC 11) and ``foot`` (CC 4) jacks on MicroPython.""" diff --git a/tests/mpy/test_module_patches.py b/tests/mpy/test_module_patches.py index 21b5853..ad9c817 100644 --- a/tests/mpy/test_module_patches.py +++ b/tests/mpy/test_module_patches.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A module's patches on MicroPython: each plays on both engines, cables included.""" diff --git a/tests/mpy/test_mono.py b/tests/mpy/test_mono.py index c076980..f39cf25 100644 --- a/tests/mpy/test_mono.py +++ b/tests/mpy/test_mono.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Mono mode on MicroPython: the note stack, legato, the trig pulse, the pedal and the glide.""" diff --git a/tests/mpy/test_mono101.py b/tests/mpy/test_mono101.py index e0d2b5b..07d2050 100644 --- a/tests/mpy/test_mono101.py +++ b/tests/mpy/test_mono101.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Mono101 on MicroPython: every patch plays through the ring, legato and portamento work.""" diff --git a/tests/mpy/test_mono_synth.py b/tests/mpy/test_mono_synth.py index 986bfaa..b5a40c3 100644 --- a/tests/mpy/test_mono_synth.py +++ b/tests/mpy/test_mono_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The MonoSynth on MicroPython: every patch plays through the ring, legato, priority and glide work.""" diff --git a/tests/mpy/test_panel.py b/tests/mpy/test_panel.py index 16b489b..ee85ac2 100644 --- a/tests/mpy/test_panel.py +++ b/tests/mpy/test_panel.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """audioinstruments.panel on MicroPython: the contract, the MIDI path, bypass, reload.""" diff --git a/tests/mpy/test_poly.py b/tests/mpy/test_poly.py index 4517acc..f619f34 100644 --- a/tests/mpy/test_poly.py +++ b/tests/mpy/test_poly.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Polyphony and the adapter on MicroPython: allocation, stealing, the voice count, the ring.""" diff --git a/tests/mpy/test_poly106.py b/tests/mpy/test_poly106.py index 4375a47..2a12c83 100644 --- a/tests/mpy/test_poly106.py +++ b/tests/mpy/test_poly106.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly106 on MicroPython: every patch plays through the ring, and the chorus widens.""" diff --git a/tests/mpy/test_poly5.py b/tests/mpy/test_poly5.py index 514c7a7..3cdab8f 100644 --- a/tests/mpy/test_poly5.py +++ b/tests/mpy/test_poly5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly5 on MicroPython: patches play through the ring, sync, unison and glide.""" diff --git a/tests/mpy/test_poly6.py b/tests/mpy/test_poly6.py index e4efdad..f27163a 100644 --- a/tests/mpy/test_poly6.py +++ b/tests/mpy/test_poly6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly6 on MicroPython: six voices, 256-sample latency, and stereo effects.""" diff --git a/tests/mpy/test_poly8.py b/tests/mpy/test_poly8.py index d67ecbf..0e60195 100644 --- a/tests/mpy/test_poly8.py +++ b/tests/mpy/test_poly8.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly8 on MicroPython: patches play through the ring, the assign modes, sync and cross-mod.""" diff --git a/tests/mpy/test_poly80.py b/tests/mpy/test_poly80.py index 284c16b..137b22b 100644 --- a/tests/mpy/test_poly80.py +++ b/tests/mpy/test_poly80.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly80 on MicroPython: patches play through ring and tremolo, pressure per voice, and allocation.""" diff --git a/tests/mpy/test_poly_buses.py b/tests/mpy/test_poly_buses.py index 4de7689..01ec311 100644 --- a/tests/mpy/test_poly_buses.py +++ b/tests/mpy/test_poly_buses.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Voice buses on MicroPython: sums, the steal's ramp, parking, build_shared, the engine.""" diff --git a/tests/mpy/test_polya6.py b/tests/mpy/test_polya6.py index 3c0f013..2192fb5 100644 --- a/tests/mpy/test_polya6.py +++ b/tests/mpy/test_polya6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The PolyA6 on MicroPython: sixteen voices, twelve patches, node cores, and voice allocation.""" diff --git a/tests/mpy/test_polyxa.py b/tests/mpy/test_polyxa.py index a3f1310..b4872a1 100644 --- a/tests/mpy/test_polyxa.py +++ b/tests/mpy/test_polyxa.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The PolyXa on MicroPython: patches play through the ring, assign modes, sync, cross-mod, and voice allocation.""" diff --git a/tests/mpy/test_pressure.py b/tests/mpy/test_pressure.py index bedebc0..be08aa9 100644 --- a/tests/mpy/test_pressure.py +++ b/tests/mpy/test_pressure.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Pressure on MicroPython: ``press`` on MidiCV, ``press1``..``pressN`` on PolyMidiCV, the adapter.""" diff --git a/tests/mpy/test_reed_piano.py b/tests/mpy/test_reed_piano.py index 2e59f50..2f02706 100644 --- a/tests/mpy/test_reed_piano.py +++ b/tests/mpy/test_reed_piano.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The ReedPiano on MicroPython: patches play through the ring, vibrato pans, and damper/sustain work.""" diff --git a/tests/mpy/test_reed_piano200a.py b/tests/mpy/test_reed_piano200a.py index 108b030..435480b 100644 --- a/tests/mpy/test_reed_piano200a.py +++ b/tests/mpy/test_reed_piano200a.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The ReedPiano200A on MicroPython: patches play through the ring, mono tremolo, and damper/sustain work.""" diff --git a/tests/mpy/test_rhythm606.py b/tests/mpy/test_rhythm606.py index cb9a316..d08148d 100644 --- a/tests/mpy/test_rhythm606.py +++ b/tests/mpy/test_rhythm606.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm606 on MicroPython: 7 voices, 4 presets, every pad sounds, choke, re-strike, flat allocation.""" diff --git a/tests/mpy/test_rhythm78.py b/tests/mpy/test_rhythm78.py index f8f8d1d..61e893e 100644 --- a/tests/mpy/test_rhythm78.py +++ b/tests/mpy/test_rhythm78.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm78 on MicroPython: 15 voices, 4 presets, every pad sounds, hat cutoff, re-strike, flat allocation.""" diff --git a/tests/mpy/test_rhythm808.py b/tests/mpy/test_rhythm808.py index 512178a..1a7cf55 100644 --- a/tests/mpy/test_rhythm808.py +++ b/tests/mpy/test_rhythm808.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm808 on MicroPython: 16 voices, 6 presets, every pad sounds, choke, re-strike, flat allocation.""" diff --git a/tests/mpy/test_rhythm909.py b/tests/mpy/test_rhythm909.py index 911c296..0d4e885 100644 --- a/tests/mpy/test_rhythm909.py +++ b/tests/mpy/test_rhythm909.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm909 on MicroPython: 11 voices, 5 presets, every pad sounds, choke, re-strike, flat allocation.""" diff --git a/tests/mpy/test_soundfont.py b/tests/mpy/test_soundfont.py index 4c27a42..70364d4 100644 --- a/tests/mpy/test_soundfont.py +++ b/tests/mpy/test_soundfont.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The SoundFont instruments, the dispatcher, midi_cc and the sequencer on MicroPython. diff --git a/tests/mpy/test_string_ensemble.py b/tests/mpy/test_string_ensemble.py index d438515..af50c0b 100644 --- a/tests/mpy/test_string_ensemble.py +++ b/tests/mpy/test_string_ensemble.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The StringEnsemble on MicroPython: patches play through the ring, ensemble widens, and bass range.""" diff --git a/tests/mpy/test_tonewheel3.py b/tests/mpy/test_tonewheel3.py index 38062e1..dc95843 100644 --- a/tests/mpy/test_tonewheel3.py +++ b/tests/mpy/test_tonewheel3.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tonewheel3 on MicroPython: eight presets, 16 voices, rotary stereo field, flat allocation.""" diff --git a/tests/mpy/test_unison.py b/tests/mpy/test_unison.py index a51073b..830b77e 100644 --- a/tests/mpy/test_unison.py +++ b/tests/mpy/test_unison.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """On MicroPython: a poly voice's note jack and its glide, and unison in mono mode.""" diff --git a/tests/mpy/test_vocoder330.py b/tests/mpy/test_vocoder330.py index 6472033..c98913d 100644 --- a/tests/mpy/test_vocoder330.py +++ b/tests/mpy/test_vocoder330.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Vocoder330 on MicroPython: every patch plays through the ring, the vibrato and align lines keep their latency, the vocoder follows the mic, and a block allocates no more at 256 frames than at 64.""" diff --git a/tests/poly_support.py b/tests/poly_support.py index c6bfc4e..fefd37e 100644 --- a/tests/poly_support.py +++ b/tests/poly_support.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A cheap voice for the polyphony tests, and the click measurement they share.""" diff --git a/tests/test_adapter.py b/tests/test_adapter.py index da79839..d08262d 100644 --- a/tests/test_adapter.py +++ b/tests/test_adapter.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The audio-component adapter: create(), the contract, and the pull.""" diff --git a/tests/test_allocation.py b/tests/test_allocation.py index 3babb94..b543d99 100644 --- a/tests/test_allocation.py +++ b/tests/test_allocation.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """No module builds an array while processing a block. diff --git a/tests/test_audio_buffer_protocol.py b/tests/test_audio_buffer_protocol.py index ee887c1..dae4ca8 100644 --- a/tests/test_audio_buffer_protocol.py +++ b/tests/test_audio_buffer_protocol.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit tests for low-level audio buffer protocol and memory mapping.""" diff --git a/tests/test_audio_export.py b/tests/test_audio_export.py index 7e7fd03..af06e9b 100644 --- a/tests/test_audio_export.py +++ b/tests/test_audio_export.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit tests for WavWriter and audio export pipeline.""" diff --git a/tests/test_ci_scope.py b/tests/test_ci_scope.py index 7ab3da2..d48c56a 100644 --- a/tests/test_ci_scope.py +++ b/tests/test_ci_scope.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """CI checks only what a change can reach, so the reach has to be right. diff --git a/tests/test_core.py b/tests/test_core.py index b63cece..7873346 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit tests for the rack core: Jacks, Cables, Normaling, Fan-out, and Rack.""" diff --git a/tests/test_core_bridge.py b/tests/test_core_bridge.py index c9e6aa0..8b80d8d 100644 --- a/tests/test_core_bridge.py +++ b/tests/test_core_bridge.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The audiodsp bridge runs in lockstep with the rack's blocks.""" diff --git a/tests/test_core_graph.py b/tests/test_core_graph.py index 40f89d1..ba44fcd 100644 --- a/tests/test_core_graph.py +++ b/tests/test_core_graph.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A rack compiled to a graph renders what the rack renders. diff --git a/tests/test_core_kernels.py b/tests/test_core_kernels.py index a7e68af..0b36d31 100644 --- a/tests/test_core_kernels.py +++ b/tests/test_core_kernels.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The in-place kernels compute what they say and write only where told.""" diff --git a/tests/test_core_midi_cv.py b/tests/test_core_midi_cv.py index 1448be7..6b63690 100644 --- a/tests/test_core_midi_cv.py +++ b/tests/test_core_midi_cv.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit tests for the master MIDI-to-CV module and Donner/Arturia profile.""" diff --git a/tests/test_core_schedule.py b/tests/test_core_schedule.py index 6a2bec0..5662fb4 100644 --- a/tests/test_core_schedule.py +++ b/tests/test_core_schedule.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Processing order follows the cables; a loop's closing cable is late.""" diff --git a/tests/test_core_serialization.py b/tests/test_core_serialization.py index b610eec..df98901 100644 --- a/tests/test_core_serialization.py +++ b/tests/test_core_serialization.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit tests for patch state serialization and restoration.""" diff --git a/tests/test_demo_check.py b/tests/test_demo_check.py index a9d0175..3deb1cc 100644 --- a/tests/test_demo_check.py +++ b/tests/test_demo_check.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The demos' section check: a bass pitched below hearing fails it.""" diff --git a/tests/test_dsp_cores.py b/tests/test_dsp_cores.py index f117003..d55d431 100644 --- a/tests/test_dsp_cores.py +++ b/tests/test_dsp_cores.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The DSP cores: a signal comes out, it is finite, it is in range, and the controls do what their names say. Nothing here compares against a reference diff --git a/tests/test_dsp_drums.py b/tests/test_dsp_drums.py index 51e1345..569e363 100644 --- a/tests/test_dsp_drums.py +++ b/tests/test_dsp_drums.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tests for shared drum synthesis cores in audioinstruments._rack.dsp.drums.""" diff --git a/tests/test_dsp_ensemble.py b/tests/test_dsp_ensemble.py index bfc6efe..af7055d 100644 --- a/tests/test_dsp_ensemble.py +++ b/tests/test_dsp_ensemble.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """EnsembleCore: three phases, latency, a wire when off, two wobbles, a steady sum, no click on a switch, no allocation in a block, and a second diff --git a/tests/test_dsp_keys.py b/tests/test_dsp_keys.py index 732100d..d9cd78f 100644 --- a/tests/test_dsp_keys.py +++ b/tests/test_dsp_keys.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The struck-key cores and the tremolo: what each one models, measured on its own.""" diff --git a/tests/test_ensemble_core.py b/tests/test_ensemble_core.py index 07cbcfc..aed87ae 100644 --- a/tests/test_ensemble_core.py +++ b/tests/test_ensemble_core.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """VibratoCore, AlignCore and EnsembleCore's ``on`` keyword, with the four-line ensemble the Vocoder330 builds from it. diff --git a/tests/test_eurorack_function_generator.py b/tests/test_eurorack_function_generator.py index f7049eb..61d011d 100644 --- a/tests/test_eurorack_function_generator.py +++ b/tests/test_eurorack_function_generator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for FunctionGenerator.""" diff --git a/tests/test_eurorack_granular_processor.py b/tests/test_eurorack_granular_processor.py index 9860e84..80cdaf4 100644 --- a/tests/test_eurorack_granular_processor.py +++ b/tests/test_eurorack_granular_processor.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for GranularProcessor.""" diff --git a/tests/test_eurorack_macro_oscillator.py b/tests/test_eurorack_macro_oscillator.py index 9f972af..49bfe55 100644 --- a/tests/test_eurorack_macro_oscillator.py +++ b/tests/test_eurorack_macro_oscillator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for MacroOscillator.""" diff --git a/tests/test_eurorack_modal_resonator.py b/tests/test_eurorack_modal_resonator.py index 1013458..d1dcdac 100644 --- a/tests/test_eurorack_modal_resonator.py +++ b/tests/test_eurorack_modal_resonator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for ModalResonator.""" diff --git a/tests/test_eurorack_modular100.py b/tests/test_eurorack_modular100.py index 166892b..6e116cb 100644 --- a/tests/test_eurorack_modular100.py +++ b/tests/test_eurorack_modular100.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Integration tests for the complete Modular100 modular synthesizer.""" diff --git a/tests/test_eurorack_modular55.py b/tests/test_eurorack_modular55.py index d159605..2f1a73e 100644 --- a/tests/test_eurorack_modular55.py +++ b/tests/test_eurorack_modular55.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for the Modular55 modules.""" diff --git a/tests/test_eurorack_random_sequencer.py b/tests/test_eurorack_random_sequencer.py index 7ca80cf..4eb4e54 100644 --- a/tests/test_eurorack_random_sequencer.py +++ b/tests/test_eurorack_random_sequencer.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for RandomSequencer.""" diff --git a/tests/test_face.py b/tests/test_face.py index 7aab026..cbbc613 100644 --- a/tests/test_face.py +++ b/tests/test_face.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The audioinstruments face: generated from the classes, valid, and playable.""" diff --git a/tests/test_fill_bounded.py b/tests/test_fill_bounded.py index 35b4e0b..f647dd9 100644 --- a/tests/test_fill_bounded.py +++ b/tests/test_fill_bounded.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """fill() returns when the patch renders slower than the ring drains.""" diff --git a/tests/test_graph_acid303.py b/tests/test_graph_acid303.py index 662d637..c9f78a7 100644 --- a/tests/test_graph_acid303.py +++ b/tests/test_graph_acid303.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Acid303 compiled to a graph sounds the rack's Acid303. diff --git a/tests/test_graph_bass_pedals.py b/tests/test_graph_bass_pedals.py index d7b1b4e..25d8162 100644 --- a/tests/test_graph_bass_pedals.py +++ b/tests/test_graph_bass_pedals.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The BassPedals compiled to a graph sounds the rack's BassPedals. diff --git a/tests/test_graph_block_controls.py b/tests/test_graph_block_controls.py index 67802e9..5bba415 100644 --- a/tests/test_graph_block_controls.py +++ b/tests/test_graph_block_controls.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A value a hook writes only when it moved still arrives, on CPython and on MicroPython. diff --git a/tests/test_graph_buffer_reuse.py b/tests/test_graph_buffer_reuse.py index 45952b4..59d9759 100644 --- a/tests/test_graph_buffer_reuse.py +++ b/tests/test_graph_buffer_reuse.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The graph compiler lends a buffer to the next wire once a wire's last reader has run. diff --git a/tests/test_graph_clavichord.py b/tests/test_graph_clavichord.py index 02db23c..2b139cc 100644 --- a/tests/test_graph_clavichord.py +++ b/tests/test_graph_clavichord.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Clavichord compiles to an audiograph that sounds what the rack sounds. diff --git a/tests/test_graph_combo_organ.py b/tests/test_graph_combo_organ.py index ad58156..e16701c 100644 --- a/tests/test_graph_combo_organ.py +++ b/tests/test_graph_combo_organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The ComboOrgan compiled to a graph sounds the rack's ComboOrgan. diff --git a/tests/test_graph_compact_organ.py b/tests/test_graph_compact_organ.py index e208ba0..dc6a9e8 100644 --- a/tests/test_graph_compact_organ.py +++ b/tests/test_graph_compact_organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The CompactOrgan compiled to a graph sounds the rack's CompactOrgan. diff --git a/tests/test_graph_duo20.py b/tests/test_graph_duo20.py index 657a8a5..3b72f9d 100644 --- a/tests/test_graph_duo20.py +++ b/tests/test_graph_duo20.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Duo20 compiled to a graph sounds the rack's Duo20. diff --git a/tests/test_graph_duosynth.py b/tests/test_graph_duosynth.py index b015f75..a28120f 100644 --- a/tests/test_graph_duosynth.py +++ b/tests/test_graph_duosynth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The DuoSynth compiled to a graph sounds the rack's DuoSynth. diff --git a/tests/test_graph_electric_grand70.py b/tests/test_graph_electric_grand70.py index aae99a0..66129e7 100644 --- a/tests/test_graph_electric_grand70.py +++ b/tests/test_graph_electric_grand70.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricGrand70 compiles to an audiograph that sounds what the rack sounds. diff --git a/tests/test_graph_electric_piano.py b/tests/test_graph_electric_piano.py index 928e381..3876869 100644 --- a/tests/test_graph_electric_piano.py +++ b/tests/test_graph_electric_piano.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The ElectricPiano compiled to a graph sounds the rack's ElectricPiano. diff --git a/tests/test_graph_electronic_drums5.py b/tests/test_graph_electronic_drums5.py index 72264ec..8116906 100644 --- a/tests/test_graph_electronic_drums5.py +++ b/tests/test_graph_electronic_drums5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The ElectronicDrums5 compiled to a graph sounds the rack's ElectronicDrums5. diff --git a/tests/test_graph_hybrid_mono.py b/tests/test_graph_hybrid_mono.py index d50ed1b..73ebb5a 100644 --- a/tests/test_graph_hybrid_mono.py +++ b/tests/test_graph_hybrid_mono.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The HybridMono compiled to a graph sounds the rack's HybridMono. diff --git a/tests/test_graph_live_patch.py b/tests/test_graph_live_patch.py index 2e191ac..60fc95a 100644 --- a/tests/test_graph_live_patch.py +++ b/tests/test_graph_live_patch.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A patch changed while it plays: compiled beside the running graph, swapped in at a block. diff --git a/tests/test_graph_micropython.py b/tests/test_graph_micropython.py index e092af4..c7fd2f6 100644 --- a/tests/test_graph_micropython.py +++ b/tests/test_graph_micropython.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """HybridMono, Duo20 and PolyA6 render to the same samples on MicroPython. diff --git a/tests/test_graph_modal_resonator.py b/tests/test_graph_modal_resonator.py index 00e291d..61fcabe 100644 --- a/tests/test_graph_modal_resonator.py +++ b/tests/test_graph_modal_resonator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ModalResonator's graph form, held to the rack. diff --git a/tests/test_graph_mono101.py b/tests/test_graph_mono101.py index 9049010..05a9941 100644 --- a/tests/test_graph_mono101.py +++ b/tests/test_graph_mono101.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Mono101 compiled to a graph sounds the rack's Mono101. diff --git a/tests/test_graph_mono_one.py b/tests/test_graph_mono_one.py index c20bfff..dd78bb4 100644 --- a/tests/test_graph_mono_one.py +++ b/tests/test_graph_mono_one.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The MonoOne compiled to a graph sounds the rack's MonoOne. diff --git a/tests/test_graph_monosynth.py b/tests/test_graph_monosynth.py index d9d5fae..bdbb7ab 100644 --- a/tests/test_graph_monosynth.py +++ b/tests/test_graph_monosynth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The MonoSynth compiled to a graph sounds the rack's MonoSynth. diff --git a/tests/test_graph_patch2600.py b/tests/test_graph_patch2600.py index 4bb506e..69d8cfd 100644 --- a/tests/test_graph_patch2600.py +++ b/tests/test_graph_patch2600.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Patch2600 compiled to a graph sounds the rack's Patch2600. diff --git a/tests/test_graph_poly106.py b/tests/test_graph_poly106.py index 019dae2..e0c4b83 100644 --- a/tests/test_graph_poly106.py +++ b/tests/test_graph_poly106.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """How ``create()`` picks between the rack and the compiled graph. diff --git a/tests/test_graph_poly5.py b/tests/test_graph_poly5.py index dd52024..fb21c86 100644 --- a/tests/test_graph_poly5.py +++ b/tests/test_graph_poly5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly5 compiled to a graph sounds the rack's Poly5. diff --git a/tests/test_graph_poly6.py b/tests/test_graph_poly6.py index e928d87..6cf29ce 100644 --- a/tests/test_graph_poly6.py +++ b/tests/test_graph_poly6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly6 compiled to a graph sounds the rack's Poly6. diff --git a/tests/test_graph_poly8.py b/tests/test_graph_poly8.py index e232322..a57f1e3 100644 --- a/tests/test_graph_poly8.py +++ b/tests/test_graph_poly8.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly8 compiled to a graph sounds the rack's Poly8. diff --git a/tests/test_graph_poly80.py b/tests/test_graph_poly80.py index 554965c..747809a 100644 --- a/tests/test_graph_poly80.py +++ b/tests/test_graph_poly80.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Poly80 compiled to a graph sounds the rack's Poly80. diff --git a/tests/test_graph_polya6.py b/tests/test_graph_polya6.py index 8541283..1fc21fe 100644 --- a/tests/test_graph_polya6.py +++ b/tests/test_graph_polya6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The PolyA6 compiled to a graph sounds the rack's PolyA6. diff --git a/tests/test_graph_polyxa.py b/tests/test_graph_polyxa.py index 77bcfeb..59abf2f 100644 --- a/tests/test_graph_polyxa.py +++ b/tests/test_graph_polyxa.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The PolyXa compiled to a graph sounds the rack's PolyXa. diff --git a/tests/test_graph_pump.py b/tests/test_graph_pump.py index dcfbc2d..001abcd 100644 --- a/tests/test_graph_pump.py +++ b/tests/test_graph_pump.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """An instrument whose graph is pulled by the audio pump sounds what step() renders. diff --git a/tests/test_graph_pump_swap.py b/tests/test_graph_pump_swap.py index fb572cc..482f0af 100644 --- a/tests/test_graph_pump_swap.py +++ b/tests/test_graph_pump_swap.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A patch changed while the audio pump plays it: swapped in on a block boundary. diff --git a/tests/test_graph_reed_piano.py b/tests/test_graph_reed_piano.py index 7709e7f..5ef5de0 100644 --- a/tests/test_graph_reed_piano.py +++ b/tests/test_graph_reed_piano.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The ReedPiano compiled to a graph sounds the rack's ReedPiano. diff --git a/tests/test_graph_reed_piano200a.py b/tests/test_graph_reed_piano200a.py index 95560d1..dfad086 100644 --- a/tests/test_graph_reed_piano200a.py +++ b/tests/test_graph_reed_piano200a.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano200A compiles to an audiograph that sounds what the rack sounds. diff --git a/tests/test_graph_rhythm606.py b/tests/test_graph_rhythm606.py index f83a4f9..d3ae472 100644 --- a/tests/test_graph_rhythm606.py +++ b/tests/test_graph_rhythm606.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Rhythm606 compiled to a graph sounds the rack's Rhythm606. diff --git a/tests/test_graph_rhythm78.py b/tests/test_graph_rhythm78.py index 91a8315..3f0797f 100644 --- a/tests/test_graph_rhythm78.py +++ b/tests/test_graph_rhythm78.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Rhythm78 compiled to a graph sounds the rack's Rhythm78. diff --git a/tests/test_graph_rhythm808.py b/tests/test_graph_rhythm808.py index cd99fe4..77064f2 100644 --- a/tests/test_graph_rhythm808.py +++ b/tests/test_graph_rhythm808.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Rhythm808 compiled to a graph sounds the rack's Rhythm808. diff --git a/tests/test_graph_rhythm909.py b/tests/test_graph_rhythm909.py index eb9ef0d..65c47c5 100644 --- a/tests/test_graph_rhythm909.py +++ b/tests/test_graph_rhythm909.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Rhythm909 compiled to a graph sounds the rack's Rhythm909. diff --git a/tests/test_graph_state_variable_mono.py b/tests/test_graph_state_variable_mono.py index c902108..ec68b95 100644 --- a/tests/test_graph_state_variable_mono.py +++ b/tests/test_graph_state_variable_mono.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The StateVariableMono compiled to a graph sounds the rack's StateVariableMono. diff --git a/tests/test_graph_string_ensemble.py b/tests/test_graph_string_ensemble.py index 09b6b0d..084ad5b 100644 --- a/tests/test_graph_string_ensemble.py +++ b/tests/test_graph_string_ensemble.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The StringEnsemble compiled to a graph sounds the rack's StringEnsemble. diff --git a/tests/test_graph_tonewheel3.py b/tests/test_graph_tonewheel3.py index 124a086..fda8d1b 100644 --- a/tests/test_graph_tonewheel3.py +++ b/tests/test_graph_tonewheel3.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Tonewheel3 compiled to a graph sounds the rack's Tonewheel3. diff --git a/tests/test_graph_vocoder330.py b/tests/test_graph_vocoder330.py index b9f8b6c..4058aa7 100644 --- a/tests/test_graph_vocoder330.py +++ b/tests/test_graph_vocoder330.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The Vocoder330 compiled to a graph sounds the rack's Vocoder330, part by part. diff --git a/tests/test_graph_voice_mix_pan.py b/tests/test_graph_voice_mix_pan.py index 45e37c4..9cc0226 100644 --- a/tests/test_graph_voice_mix_pan.py +++ b/tests/test_graph_voice_mix_pan.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A compiled voice mix is one ``PAN`` node, and sounds as the two ``MIX`` nodes it replaced. diff --git a/tests/test_graph_voice_mix_park.py b/tests/test_graph_voice_mix_park.py index c34ad34..ac213f0 100644 --- a/tests/test_graph_voice_mix_park.py +++ b/tests/test_graph_voice_mix_park.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A compiled voice mix parks a voice by the rack's rule. diff --git a/tests/test_graph_west_coast_synth.py b/tests/test_graph_west_coast_synth.py index 4c4e569..3f378bd 100644 --- a/tests/test_graph_west_coast_synth.py +++ b/tests/test_graph_west_coast_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """WestCoastSynth's graph form, held to the rack. diff --git a/tests/test_held_note.py b/tests/test_held_note.py index 3a551b7..45e19ae 100644 --- a/tests/test_held_note.py +++ b/tests/test_held_note.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A held note on a default patch stays close to its attack. diff --git a/tests/test_hmi.py b/tests/test_hmi.py index be0e156..91444d4 100644 --- a/tests/test_hmi.py +++ b/tests/test_hmi.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The rack as an hmilink model, over the in-process transport. diff --git a/tests/test_lazy_imports.py b/tests/test_lazy_imports.py index 0e20f76..e37b799 100644 --- a/tests/test_lazy_imports.py +++ b/tests/test_lazy_imports.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A synth is imported when it is used, not when the rack is. diff --git a/tests/test_merged_macros.py b/tests/test_merged_macros.py index a8a9a14..4b72043 100644 --- a/tests/test_merged_macros.py +++ b/tests/test_merged_macros.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The macros these modules took from the instruments they replaced move the parameters they name.""" diff --git a/tests/test_midi_cc.py b/tests/test_midi_cc.py index 7010e2c..a4523fa 100644 --- a/tests/test_midi_cc.py +++ b/tests/test_midi_cc.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """`audioinstruments._rack.midi_cc`: every Control Change code has a scaler, and the scalers keep their promises.""" diff --git a/tests/test_midi_cv_changed_only.py b/tests/test_midi_cv_changed_only.py index 764fb14..a7edf91 100644 --- a/tests/test_midi_cv_changed_only.py +++ b/tests/test_midi_cv_changed_only.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MidiCV writes a one-value jack only when its value changes: every jack still reads right. diff --git a/tests/test_midi_cv_duo.py b/tests/test_midi_cv_duo.py index a027690..e47ae50 100644 --- a/tests/test_midi_cv_duo.py +++ b/tests/test_midi_cv_duo.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MidiCV's ``"duo"`` priority and the ``pitch_hi`` and ``note_hi`` jacks. diff --git a/tests/test_midi_cv_expression.py b/tests/test_midi_cv_expression.py index 1e6fd5f..566cdc0 100644 --- a/tests/test_midi_cv_expression.py +++ b/tests/test_midi_cv_expression.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MidiCV's ``expr`` (CC 11) and ``foot`` (CC 4) jacks: a pedal's value, 0 to 1. diff --git a/tests/test_module_patches.py b/tests/test_module_patches.py index a6a924b..be8ebf3 100644 --- a/tests/test_module_patches.py +++ b/tests/test_module_patches.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A module played as a voice takes its patches from the class, on both engines. diff --git a/tests/test_mono_mode.py b/tests/test_mono_mode.py index fbb2727..9e3fcd2 100644 --- a/tests/test_mono_mode.py +++ b/tests/test_mono_mode.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Mono mode: the note stack, priority, legato, the trig pulse, the pedal and the glide.""" diff --git a/tests/test_panel.py b/tests/test_panel.py index 26fba31..452f158 100644 --- a/tests/test_panel.py +++ b/tests/test_panel.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """audioinstruments.panel: an instrument as a control panel edits it.""" diff --git a/tests/test_panel_view.py b/tests/test_panel_view.py index 666d550..a406727 100644 --- a/tests/test_panel_view.py +++ b/tests/test_panel_view.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """panel_view.py loads without the shared controls, and wraps an instrument in build(). diff --git a/tests/test_patch_files.py b/tests/test_patch_files.py index 61ab158..e581493 100644 --- a/tests/test_patch_files.py +++ b/tests/test_patch_files.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tests for JSON patch files and audioinstruments._rack.load_rack().""" diff --git a/tests/test_poly_allocator.py b/tests/test_poly_allocator.py index fe5297b..d69ce53 100644 --- a/tests/test_poly_allocator.py +++ b/tests/test_poly_allocator.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """VoiceAllocator: which voice plays which note.""" diff --git a/tests/test_poly_buses.py b/tests/test_poly_buses.py index 2b3f624..9f92579 100644 --- a/tests/test_poly_buses.py +++ b/tests/test_poly_buses.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Voice buses: named mono sums that fade, park and scale as the pool's main jack does. diff --git a/tests/test_poly_kit.py b/tests/test_poly_kit.py index 39b5735..90338c5 100644 --- a/tests/test_poly_kit.py +++ b/tests/test_poly_kit.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A pool played as a drum kit: one voice per pad, re-strikes without a fade, chokes. diff --git a/tests/test_poly_pool.py b/tests/test_poly_pool.py index 9518402..8b34b60 100644 --- a/tests/test_poly_pool.py +++ b/tests/test_poly_pool.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """VoicePool, PolyMidiCV and VoiceMix: polyphony in a rack.""" diff --git a/tests/test_pool_note_unison.py b/tests/test_pool_note_unison.py index 799c3a2..6efccc0 100644 --- a/tests/test_pool_note_unison.py +++ b/tests/test_pool_note_unison.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """A poly voice's note jack and its glide, and unison in mono mode.""" diff --git a/tests/test_pressure.py b/tests/test_pressure.py index 35aec32..bc1206e 100644 --- a/tests/test_pressure.py +++ b/tests/test_pressure.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Pressure: ``press`` on MidiCV, ``press1``..``pressN`` on PolyMidiCV, and the adapter's calls. diff --git a/tests/test_sampler_adapter.py b/tests/test_sampler_adapter.py index 75c19eb..8ee920a 100644 --- a/tests/test_sampler_adapter.py +++ b/tests/test_sampler_adapter.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The SoundFont instruments through the adapter: create(), ALL and the contract. diff --git a/tests/test_showcase_integrity.py b/tests/test_showcase_integrity.py index 672f093..6adab13 100644 --- a/tests/test_showcase_integrity.py +++ b/tests/test_showcase_integrity.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Integration and regression tests validating audio integrity across showcase synthesizers.""" diff --git a/tests/test_synth_acid303.py b/tests/test_synth_acid303.py index 90d98a5..0fc2f1e 100644 --- a/tests/test_synth_acid303.py +++ b/tests/test_synth_acid303.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for Acid303.""" diff --git a/tests/test_synth_bass_pedals.py b/tests/test_synth_bass_pedals.py index e162d42..9ca8828 100644 --- a/tests/test_synth_bass_pedals.py +++ b/tests/test_synth_bass_pedals.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """BassPedals: the instrument plays, each control does what its name says, and every routing works. diff --git a/tests/test_synth_clavichord.py b/tests/test_synth_clavichord.py index 285810a..7714782 100644 --- a/tests/test_synth_clavichord.py +++ b/tests/test_synth_clavichord.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Clavichord: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_combo_organ.py b/tests/test_synth_combo_organ.py index 9353ef6..ceff987 100644 --- a/tests/test_synth_combo_organ.py +++ b/tests/test_synth_combo_organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ComboOrgan: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_compact_organ.py b/tests/test_synth_compact_organ.py index 6f265f1..6782958 100644 --- a/tests/test_synth_compact_organ.py +++ b/tests/test_synth_compact_organ.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """CompactOrgan: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_drum_synth.py b/tests/test_synth_drum_synth.py index 8bf3e1b..883e9ae 100644 --- a/tests/test_synth_drum_synth.py +++ b/tests/test_synth_drum_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for DrumSynth.""" diff --git a/tests/test_synth_duo20.py b/tests/test_synth_duo20.py index dafff8c..b44ead3 100644 --- a/tests/test_synth_duo20.py +++ b/tests/test_synth_duo20.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for the Duo20 semi-modular synthesizer.""" diff --git a/tests/test_synth_duosynth.py b/tests/test_synth_duosynth.py index 3bbe5dc..e17216a 100644 --- a/tests/test_synth_duosynth.py +++ b/tests/test_synth_duosynth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """DuoSynth: tests for controls, routings, behaviors, levels, and DC blocking.""" diff --git a/tests/test_synth_electric_grand70.py b/tests/test_synth_electric_grand70.py index 5074942..3313b4d 100644 --- a/tests/test_synth_electric_grand70.py +++ b/tests/test_synth_electric_grand70.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricGrand70: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_electric_piano.py b/tests/test_synth_electric_piano.py index e12b453..9f1d75b 100644 --- a/tests/test_synth_electric_piano.py +++ b/tests/test_synth_electric_piano.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectricPiano: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_electronic_drums5.py b/tests/test_synth_electronic_drums5.py index b12deb7..bbae0f6 100644 --- a/tests/test_synth_electronic_drums5.py +++ b/tests/test_synth_electronic_drums5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ElectronicDrums5: every pad sounds, presets load, controls move circuits, velocity scales level and bend, and re-strike re-pings cleanly. diff --git a/tests/test_synth_hybrid_mono.py b/tests/test_synth_hybrid_mono.py index c04816a..58f9474 100644 --- a/tests/test_synth_hybrid_mono.py +++ b/tests/test_synth_hybrid_mono.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for the HybridMono synthesizer module.""" diff --git a/tests/test_synth_mono101.py b/tests/test_synth_mono101.py index 31769cf..9c5dc1b 100644 --- a/tests/test_synth_mono101.py +++ b/tests/test_synth_mono101.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Mono101: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_mono_one.py b/tests/test_synth_mono_one.py index a4f1658..0ecfc8e 100644 --- a/tests/test_synth_mono_one.py +++ b/tests/test_synth_mono_one.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for the MonoOne synthesizer module.""" diff --git a/tests/test_synth_mono_synth.py b/tests/test_synth_mono_synth.py index 123d26f..82e8a37 100644 --- a/tests/test_synth_mono_synth.py +++ b/tests/test_synth_mono_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """MonoSynth: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_paraphonic_synth.py b/tests/test_synth_paraphonic_synth.py index bde0641..891d7c0 100644 --- a/tests/test_synth_paraphonic_synth.py +++ b/tests/test_synth_paraphonic_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit tests for the ParaphonicSynth paraphonic analog synthesizer.""" diff --git a/tests/test_synth_patch2600.py b/tests/test_synth_patch2600.py index bad2e82..1b83d71 100644 --- a/tests/test_synth_patch2600.py +++ b/tests/test_synth_patch2600.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit tests for the Patch2600 semi-modular synthesizer.""" diff --git a/tests/test_synth_pin_matrix3.py b/tests/test_synth_pin_matrix3.py index f71666f..23f2448 100644 --- a/tests/test_synth_pin_matrix3.py +++ b/tests/test_synth_pin_matrix3.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for the PinMatrix3 synthesizer module.""" diff --git a/tests/test_synth_poly106.py b/tests/test_synth_poly106.py index b3fc4e9..558568a 100644 --- a/tests/test_synth_poly106.py +++ b/tests/test_synth_poly106.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly106: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_poly5.py b/tests/test_synth_poly5.py index d1e72eb..237e0a2 100644 --- a/tests/test_synth_poly5.py +++ b/tests/test_synth_poly5.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly5: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_poly6.py b/tests/test_synth_poly6.py index 3a1ad3f..ca495d1 100644 --- a/tests/test_synth_poly6.py +++ b/tests/test_synth_poly6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly6: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_poly8.py b/tests/test_synth_poly8.py index 7517c4b..aa1dfa1 100644 --- a/tests/test_synth_poly8.py +++ b/tests/test_synth_poly8.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly8: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_poly80.py b/tests/test_synth_poly80.py index aacbfe6..f22bfeb 100644 --- a/tests/test_synth_poly80.py +++ b/tests/test_synth_poly80.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Poly80: the instrument plays, each control does what its name says, and all routings work. diff --git a/tests/test_synth_polya6.py b/tests/test_synth_polya6.py index 60e2f09..9fa624f 100644 --- a/tests/test_synth_polya6.py +++ b/tests/test_synth_polya6.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyA6: the instrument plays, each control does what its name says, and all routings work.""" diff --git a/tests/test_synth_polyrhythm_synth.py b/tests/test_synth_polyrhythm_synth.py index f1e1604..c376717 100644 --- a/tests/test_synth_polyrhythm_synth.py +++ b/tests/test_synth_polyrhythm_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for PolyrhythmSynth.""" diff --git a/tests/test_synth_polyxa.py b/tests/test_synth_polyxa.py index f7f7516..d0162a5 100644 --- a/tests/test_synth_polyxa.py +++ b/tests/test_synth_polyxa.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """PolyXa: the instrument plays, each control does what its name says, and all routings work.""" diff --git a/tests/test_synth_reed_piano.py b/tests/test_synth_reed_piano.py index 27f0751..cc2ad5e 100644 --- a/tests/test_synth_reed_piano.py +++ b/tests/test_synth_reed_piano.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_reed_piano200a.py b/tests/test_synth_reed_piano200a.py index 033bf63..5029eaa 100644 --- a/tests/test_synth_reed_piano200a.py +++ b/tests/test_synth_reed_piano200a.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """ReedPiano200A: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_rhythm606.py b/tests/test_synth_rhythm606.py index f9dbb29..1f3aaaf 100644 --- a/tests/test_synth_rhythm606.py +++ b/tests/test_synth_rhythm606.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm606: every pad sounds, choke cuts hats, re-strike re-pings without click, accent brightens and scales level, presets load, and every control moves its circuit.""" diff --git a/tests/test_synth_rhythm78.py b/tests/test_synth_rhythm78.py index 3aa399c..74711b9 100644 --- a/tests/test_synth_rhythm78.py +++ b/tests/test_synth_rhythm78.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm78: 15 voices, 4 patches, pad map, open/closed hat single voice cutoff, balance, tone tilt, accent, guiro scrapes, and no hard clipping on 15 simultaneous strikes.""" diff --git a/tests/test_synth_rhythm808.py b/tests/test_synth_rhythm808.py index 15ad7b3..1500db8 100644 --- a/tests/test_synth_rhythm808.py +++ b/tests/test_synth_rhythm808.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm808: every pad sounds, choke cuts open hat, re-strike re-pings without click, accent brightens and scales level, presets load, and every control moves its circuit.""" diff --git a/tests/test_synth_rhythm909.py b/tests/test_synth_rhythm909.py index a664e73..eeca3ea 100644 --- a/tests/test_synth_rhythm909.py +++ b/tests/test_synth_rhythm909.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Rhythm909: every pad sounds, choke cuts open hat, re-strike re-pings without click, accent brightens and scales level, presets load, and every control moves its circuit.""" diff --git a/tests/test_synth_semi32.py b/tests/test_synth_semi32.py index 991aa1e..e963d95 100644 --- a/tests/test_synth_semi32.py +++ b/tests/test_synth_semi32.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for the Semi32 synthesizer module.""" diff --git a/tests/test_synth_state_variable_mono.py b/tests/test_synth_state_variable_mono.py index 7d92e1a..67817d6 100644 --- a/tests/test_synth_state_variable_mono.py +++ b/tests/test_synth_state_variable_mono.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for the StateVariableMono synthesizer module.""" diff --git a/tests/test_synth_string_ensemble.py b/tests/test_synth_string_ensemble.py index e945c6d..343b60f 100644 --- a/tests/test_synth_string_ensemble.py +++ b/tests/test_synth_string_ensemble.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """StringEnsemble: polyphony, the paraphonic envelope, bass, ensemble, controls and routing.""" diff --git a/tests/test_synth_tonewheel3.py b/tests/test_synth_tonewheel3.py index e1ff16e..b61377b 100644 --- a/tests/test_synth_tonewheel3.py +++ b/tests/test_synth_tonewheel3.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Tonewheel3: the instrument plays, and each control does what its name says.""" diff --git a/tests/test_synth_vocoder330.py b/tests/test_synth_vocoder330.py index 9184789..0b1c209 100644 --- a/tests/test_synth_vocoder330.py +++ b/tests/test_synth_vocoder330.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Vocoder330: every control changes the sound, every route reaches where it should, and the instrument stays quiet, level and clean. diff --git a/tests/test_synth_west_coast0.py b/tests/test_synth_west_coast0.py index 8fb068a..573116f 100644 --- a/tests/test_synth_west_coast0.py +++ b/tests/test_synth_west_coast0.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for WestCoast0.""" diff --git a/tests/test_synth_west_coast_synth.py b/tests/test_synth_west_coast_synth.py index c03f44b..aa10162 100644 --- a/tests/test_synth_west_coast_synth.py +++ b/tests/test_synth_west_coast_synth.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Unit and integration tests for the WestCoastSynth synthesizer module.""" diff --git a/tests/test_traits.py b/tests/test_traits.py index 8d79793..e90b279 100644 --- a/tests/test_traits.py +++ b/tests/test_traits.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Each instrument with a trait file still has the traits it was accepted with. diff --git a/tools/block_phrase.py b/tools/block_phrase.py index 8502a2e..1425787 100644 --- a/tools/block_phrase.py +++ b/tools/block_phrase.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Hold a compiled voice to one rule: a value written only when it moved still arrives. diff --git a/tools/ci_scope.py b/tools/ci_scope.py index 0a254b3..075c31f 100644 --- a/tools/ci_scope.py +++ b/tools/ci_scope.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Say what CI has to check for a change, so a typical change costs a few minutes. diff --git a/tools/graph_phrase.py b/tools/graph_phrase.py index 69c96af..ceee4a9 100644 --- a/tools/graph_phrase.py +++ b/tools/graph_phrase.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Play a fixed phrase with voice steals on one patch and write the PCM, on any interpreter. diff --git a/tools/live_patch.py b/tools/live_patch.py index 6a1904c..579e986 100644 --- a/tools/live_patch.py +++ b/tools/live_patch.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Change a patch while it plays, and check the swap, on any interpreter. diff --git a/tools/make_faces.py b/tools/make_faces.py index 83bc29d..f1fcce4 100644 --- a/tools/make_faces.py +++ b/tools/make_faces.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Write the ``audioinstruments`` face of every instrument from its class. diff --git a/tools/modal_phrase.py b/tools/modal_phrase.py index ae86826..9f6f9b4 100644 --- a/tools/modal_phrase.py +++ b/tools/modal_phrase.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Strike ModalResonator in a phrase, on the rack or compiled, on any interpreter. diff --git a/tools/pump_swap.py b/tools/pump_swap.py index 2fce984..35ba6d5 100644 --- a/tools/pump_swap.py +++ b/tools/pump_swap.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Change a patch while the audio pump plays it, and check the swap, on any interpreter. diff --git a/tools/traits.py b/tools/traits.py index 47b385c..5fe8460 100644 --- a/tools/traits.py +++ b/tools/traits.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Measure an instrument's traits from a render of a fixed phrase, and check them. diff --git a/tools/traits_phrase.py b/tools/traits_phrase.py index 7989636..a14e079 100644 --- a/tools/traits_phrase.py +++ b/tools/traits_phrase.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """The fixed phrase a trait measurement plays, in plain Python. diff --git a/tools/traits_render.py b/tools/traits_render.py index 0e5f294..bb93251 100644 --- a/tools/traits_render.py +++ b/tools/traits_render.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Play a trait spec's phrase on one patch and write the PCM, on any interpreter. diff --git a/tools/validate_metadata.py b/tools/validate_metadata.py index 6e11583..c1bc8d9 100644 --- a/tools/validate_metadata.py +++ b/tools/validate_metadata.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Validate the metadata every ``audioinstruments`` module declares. diff --git a/tools/west_coast_phrase.py b/tools/west_coast_phrase.py index 8e4e07a..4c86c99 100644 --- a/tools/west_coast_phrase.py +++ b/tools/west_coast_phrase.py @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2026 Brad Barnett +# # SPDX-License-Identifier: MIT """Play WestCoastSynth on a keyboard's gate and pitch, on the rack or compiled, on any interpreter.