Skip to content

Statistical RT60 result claims airabsorption:false; dispose leaks the result #144

Description

@rdmiller

The Statistical RT60 result is created with info.airabsorption: false even though Sabine/Eyring/Arau all add an air term. UI that keys off that flag will tell the user air is off. K = RT_CONSTANTS[units] is 0.161 at 20 °C only; dispose() does not REMOVE_RESULT.

Found on varese-dev.

info: {
  frequency: this.frequencies,
  airabsorption: false,       // lie
  temperature: this.temperature,
  humidity: this.humidity,    // frozen at first Calculate
}

Subsequent Calculate UPDATE_RESULTs replace data and leave info stale if T/RH changed.

downloadRT60AsCSV exists; toFixed on NaN (empty-room α, zero area) becomes "NaN" in the file. Constructor this.uuid = uuid() after super(props) drops a restored uuid (same pattern as Energy Decay).

Suggested fix

airabsorption: true. Refresh info on every Calculate. K = 24 * Math.LN10 / ac.soundSpeed(T) (metric) with a feet conversion. dispose emits REMOVE_RESULT. Do not re-uuid in the constructor.

Acceptance criteria

  • Result panel / CSV reflects that air is included
  • Changing room T/RH and re-Calculate updates info
  • Deleting the solver removes the Statistical RT60 result

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions