Feedback

Its input one block late: the one way a loop closes. It runs first each block, reading what its producer left in the last one.

Feedback rs
input
out
Type name
audio:Feedback
Plane
audio
Tags
transform
Language
rust
Tier
native
Bundle
audio
Source
node-bundles/audio/Feedback.rs
Availability
available

Slots

SlotDirectionType
inputinputAUDIO
outoutputAUDIO

Parameters

This node declares no parameters of its own.

Source

The current source of this node, as it stands in the goofi repository at node-bundles/audio/Feedback.rs.

node-bundles/audio/Feedback.rs
use goofi_audio_sdk::goofi_core::SlotType;
use goofi_audio_sdk::{AudioNode, Block, Manifest, OutputDecl, SlotDecl, Tag};

static INS: &[SlotDecl] =
    &[SlotDecl { name: "input", kind: SlotType::Audio, trigger_process: false, multi: false, required: false }];
static OUTS: &[OutputDecl] = &[OutputDecl { name: "out", kind: SlotType::Audio }];

static MANIFEST: Manifest = Manifest {
    tags: &[Tag::Transform],
    doc: "Its input one block late: the one way a loop closes. It runs first each block, reading \
          what its producer left in the last one.",
    inputs: INS,
    outputs: OUTS,
    params: &[],
};

#[derive(Default)]
struct Feedback;

impl AudioNode for Feedback {
    fn prepare(&mut self, _rate: f64) {}

    fn process(&mut self, b: &mut Block<'_>) {
        let input = &b.ins[0];
        let out = &mut b.outs[0];
        for c in 0..out.channels() as usize {
            out.chan_mut(c).copy_from_slice(input.chan(c));
        }
    }

    fn feedback(&self) -> bool {
        true
    }
}

goofi_audio_sdk::export!(Feedback, MANIFEST);

← All nodes

This reference describes goofi 3.1.0(537cd394), generated from a running instance on 2026-09-06.