Skip to content

readme: add readme for each audio directory#10591

Open
lgirdwood wants to merge 3 commits intothesofproject:mainfrom
lgirdwood:readme-audio
Open

readme: add readme for each audio directory#10591
lgirdwood wants to merge 3 commits intothesofproject:mainfrom
lgirdwood:readme-audio

Conversation

@lgirdwood
Copy link
Member

Add a high level readme describing each audio directory to help new users understand what each modules does.

This large patch of high level text that can be a starting point for further refinement by module authors.

Add a high level readme describing each audio directory to help
new users understand what each modules does.

This large patch of high level text that can be a starting point
for further refinement by module authors.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds high-level README documentation files for each audio component directory in the SOF (Sound Open Firmware) codebase, plus a top-level architecture.md. The goal is to help new contributors quickly understand the purpose, architecture, and build configuration of each audio module.

Changes:

  • Adds a readme.md in each of ~30 audio component subdirectories describing their purpose, architecture diagrams, and configuration/build scripts.
  • Adds a top-level architecture.md providing a high-level SOF firmware architecture overview.

Reviewed changes

Copilot reviewed 36 out of 36 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
architecture.md New top-level overview doc covering SOF firmware layers, IPC, pipelines, and memory management
src/audio/aria/readme.md Documents the ARIA automatic regressive input amplifier component
src/audio/asrc/readme.md Documents the Asynchronous Sample Rate Converter component
src/audio/buffers/readme.md Documents the core audio buffer management module
src/audio/codec/readme.md Documents the codec abstraction and DTS adapter
src/audio/copier/readme.md Documents the Copier data-movement component
src/audio/crossover/readme.md Documents the Crossover filter component
src/audio/dcblock/readme.md Documents the DC Blocking filter component
src/audio/drc/readme.md Documents the Dynamic Range Compressor component
src/audio/eq_fir/readme.md Documents the FIR Equalizer component
src/audio/eq_iir/readme.md Documents the IIR Equalizer component
src/audio/google/readme.md Documents Google-specific audio components
src/audio/igo_nr/readme.md Documents the Intelligo Noise Reduction component
src/audio/level_multiplier/readme.md Documents the Level Multiplier gain component
src/audio/mfcc/readme.md Documents the MFCC feature extractor
src/audio/mic_privacy_manager/readme.md Documents the Microphone Privacy Manager
src/audio/mixin_mixout/readme.md Documents the Mix-In/Mix-Out routing endpoints
src/audio/mixer/readme.md Documents the Mixer component
src/audio/module_adapter/readme.md Documents the Module Adapter IPC4 wrapper
src/audio/multiband_drc/readme.md Documents the Multi-Band DRC component
src/audio/mux/readme.md Documents the Multiplexer/Demultiplexer component
src/audio/nxp/readme.md Documents NXP-specific DSP components
src/audio/pcm_converter/readme.md Documents the PCM format converter
src/audio/pipeline/readme.md Documents the core pipeline engine with detailed state/sequence diagrams
src/audio/rtnr/readme.md Documents the Realtek Real-Time Noise Reduction component
src/audio/selector/readme.md Documents the Channel Selector component
src/audio/smart_amp/readme.md Documents the Smart Amplifier component
src/audio/sound_dose/readme.md Documents the Sound Dose hearing protection component
src/audio/src/readme.md Documents the Synchronous SRC component
src/audio/stft_process/readme.md Documents the STFT Process component
src/audio/tdfb/readme.md Documents the Time Domain Filter Bank / beamformer
src/audio/template/readme.md Documents the Template component stub
src/audio/tensorflow/readme.md Documents the TensorFlow Lite Micro integration
src/audio/tone/readme.md Documents the Tone Generator component
src/audio/up_down_mixer/readme.md Documents the Up/Down channel mixer
src/audio/volume/readme.md Documents the Volume control component
Comments suppressed due to low confidence (1)

src/audio/tdfb/readme.md:1

  • The title says 'Time Domain Filter Bank' but the Kconfig bullet on line 11 names it 'Time Domain Fixed Beamformer'. These two names are inconsistent; the title (and directory name tdfb) should match the component's actual full name, which is 'Time Domain Fixed Beamformer'.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

lgirdwood and others added 2 commits March 4, 2026 11:52
Fix grammer.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Liam Girdwood <lgirdwood@gmail.com>
Add a more descriptive content.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Liam Girdwood <lgirdwood@gmail.com>
Copy link
Collaborator

@kv2019i kv2019i left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only big question is why readme.md, that seems unusual convention, why not use README.md like everybody else?

Otherwise, I think this is very welcome. Our sof-docs flow is too cumbersome and the our documentation has started to become stale as we've lost some maintainers. I think light in-line documentation (like this) is much better and easier to keep up-to-date (even if not as polished).

I do wonder how detailed this should be. I'd prefer to keep this at relatively high level as i is unlikely the details will be kept up-to-date. People can use AI help to generate more detailed, more specific documentation for their specific needs.

Given above, I do think this PR strikes a pretty good balance. I'm not super fond of listing the UUIDs in the docs, but OTOH, these aren't likely to change, so not a big problem either.
This PR

@@ -4,7 +4,7 @@ This directory contains the implementation of the Aria audio component.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lgirdwood why readme.md and not README.md which seems by far the most used convention in github?


- **Kconfig**: Selects the Crossover Filter (`COMP_CROSSOVER`), which splits signals into driver-specific frequencies. Also automatically selects `COMP_BLOB` and `MATH_IIR_DF2T` math functions for its internal filters.
- **CMakeLists.txt**: Handles modular builds (`llext`). Selects `crossover.c` and generic implementations, and chooses the correct IPC file (`crossover_ipc3.c` or `crossover_ipc4.c`) based on the active IPC major version.
- **crossover.toml**: Topology parameters for the Crossover module. Sets `init_config = 1` so that `base_cfg_ext` is appended to the IPC payload, which is required up-front to identify output pin indices. Defines UUID, pins, and memory requirements.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

init_config is IPC4 only, so this is a bit misleading.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants