MTC Sound

Note: requires a hardware modification, useless without it!

For MTCB/MTCC/MTCD Chinese car head units, based on Android KitKat 4.4.4 and Lollipop 5.1.1.

Microntek Car Head Units based on RK3066 / RK3188 processors have so called Sound Processor IC made by ROHM, the BD37xxxx family.

This sound processor has the following functions:
• Three-band parametric equalizer with adjustments of gain in range -20dB – +20dB, frequency and Q-factor of the filter in each band.
• Configurable loudness module with gain in range from 0dB to +20dB, and adjustment of filter frequency and the level of high frequencies suppression.
• Setting of subwoofer output, including selection of signal source, cut-off frequency, phase, and gain.

In stock implementation, this IC is controlled by another 8051-based controller (called MCU) which controls all the onboard hardware, such as display, hardware buttons, BT module, video switch, etc. The way it controls the Sound Processor IC is very limited and in some aspects wrong:
• Instead of 3-band parametric equalizer, we have a 9-band graphical one, with strange logic – each of three groups of three bands controls a single hardware band, averaging their values; and the adjustments range is only +-10dB.
• Loudness compensation does not use a built-in hardware circuit, but just adds some bass and treble, which is a way not the same.
• Subwoofer output is fixed and cannot be configured.

The mtcsound module allows for direct control of all the built-in function the Sound Processor directly from Android, overcoming limitations of stock implementation, and allowing to tune the sound quality to the best, with only minor hardware modifications.
Besides of that, in stock implementation, equalizer presets apply to any input, be it System, Radio, DVD etc. My experience tells me that it is desirable to have a separate equalizer settings per input. The Radio sounds differently than Media Player or DVD, so it needs to be adjusted differently.
In addition, a Preamp value that can be found in Factory settings was pulled for live adjustment. It is needed to equalize the volume of different inputs.

Author(s): 
Package: 
com.sevenfloor.mtcsound
Version name: 
2.0.0
Release type: 
Stable (low risk of bugs)
Number of downloads: 
14,156 in total · 0 in the last 24 hours
MD5 checksum: 
2aaf1d066bc6cc329829635b241ab407
Uploaded on: 
Tuesday, September 27, 2016 - 21:25
Changes: 

- Now also works on Android Lollipop 5.1.1 on MTCB/MTCC/MTCD head units

- Теперь также работает на Android Lollipop 5.1.1 на MTCB/MTCC/MTCD устройствах

Version name: 
1.9.0
Release type: 
Stable (low risk of bugs)
Number of downloads: 
3,986 in total · 0 in the last 24 hours
MD5 checksum: 
92f285c9bc74b385f160b91dce253842
Uploaded on: 
Wednesday, June 22, 2016 - 22:04
Changes: 

- completely rewritten initialization code to support late hardware initialization if it fails during startup
- pretty all status messages have been changed
- added logging of initialization steps to syslog

- полностью переписан код инициализации для поддержки поздней инициализации, если она не удается при загрузке
- почти все тексты статусов поменялись
- добавлено логирование шагов инициализации в syslog

Version name: 
1.8.0
Release type: 
Stable (low risk of bugs)
Number of downloads: 
1,123 in total · 0 in the last 24 hours
MD5 checksum: 
371f4c126c7f42ecc0e50de8a011bdd8
Uploaded on: 
Monday, June 6, 2016 - 20:57
Changes: 

- Added 3 attempts of chip detection with 1000 ms interval for people experiencing troubles on cold boot
- Made incoming ring at System volume instead of Phone volume (some people have to set phone volume much higher than system, and then get scared by too loud ring)
- Removed 25ms mute when switching channels (it was unnecessary)

- Добавлены 3 попытки детектирования чипа со 1000 мс интервалом для людей, которые иногда испытывают проблемы при холодной загрузке
- Входящий звонок сделан с громкостью системы вместо громкости телефона (некоторые вынуждены ставить громкость телефона сильно выше системной, а потом пугаются слишком громкого звонка)
- Убрано выставление mute на 25мс при переключении канала (лишнее оно)

Version name: 
1.7.0
Release type: 
Stable (low risk of bugs)
Number of downloads: 
1,880 in total · 0 in the last 24 hours
MD5 checksum: 
dff76545fb95eeb636d20ae0caf2c714
Uploaded on: 
Thursday, April 21, 2016 - 12:32
Changes: 

- Added "Mute on Record" option. When enabled, all the sound will be muted for recording session duration, e.g. for Voice Search, or any application with Voice Commands. This function is incompatible with any Voice-activated apps, when application continuously records from the microphone waiting for a key phrase - the sound will be just muted all the time. Either don't enable this function or configure apps for recording only on demand.

- Добавлена опция "Тихо при записи". Если включена, то звук будет отключен во время сессии записи, например, при голосовом поиске, или при голосовых командах в приложениях. Эта функция несовместима с функциями голосовой активации в приложениях, т.е. когда приложение производит запись с микрофона постоянно в ожидании ключевой фразы - в таком случае звук будет просто все время выключен. Либо не включайте эту функцию, либо сконфигурируйте приложения для записи только по требованию.

Version name: 
1.6.0
Release type: 
Stable (low risk of bugs)
Number of downloads: 
1,152 in total · 0 in the last 24 hours
MD5 checksum: 
27ffdc76493228c37dddbddb3939cca1
Uploaded on: 
Thursday, March 31, 2016 - 22:00
Changes: 

Added new setting "GSM via Android" for some Bluetooth types that route phone call sound via Android board (BC6B seems to do that)

Добавлена новая установка "GSM через Android" для некоторых типов Bluetooth, которые выдают звук телефонного разговора через плату Android (BC6B так делает, похоже)

Version name: 
1.5.1
Release type: 
Stable (low risk of bugs)
Number of downloads: 
329 in total · 0 in the last 24 hours
MD5 checksum: 
78e2f03769eef5281e74d71f94ee1667
Uploaded on: 
Wednesday, March 30, 2016 - 18:00
Changes: 

Fixed bug in settings save / Исправлена ошибка в сохранении параметров

Version name: 
1.5
Release type: 
Stable (low risk of bugs)
Number of downloads: 
527 in total · 0 in the last 24 hours
MD5 checksum: 
c1c722c4fcf74db5e74908307afae9df
Uploaded on: 
Tuesday, March 29, 2016 - 23:41
Changes: 

- Added setting for bluetooth call output (front left/right, rear left/right) / добавлена настройка вывода звука при звонке по bluetooth (перед левый/правый, зад левый/правый)

Version name: 
1.4
Release type: 
Beta (some bugs to be expected)
Number of downloads: 
673 in total · 0 in the last 24 hours
MD5 checksum: 
7547b13bf9e514af20bb3e3409fc44b5
Uploaded on: 
Monday, March 7, 2016 - 15:48
Changes: 

- additional optimization of Xposed module code / дополнительная оптимизация кода модуля Xposed
- avoid message that SU was granted to [random application] on boot / избежание сообщения о том, что SU предоставлен [произвольному приложению] при загрузке
- removed the need of android.permission.WRITE_SETTINGS / убрана необходимость в разрешении android.permission.WRITE_SETTINGS

Version name: 
1.3
Release type: 
Beta (some bugs to be expected)
Number of downloads: 
232 in total · 0 in the last 24 hours
MD5 checksum: 
ff3399b8f1d6dc1af02bc69f865d1074
Uploaded on: 
Thursday, March 3, 2016 - 09:02
Changes: 

- changed I2C write routine to potentially fix initialization failures on boot / изменена процедура записи по I2C для потенциального исправления ошибок инициализации при загрузке
- optimized Xposed module code / оптимизирован код модуля Xposed
- changed version code to match version name / изменен код версии для соответствия имени версии

Version name: 
1.2
Release type: 
Beta (some bugs to be expected)
Number of downloads: 
2,233 in total · 0 in the last 24 hours
MD5 checksum: 
3f43e371bd753c521fa1615c4402229f
Uploaded on: 
Tuesday, November 3, 2015 - 16:53
Changes: 

- changed internal handling of parameters for better compatibility with stock functions / изменена внутренняя обработка параметров для лучшей совместимости со штатными функциями
- restored function of displaying volume on dashboard via CAN / восстановлена функция показа громкости на панели авто через CAN
- corrected handling of phone operations during incoming ring and outgoing tone / исправлена обработка операций с телефоном во время входящего звонка и исходящих гудков
- minor bugs fixed / исправлены мелкие ошибки

Version name: 
1.1
Release type: 
Beta (some bugs to be expected)
Number of downloads: 
263 in total · 0 in the last 24 hours
MD5 checksum: 
ea7414404ac2197f3fdaf7136ea98c6a
Uploaded on: 
Saturday, October 31, 2015 - 21:01
Changes: 

support for volume lowering/mute on reverse gear (restored stock safety feature)

Version name: 
1.0
Release type: 
Beta (some bugs to be expected)
Number of downloads: 
458 in total · 0 in the last 24 hours
MD5 checksum: 
a413865aca4d9881ffc624445366ade9
Uploaded on: 
Monday, October 26, 2015 - 19:15
Changes: 

- Released as a single APK (if already using old MTCCSC.apk / SoundControl.apk - uninstall them first)
- Now the status of patch can be found in Xposed log because the module's UI is the Equalizer itself
- Added frequency numbers to the AFC chart
- Mute when Volume reaches 0
- Unmute on Volume change
- Added support for GPS switch/mix (experimental, may not work for every navigation app, tested on Yandex.Navigator and Navitel)