Feat/audio support#1205
Conversation
…g audio input issues
…udio system for easy debugging and troubleshooting
…udio system for easy debugging and troubleshooting
… of if/else for better readability
Implement SIMD-optimized audio operations using ARM NEON for Cortex-A7 targets Update Makefile and CI configuration to support NEON compilation flags Add SIMD implementations for common audio operations including: - Sample clearing and interleaving - Volume scaling and format conversion - Channel manipulation and balance adjustment - Endianness swapping and prefetching
The TC358743 HDMI receiver stops I2S clocks during silence periods, causing corrupted samples (isolated ±32767 spikes) when clocks restart. This manifests as audible clicks/pops during quiet audio passages. Add NEON-optimized glitch filter that: - Detects extreme values (>±32000) surrounded by low-amplitude neighbors - Replaces glitches with interpolated values from adjacent samples - Uses SIMD fast-path to skip clean audio chunks with zero overhead - Only runs for HDMI capture (USB audio unaffected) The filter processes 16 samples per iteration using ARM NEON intrinsics, resulting in ~0.005% CPU overhead on Cortex-A7 at 1.2GHz.
The script was copied but never executed, causing Docker-based builds (via dev_deploy.sh) to fail due to missing ALSA/Opus/SpeexDSP libraries. Reported-by: J-Bu
Merged changes from dev branch including: - Diagnostics logging and download feature (jetkvm#1078) - E2E test infrastructure improvements - UI component updates and refactoring - Japanese keyboard layout support - Various bug fixes and improvements Resolved conflicts in: - jsonrpc.go: Combined audio RPC handlers with diagnostics - SettingsItem.tsx: Kept enhanced badge implementation - WebRTCVideo.tsx: Kept isSecureContext() utility - useJsonRpc.ts: Merged failsafe blocked methods - devices.$id.settings.video.tsx: Kept EDID initialization logic - devices.$id.tsx: Combined audio settings with E2E test handlers
- Fix prettier formatting in SettingsItem, WebRTCVideo, AudioPopover - Replace react-hook-form watch() with useWatch() for React Compiler compatibility - Remove unused dependencies from useCallback - Add eslint-disable for known React ref false positive
Remove the ability to select between HDMI and USB for audio output. Audio output now always uses the TC358743 HDMI capture device. - Remove AudioOutputSource from config and RPC handlers - Remove audio source UI dropdown and store state - Clean up unused translations across all locales - Update C audio comments to reflect HDMI-only output
Machine translate new audio-related keys to all supported languages: da, de, es, fr, it, nb, sv, zh
- Add discrete note about potential reboot requirement after USB reconfiguration to restore audio input - Clarify USB Audio labels to specify "Audio Input" since it refers to browser microphone -> target computer flow - Update description to explain the feature better
|
I love this feature but I couldn't make it work. My main computer is a Macbook Pro and I KVM into a Windows box. Can't hear any audio from Windows in my Mac. |
|
I just purchased a JetKVM so this feature is very important for me. @pennycoders are the instructions to try this feature out still spelled out here? |
|
0001-add-a-chooser-between-HDMI-and-USB-audio.patch can confirm this PR works and would love to see this merged. |
Can't hear anything right now! |
|
While this makes its' way to the stable release, can the feature be tested in Developer Mode without custom deployments? If not, I would appreciate a short guideline regarding deploying custom versions, rollbacks etc before attempting it. I then assume a deployment from this feature branch would be required, assuming it's kept in sync otherwise with main branch. Thank you! |
A guide would be helpful since there doesn't seem to be any movement on this getting in a release 🤷♂️ |
|
Since everyone seems to be asking for a guide, you will need to clone the JetKVM repository for the firmware here. From there, switch to the audio video branch, compile the firmware, then overwrite the firmware on your JetKVM. This in an inherently somewhat risky activity and can brick the device. If this happens, you'll need to rebuild the original firmware and write that over it again. There is a guide in the README.md of the repository I linked. |
There is not an Audio video branch. Could you instead just link the actual branch? Id like to test this out. |
For me the test was straight forward: download the repo . Enable the developer setting on the UI. Use the So I am kinda confused what guide most people here are epxecting. Fiddling with hardware is kind of difficult to reproduce, I get it. maybe for individual debugging sessions we choose the discord there is a thread under |
|
The latest dev build of the firmware was working. Once I get the time I will resume work on this. Some people have issues with the hdmi audio output, so I'll look into that |
|
It was easy to build and install the audio branch directly from a trixie debian host, thanks. Made a voice call today via jetkvm straight out-of-the box, brilliant! Only ran into one minor cosmetic issue with WebRTC negotiation, but eventually connected fine
It will be great to have this branch merged into dev with home assistant integration. @pennycoders, please enable sponsors on your github profile, I'd like to buy you a coffee. Cheers |
I don't see an option for hdmi. Is it disabled in the latest code? |

Please go to the
Previewtab ☝️ and select the appropriate sub-template:See #718 for more details