Skip to content

Add per-channel auto-calibration feature#230

Draft
SummerSigh wants to merge 2 commits intomainfrom
feat/autocalibration
Draft

Add per-channel auto-calibration feature#230
SummerSigh wants to merge 2 commits intomainfrom
feat/autocalibration

Conversation

@SummerSigh
Copy link
Copy Markdown
Member

When enabled, continuously tracks the running min/max of each face expression and eye lid channel, updating the calibration Lower/Upper bounds accordingly. This eliminates the need for users to manually set calibration ranges.

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Feb 27, 2026

CLA assistant check
All committers have signed the CLA.

@dfgHiatus dfgHiatus self-requested a review February 27, 2026 19:20
@dfgHiatus dfgHiatus self-assigned this Feb 27, 2026
@dfgHiatus dfgHiatus added the enhancement New feature or request label Feb 27, 2026
@RamesTheGeneric
Copy link
Copy Markdown
Contributor

Tested and works on my end.

When enabled, continuously tracks the running min/max of each face
expression and eye-lid channel, updating the calibration Lower/Upper
bounds accordingly. This eliminates the need for users to manually
set calibration ranges.

- Add AutoCalibrationEnabled property and ResetAutoCalibration to
  ICalibrationService / CalibrationService
- Subscribe CalibrationService to ExpressionChangeEvent to track
  per-channel min/max with a 0.5 seed value
- Fire AutoCalibrationReset event so CalibrationViewModel can
  refresh sliders synchronously before tracking begins
- Add saved setting toggle in AppSettingsViewModel and
  AppSettingsView
…nNames

- Make ParameterSenderService.EyeExpressionMap and FaceExpressionMap
  public static readonly so they can be referenced directly
- CalibrationService.FaceExpressionNames now derives from
  ParameterSenderService.FaceExpressionMap.Keys instead of
  maintaining a hardcoded duplicate
- Remove unused _parameterSenderService field from CalibrationViewModel
@dfgHiatus dfgHiatus force-pushed the feat/autocalibration branch from 43f5371 to 987965d Compare March 3, 2026 21:06
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happened here btw

@dfgHiatus dfgHiatus marked this pull request as draft March 5, 2026 02:08
{ "TongueTwistRight", "/tongueTwistRight" }
};

private static readonly string[] FaceExpressionNames = ParameterSenderService.FaceExpressionMap.Keys.ToArray();
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should be able to pass the ParameterSenderService in through DI, so you don't have to access it statically here

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants