Skip to content

NamNode

Defined in: packages/chain/src/nodes/nam-node.ts:49

A NAM (Neural Amp Modeler) capture as a chain node.

The node applies no loudness gain of its own, deliberately. nam_process already implements NAM’s Normalized output mode internally — 10^((-18 - modelLoudness)/20), smoothed against clicks — which is the policy the workbench validated by listening. Applying it again here would double it. getInfo().loudness reports what the engine did so a host can show it.

The engine instance is created at prepare, not in the constructor, because instantiation is asynchronous and belongs to the caller. Until then the node passes audio through.

new NamNode(id?, name?, config): NamNode

Defined in: packages/chain/src/nodes/nam-node.ts:74

string = "nam-amp"

string = "NAM Amp"

NamNodeConfig

NamNode

bypassed: boolean = false

Defined in: packages/chain/src/nodes/nam-node.ts:55

ChainNode.bypassed


readonly id: string

Defined in: packages/chain/src/nodes/nam-node.ts:50

ChainNode.id


readonly kind: "nam" = "nam"

Defined in: packages/chain/src/nodes/nam-node.ts:52

ChainNode.kind


readonly latencySamples: 0 = 0

Defined in: packages/chain/src/nodes/nam-node.ts:54

The engine adds no algorithmic delay; the buffer is in-place and sample-aligned.


mix: number = 1.0

Defined in: packages/chain/src/nodes/nam-node.ts:56

ChainNode.mix


readonly name: string

Defined in: packages/chain/src/nodes/nam-node.ts:51

ChainNode.name

dispose(): void

Defined in: packages/chain/src/nodes/nam-node.ts:195

Release resources the node holds outside the chain — a WASM instance, a file handle. Called on the node a chain drops: removeNode, clearNodes, and the replace-by-id path in addNode. Optional because most nodes hold nothing that outlives them.

void

ChainNode.dispose


getInfo(): NamNodeInfo

Defined in: packages/chain/src/nodes/nam-node.ts:139

NamNodeInfo


getParam(id): number | undefined

Defined in: packages/chain/src/nodes/nam-node.ts:96

string

number | undefined

ChainNode.getParam


getParams(): Record<string, number>

Defined in: packages/chain/src/nodes/nam-node.ts:130

Record<string, number>

ChainNode.getParams


prepare(sampleRate): void

Defined in: packages/chain/src/nodes/nam-node.ts:84

number

void

ChainNode.prepare


process(input): Float64Array

Defined in: packages/chain/src/nodes/nam-node.ts:161

Float32Array<ArrayBufferLike> | Float64Array<ArrayBufferLike>

Float64Array

ChainNode.process


reset(): void

Defined in: packages/chain/src/nodes/nam-node.ts:90

void

ChainNode.reset


setModel(modelJson): void

Defined in: packages/chain/src/nodes/nam-node.ts:153

Swap the model. The replacement is loaded into a new instance; the current one keeps running until the new one is ready, and is released only then. A refused model therefore never interrupts playback — the engine’s own reason is thrown and the old model stays.

string

void


setParam(id, value): void

Defined in: packages/chain/src/nodes/nam-node.ts:111

string

number

void

ChainNode.setParam