REED STUDY 007 — CONTOUR, FIND YOUR VOICE Prepared 2026-10-18 UTC Play: /phrase.html Listen: /phrase-listen.html Earlier reference: /contour.html and /contour-listen.html This round follows Charlie's actual 006 feedback: an opening between Central and Larger; fixed tone preferred to the large moving gesture; some interest in a gentler movement; Soft preferred; Warm liked dry but Reference preferred over the darker accompaniment. The earlier dry Warm preference was recorded with matching off, so it cannot yet separate spectral weight from extra level. WHAT CHANGED The live default is Opening 75/100, corresponding to h0 = 460.46 micrometres. Breath-led, Soft, reference breath gamma 0.8, current damping 0.286, and Reference output remain the starting settings. Main Breath still spans gamma 0.65–0.95. The established dynamic reed, backward-Euler update, contact law, tube, noise-off and mouth-coupling-off configuration are retained. The main melody now leaves the selected opening and breath steady. A separate held C4 makes a slow, small Opening gesture: 75 to 85, through 65, and back to 75 over three seconds. Commands arrive at 40 Hz and retain the existing 20 ms opening smoothing. This removes the old confound of large opening steps just before note changes. The old listening page's Held region was a middle excerpt of a changing melody; the new opening comparison really is one note. Soft remains a declared performance treatment: 50 ms pressure hold, 110 ms pressure fall and 120 ms output fade. It is not a new mechanical tongue stop. The production contact and numerical integration have not changed. All 109 pre-existing production files other than the index navigation match baseline commit 9eab72db06335e2a78d880ee78e122a8bb4adb61 byte-for-byte. The old builds remain available. LISTENING GUIDE — SEVEN QUESTIONS, FIFTEEN CLIPS 1. A smaller gesture on one note. Compare fixed Opening 75 with the slow 65–85 motion on C4. Does the movement add an appealing change, or is steady still better? 2. Three shades of reed damping. Compare 0.240, current 0.286 and 0.330 at fixed Opening 75 and gamma 0.8. Full phrase has separate G3, C4 and G4 starts; Held isolates G3. Each variant has its own static tuning calibration. Is any difference useful enough to deserve a control? 3. Natural versus Anchored, dry. One G4 swells through the main breath range and settles. Does holding pitch steadier preserve the expressive swell, or remove something you liked? 4. Reference versus Warm, dry. Same steady melody. Matching starts on. Does Warm still supply the preferred low weight once its additional level is removed? 5. Natural versus Anchored over a dark C-major backing. 6. The same pitch comparison over a brighter, higher C-major backing. 7. Reference versus Warm over the brighter backing. This directly tests Charlie's suggested context for Warm. The previous dark-backing comparison remains in 006. You need not answer all seven. The opening motion, the damping choice and the pitch comparison are the most useful first responses. Full phrase is the best starting region. Save notes plus the comparison to preserve which clips and regions you heard. Dry comparisons default to attenuation-only excerpt RMS matching, with the existing silence and 18 dB safeguards. Original WAVs remain at fixed engine gain. This is RMS matching, not a perceptual loudness guarantee; K-weighted matching is not added here. A 5 ms playback-edge fade avoids crop clicks but is not in the original downloads. Context pairs match the decoded dry lead stems by attenuation before adding identical backing samples. Whole-mix matching is disabled. Both backing recipes, their WAVs and hashes, stem gains, common master gain, exact Float32 rounding and PCM16 encoding formula are in manifest.json. These are synthetic test chords, not Phosphor, recordings or live polyphony. Independent verification reconstructs all six context WAVs exactly from the published stems and backings. LIVE INSTRUMENT VERSUS SAVED EXPERIMENTS The keyboard uses the retained 006 note-by-opening tuning at reference breath. Breath still bends its pitch naturally. Damping and Anchored are saved research previews only, restricted to Opening 75, 48 kHz output, Higher calculation rate (384 kHz internally). They are not untested new live controls. Damping previews keep Pc, h0, reed resonance, contact, pressure, articulation and output voicing fixed. They change damping and the static tube tuning required to align pitch. Thus they compare tuning-aligned playable variants; they are not a strict fixed-resonator intervention on damping alone. Opening retains the earlier virtual-model covariance of equivalent mass and stiffness. Anchored changes requested tube delay using selected note and the engine's actual smoothed supply pressure. It never measures the audio to correct itself, never transposes the output and never replaces or resets the reed during the swell. Calibration has 13 semitones G3–G4 and gamma anchors 0.65, 0.725, 0.8, 0.875 and 0.95, all at Opening 75 and damping 0.286. Acoustic delay is interpolated between pressure anchors. There are also 13-note gamma-0.8 maps for each alternative damping, giving 91 anchors total. Pressure outside the calibrated range uses the nearest anchor; onset and release are not promised pitch-corrected. The saved listening comparison tests the endpoints Natural and Anchored, not a continuous blend. Neither the wider opening space nor other sample rates are calibrated for Anchored. Those would be follow-up work only if Charlie prefers the preview. PRESSURE RESPONSE AND THE EXTRA-SMOOTHING DECISION The inherited engine already smooths pressure over 18 ms. The preview reads that current pressure rather than the unsmoothed slider target. A measured G4 test compared no additional lookup smoothing with additional 20 and 40 ms lags, for both a slow swell and abrupt pressure steps. Target-centred periodicity estimator, 150 ms windows at 100 ms spacing from 0.8 seconds: Max absolute cents, slow swell Max, step test Natural 28.44 28.44 Anchored, no extra lag 0.29 0.29 Anchored, extra 20 ms 1.17 6.69 Anchored, extra 40 ms 2.16 11.00 We selected no extra lookup lag. This is evidence for the tested G4/opening/rate and pressure shapes, not a measured universal acoustic time constant. The map and engine still have their existing parameter smoothing. Full windows and scores are in pitch-diagnostics.json and tests/study-007-pitch.mjs. An independent target-agnostic 75–2200 Hz pitch search of the final PCM files measured maximum absolute errors of 26.99 cents Natural and 0.91 cents Anchored across the same slow-swell windows. The estimators have different small biases; neither result should be promoted to an exact sub-cent accuracy guarantee. They agree on the large reduction and found no octave error. Attacks, tails, connected-note gestures, bends and other openings remain outside that claim. DAMPING RESULTS — MODEST, NOT A NEW VOICE PROVEN C4, gamma 0.8, Opening 75, individually tuned; held window 2.5–2.95 s: Damping Power fraction in 1.4–2.0 kHz Time to 10% held RMS 0.240 3.587% 80 ms 0.286 3.522% 80 ms 0.330 3.426% 85 ms Onset uses 10 ms RMS windows on a 5 ms grid, measured from the C4 note command. These small band-energy changes and near-equal onset times do not establish that lower damping supplies a substantially different grain. Musical usefulness remains a listening question. Independent broad-search pitch checks of the nine saved damping-note windows were within 1.31 cents. No additional damping knob is justified solely by these numbers. CONTACT INVESTIGATION — IMPORTANT CORRECTION TO THE EARLIER HYPOTHESIS The contact study is isolated from production. See the appended CONTACT-007 report, contact-research.json and tests/contact-007-research.mjs. Its 70 cells cover five contact laws, seven pressures and two internal rates, at C4 and the earlier central Opening 50. They are not measurements at the new preferred opening. The hypothesis that contact onset affects local stability is supported. However, the main Breath ceiling of 0.95 is not the measured universal fresh-start ceiling. At legacy contact, tiny perturbations about the correctly initialized full reed–tube DC equilibrium grew below onset and decayed above it. Moving onset moved that local transition. The finite breath attack could nevertheless reach a continuing oscillation above the locally stable resting region. At 384 kHz, legacy smoothstep attacks sound at gamma 1.05 and are quiet at 1.10. A linear 60 ms attack at the same 1.10 sounds, as does starting at 0.8 and pushing to 1.10. Both rates show that distinction. Softer contact also permits a smooth fresh start at 1.10 without moving onset. Thus neither the static flow slope alone nor onset position alone determines whether a played attack starts. This supports coexistence of an attracting resting state and a finite-amplitude sounding trajectory under the tested conditions. Finite observation windows do not prove asymptotic bistability or realistic clarinet physics. Some softer-contact perturbations remained unresolved and are explicitly marked as such. Ordinary gamma-0.8 playing already crosses nominal closure: x/h0 reaches 1.0295 at 384 kHz, with gap zero for about 0.82% of the whole render including attack. Static sealing pressure 2.567 therefore does not imply the reed never dynamically closes. Gap flow is zero there; the modeled reed-pumping flow is a separate contribution. Consequently, a displacement-only contact law cannot be identical over the complete visited normal-playing interval and also lower static sealing pressure to 1.3 with the remaining mechanics fixed. The visited interval includes x=h0, so preserving it preserves force at closure. A different law could still be musically worthwhile, but its preferred grain cannot be guaranteed identical by changing only deeper penetration. Decision: preserve contact and the current playable breath range. Attack-shape experiments or alternative contact belong in a later isolated study, with the current voice available for comparison. VERIFICATION AND LIMITS - Real worklet class versus offline controller: sample-exact at 44.1 and 48 kHz under the scheduler harness; queued configuration, Stop, recording timestamps and stale request handling checked. - Default 007 trajectories exactly equal configured 006 trajectories at Opening 75 on G3/C4/G4, both output rates and calculation qualities, including Soft release. - 52 fresh notes at the preferred opening: all 13 semitones, both rates, both qualities. No safety/solver faults; broad-search reference pitch maximum error 2.34 cents. - All 15 saved comparison clips are finite, unclipped, silent before their note onset, and finish idle. Source hashes, audio hashes and regional measurements are saved. Raw and finished output are kept distinct in render diagnostics. - Mock UI checks cover held keys, pointer cancellation, blur/hidden Stop, pending audio initialization, recording/replay/export provenance and matching policies. They do not constitute a browser or iPhone test. - Previous production files remain unchanged except index navigation. No real browser/device audition or realtime CPU/latency test was available in this environment. Actual mobile playback, visual layout and device performance still need Charlie's check. No human listening judgment is claimed from numerical metrics. The synthetic model is not certified acoustically realistic or passive across every control setting. REPRODUCE npm run test:phrase npm run render:phrase npm run calibrate:phrase node tests/study-007-pitch.mjs npm run research:contact007 Calibration and contact research are separate slower jobs. Render manifest, diagnostics, verification and pitch/contact studies live in dist/study007-data. The contact appendix below is included to make this report shareable without needing repository access. QUESTIONS FOR CLAUDE, ARGON AND GROK 1. Given the small measured damping effect at fixed opening and matched pitch, is there a better isolated reed parameter test worth trying before exposing another control? Distinguish predictions from evidence of an audible improvement. 2. The Anchored preview is promising for one opening/rate. What minimal extra validation would justify extending it to live opening movement and both calculation qualities? Consider interpolation, pressure steps, connected-note transitions and partial compensation separately. 3. The complete-equilibrium perturbations and attack-shape controls separate local stability from finite attack access. What further bounded test would most efficiently distinguish sustained coexistence from very long transients? Do not assume the 0.95 live limit is the bifurcation. 4. If a later contact alternative is proposed, identify which normally visited force or dissipation region it changes. A promise of exact normal-voice preservation plus lower static sealing is incompatible with this measured displacement range for a displacement-only law. 5. After Charlie hears matched Warm dry and in the brighter mix, would a discrete output choice remain sufficient? We have not yet performed K-weighted matching. Please ground implementation claims in these records and keep physical hypotheses and musical preferences separate. No body redesign or mouth model is needed to answer this round's questions. ====================================================================== APPENDIX: CONTACT-007 RESEARCH REPORT ====================================================================== # Contact investigation for Reed Study 007 This research leaves the playable engines unchanged. It tests the proposed contact explanation against the complete existing reed–tube implementation, rather than inferring stability from the slope of a static flow curve alone. The result supports a contact-related change in **local equilibrium response**, but it separates that response from **whether a finite breath attack starts a note**. In this model those are different questions. ## Reproduce and scope Run `node tests/contact-007-research.mjs`. Results are written to `dist/study007-data/contact-research.json`. - Frozen 006 Contour at C4, opening 0.5, noise and mouth coupling off. - Output rate 48 kHz; internal rates 192 and 384 kHz. Each rate retains its own 006 reference-breath tube calibration, with no retuning between contact variants. - Five laws: legacy onset 0.9504 h0 / stiffness ratio 31.6; onset 0.935 or 0.970 with stiffness fixed; stiffness ratio 20 or 45 with onset fixed. - Seven pressures: gamma 0.90, 0.93, 0.95, 0.97, 1.00, 1.05, 1.10. This is 70 matrix cells. - Each cell has a fresh 60 ms smoothstep attack, followed to 1.5 seconds, and a separate small perturbation around the coupled DC equilibrium followed for 0.5 seconds. - Extra controls: ordinary gamma 0.8 playing, start at 0.8 then push to 1.1, a linear rather than smoothstep attack to 1.1, and half-size perturbations for three legacy pressure values at both rates. The research script imports an in-memory copy of `lab-engine.js` with three exact substitutions exposing independent onset and stiffness overrides. The production source is not edited. The JSON records the original source SHA-256 and each replacement. A default-law comparison against the original engine is sample-identical over its initial 100 ms. ## Equilibrium and perturbation method The bore has a small, nonzero DC inlet pressure. For the retained reflection coefficient −0.975, its DC impedance is `Zdc = Zb × (1 − 0.975) / (1 + 0.975)`. The initializer solves `deltaP + Zdc × U(deltaP) = supply`, using the contact-law static displacement. It fills the delay line and return-filter state with the constant outgoing wave, sets reed displacement and zero velocity, and initializes the uncoupled upstream RLC to its own steady flow state. This avoids calling a still-settling transient an equilibrium. An unperturbed twin tracks numerical drift. The second copy begins with an additional displacement of `0.0001 h0`, about 42 nm. The diagnostic norm combines displacement divided by h0, velocity divided by omega0 h0, and bore inlet pressure divided by Pc. Its RMS is reported in successive time windows. A half-size perturbation is checked in six selected cases. All 70 unperturbed equilibria stayed close to their initialized states: the largest windowed normalized drift was 9.21e−9. No matrix case produced a solver failure, protection reset, or output clamp. This validates the equilibrium comparison within the implemented solver's tolerance; it does not prove physical accuracy. ## What changed when onset and stiffness were separated Both internal rates gave the same classifications below. “Fresh sounds” means final 250 ms RMS above 0.001 under the specified smoothstep attack; it is not a universal audibility threshold. | Contact law | Tested pressures where the small perturbation grew to a finite oscillation | First tested pressure with clear perturbation decay | Highest tested fresh smoothstep start that sounded | |---|---|---|---| | Legacy: onset 0.9504, stiffness 31.6 | 0.90–0.95 | 0.97 | 1.05; 1.10 was quiet | | Earlier onset: 0.935, stiffness 31.6 | 0.90–0.93 | 0.95 | 1.00; 1.05 and 1.10 were quiet | | Later onset: 0.970, stiffness 31.6 | 0.90–0.97 | 1.00 | 1.05; 1.10 was quiet | | Softer contact: onset 0.9504, stiffness 20 | 0.90–0.95 | 0.97 | 1.10, the highest pressure tested | | Harder contact: onset 0.9504, stiffness 45 | 0.90–0.95 | 0.97 | 1.05; 1.10 was quiet | For the softer law at gamma 1.00–1.10, the small-perturbation result remains unresolved over 0.5 seconds. Its late/early RMS ratios range from about 0.42 to 1.24, rather than a decisive decrease or growth to a large oscillation. No stability conclusion is assigned to those cells. Moving the onset moves the bracket between rapid perturbation growth and decay. That supports the contact-onset mechanism for the **local response**. It does not establish that the 0.95 main Breath limit is the fresh-start ceiling, or that onset is the only parameter capable of changing that ceiling. The softer law starts at 1.10 without moving onset. ## The attack curve changes which behavior is reached At 384 kHz with the legacy law: | Condition | Final output RMS | |---|---:| | Fresh smoothstep attack to gamma 1.05 | 0.09697 | | Fresh smoothstep attack to gamma 1.10 | 5.02e−9 | | Fresh linear attack to gamma 1.10 | 0.10215 | | Smoothstep start at 0.8, then push to 1.10 | 0.10192 | Both attack shapes last 60 ms and retain the engine's subsequent 18 ms parameter smoothing. The only intended difference in the linear control is the target-pressure curve. The 192 kHz cases show the same distinction. At gamma 0.97, the legacy equilibrium perturbation falls from normalized RMS 5.43e−6 in 20–80 ms to 9.11e−8 in 300–500 ms, even though the fresh smoothstep attack produces a continuing note. At gamma 1.10, the same perturbation decays by a factor of about 24.6, while the linear attack or start-then-push reaches a sounding state. Half-size perturbations retain these conclusions. This is substantially stronger evidence for coexistence of a locally attracting resting state and a finite-amplitude sounding trajectory than a static derivative alone. The finite observation windows and limited perturbations still do not prove asymptotic bistability, identify every basin boundary, or establish the behavior of a real clarinet. Below onset, the perturbation grows so quickly that it reaches finite amplitude within the observation windows; those samples are not used to estimate a linear growth rate. ## Normal playing already reaches closure At gamma 0.8, reference opening, and a smoothstep attack, the legacy reed reaches: | Internal rate | Maximum x/h0 | Contact duty over entire 1.5 s render | Zero-gap duty over entire render | |---|---:|---:|---:| | 192 kHz | 1.02330 | 42.54% | 0.774% | | 384 kHz | 1.02953 | 42.17% | 0.819% | These duties include startup; they are not steady-period-only statistics. The soft contact law permits displacement beyond the nominal closure point. Air-gap flow is clipped to zero there, while reed-pumping flow remains part of the coupled engine. Consequently, “the reed cannot statically seal below gamma 2.567” does not mean it never closes while playing. Static equilibrium and dynamic excursions are distinct. For this displacement-only legacy law, static closure requires `gammaSeal = 1 + kappa × (1 − a) = 2.56736`. Preserving the complete force-versus-displacement curve visited by the normal reference trajectory preserves its force at x = h0, because that trajectory already passes through closure. With Pc and the other reed mechanics held fixed, that also preserves the static closure pressure. An alternative monotone law cannot both remain identical over this entire visited interval and make static closure occur at gamma 1.3. Changing only still-deeper penetration leaves the force at closure untouched. This rules out that particular guarantee, not all possible design choices. A velocity-dependent or history-dependent law is a different model; a law that changes the normally visited interval can be evaluated by listening. Neither is a proven timbre-preserving repair. ## Implication for the next musical build Keep the current contact law for the preferred Contour voice. The main Breath range is a deliberate playable range, not the location of a measured universal stability boundary. The isolated research demonstrates that pressure-attack shape and contact stiffness both matter, so an experimental start-then-push articulation could be offered honestly later. There is no need to change contact to test Charlie's preferred opening, restrained opening motion, nearby damping settings, or optional pitch compensation. Those musical comparisons should remain distinct from this diagnostic experiment. Contact research here is limited to one note and opening and does not authorize widening the main live pressure range.