Skip to content

Commit 6558891

Browse files
authored
Add files via upload
* Added disabling Dolby control support for USB DAC's on HyperOS not to reboot * Excluded "MotorolaSettingsProvider" on Motorala devices only for avoiding their bootloop * Changed the USB period_us from 2250 usec to 2000 usec to optimize for 48 kHz Opus tracks (recent majority) * Adjusted jitter optimizations and others for YTM's format change from AAC (141; 44.1 kHz & 256 kbps cbr stereo) to Opus (774; 48 kHz & 256 kbps vbr stereo)
1 parent 63b9751 commit 6558891

9 files changed

Lines changed: 95 additions & 66 deletions

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ For maximizing the audio fidelity, this module reduces less than 50 Hz (longer t
9494
| 150 | 42 | (91) | 109 | AK4191EQ (Sharp roll-off N-fold over-sampling) |
9595
| 120 | 35 | (97) | 110 | ES9038PRO (Fast roll-off N-fold over-sampling) |
9696
| vary 50 ~ 118 | 34 | 96 | (398) | ES9039PRO (Fast roll-off N-fold over-sampling) |
97-
| 110 | 40 | (96) | 109 | CX43131 (Fast roll-off N-fold over-sampling) |
97+
| 110 | 40 | (96) | 109 | CS43131 (Fast roll-off N-fold over-sampling) |
9898
| 98 | 130 | 98.5 | | MacOS Leopard (guess) |
9999
| 159 | 240 | | 99 | iZotope, No-Alias (guess) |
100100
| 100 | 64 | | 99 | SoX HQ linear phase (guess) |

changelog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
## Change logs
22

3+
# v2.5.8
4+
* Added disabling Dolby control support for USB DAC's on HyperOS not to reboot
5+
* Excluded "MotorolaSettingsProvider" on Motorala devices only for avoiding their bootloop
6+
* Changed the USB period_us from 2250 usec to 2000 usec to optimize for 48 kHz Opus tracks (recent majority)
7+
* Adjusted jitter optimizations and others for YTM's format change from AAC (141; 44.1 kHz & 256 kbps cbr stereo) to Opus (774; 48 kHz & 256 kbps vbr stereo)
8+
39
# v2.5.7
410
* Changed head ahead buffer sizes from 16960 kB to 17000 kB to reduce I/O jitter
511
* Adjusted NrRequests of I/O scheduling

customize-functions.sh

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,9 @@ function replaceSystemProps_S4()
234234
"$MODPATH/system.prop-workaround"
235235
}
236236

237-
function replaceSystemProps_kona()
237+
function replaceSystemProps_Kona()
238238
{
239-
if [ ! "`getprop ro.vendor.build.version.release_or_codename`" -ge "12" -a \
240-
\( -e "${MODPATH%/*/*}/modules/usb-samplerate-unlocker" -o -e "${MODPATH%/*/*}/modules_update/usb-samplerate-unlocker" \) ]; then
239+
if [ -e "${MODPATH%/*/*}/modules/usb-samplerate-unlocker" -o -e "${MODPATH%/*/*}/modules_update/usb-samplerate-unlocker" ]; then
241240
sed -i \
242241
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2750/' \
243242
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2750/' \
@@ -251,12 +250,12 @@ function replaceSystemProps_kona()
251250

252251
else
253252
sed -i \
254-
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2250/' \
255-
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2250/' \
253+
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2000/' \
254+
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2000/' \
256255
"$MODPATH/system.prop"
257256
sed -i \
258-
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2250/' \
259-
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2250/' \
257+
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2000/' \
258+
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2000/' \
260259
"$MODPATH/system.prop-workaround"
261260

262261
fi
@@ -265,12 +264,12 @@ function replaceSystemProps_kona()
265264
function replaceSystemProps_SDM845()
266265
{
267266
sed -i \
268-
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2250/' \
269-
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2250/' \
267+
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2000/' \
268+
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2000/' \
270269
"$MODPATH/system.prop"
271270
sed -i \
272-
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2250/' \
273-
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2250/' \
271+
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2000/' \
272+
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2000/' \
274273
"$MODPATH/system.prop-workaround"
275274
}
276275

@@ -283,37 +282,37 @@ function replaceSystemProps_SDM()
283282
function replaceSystemProps_MTK_Dimensity()
284283
{
285284
sed -i \
286-
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2250/' \
287-
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2250/' \
285+
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2000/' \
286+
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2000/' \
288287
"$MODPATH/system.prop"
289288
sed -i \
290-
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2250/' \
291-
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2250/' \
289+
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2000/' \
290+
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2000/' \
292291
"$MODPATH/system.prop-workaround"
293292
}
294293

295294
function replaceSystemProps_Tensor()
296295
{
297296
sed -i \
298-
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2250/' \
299-
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2250/' \
297+
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2000/' \
298+
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2000/' \
300299
"$MODPATH/system.prop"
301300
sed -i \
302-
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2250/' \
303-
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2250/' \
301+
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2000/' \
302+
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2000/' \
304303
"$MODPATH/system.prop-workaround"
305304
}
306305

307306
function replaceSystemProps_Others()
308307
{
309308
if [ -e "${MODPATH%/*/*}/modules/usb-samplerate-unlocker" -o -e "${MODPATH%/*/*}/modules_update/usb-samplerate-unlocker" ]; then
310309
sed -i \
311-
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2250/' \
312-
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2250/' \
310+
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2000/' \
311+
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2000/' \
313312
"$MODPATH/system.prop"
314313
sed -i \
315-
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2250/' \
316-
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2250/' \
314+
-e 's/vendor\.audio\.usb\.perio=.*$/vendor\.audio\.usb\.perio=2000/' \
315+
-e 's/vendor\.audio\.usb\.out\.period_us=.*$/vendor\.audio\.usb\.out\.period_us=2000/' \
317316
"$MODPATH/system.prop-workaround"
318317

319318
loosenedMessage

customize.sh

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ if ! isMagiskMountCompatible; then
99
Aborted by no Magisk-mirrors:
1010
try again either
1111
a.) with official Magisk (mounting mirrors), or
12-
b.) after installing "Compatible Magisk-mirroring" Magisk module
12+
b.) after installing "Compatible Magisk-mirroring" Magisk module and rebooting
1313
***'
1414
fi
1515

@@ -125,14 +125,27 @@ case "$configXML" in
125125
;;
126126
esac
127127

128-
# making patched ALSA utility libraries for "ro.audio.usb.period_us"
128+
# Make patched ALSA utility libraries for "ro.audio.usb.period_us"
129129
makeLibraries
130130

131-
# removing post-A13 (especially Tensor's) spatial audio flags in an audio configuration file for avoiding errors
131+
# Remove post-A13 (especially Tensor's) spatial audio flags in an audio configuration file for avoiding errors
132132
deSpatializeAudioPolicyConfig "/vendor/etc/bluetooth_audio_policy_configuration_7_0.xml"
133133

134-
# disabling pre-installed Moto Dolby faetures and Wellbeing for reducing very large jitter caused by them
135-
disablePrivApps "
134+
# Disabe pre-installed Moto Dolby faetures and Wellbeing for reducing very large jitter caused by them
135+
# Excluded "MotorolaSettingsProvider" on Motorala devices for avoiding bootloop
136+
if [ "`getprop ro.product.manufacturer`" = "Motorola" ]; then
137+
disablePrivApps "
138+
/system_ext/priv-app/MotoDolbyDax3
139+
/system_ext/priv-app/daxService
140+
/system_ext/priv-app/DaxUI
141+
/system_ext/app/MotoSignatureApp
142+
/product/priv-app/WellbeingPrebuilt
143+
/product/priv-app/Wellbeing
144+
/system_ext/priv-app/WellbeingPrebuilt
145+
/system_ext/priv-app/Wellbeing
146+
"
147+
else
148+
disablePrivApps "
136149
/system_ext/priv-app/MotoDolbyDax3
137150
/system_ext/priv-app/MotorolaSettingsProvider
138151
/system_ext/priv-app/daxService
@@ -143,6 +156,7 @@ disablePrivApps "
143156
/system_ext/priv-app/WellbeingPrebuilt
144157
/system_ext/priv-app/Wellbeing
145158
"
159+
fi
146160

147161
if "$IS64BIT"; then
148162
board="`getprop ro.board.platform`"

jitter-reducer-functions.shlib

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1061,6 +1061,9 @@ function getSocModelName()
10611061
"holi" )
10621062
echo "sdm680"
10631063
;;
1064+
"pineapple" )
1065+
echo "sm8635"
1066+
;;
10641067
* )
10651068
if [ -r "/sys/devices/system/cpu/cpu7/core_ctl/enable" ]; then
10661069
echo "sdm855"
@@ -1211,7 +1214,7 @@ function getSchedulerValues()
12111214
case "$2" in
12121215
"light" )
12131216
case "`getSocModelName`" in
1214-
sdm8[5-9]* | sdm9* | gs* )
1217+
sm[6-8]* | sdm8[5-9]* | sdm9* | gs* )
12151218
echo "43 0 20 488 0"
12161219
;;
12171220
sdm8* )
@@ -1224,7 +1227,7 @@ function getSchedulerValues()
12241227
;;
12251228
"m-light" )
12261229
case "`getSocModelName`" in
1227-
sdm8[5-9]* | sdm9* | gs* )
1230+
sm[6-8]* | sdm8[5-9]* | sdm9* | gs* )
12281231
echo "71 0 28 496 0"
12291232
;;
12301233
sdm8* )
@@ -1246,32 +1249,35 @@ function getSchedulerValues()
12461249
;;
12471250
"boost" )
12481251
case "`getSocModelName`" in
1252+
sm[6-8]* )
1253+
echo "96 0 36 520 0"
1254+
;;
12491255
sdm8[5-9]* | sdm9* )
1250-
echo "95 0 36 516 0"
1256+
echo "99 0 36 516 0"
12511257
;;
12521258
gs* )
12531259
echo "96 0 36 516 0"
12541260
;;
12551261
sdm8* )
1256-
echo "94 0 36 516 0"
1262+
echo "99 0 36 516 0"
12571263
;;
12581264
sdm* | msm* | sd* | exynos* )
1259-
echo "97 0 36 515 0"
1265+
echo "102 0 38 517 0"
12601266
;;
12611267
mt68* )
1262-
echo "96 0 36 516 0"
1268+
echo "99 0 36 516 0"
12631269
;;
12641270
mt67[7-9]? )
1265-
echo "96 0 36 516 0"
1271+
echo "99 0 36 516 0"
12661272
;;
12671273
* )
1268-
echo "96 0 36 516 0"
1274+
echo "99 0 36 516 0"
12691275
;;
12701276
esac
12711277
;;
12721278
"medium" | *)
12731279
case "`getSocModelName`" in
1274-
sdm8[5-9]* | sdm9* )
1280+
sm[6-8]* | sdm8[5-9]* | sdm9* )
12751281
echo "92 0 36 516 0"
12761282
;;
12771283
gs* )
@@ -1309,8 +1315,8 @@ function getSchedulerValues()
13091315
;;
13101316
"boost" )
13111317
case "`getSocModelName`" in
1312-
sdm* | mt68* | gs* | sd* | exynos* )
1313-
echo "1 2 2 0 1 1 2 60 1541 0 1 1"
1318+
sm[6-8]* | sdm* | mt68* | gs* | sd* | exynos* )
1319+
echo "1 1 1 0 1 1 0 66 901 0 1 1"
13141320
;;
13151321
* )
13161322
echo "1 3 3 0 1 1 3 59 3000 0 3 3"
@@ -1319,7 +1325,7 @@ function getSchedulerValues()
13191325
;;
13201326
"medium" | * )
13211327
case "`getSocModelName`" in
1322-
sdm* | mt68* | gs* | sd* | exynos* )
1328+
sm[6-8]* | sdm* | mt68* | gs* | sd* | exynos* )
13231329
echo "1 3 3 0 1 1 3 51 3000 0 3 3"
13241330
;;
13251331
* )
@@ -1363,7 +1369,7 @@ function getSchedulerNrRequests()
13631369
case "$2" in
13641370
"light" )
13651371
case "`getSocModelName`" in
1366-
sdm8[5-9]* | sdm9* | gs* )
1372+
sm[6-8]* | sdm8[5-9]* | sdm9* | gs* )
13671373
echo "80645"
13681374
;;
13691375
sdm8* )
@@ -1379,7 +1385,7 @@ function getSchedulerNrRequests()
13791385
;;
13801386
"m-light" )
13811387
case "`getSocModelName`" in
1382-
sdm8[5-9]* | sdm9* | gs* )
1388+
sm[6-8]* | sdm8[5-9]* | sdm9* | gs* )
13831389
echo "86021"
13841390
;;
13851391
sdm8* )
@@ -1401,7 +1407,7 @@ function getSchedulerNrRequests()
14011407
;;
14021408
"boost" )
14031409
case "`getSocModelName`" in
1404-
sdm8[5-9]* | sdm9* )
1410+
sm[6-8]* | sdm8[5-9]* | sdm9* )
14051411
echo "86170"
14061412
;;
14071413
gs* )
@@ -1426,7 +1432,7 @@ function getSchedulerNrRequests()
14261432
;;
14271433
"medium" | * )
14281434
case "`getSocModelName`" in
1429-
sdm8[5-9]* | sdm9* | gs* )
1435+
sm[6-8]* | sdm8[5-9]* | sdm9* | gs* )
14301436
echo "86164"
14311437
;;
14321438
sdm8* )
@@ -1453,7 +1459,7 @@ function getSchedulerNrRequests()
14531459
case "$2" in
14541460
"light" )
14551461
case "`getSocModelName`" in
1456-
sdm* | msm* | sd* | exynos* | gs* )
1462+
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
14571463
echo "86021"
14581464
;;
14591465
* )
@@ -1463,7 +1469,7 @@ function getSchedulerNrRequests()
14631469
;;
14641470
"m-light" )
14651471
case "`getSocModelName`" in
1466-
sdm* | msm* | sd* | exynos* | gs* )
1472+
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
14671473
echo "86117"
14681474
;;
14691475
* )
@@ -1473,7 +1479,7 @@ function getSchedulerNrRequests()
14731479
;;
14741480
"boost" )
14751481
case "`getSocModelName`" in
1476-
sdm* | msm* | sd* | exynos* | gs* )
1482+
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
14771483
echo "86172"
14781484
;;
14791485
* )
@@ -1483,7 +1489,7 @@ function getSchedulerNrRequests()
14831489
;;
14841490
"medium" | * )
14851491
case "`getSocModelName`" in
1486-
sdm* | msm* | sd* | exynos* | gs* )
1492+
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
14871493
echo "86164"
14881494
;;
14891495
* )
@@ -1498,7 +1504,7 @@ function getSchedulerNrRequests()
14981504
case "$2" in
14991505
"light" )
15001506
case "`getSocModelName`" in
1501-
sdm* | msm* | sd* | exynos* | gs* )
1507+
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
15021508
echo "80645"
15031509
;;
15041510
* )
@@ -1508,7 +1514,7 @@ function getSchedulerNrRequests()
15081514
;;
15091515
"m-light" )
15101516
case "`getSocModelName`" in
1511-
sdm* | msm* | sd* | exynos* | gs* )
1517+
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
15121518
echo "86021"
15131519
;;
15141520
* )
@@ -1518,7 +1524,7 @@ function getSchedulerNrRequests()
15181524
;;
15191525
"boost" )
15201526
case "`getSocModelName`" in
1521-
sdm* | msm* | sd* | exynos* | gs* )
1527+
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
15221528
echo "86172"
15231529
;;
15241530
* )
@@ -1528,7 +1534,7 @@ function getSchedulerNrRequests()
15281534
;;
15291535
"medium" | * )
15301536
case "`getSocModelName`" in
1531-
sdm* | msm* | sd* | exynos* | gs* )
1537+
sm[6-8]* | sdm* | msm* | sd* | exynos* | gs* )
15321538
echo "86164"
15331539
;;
15341540
* )
@@ -1662,7 +1668,7 @@ function reduceIoJitter()
16621668
echo '0' >"/sys/block/$i/queue/nomerges"
16631669

16641670
case "`getSocModelName`" in
1665-
sdm8[5-9]* | sdm9* | sdm66* )
1671+
sm[6-8]* | sdm8[5-9]* | sdm9* | sdm66* )
16661672
echo '512' >"/sys/block/$i/queue/read_ahead_kb"
16671673
echo '128' >"/sys/block/$i/queue/nr_requests"
16681674
;;

module.prop

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
id=hifi-maximizer-mod
22
name=Hifi Maximizer
3-
version=v2.5.7
4-
versionCode=2507
3+
version=v2.5.8
4+
versionCode=2508
55
author=zyhk
66
description=A module for maximizing the digital audio fidelity by reducing jitters on audio outputs (USB DACs, Bluetooth a2dp, DLNA, etc.)

system.prop

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ ro.config.media_vol_steps=100
22
audio.safemedia.bypass=true
33
ro.audio.ignore_effects=true
44
ro.audio.spatializer_enabled=false
5-
vendor.audio.usb.perio=2250
6-
vendor.audio.usb.out.period_us=2250
5+
ro.vendor.audio.dolby.dax.support=false
6+
vendor.audio.dolby.control.support=false
7+
vendor.audio.usb.perio=2000
8+
vendor.audio.usb.out.period_us=2000
79
vendor.audio.usb.out.period_count=2
810
vendor.audio_hal.period_size=120
911
vendor.audio_hal.period_multiplier=1

0 commit comments

Comments
 (0)