Repository navigation
Releases: hshshs12-code/DiPlay
Release list
0.2.13-legacy24.46
24.46 — the unit's own effects from the phone, volume that survives mute, phone volume buttons
- Volume from the phone works while the unit is muted. Android answers "Not allowed to change Do Not Disturb state" when an app changes the volume on a muted unit. DiPlay now un-mutes first when it has Do Not Disturb access (Settings → Audio path → Allow Do Not Disturb access, a new button), tries stepping instead of an absolute set, and if Android still refuses it moves DiPlay's own digital volume for the iPod session, so the phone always does something. The phone shows which path was used.
- Unit EQ tab in the iPhone app. "Direct control" parks DiPlay's processing and drives the head unit's own effects: its 5-band equalizer (+ and − up to 15 dB), bass boost, virtualizer and reverb. Turning it off restores DiPlay's processing as it was. The Unit tab's old neutralise switch is now a three-way choice: leave alone / hold flat / drive from here.
- Phone volume buttons. Unit tab → "Phone volume buttons move the unit's volume": each press steps the head unit one volume step. iOS has no button API, so the app watches the system volume and keeps the phone's own level one step below full. If iOS fixes the volume on the USB route, no press is seen; the toggle's status line says so.
- Needs the matching iPhone app build (included in the source tree,
ios/DiPlaySound).
Includes 24.39 to 24.45.
0.2.13-legacy24.45
24.45 — iPhone companion app (iPod mode) and your own presets
- iPhone app "DiPlay Sound" (source in
ios/DiPlaySound, build it in Xcode and run it on the phone). While the unit runs iPod audio, the app joins over the same USB cable through the accessory session DiPlay now offers, and controls everything on the Sound screen live: presets, the 12-band EQ, every switch and amount (limiter, bass clip, drive, output trim, auto level, loudness compensation, subsonic, bass enhancer, air, de-ess), stereo stage, parametric bands, the head unit's own effects (neutralise), and the unit's media volume. Changes made on the car screen show up on the phone and the other way round. - Your own presets. Save the current sound under a name from the phone or from Sound → All presets → "Save the current sound as a preset…". They live on the unit; tap to apply, hold (or swipe on the phone) to delete.
- "Good". On its first start 24.45 saves whatever the sound settings are at that moment as the preset "Good". If you changed the EQ since the collector run on 23 Oct, set it back before installing, or re-save it from the phone afterwards.
- The iPod status pill shows "· iPhone app" while the phone app is connected. If a phone rejects the new identification, DiPlay retries without the companion protocol by itself; the log says which.
Includes 24.39 to 24.44.
0.2.13-legacy24.44
24.44 — the handles the head-unit analysis turned up
The collected zip showed this board (build 00017) has no amplifier or audio-processor chip software can address; the gain lives in Android's volume, the MediaTek HAL's per-step volume table, and the vendor Sound Effects app's global effects. 24.44 adds the handles for those:
- Sound → Head unit's own effects. Shows what the unit's Sound Effects app applies to everything (equalizer bands, bass boost, virtualizer, reverb) and a switch, Neutralise head-unit effects, that holds them flat and off while DiPlay runs. Off hands them back as they were. The unit's own settings are not changed.
- Settings → Diagnostics → Read the firmware volume table. Reads the HAL's per-step table (15 levels per mode, 0–255) the way EngineerMode does. Read-only.
- Settings → Diagnostics → Open EngineerMode. Opens the unit's MediaTek EngineerMode, whose Audio → LoudSpeaker Mode page edits that table live. Instructions under the button.
- Collector: new
vendor-probe.txtwith the vendor audio classes an app can reach, device-node permissions, HAL tuning keys, the decoded table and the session-0 effects.
Includes 24.39 to 24.43.
0.2.13-legacy24.43
24.43 — head-unit audio data collector
Settings → Diagnostics → Collect head-unit audio data… Gathers everything about the unit's audio and volume path into one zip for offline analysis: config files and volume tables, the MCU / factory / radio / Bluetooth / phone-link apps with their libraries, what Android's audio service reports, and, with "ADB over network" on in Developer options, the audio flinger state, every app's log, the mixer controls and a root probe. Guided captures tag the state while Android Auto plays, while DiPlay plays, and across a knob sweep. Save the zip to the USB stick. Nothing on the unit is changed. See docs/HEAD_UNIT_COLLECTOR.md.
Includes 24.39 to 24.42.
0.2.13-legacy24.42
24.42 — compare DiPlay's output path with Android Auto's in one tap
Android Auto on this unit is louder and clean on the top volume steps because it plays through MediaTek's BesLoudness, the firmware's own loudness maximiser and limiter. DiPlay switches that off at session start ("Disable MediaTek sound enhancements").
- Settings → Audio path: Match Android Auto's path (16-bit at the stream rate, firmware enhancements restored) and DiPlay as the sound card (float, hardware rate, enhancements off). Reconnect after tapping.
- DiPlay now records the firmware's enhancement states before switching them off and restores them at the next session once the toggle is off; some firmwares otherwise keep them off until a reboot.
- Includes 24.39 to 24.41 (bass clip, limiter switch, clean volume mode, Drive, Output trim).
0.2.13-legacy24.41
24.41 — louder without clipping: Drive, plus Output trim
- Drive (Sound page card, 0 … +12 dB): a loudness maximiser. Gain after the equalizers and before the bass clip and limiter, so the average level goes up while every peak still lands under the ceiling. It keeps the limiter on. Start at +4 to +6 dB. Max Loud now uses +6.
- Output trim (Advanced › Loudness and dynamics, 0 … −12 dB): the whole chain's level after the limiter, for amplifiers that clip on the top volume steps. A car setting; presets leave it alone.
- Includes 24.40 (clean volume mode) and 24.39 (bass clip, limiter switch).
0.2.13-legacy24.40
24.40 — clean volume mode
For head units that distort on every volume step except one (this unit: clean only at 20; the firmware's loudness processing clips below it and the amplifier runs out of headroom above it).
- Settings → Audio path → Clean volume mode (off by default) with the clean step (default 20). While a CarPlay or iPod session runs, the Android media volume is parked at the clean step and the knob drives DiPlay's own digital volume instead: float, no distortion at any level, 30 smooth steps. A "Volume n / 30" pill shows the level on the CarPlay and iPod screens. When the session ends the unit gets its real volume back, so the radio and everything else behave as before.
- Loudness compensation follows the virtual level. Calls and navigation prompts follow it too.
- Includes 24.39: bass clip against the limiter ducking vocals, and the Limiter switch meaning fully off.
0.2.13-legacy24.39
24.39 — bass no longer ducks the vocals, limiter can be switched off completely
- Bass clip. A soft clipper on everything below 120 Hz holds the bass at −3 dB by itself, so an 808 never crosses the limiter's ceiling and the limiter stops pulling the whole mix down for the length of each note. Measured: a 1 kHz tone under a boosted 55 Hz 808 lost 4.3 dB with the limiter alone and 0.1 dB with the clip. On by default (off in Flat Corrected and the Podcast presets). Level under Sound › Advanced › Bass; on/off switch on the Sound page.
- Limiter switch means off. Switching the limiter off now turns it off completely, even with auto level, loudness compensation or the bass enhancer on (24.38 had started forcing it). Peaks then clip at full scale; the Sound page says so. Tapping any preset restores its own limiter setting.
- Everything else from 24.38 unchanged. Tests: 1722 pass.
0.2.13-legacy24.38-friend4 (side build)
24.38-friend4 — automatic reset of leftover groups, Bluetooth music parked during CarPlay
Pre-release for the friend line only.
- The first success came after a manual "Reset Wi-Fi Direct": a leftover group with a platform-chosen name blocked every start, because the ownership check only reclaims groups it named itself (impossible below Android 10). The app now reclaims any leftover group this unit owns by itself.
- Music then played over the car's own Bluetooth instead of CarPlay. While a CarPlay session is active the phone's A2DP (Bluetooth music) is disconnected and parked, hands-free stays for calls, and A2DP is restored when the session ends. Switch: Settings → Audio path → "Keep the car's Bluetooth music off during CarPlay".
- Everything from friend1–3 stays (live channel scan, no-pin option, channel ladder, 90 s join window, group kept across a retry, neighbour/ADB diagnostics, password on screen).
0.2.13-legacy24.38-friend3 (side build)
24.38-friend3 — find out why nobody joins the group
Pre-release for the friend line only.
The friend2 report showed neighbours=0 complete=0 on every attempt: the iPhone never associates with the Wi-Fi Direct group at all, and the head unit's own scan never sees the group (Android 8 returns an empty list while Location is off). friend3 adds what is needed to tell "the group is not on air" from "only the iPhone refuses it":
- The group's password is shown on the CarPlay connection screen so a second phone or laptop can try joining “DIRECT-…” by hand.
- A Bluetooth drop after StartSession now counts as a failed join, so the channel ladder advances even when the phone resets the link early.
- The scan diagnostic logs the Location mode and the number of scan results.
- The diagnostic report pulls the head unit's wpa_supplicant / Wi-Fi P2P logcat and
dumpsys wifip2pover local ADB when "ADB over network" is enabled: that shows the group's real frequency and every association attempt.