reality_relay: async DNS вместо getaddrinfo + AGC-компрессор по умолчанию (-12 dBFS)
This commit is contained in:
1 parent
738cfe7835
commit
ba1c2d85d3
7 files changed
+116
-76
No files matched your search
@@ -124,9 +124,9 @@ class ConfigProvider(private val context: Context) {
|
||||
key == "chat.storage_autoload_maxsize_mb" -> context.dataStore.data.first()[chatStorageAutoloadMaxsizeMb] ?: 10
|
||||
key == "chat.storage_maxsize_gb" -> context.dataStore.data.first()[chatStorageMaxsizeGb] ?: 1
|
||||
key == "chat.opus_codec_preset" -> context.dataStore.data.first()[chatOpusCodecPreset] ?: 1
|
||||
key == "chat.compressor_enabled" -> context.dataStore.data.first()[chatCompressorEnabled] ?: 0
|
||||
key == "chat.compressor_max_gain_db" -> context.dataStore.data.first()[chatCompressorMaxGainDb] ?: 25
|
||||
key == "chat.compressor_rise_rate" -> context.dataStore.data.first()[chatCompressorRiseRate] ?: 10
|
||||
key == "chat.compressor_enabled" -> context.dataStore.data.first()[chatCompressorEnabled] ?: 1
|
||||
key == "chat.compressor_max_gain_db" -> context.dataStore.data.first()[chatCompressorMaxGainDb] ?: 15
|
||||
key == "chat.compressor_rise_rate" -> context.dataStore.data.first()[chatCompressorRiseRate] ?: 2
|
||||
key == "chat.media_download_max_peers" -> context.dataStore.data.first()[chatMediaDownloadMaxPeers] ?: 3
|
||||
key == "chat.standby_active_sec" -> context.dataStore.data.first()[chatStandbyActiveSec] ?: 2
|
||||
key == "chat.standby_sleep_sec" -> context.dataStore.data.first()[chatStandbySleepSec] ?: 60
|
||||
@@ -155,9 +155,9 @@ class ConfigProvider(private val context: Context) {
|
||||
"chat.storage_autoload_maxsize_mb" -> prefs[chatStorageAutoloadMaxsizeMb] = value.toIntOrNull() ?: 10
|
||||
"chat.storage_maxsize_gb" -> prefs[chatStorageMaxsizeGb] = value.toIntOrNull() ?: 1
|
||||
"chat.opus_codec_preset" -> prefs[chatOpusCodecPreset] = value.toIntOrNull() ?: 1
|
||||
"chat.compressor_enabled" -> prefs[chatCompressorEnabled] = value.toIntOrNull() ?: 0
|
||||
"chat.compressor_max_gain_db" -> prefs[chatCompressorMaxGainDb] = value.toIntOrNull() ?: 25
|
||||
"chat.compressor_rise_rate" -> prefs[chatCompressorRiseRate] = value.toIntOrNull() ?: 10
|
||||
"chat.compressor_enabled" -> prefs[chatCompressorEnabled] = value.toIntOrNull() ?: 1
|
||||
"chat.compressor_max_gain_db" -> prefs[chatCompressorMaxGainDb] = value.toIntOrNull() ?: 15
|
||||
"chat.compressor_rise_rate" -> prefs[chatCompressorRiseRate] = value.toIntOrNull() ?: 2
|
||||
"chat.media_download_max_peers" -> prefs[chatMediaDownloadMaxPeers] = value.toIntOrNull() ?: 3
|
||||
"chat.standby_active_sec" -> prefs[chatStandbyActiveSec] = value.toIntOrNull() ?: 2
|
||||
"chat.standby_sleep_sec" -> prefs[chatStandbySleepSec] = value.toIntOrNull() ?: 60
|
||||
|
||||
@@ -552,26 +552,26 @@ private fun AudioSettingsTab(vm: ChatViewModel) {
|
||||
|
||||
/* Compressor params with defaults from desktop */
|
||||
var compressorOn by remember { mutableStateOf(vm.getVoiceCompressor()) }
|
||||
var maxGainDb by remember { mutableStateOf(30) }
|
||||
var maxGainDb by remember { mutableStateOf(15) }
|
||||
var lookbackMs by remember { mutableStateOf(200) }
|
||||
var lookaheadMs by remember { mutableStateOf(100) }
|
||||
var riseRateTenths by remember { mutableStateOf(20) }
|
||||
var riseRate by remember { mutableStateOf(2) }
|
||||
var targetLevelDb by remember { mutableStateOf(-12) }
|
||||
|
||||
val apply = {
|
||||
vm.setVoicePreset(preset)
|
||||
vm.setVoiceCompressor(compressorOn)
|
||||
vm.setCompressorConfig(maxGainDb, lookbackMs, lookaheadMs, riseRateTenths / 10f, targetLevelDb.toFloat())
|
||||
vm.setCompressorConfig(maxGainDb, lookbackMs, lookaheadMs, riseRate.toFloat(), targetLevelDb.toFloat())
|
||||
scope.launch {
|
||||
provider.setValue("chat.opus_codec_preset", preset.toString())
|
||||
provider.setValue("chat.compressor_enabled", if (compressorOn) "1" else "0")
|
||||
provider.setValue("chat.compressor_max_gain_db", maxGainDb.toString())
|
||||
provider.setValue("chat.compressor_rise_rate", riseRateTenths.toString())
|
||||
provider.setValue("chat.compressor_rise_rate", riseRate.toString())
|
||||
}
|
||||
NativeLib.setChatSetting("opus_codec_preset", preset.toString())
|
||||
NativeLib.setChatSetting("compressor_enabled", if (compressorOn) "1" else "0")
|
||||
NativeLib.setChatSetting("compressor_max_gain_db", maxGainDb.toString())
|
||||
NativeLib.setChatSetting("compressor_rise_rate", riseRateTenths.toString())
|
||||
NativeLib.setChatSetting("compressor_rise_rate", riseRate.toString())
|
||||
}
|
||||
|
||||
Column(
|
||||
@@ -679,9 +679,8 @@ private fun AudioSettingsTab(vm: ChatViewModel) {
|
||||
{ lookbackMs = it.toInt(); apply() })
|
||||
LabeledSlider("Lookahead time:", lookaheadMs.toFloat(), 20f..500f, 48, "${lookaheadMs} ms",
|
||||
{ lookaheadMs = it.toInt(); apply() })
|
||||
LabeledSlider("Rise rate (x/500ms):", riseRateTenths.toFloat(), 11f..100f, 89,
|
||||
String.format("%.1fx", riseRateTenths / 10f),
|
||||
{ riseRateTenths = it.toInt(); apply() })
|
||||
LabeledSlider("Rise rate (x/sec):", riseRate.toFloat(), 2f..10f, 8, "${riseRate}x",
|
||||
{ riseRate = it.toInt(); apply() })
|
||||
LabeledSlider("Target level:", targetLevelDb.toFloat(), -40f..0f, 40, "${targetLevelDb} dBFS",
|
||||
{ targetLevelDb = it.toInt(); apply() })
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user