diff --git a/app.go b/app.go index fa6cf2b..06253c4 100644 --- a/app.go +++ b/app.go @@ -8910,6 +8910,18 @@ func (a *App) DVKStop() { // // Persisting still happens on Save. This is the live half. func (a *App) AudioApplyLevels(fromPct, micPct int) { + // PERSIST as well as apply. Starting a recording re-reads the stored + // settings and calls SetGains with them, so a live-only value was thrown + // away the moment a take began: the monitor followed the slider while two + // recordings made at 10%% and 300%% came out identical. + if a.settings != nil { + if fromPct > 0 { + _ = a.settings.Set(a.ctx, keyAudioFromGain, strconv.Itoa(fromPct)) + } + if micPct > 0 { + _ = a.settings.Set(a.ctx, keyAudioMicGain, strconv.Itoa(micPct)) + } + } if a.audioMgr != nil { a.audioMgr.SetMonitorGain(fromPct) }