Repository navigation
ShimmerHall plays on every board; Phase 6's classes adopted - #140
Merged
Merged
Conversation
… Rise 0, which an ESP32-S3 keeps up with; Octave Bloom moves to patch 6 Patch 0 is now Rise at Rise 0 (steps 127, 89, 0, 90, 96, 94, 64, 91, 32), and the old defaults are patch 6, Octave Bloom. The S3 sentence names the Bloom patches as they now are. Tests that measured Bloom at the defaults ask for it by name, so every trait is still held where it was.
…ShimmerHall are adopted: Phase 6's seven ADOPTED names all seven, so audioeffects.<Name> and create() serve the rebuilds. They stay under rebuilt/, and pitch.py and rack.py keep the old classes until the rebuilds are promoted. The old ShimmerHall built its octave branch by NAME with the old Octaver's down= and up=, which the rebuild refuses, so it now names pitch.Octaver directly, as it already does for the tape delay and the reverb. Its render and AirSpace's old rack are unchanged when built from rack.py. Tests: each class gains an "adopted is what the package serves" test (create() returns the rebuild), and the registry names all fifteen adopted classes; with ADOPTED cut back to the first eight, all of them go red. The tests written against the old classes by their served name now name them from their own module: test_cpython_effects_pitch (the shifter-based Octaver's octave reach and shifter count) and test_cpython_effects_racks (the old Rack, ShimmerHall and AirSpace). Their assertions are unchanged. The CHANGELOG entries for the seven say they are adopted (2026-10-13), and the note on the soundtrack racks now includes the octaver. Gates, this tree: validate_api 55 instruments / 45 effects; metadata valid; flake8 clean; contract and the seven classes' scoped tests, the kit and the registry OK; the library smoke 45 classes, 318 patches, 0 failures on CPython, MicroPython and CircuitPython. The CPython digest census (burst plus two seconds, every served class at the defaults and every patch) moves only the six served names whose rebuilds differ from the old classes, onto the rebuilds' own digests; Rack's default chain is a wire either way, and every other class is byte-identical.
At the Rise defaults the hall sounds at once, so a Size or Mix jump early in the render lands on sound and steps the output: the disclosed family limit (a control that jumps makes the output step; moving Size empties the hall). On CircuitPython, Octave Bloom loaded before the first pull now re-arms Bloom's shifter from the defaults, and CircuitPython's own PitchShift keeps its positions through a clear, as for the other Bloom patches.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ShimmerHall now plays on every board, and the seven rebuilt Phase 6 effects are now what
audioeffects.<Name>andcreate()serve.ShimmerHall's defaults are now Octave Rise. That is Octave Bloom in Rise at Rise 0: one octave, once, with the hall starting at once. On an ESP32-S3 it runs at about 58 % of a block. Octave Bloom, the old defaults, moves to patch 6. The docstring says the Bloom patches (Octave Bloom, Short Stagger, Fifth Halo) can't keep up on an S3 and that the defaults and every Rise patch can. The tests that measured Bloom at the defaults now ask for Bloom by name, so every trait is still tested where it was.
Adopted: StereoWidener, Rack, Octaver, PitchShifter, Harmonizer, AirSpace and ShimmerHall are now in
ADOPTED. The old classes stay inpitch.pyandrack.py, and the tests that exercise them name them there. The oldrack.ShimmerHallnames the old Octaver directly. Every other served class renders byte for byte as before (329 cells at the defaults and every patch).Checked:
test_rebuilt_registry, the library, pitch, racks and kit tests,validate_api,validate_metadataand flake8.