Numbers, signals & audio
The four ways loose values travel on a wire: a single number, a list, a stream that changes over time, and audio.
Plenty of graph work is moving values around rather than geometry or pixels: a slider position, a list of sizes, a pulsing rhythm, the audio coming out of the speakers.
Single numbers and lists
The simplest thing on a wire is one value: a number, a position, a colour, a true/false. A node asking how big or which colour wants exactly one.
A list (an array) is many of those in order: number arrays, vector arrays, colour arrays, integer arrays. One value per point in a shape, a set of frequencies, a palette of colours. Connect a list into something that expected a single value and it is usually applied across all the rows.
Lists and collection attributes are the same material. A size-per-point attribute is a number list riding along with the geometry.
Signals
A signal is a list with one addition: a sample rate, which makes it something measured evenly over time. That is the whole difference between a signal and a plain number list. A signal animates. The samples are spaced in time, so the same data can be played back, scrubbed, and reasoned about as a moving stream.
Audio flows through this format, and signals are not only for sound.
An LFO, a slow wobble, is a signal running at frame rate, used for driving animation, wiggling a position, pulsing an opacity.
A microphone or a music file is a signal running at audio rate, tens of thousands of samples a second.
The same Oscillate node makes both. Leave its sample rate at 0 and it is a control wobble. Raise the sample rate and it becomes an audible tone.
A signal and a number list stand in for each other wherever a node accepts either. A sample rate is filled in when a plain list becomes a signal, and dropped going the other way.
Audio buffers
Audio is a signal at audio rate. A whole sound file, a live input, or the output of a synth chain is one long stream of samples.
Audio runs on its own clock. Sound is generated and processed on a dedicated audio engine so playback stays smooth while the visible part of the graph updates at frame rate. Waveforms and meters keep working without the sound stuttering.
Whole buffer against current frame. Some source nodes, Audio File among them, give both the entire decoded sound and a current-frame slice. Its Buffer output is the whole decoded file, its Waveform output the slice under the playhead. Effects that need the full sound, such as Granular, want the buffer. A granular or sampler patch that sounds empty is usually wired to the wrong output.
One playhead, so analysis matches what you hear. Everything that moves the playhead moves both: Speed, including negative for reverse; Loop Mode, whether Once, Loop or Ping-Pong; the Start and End trim handles you drag on the scrub bar; and a rising edge on Trigger, which restarts from the trim start. A spectrogram or beat detector reading Waveform sees the same position the speakers are at.
Mono in, stereo out. Files are mixed down to a single channel on load. Stereo width comes back from effects like delay, unison and panning.
The nodes that make and shape sound, and which of them reach the audio device, are covered in Audio.
To turn sound into motion, feed audio through Audio Analysis (band energy, beat, kick/snare/hat) or Envelope Follower. Both return plain numbers and lists you can wire into scale, colour or position.
Telling them apart
One value: a node asked for a single number, colour or toggle.
A list: many values at once, often one per point.
A signal: a list carrying a sample rate, so it represents change over time.
Audio: a signal at audio rate.
If something should animate or be heard and does not, you are probably holding a plain list where a signal was expected, or the reverse. Check the node that made it: a sample rate of 0 means control wobble, above 0 means audio.