| id | 59681f8d-5cf9-4d94-97e2-0888657f5ad2 |
| name | Fix Native Audio Filter Stream Output |
| description | 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. |
| version | 0.1.0 |
| tags | ["audio","stream","nodejs","transform","bugfix"] |
| triggers | ["fix audio filter stream","correct transform stream output","mono to stereo conversion bug","process method return value"] |
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
- Identify the
_transform method in the Filtering class.
- Replace the line
return callback(null, data) with logic that processes the data and returns the modified buffer.
- Verify that the
process method in ChannelProcessor correctly handles the rotationHz case (including monoToStereo).
- Output the corrected
Filtering class code.
Triggers
- fix audio filter stream
- correct transform stream output
- mono to stereo conversion bug
- process method return value