Points node

Notes to Points

Turns a pitch array (Pitch Detection Notes/Onsets/Chroma/Contour -- any float array) into a point cloud for Plexus, Point Animation and particles. Layout: Line (pitch → X · Width/Height), Circle (pitch class → angle · Radius/Amplitude), Spiral (octave per turn · Inner Radius/Radius/Amplitude · Depth > 0 = 3D helix), Noise Field (one point per bin drifting through a shared fBm field -- note activity ACCELERATES its point; Field Size/Amount/Noise Scale/Octaves/Speed/Acceleration/Seed · Depth > 0 = 3D cloud) -- each layout shows only its own controls. Threshold > 0 emits only sounding notes (not in Noise Field, which always keeps every point). Activities and Ages ride along per point -- Ages retrigger on the Onsets cable's rising edge through Onset Level (or on activity rising through Threshold when Onsets is unwired). Pulse turns every note into a pulse: the point lives Pulse Time milliseconds from the note's attack at its peak activity, then disappears even while the key is held -- play the same notes as taps instead of states. Trigger fires on every note attack (1 frame, or held Trigger Time ms).

Inputs

PortTypeDefault
Pitch ArrayThe float array that becomes points — Pitch Detection's Notes, Chroma, Onsets or Contour, or any float stream. One point per bin; an empty array outputs nothing.float—
OnsetsOptional per-bin trigger array, the same length as the pitch array, used to restart the Ages output precisely. Leave it unwired and activity crossing Threshold retriggers instead.float—
Onset LevelHow high an onset value must rise to count as a fresh hit. Clamped to 0.01…1.float0.3
LayoutHow the bins are arranged — Line, Circle, Spiral or Noise Field. Values outside those four fall back to Line.int0
ThresholdMinimum activity a bin needs to emit a point. Clamped to 0…1; 0 emits every bin as a steady row, higher gives a sparse cloud that follows the melody. Noise Field ignores it.float0.15
Stable SlotsA sounding note keeps its index while it sounds (and Hold seconds after); a new note takes the lowest free slot — Merge, Point Animation and Plexus never see a point jump to another slot because a note appeared. Off = the compact list, re-packed every frame.booltrue
HoldSeconds a released note keeps its slot before it becomes a frozen ghost (activity 0). Clamped to ≥ 0.float1.5
PulseOff: a point follows its note — held key, held point. On: every note is a pulse — from its attack (or an Onsets hit) the point lives Pulse Time at the note's peak activity, then vanishes even while the key is held; a short tap still lives the whole window. Retrigger = release and press again.boolfalse
Pulse TimeLifetime of a pulsed point, in milliseconds (Pulse on). Clamped to ≥ 1 ms; 100–500 feels percussive, seconds gives long tails. Hold still applies after the pulse when Stable Slots is on.float250
Trigger TimeShape of the Trigger output. 0 = a clean one-frame pulse whenever any note attacks (rising edge through Threshold, or an Onsets hit). Above 0 = held that many milliseconds after the last attack, restarted by every new attack. Clamped to ≥ 0.float0
WidthLine layout: how far the bins spread across X, in Grafit units. Not clamped; negative simply mirrors the order.float1.6
HeightLine layout: how far full activity lifts a point upward. Not clamped; negative pushes it down instead.float0.6
RadiusCircle layout: the resting ring radius. Spiral layout: the outer radius. Not clamped, but about 0…2 keeps the cloud on screen.float0.8
Inner RadiusSpiral layout: the radius the lowest octave starts at. Not clamped; setting it above Radius winds the spiral inward instead of outward.float0.15
AmplitudeCircle and Spiral: how far activity pushes a point out from its resting radius. Not clamped; negative pulls it inward on every hit.float0.3
DepthSpiral: how far the helix rises through Z from low to high octaves. Noise Field: the cloud's Z extent. Not clamped; 0 keeps everything flat and 2D.float0.5
Field SizeNoise Field: how wide the anchor points are spread before they start drifting. Not clamped; roughly 0…3 fills the view.float1.2
AmountNoise Field: how far each point may wander from its anchor. Not clamped; 0 freezes the arrangement and around 1 is a lively drift.float1.0
Noise ScaleNoise Field: spatial frequency of the drift field — low values move neighbours together, high values scatter them apart. Clamped to 0.01 and up.float2.0
OctavesNoise Field: how many layers of detail the drift has. Clamped to 1…6, where 1 is a pure smooth wave and higher adds fine turbulence.int1
SpeedNoise Field: the calm base drift rate the whole cloud shares. Clamped to 0 and up; 0 holds the field still until a note pushes a point.float0.2
AccelerationNoise Field: how far ahead note activity surges its own point through the field. Clamped to 0 and up; 0 means notes move nothing.float5.0
SeedNoise Field: changes the fixed anchor arrangement of the points. Any whole number gives a different but repeatable layout.int0
Position XMoves the whole cloud horizontally, in Grafit units. Any value works.float0
Position YMoves the whole cloud vertically, in Grafit units. Any value works.float0

Outputs

PortType
Pointsstructure
Activitiesfloat
Agesfloat
Countint
Triggerbool

Live Anatomy

Interactive — Noise Field: activity accelerates points through a shared flow

How It Works

Notes to Points converts any pitch-shaped float array — Pitch Detection's Notes [88], Chroma [12], Onsets, Contour, or any array you slice yourself — into a live point cloud on the standard Points port. The point count always equals the array length, and 88-entry arrays are pitch-aligned to the piano (A0 = MIDI 21), so every point IS a note with a stable identity.

Four layouts, each with its own adaptive controls (the inspector shows only what the active layout uses):

LayoutGeometryControls
LinePitch left→right, activity lifts the point up — a breathing equalizer row.Width, Height
CircleThe chromatic clock: pitch class = angle (C at 12 o'clock), activity pushes outward.Radius, Amplitude
SpiralOctave per turn; with Depth > 0 it becomes a 3D helix — bass far, treble near.Inner Radius, Radius, Amplitude, Depth
Noise FieldOne organism: every note owns a fixed, seeded home and drifts through a SHARED flowing noise field — one clock for the whole flock (murmuration, not chaos), a traveling wave giving it one direction. A sounding note's activity is acceleration: it surges ahead along the collective flow, then rejoins the flock as it fades.Field Size, Amount, Noise Scale, Octaves, Speed, Acceleration, Seed, Depth

Alongside positions the node emits per-point Activities (for size/color mapping) and Ages — seconds since each note last retriggered (rising edge on the Onsets cable through Onset Level, or on activity through Threshold when Onsets is unwired) — the raw material for fade-out trails.

Parameters in Depth

ParameterMeaning
Pitch ArrayThe activation array. Notes for full detail, Chroma for 12 clean points, Onsets for attack-only clouds.
Onsets + Onset LevelOptional retrigger feed for Ages: an onset crossing Onset Level (default 0.3) resets that note's age to zero.
ThresholdAbove 0, only sounding notes emit points (a sparse cloud that dances with the melody); at 0 every bin always has its point. Hidden in Noise Field — the flock never loses members.
DepthZ extent (0 = flat). Spiral → helix; Noise Field → true 3D cloud. Downstream needs nothing: Point Animation auto-detects 3D, Plexus has Z-Depth coloring, Points Visualize applies perspective.
Speed / Acceleration (Noise Field)Speed is the calm collective drift; Acceleration is how hard a sounding note surges (activity × Acceleration adds phase lead). Low Speed + high Acceleration = dramatic music contrast.
Noise Scale / Octaves / Amount (Noise Field)Spatial frequency of the field, fBm detail (1 = purest wave), and wander radius around each anchor.

Use Cases

  • The melody organism — Pitch Detection Notes → Notes to Points (Noise Field, Depth 0.6) → Plexus (Color Mode: Z-Depth): a 3D web that swims like a school of fish and erupts along the melody.
  • Chromatic clock — Chroma → Circle layout → Points Visualize: twelve points around a clock face, the current key glowing outward.
  • 3D helix of the harmony — Notes → Spiral (Depth 0.8) → Plexus: bass notes ignite in the distance, leads at your nose.
  • Fading trails — Ages → Array Map/Remap → per-point opacity via Points Visualize: notes bloom and evaporate.
  • Anything array-shaped — Audio Beat Detection Probs [4], EEG band arrays, Array Slice cuts — if it's a float array, it becomes a cloud.

Tips

  • The Points output is the standard cloud currency — Plexus, Point Animation, Point Trail, Find Neighbors and the particle system all consume it directly.
  • In Noise Field, keep Octaves at 1–2 for smooth flock motion; higher octaves add jitter.
  • Stack a Point Animation (Curl, small Amount) after it for a second independent motion layer.
  • Feed Onsets (not Notes) into Pitch Array for a strobe-like cloud that exists only at attacks.

Open Notes to Points in the interactive catalog →

Notes to Points is one of 381 nodes in Grafit Pro.

Free download. Every feature for 7 days, no card. Then €99.99 once — or keep playing your projects as a Player.

More Points nodes