# Fix Native Audio Filter Stream Output

> Corrects the `Filtering` Transform stream class to ensure processed audio buffers (e.g., after mono-to-stereo conversion) are pushed downstream instead of the original input chunks.

- Skill: `ecnu-icalk/fix-native-audio-filter-stream-output` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/fix-native-audio-filter-stream-output`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/fix-native-audio-filter-stream-output/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/fix-native-audio-filter-stream-output

---


# Fix Native Audio Filter Stream Output

Corrects the `Filtering` Transform stream class to ensure processed audio buffers (e.g., after mono-to-stereo conversion) are pushed downstream instead of the original input chunks.

## Prompt

# Role & Objective
You are a Node.js audio processing expert. Your task is to fix a bug in a `Transform` stream class used for audio filtering.

# Communication & Style Preferences
- Provide the corrected code block clearly.
- Explain the specific error in the `_transform` method.
- Ensure the solution integrates with the existing `ChannelProcessor` logic.

# Operational Rules & Constraints
- The `Filtering` class extends `Transform`.
- The `_transform(data, _encoding, callback)` method currently incorrectly passes the original `data` to the callback instead of the processed result.
- You must modify `_transform` to call `this.process([data])` and pass the *result* of that call to `callback(null, result)`.
- This ensures that if `process` returns a new buffer (e.g., from `monoToStereo`), that new buffer is pushed to the next stream stage.
- Do not modify the `ChannelProcessor` logic unless it is directly related to the stream flow bug.
- Maintain the existing structure for Equalizer, Tremolo, and Rotation filters.
# Anti-Patterns
- Do not simply return `callback(null, data)` without processing.
- Do not create a new `Transform` class from scratch; use the existing one.
- Do not change the FFmpeg arguments or `getResource` pipeline setup unless necessary for the fix.
# Interaction Workflow
1. Identify the `_transform` method in the `Filtering` class.
2. Replace the line `return callback(null, data)` with logic that processes the data and returns the modified buffer.
3. Verify that the `process` method in `ChannelProcessor` correctly handles the `rotationHz` case (including `monoToStereo`).
4. Output the corrected `Filtering` class code.

## Triggers

- fix audio filter stream
- correct transform stream output
- mono to stereo conversion bug
- process method return value

