From 5df48e574fda8d90b3d8c9dce8e3fbde4d2b70aa Mon Sep 17 00:00:00 2001 From: Jasmine Cha Date: Thu, 28 Mar 2024 03:02:16 +0000 Subject: [PATCH] audio: waves nx tuning table Bug: 332641232 Test: manual test / feature tests b/339346220 Change-Id: I35592a080326b3e4bc6d57cb9a821550fca53830 Signed-off-by: Jasmine Cha --- .../audio_platform_configuration.xml | 2 +- audio/comet/audio-tables.mk | 6 ++ audio/comet/tuning/Android.bp | 35 ++++++++++ audio/comet/tuning/waves/waves_config.ini | 44 +++++++------ audio/comet/tuning/waves/waves_config_nx.ini | 62 ++++++++++++++++++ audio/comet/tuning/waves/waves_preset.mps | Bin 522079 -> 516248 bytes audio/comet/tuning/waves/waves_preset_nx.mps | Bin 0 -> 5671 bytes 7 files changed, 127 insertions(+), 22 deletions(-) create mode 100644 audio/comet/tuning/waves/waves_config_nx.ini create mode 100644 audio/comet/tuning/waves/waves_preset_nx.mps diff --git a/audio/comet/aidl_config/audio_platform_configuration.xml b/audio/comet/aidl_config/audio_platform_configuration.xml index cf34984..ff3c1ad 100644 --- a/audio/comet/aidl_config/audio_platform_configuration.xml +++ b/audio/comet/aidl_config/audio_platform_configuration.xml @@ -64,7 +64,7 @@ - + diff --git a/audio/comet/audio-tables.mk b/audio/comet/audio-tables.mk index 8cf9277..49123f8 100644 --- a/audio/comet/audio-tables.mk +++ b/audio/comet/audio-tables.mk @@ -60,6 +60,8 @@ PRODUCT_PACKAGES += \ mcps.dat \ waves_config.ini \ waves_preset.mps \ + waves_config_nx.ini \ + waves_preset_nx.mps \ compens_spk_l_1.conf \ compens_spk_l_2.conf \ compens_spk_r_1.conf \ @@ -89,3 +91,7 @@ PRODUCT_PACKAGES += \ vendor.google.whitechapel.audio.hal.effect.spatializer.mode_2_ch \ vendor.google.whitechapel.audio.hal.effect.spatializer.mode_6_ch \ vendor.google.whitechapel.audio.hal.effect.spatializer.mode_xaural + +# Waves nx config +PRODUCT_PACKAGES += \ + libNX_Google_Pixel_Android diff --git a/audio/comet/tuning/Android.bp b/audio/comet/tuning/Android.bp index 6ce2280..9408763 100644 --- a/audio/comet/tuning/Android.bp +++ b/audio/comet/tuning/Android.bp @@ -13,6 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. soong_namespace {} + package { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import @@ -21,111 +22,145 @@ package { // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["device_google_comet_license"], } + prebuilt_defaults { name: "aoc_defaults", soc_specific: true, sub_dir: "aoc", } + prebuilt_etc { name: "recording.gatf", src: "bluenote/recording.gatf", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "smartfeature.gstf", src: "bluenote/smartfeature.gstf", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "template.xml", src: "bluenote/template.xml", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "tuning_constraints_combination.xml", src: "bluenote/tuning_constraints_combination.xml", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "compens_spk_l_1.conf", src: "compensation/compens_spk_l_1.conf", soc_specific: true, } + prebuilt_etc { name: "compens_spk_l_2.conf", src: "compensation/compens_spk_l_2.conf", soc_specific: true, } + prebuilt_etc { name: "compens_spk_r_1.conf", src: "compensation/compens_spk_r_1.conf", soc_specific: true, } + prebuilt_etc { name: "compens_spk_r_2.conf", src: "compensation/compens_spk_r_2.conf", soc_specific: true, } + prebuilt_etc { name: "BLUETOOTH.dat", src: "fortemedia/BLUETOOTH.dat", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "BLUETOOTH.mods", src: "fortemedia/BLUETOOTH.mods", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "HANDSFREE.dat", src: "fortemedia/HANDSFREE.dat", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "HANDSFREE.mods", src: "fortemedia/HANDSFREE.mods", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "HANDSET.dat", src: "fortemedia/HANDSET.dat", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "HANDSET.mods", src: "fortemedia/HANDSET.mods", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "HEADSET.dat", src: "fortemedia/HEADSET.dat", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "HEADSET.mods", src: "fortemedia/HEADSET.mods", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "mcps.dat", src: "fortemedia/mcps.dat", defaults: ["aoc_defaults"], } + prebuilt_etc { name: "waves_config.ini", src: "waves/waves_config.ini", soc_specific: true, } + prebuilt_etc { name: "waves_preset.mps", src: "waves/waves_preset.mps", soc_specific: true, } + +prebuilt_etc { + name: "waves_config_nx.ini", + src: "waves/waves_config_nx.ini", + soc_specific: true, +} + +prebuilt_etc { + name: "waves_preset_nx.mps", + src: "waves/waves_preset_nx.mps", + soc_specific: true, +} + prebuilt_etc { name: "test_config.ini", src: "waves/tests/test_config.ini", soc_specific: true, } + prebuilt_etc { name: "test_preset.mps", src: "waves/tests/test_preset.mps", diff --git a/audio/comet/tuning/waves/waves_config.ini b/audio/comet/tuning/waves/waves_config.ini index 911360a..ad00ce9 100644 --- a/audio/comet/tuning/waves/waves_config.ini +++ b/audio/comet/tuning/waves/waves_config.ini @@ -27,19 +27,21 @@ OST_SPEAKER = 0:12,90:13,180:12,270:0|13 ######################################################################################################## [HAL_SUPPORTED_PRESETS] SPEAKER_MUSIC_FOLDED_THROTTLE= OM:1,SM:3,OST:OST_SPEAKER +SPEAKER_MUSIC_FOLDED_THROTTLE_NX= OM:1,SM:3,ST:16,OST:OST_SPEAKER SPEAKER_MUSIC_UNFOLDED_THROTTLE= OM:9,SM:3,OST:OST_SPEAKER +SPEAKER_MUSIC_UNFOLDED_THROTTLE_NX= OM:9,SM:3,ST:16,OST:OST_SPEAKER SPEAKER_MUSIC_CLAMSHELL_THROTTLE= OM:60,SM:3,OST:OST_SPEAKER +SPEAKER_MUSIC_CLAMSHELL_THROTTLE_NX= OM:60,SM:3,ST:16,OST:OST_SPEAKER SPEAKER_SAFE_MUSIC_THROTTLE = OM:10,SM:3,OST:OST_SPEAKER SPEAKER_SAFE_MUSIC_THROTTLE_LITE = OM:8,SM:3 SPEAKER_MUSIC_FOLDED = OM:1,SM:2,OST:OST_SPEAKER +SPEAKER_MUSIC_FOLDED_NX = OM:1,SM:2,ST:16,OST:OST_SPEAKER SPEAKER_MUSIC_UNFOLDED = OM:9,SM:2,OST:OST_SPEAKER +SPEAKER_MUSIC_UNFOLDED_NX = OM:9,SM:2,ST:16,OST:OST_SPEAKER SPEAKER_MUSIC_CLAMSHELL = OM:60,SM:2,OST:OST_SPEAKER +SPEAKER_MUSIC_CLAMSHELL_NX = OM:60,SM:2,ST:16,OST:OST_SPEAKER SPEAKER_SAFE_MUSIC = OM:10,SM:2,OST:OST_SPEAKER SPEAKER_SAFE_MUSIC_LITE = OM:8,SM:2 -SPEAKER_MUSIC_RESERVED_UNFOLDED = OM:11,SM:2,OST:OST_SPEAKER -SPEAKER_MUSIC_RESERVED_CLAMSHELL = OM:12,SM:2,OST:OST_SPEAKER -SPEAKER_MUSIC_RESERVED_UNFOLDED_THROTTLE = OM:11,SM:3,OST:OST_SPEAKER -SPEAKER_MUSIC_RESERVED_CLAMSHELL_THROTTLE = OM:12,SM:3,OST:OST_SPEAKER ######################################################################################################## # This defines available CONTROL configurations. Only define the CONTROL if you need it. @@ -47,7 +49,7 @@ SPEAKER_MUSIC_RESERVED_CLAMSHELL_THROTTLE = OM:12,SM:3,OST:OST_SPEAKER # This can be configured by Waves or platform vendor. ######################################################################################################## [HAL_SUPPORTED_CONTROLS] -SPEAKER_INSTANCE = INSTANCE:1,DEV:0,SR:SR_COMMON,PRESET:SPEAKER_MUSIC_FOLDED_THROTTLE|SPEAKER_MUSIC_UNFOLDED_THROTTLE|SPEAKER_MUSIC_CLAMSHELL_THROTTLE|SPEAKER_MUSIC_RESERVED_CLAMSHELL_THROTTLE|SPEAKER_MUSIC_RESERVED_UNFOLDED_THROTTLE|SPEAKER_SAFE_MUSIC_THROTTLE|SPEAKER_MUSIC_FOLDED|SPEAKER_MUSIC_UNFOLDED|SPEAKER_MUSIC_CLAMSHELL|SPEAKER_MUSIC_RESERVED_UNFOLDED|SPEAKER_MUSIC_RESERVED_CLAMSHELL|SPEAKER_SAFE_MUSIC|SPEAKER_SAFE_MUSIC_LITE|SPEAKER_SAFE_MUSIC_THROTTLE_LITE +SPEAKER_INSTANCE = INSTANCE:1,DEV:0,SR:SR_COMMON,PRESET:SPEAKER_MUSIC_FOLDED_THROTTLE|SPEAKER_MUSIC_FOLDED_THROTTLE_NX|SPEAKER_MUSIC_UNFOLDED_THROTTLE|SPEAKER_MUSIC_UNFOLDED_THROTTLE_NX|SPEAKER_MUSIC_CLAMSHELL_THROTTLE|SPEAKER_MUSIC_CLAMSHELL_THROTTLE_NX|SPEAKER_SAFE_MUSIC_THROTTLE|SPEAKER_MUSIC_FOLDED|SPEAKER_MUSIC_FOLDED_NX|SPEAKER_MUSIC_UNFOLDED|SPEAKER_MUSIC_UNFOLDED_NX|SPEAKER_MUSIC_CLAMSHELL|SPEAKER_MUSIC_CLAMSHELL_NX|SPEAKER_SAFE_MUSIC|SPEAKER_SAFE_MUSIC_LITE|SPEAKER_SAFE_MUSIC_THROTTLE_LITE [COEFS_CONVERTER_SETTING] AlgFxPath=/vendor/lib/libAlgFx_HiFi3z.so @@ -62,25 +64,25 @@ AlgFxPath64=/vendor/lib64/libAlgFx_HiFi3z.so [CUSTOM_ACTION_257] CASE_1=PRIORITY:0,NUMBERS:2:0|1:1|2:0|3:0,PRESET:SPEAKER_MUSIC_FOLDED -CASE_2=PRIORITY:1,NUMBERS:2:0|1:1|2:1:0,PRESET:SPEAKER_MUSIC_CLAMSHELL -CASE_3=PRIORITY:2,NUMBERS:2:0|1:1|2:2:0,PRESET:SPEAKER_MUSIC_UNFOLDED -CASE_4=PRIORITY:3,NUMBERS:1|2|4194304:2|3|4:1|2:0|1|2|3:0|1,PRESET:SPEAKER_SAFE_MUSIC_LITE -CASE_5=PRIORITY:4,NUMBERS:1|4194304:0|1:1|2:0|1|2|3:0|1,PRESET:SPEAKER_SAFE_MUSIC -CASE_6=PRIORITY:5,NUMBERS:2:0|1:0:0|3:0|1,PRESET:SPEAKER_MUSIC_FOLDED_THROTTLE -CASE_7=PRIORITY:6,NUMBERS:2:0|1:0:1:0,PRESET:SPEAKER_MUSIC_CLAMSHELL_THROTTLE -CASE_8=PRIORITY:7,NUMBERS:2:0|1:0:2:0,PRESET:SPEAKER_MUSIC_UNFOLDED_THROTTLE -CASE_9=PRIORITY:8,NUMBERS:1|2|4194304:2|3|4:0:0|1|2|3:0|1,PRESET:SPEAKER_SAFE_MUSIC_THROTTLE_LITE -CASE_10=PRIORITY:9,NUMBERS:1|4194304:0|1:0:0|1|2|3:0|1,PRESET:SPEAKER_SAFE_MUSIC_THROTTLE -CASE_11=PRIORITY:10,NUMBERS:2:0|1:1|2:0|2:1,PRESET:SPEAKER_MUSIC_RESERVED_UNFOLDED -CASE_12=PRIORITY:11,NUMBERS:2:0|1:1|2:1:1,PRESET:SPEAKER_MUSIC_RESERVED_CLAMSHELL -CASE_13=PRIORITY:12,NUMBERS:2:0|1:0:0|2:1,PRESET:SPEAKER_MUSIC_RESERVED_UNFOLDED_THROTTLE -CASE_14=PRIORITY:13,NUMBERS:2:0|1:0:1:1,PRESET:SPEAKER_MUSIC_RESERVED_CLAMSHELL_THROTTLE - +CASE_2=PRIORITY:1,NUMBERS:2:0|1:1|2:0|3:1,PRESET:SPEAKER_MUSIC_FOLDED_NX +CASE_3=PRIORITY:2,NUMBERS:2:0|1:1|2:1:0,PRESET:SPEAKER_MUSIC_CLAMSHELL +CASE_4=PRIORITY:3,NUMBERS:2:0|1:1|2:1:1,PRESET:SPEAKER_MUSIC_CLAMSHELL_NX +CASE_5=PRIORITY:4,NUMBERS:2:0|1:1|2:2:0,PRESET:SPEAKER_MUSIC_UNFOLDED +CASE_6=PRIORITY:5,NUMBERS:2:0|1:1|2:2:1,PRESET:SPEAKER_MUSIC_UNFOLDED_NX +CASE_7=PRIORITY:6,NUMBERS:1|2|4194304:2|3|4:1|2:0|1|2|3:0|1,PRESET:SPEAKER_SAFE_MUSIC_LITE +CASE_8=PRIORITY:7,NUMBERS:1|4194304:0|1:1|2:0|1|2|3:0|1,PRESET:SPEAKER_SAFE_MUSIC +CASE_9=PRIORITY:8,NUMBERS:2:0|1:0:0|3:0|1,PRESET:SPEAKER_MUSIC_FOLDED_THROTTLE +CASE_10=PRIORITY:9,NUMBERS:2:0|1:0:0|3:0|1,PRESET:SPEAKER_MUSIC_FOLDED_THROTTLE_NX +CASE_11=PRIORITY:10,NUMBERS:2:0|1:0:1:0,PRESET:SPEAKER_MUSIC_CLAMSHELL_THROTTLE +CASE_12=PRIORITY:11,NUMBERS:2:0|1:0:1:0,PRESET:SPEAKER_MUSIC_CLAMSHELL_THROTTLE_NX +CASE_13=PRIORITY:12,NUMBERS:2:0|1:0:2:0,PRESET:SPEAKER_MUSIC_UNFOLDED_THROTTLE +CASE_14=PRIORITY:13,NUMBERS:2:0|1:0:2:0,PRESET:SPEAKER_MUSIC_UNFOLDED_THROTTLE_NX +CASE_15=PRIORITY:14,NUMBERS:1|2|4194304:2|3|4:0:0|1|2|3:0|1,PRESET:SPEAKER_SAFE_MUSIC_THROTTLE_LITE +CASE_16=PRIORITY:15,NUMBERS:1|4194304:0|1:0:0|1|2|3:0|1,PRESET:SPEAKER_SAFE_MUSIC_THROTTLE # Action 257 parameters: audio_devices_t, audio_mode_t, throttle_control_state_t, folded_type_t, sound_usage_t # - audio_devices_t : current active device # - audio_mode_t : 0 - normal, 1 - incoming, 2 - voice call, 3 - voip # - throttle_control_state_t: 0 - Enabled, 1 - Disabled, 2 - Bypassed # - folded_type_t: 0 - Close, 1 -Clamshell, 2 - Open, 3 - unknown -# - sound_usage_t: 0 - Music, 1 - Movie - +# - sound_usage_t: 0 - NX_off, 1 - NX_on diff --git a/audio/comet/tuning/waves/waves_config_nx.ini b/audio/comet/tuning/waves/waves_config_nx.ini new file mode 100644 index 0000000..bc3b8c2 --- /dev/null +++ b/audio/comet/tuning/waves/waves_config_nx.ini @@ -0,0 +1,62 @@ +######################################################################################################## +# (Optional) The supported features list for platform vendors to query from. +# Platform vendors should call maxxaudio_qdsp_is_feature_supported with a string to query from the list. +# This config has no effect in the MaxxAudioQdspHalController. It's only meaningful for platform vendors. +# Putting any value other than 1 would be equivalent to not supported. +######################################################################################################## +[HAL_SUPPORTED_FEATURES] +CUSTOM_ACTION_261=1 + +######################################################################################################## +# This defined the options of supported sample rates. +# This can be configured by Waves or platform vendor. +######################################################################################################## +[HAL_SUPPORTED_SAMPLE_RATES] +SR_COMMON = 48000 + +######################################################################################################## +# (Optional) The subtypes that applies to different angles(0, 90, 180, 270). Can be empty if not applicable. +# This can be configured by Waves or platform vendor. +######################################################################################################## +[HAL_ORIENTATION_SUBTYPES] +OST_SPEAKER = 0:12,90:13,180:12,270:13 + +######################################################################################################## +# This defines available preset configurations. +# This should be configured by Waves only unless platform vendor is familiar with MPS structure. +######################################################################################################## +[HAL_SUPPORTED_PRESETS] +SPEAKER_MUSIC_FOLDED = OM:1,SM:2,OST:OST_SPEAKER +SPEAKER_MUSIC_UNFOLDED = OM:9,SM:2,OST:OST_SPEAKER +SPEAKER_MUSIC_CLAMSHELL = OM:60,SM:2,OST:OST_SPEAKER +# _RESERVED OM and SM are temporary and will be updated with tuning file. + +######################################################################################################## +# This defines available CONTROL configurations. Only define the CONTROL if you need it. +# The numbers could vary from device to device. +# This can be configured by Waves or platform vendor. +######################################################################################################## +[HAL_SUPPORTED_CONTROLS] +SPEAKER_INSTANCE = INSTANCE:1,DEV:1,SR:SR_COMMON,PRESET:SPEAKER_MUSIC_FOLDED|SPEAKER_MUSIC_UNFOLDED|SPEAKER_MUSIC_CLAMSHELL + +[MAXXEFFECT_SETTING] +MaxxEffectLibPath=/vendor/lib/libNX_Google_Pixel_Android.so +MaxxEffectLibPath64=/vendor/lib64/libNX_Google_Pixel_Android.so +#IN_SampleRate=48000 +IN_NumChannels=6 +#IN_SamplesFormat=3 +#IN_SamplesLayout=0 +#IN_FrameSize=4 +#OUT_SampleRate=48000 +#OUT_NumChannels=2 +#OUT_SamplesFormat=3 +#OUT_SamplesLayout=0 +#OUT_FrameSize=4 + +[CUSTOM_ACTION_261] +CASE_1=PRIORITY:0,NUMBERS:0|3,PRESET:SPEAKER_MUSIC_FOLDED +CASE_2=PRIORITY:1,NUMBERS:1,PRESET:SPEAKER_MUSIC_CLAMSHELL +CASE_3=PRIORITY:2,NUMBERS:2,PRESET:SPEAKER_MUSIC_UNFOLDED + +# Action 261 parameters: folded_type_t +# - folded_type_t: 0 - Close, 1 -Clamshell, 2 - Open, 3 - unknown diff --git a/audio/comet/tuning/waves/waves_preset.mps b/audio/comet/tuning/waves/waves_preset.mps index 397226d6cd58b695a04114ca41d9b6a3a0e7954e..b8a8202bd44704863046d80dd52d149bc3dba9fd 100644 GIT binary patch delta 31150 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 delta 5762 zcmds*e@s<%6u`gd-FF`k;rT=!Ly@7G^J+i#42{rGphgOtBF(U32`?aRns5H7tu_T( zl=%m!<&FG2AR&{PAi!G+Gwb(rNi%vs`XL=bm#=1Vp#CHgL{;xcBVy zJ?HEBe((3oo?}ygygW7Gk>#07S6+=!aY`wOz<-nzAxf#(LkUkn>I{6KO!xiiT~`{|RC@f+2<6OB1xBR9cIeIZ@ckt7zIIq- zcE1O^tc}k*KJr99WdOgfiJkqbR^Hic<)vxyE;HeNm#5|n|70_2i}QV}Awi$$nw4=E zD7WoWYHMT0bo&Qi)8ejIe1E0ief^D!ZZiYtVUnXey{4jazVB#K<)yr%z3KPfi0C$# zzvi549!zoUY(DqU_;ELqYTmWxQ{CDTtQ1Tt^zA4r?!t z=K53IkmA0|^$Sz|!c@O7)t};47++wFleYhR-{7{#7ArgxaV4T=^;h>`x8VA)yT!t8 zITddOR)BN7E3XssI=|sTg=tV>8dR7D&FfScA7{JlNw+rabDZvX^?9Ms`wqK=$t6rK zVRH3(6~;epL~#LDmk&AzE!>Yi=JGU{g~?;kkmP&opttTM4=79n3e$kXG+=L?!uUAb zH6;1!R;X_6V3#ntgvljLuIg5W@y{61lKjc-@Wa65lfTw**I8wx$@|R1aBk@PLIX5h z+)6iFzJqOJU|Z?|a}GERdvDUl(B2eZ4e`}`xI2WgJ67uan3_W#V{`eLXkl)_K)eFH`UD~t~qk=)zXhq;cffxVAk>X+sLdLMXP2 z#}cNoglQ~c8Y>j5FdjD~p6i=7r1}D=FZhjJ!sHSrmoT~N3lzo|8RI1H-CsI>8kBec zmKs@PL`hW4A48&W+j`xn(Y7^Ai7j2w(j{pLQ(D55mN2E&(xosSx2<7H3}-_)+u{<1 z$t6rKVRD7D6~-4E(UN@cv)V5MOXO{<#7L9(TefSz4tZ~0Ii#(KjI;MX+DGxrdpaHu z0_ASYdjMwZX2t@oz?GB(NjY0NHDO9km{Jp_)RJ-(#-mlr9NrpQ2%&`sq(7L+D$mI( zY+GHSg$m<$?{L})<7PZU!ZEE7)0)R>VNwf|T9^`!X;m1H))5mY2nR(fo z3ghGKPO!K0QGfIER)M$5!SxGM{lZkgFxBs^QW%f*^M_{?*Ds5p5&VrW%OYT=`u)tj z2$-pUf1|?q0>dqLtDR@`fmh#}U2DqCvuQ4mRW#X^=!py%ZaK}k`}Bba(ZPX<_O-U$ z?x@O{u55F{?@q&-8mF!8zu@K;LvC@hooBkvNNLJrOtb$nWtm&7FdCiONX~E$gmdH$ zD@;;hs$H0@;T(nWiS`|KgiL#?pr^{<85Jh0Fj0{$XpFnR8|4 zT$wr73ku^C?W4?1xh7ke-*y%aJ=!1#F!_bazqv$VJo*P^eJg**Md-LF z#{*&V3zJ`%{2dn+#wXh6r8~;M>;#mZ5Wg__g~=~W{<0Gae} zCciNG{YwNtjVWpRHjs3GRj9-Wi;UFiC_-!c3CkGnrBgQ)*YSM3^MPG(XJ$0?H%d#sB~S diff --git a/audio/comet/tuning/waves/waves_preset_nx.mps b/audio/comet/tuning/waves/waves_preset_nx.mps new file mode 100644 index 0000000000000000000000000000000000000000..2ee4e313e4ac68a44425cb12837b3473927c18dc GIT binary patch literal 5671 zcmeH}?QhaR7{H%)Oz2<^#Tm1hc;C&E$rg>tl2#aGx`{-bFV2LKX~|{XDsRu!k^}shxxo>yet*cWq-{e2!FFtbX^w43XOq;CXZ)P#? zct`GbcAxr@=aYC6JBL@E-pE$Zbc(yL^N23273-U%@|4tB&v$6VNPZ)~wZ5^ne(TOh z9`=L*WnI%n@Ne>;1_mEHc|6gV5{Gf)Z$<(iFX3x4hLQPALdyCs0pJIQpBR2&_$}b` zC(*u`fAAIFFBjD?yfDxeis2AL6N8O`VQ67^iJ=|CaL?+*0C%ld5&*gqDwZQ*WcDOH zvs?)k%Zp+7#PVa{p?{4bzz|6onSBg{7={DuC;F@_TiZ!o;Y@J__NGWqpVN zM&_<=Adk}AquJLW1VXP4gEC2(1gA}^>f6Yq95?B78dOH{2&miyaL(LR5_?=$>~V{H zk4sg(APQ(FQW`0ZgahZ*Xk03hiADg%K6UM|Nqr`!P#c^q1^`s4^siE>BuXWfj>Kmp xnyR<~=Bc>LLL;Km(O4qo(KrnAcvKSgwn|4zBU!`DqfuFCL{vIb9{rz3e*v329jO2S literal 0 HcmV?d00001