Aftertone & Signal

User Guide

Formfactor is a MIDI modulation workbench that analyzes incoming MIDI and outputs shaped CC messages. It observes your playing behavior and transforms it into continuous control signals for other instruments and effects.

AU v2 Note: In Logic Pro, load Formfactor as an Instrument (not an effect). Route MIDI to it and use its CC output to modulate hardware instruments or other plugins via MIDI learn.

Quick Start

Get up and running with Formfactor in five steps:

  1. Load Formfactor as a MIDI effect (or Instrument in Logic Pro)
  2. Route MIDI to Formfactor from your keyboard or sequencer
  3. Route Formfactor's MIDI output to a synthesizer or effect
  4. Enable one or more CC output lanes
  5. Play notes and watch CC values respond to your playing

What Formfactor Does

Formfactor sits between your MIDI source and your instruments. It passes through all incoming MIDI (notes, pitch bend, existing CCs) while generating additional CC messages based on analysis of your playing. Think of it as an intelligent MIDI processor that creates modulation from musical context.

Typical Use Cases

  • Dynamic filter sweeps that respond to playing intensity
  • Automatic expression that follows note density
  • Rhythmic modulation via step sequencer
  • Shaped LFO with 24 modulation shapes
  • Hardware modulation for synths without built-in LFOs

Signal Flow

MIDI enters Formfactor from your DAW, where it is read across four dimensions. The original MIDI passes through unchanged while new CC messages are generated and merged into the output stream.

                            FORMFACTOR
        ┌───────────────────────────────────────────────────────────┐
        │                                                           │
        │  ┌──────────┐                                             │
        │  │  READER  │                                             │
        │  │          │                                             │
        │  │ Temporal │    ┌─────────────┐    ┌───────────┐         │
        │  │ Density  │───▶│ Sequencer + │───▶│   Merge   │         │
  DAW  ▶│  │ Velocity │    │ Shape LFO   │    │           │         │▶  DAW /
        │  │ Intensity│    └─────────────┘    │ Passthru  │         │   External
        │  └──────────┘           │           │     +     │         │
        │        ▲                │           │  New CCs  │         │
 MIDI   │        │                ▼           └─────┬─────┘         │   MIDI
  In    │        │         ┌───────────┐            │               │    Out
────────┤        └────────▶│  8 Lanes  │────────────┘               ├────────
        │   (notes, etc.)  │ CC 1, 11  │                            │
        │                  │ 74, 71... │                            │
        │                  └───────────┘                            │
        └───────────────────────────────────────────────────────────┘

Each lane can be configured independently:

  • CC number and channel for output routing
  • Step sequencer with configurable trigger source
  • Shape LFO with depth, rate, and mode controls
  • Mode mutes to select which analyses affect the lane

GUI Overview

Formfactor's interface is organized into four main sections. Understanding where everything lives will help you navigate quickly.

The READER (Left Panel)

The analysis engine. Displays real-time readings from the four dimensions: Temporal, Density, Velocity, and Intensity. Global parameters that affect analysis behavior live here too.

Factor (Center)

The heart of Formfactor. This is where the 24 modulation shapes live. Select shapes for continuous LFO-style modulation, configure the step sequencer, and set timing parameters. Each of the 8 lanes has its own Factor settings.

CC OUTPUT (Right Panel)

Output configuration for each lane. Set the CC number, MIDI channel, base value, and mode mutes. This is where analysis becomes MIDI — the final stage before CC messages leave Formfactor.

Notebook (Top Right)

The clipboard system. Save and recall Factor configurations without using full DAW presets. Useful for A/B testing shapes or building a personal library of modulation patterns.

Global Controls

These parameters affect overall Formfactor behavior. The analysis parameters below are accessible in the READER panel.

Temporal Sensitivity (0-100%)

How quickly the Temporal Intelligence analysis responds to changes in playing. Higher values react faster to tempo variations; lower values provide more stable readings.

Density Window (50-2000 ms)

Time window for Event Density analysis. Shorter windows respond quickly to bursts of notes; longer windows average over more playing time.

Velocity Smoothing (0-100%)

Amount of smoothing applied to velocity tracking. At 0%, CC follows velocity changes immediately. At 100%, changes are heavily filtered for gradual transitions.

Intensity (0-127)

Initial energy level for the Intensity system. Higher values allow more sustained activity before energy depletion affects modulation.

CC Output Lanes

Formfactor provides 8 independent CC output lanes. Each lane generates a single CC message stream based on its configuration.

Default CC Assignments

Lanes start with commonly-used CC numbers:

  • Lane 1: CC 1 (Mod Wheel)
  • Lane 2: CC 11 (Expression)
  • Lane 3: CC 74 (Filter Cutoff)
  • Lane 4: CC 71 (Resonance)
  • Lane 5: CC 73 (Attack Time)
  • Lane 6: CC 72 (Release Time)
  • Lane 7: CC 91 (Reverb Send)
  • Lane 8: CC 93 (Chorus Send)

Change any lane's CC number to suit your target instrument.

Lane Selector

The numbered circles above the Factor display select and enable/disable lanes:

  • Click: Select a lane for editing
  • Double-click: Toggle lane enabled/disabled (mute)

Enabled lanes show green; disabled lanes show red. Disabled lanes don't output CC messages and consume no CPU.

Lane Parameters

Enable

Lane on/off state, controlled via the lane selector (double-click to toggle).

CC Number (0-127)

Which CC number this lane outputs. Standard assignments include 1 (Mod), 7 (Volume), 10 (Pan), 11 (Expression), 74 (Cutoff), 71 (Resonance).

Channel (1-16)

MIDI channel for CC output. Usually matches your instrument's receive channel.

Value (0-127)

Base CC value before analysis modulation. The final output combines this with the sequencer, LFO, and analysis results.

Step Sequencer

Each lane includes an 8-step sequencer that cycles through values based on a trigger source.

Trigger Sources

NoteOn

Advances to the next step on each MIDI note-on. Creates patterns that follow your melodic rhythm exactly.

Beat

Advances every beat (quarter note) synced to host tempo. Creates patterns locked to your project grid.

HalfBeat

Advances every half beat (eighth note). Twice as fast as Beat for more active patterns.

QuarterBeat

Advances every quarter beat (sixteenth note). Four times Beat speed for rapid sequences.

Step Values

Each step holds a value from 0-127. The sequencer outputs this value, which is then processed through the lane's modulation shape before combining with other modulation sources.

Sequencer Behavior

  • Steps are numbered 1-8 and cycle continuously
  • When a step advances, the output transitions smoothly to the new value using the lane's shape
  • You can mute sequencer influence per-lane using Mode Mutes

Modulation Shapes

Formfactor includes 24 modulation shapes that define how the LFO sweeps through its cycle. Each shape has a distinct character, from smooth curves to chaotic patterns.

Shape Categories

Linear

  • S01 Linear: Straight line from A to B. Constant rate of change.

Exponential

  • S02 ExpIn: Slow start, accelerating finish. Natural fade-in feel.
  • S03 ExpOut: Fast start, decelerating finish. Natural decay.
  • S04 ExpIO: Slow at both ends, fast in middle. Smooth S-curve.

Circular

  • S05 CircIn: Dramatic acceleration from standstill.
  • S06 CircOut: Dramatic deceleration to stop.
  • S07 CircIO: Circular ease at both ends.

Bloom

  • S08 BloomIn: Gentle organic unfurling.
  • S09 BloomOut: Soft organic settling.
  • S10 BloomIO: Natural breathing motion.

S-Curve

  • S11 SigmoidIn: Mathematical smooth start.
  • S12 SigmoidOut: Mathematical smooth end.
  • S13 SigmoidIO: Classic sigmoid curve.

Timing

  • S14 Snap: Instant change. No interpolation.
  • S15 Hold: Holds start value, then snaps at end.
  • S16 Late: Delayed start, then catches up.

Bounce

  • S17 BounceIn: Anticipation before movement.
  • S18 BounceOut: Overshoot then settle back.
  • S19 BounceIO: Bounce at both ends.

Chaos

  • S20 Wobble: Oscillating approach to target.
  • S21 Jitter: Noisy, unstable transition.
  • S22 Drunk: Random walk toward target.

Direct

  • S23 Stairs: Stepped quantization during transition.
  • S24 Pulse: Spike to max then fall to target.

The READER

The READER continuously observes incoming MIDI across four dimensions. Each dimension produces a value from 0-127 that can modulate CC output.

Temporal Intelligence

Tracks the timing relationships between notes. Detects whether you're playing steady rhythms, accelerating, decelerating, or with rubato expression.

  • Steady playing: Mid-range values (~64)
  • Accelerating: Rising values toward 127
  • Decelerating: Falling values toward 0
  • Rubato/irregular: Fluctuating values

Use for: Filter sweeps that follow phrasing, effects that intensify with faster playing.

Event Density

Measures how many notes occur within the Density Window. Sparse playing produces low values; dense chords or rapid passages produce high values.

  • Single notes: Low values (0-30)
  • Moderate activity: Mid values (40-80)
  • Dense chords/runs: High values (90-127)

Use for: Reverb send that opens up on solo notes, distortion that increases with intensity.

Velocity & Expression

Follows the velocity of incoming notes with configurable smoothing. Provides direct mapping from playing dynamics to CC output.

  • Soft playing: Low CC values
  • Hard playing: High CC values
  • Smoothing: Prevents jumpy transitions between different velocities

Use for: Expression (CC 11), filter cutoff, any parameter that should track dynamics directly.

Intensity

A "stamina" system that depletes with activity and regenerates during rests. Creates natural tension and release curves over longer phrases.

  • Fresh/rested: High values (near Intensity setting)
  • After sustained activity: Depleted values
  • During rests: Gradual regeneration

Use for: Modulation that "tires out" during long solos, effects that build and release over phrases.

Mode Mutes

Each lane can selectively ignore READER modes. This lets you create lanes that respond only to specific aspects of your playing.

Per-Lane Mutes

  • Temporal Mute: Ignores Temporal Intelligence
  • Density Mute: Ignores Event Density
  • Velocity Mute: Ignores Velocity & Expression
  • Intensity Mute: Ignores Intensity
  • Sequencer Mute: Ignores step sequencer values

Use Cases

  • Pure velocity tracking: Mute all except Velocity
  • Sequencer-only: Mute all READER modes, use only sequencer
  • Density-driven reverb: Mute Temporal, Velocity, Intensity; use only Density
  • Intensity-aware expression: Mute Temporal, Density; combine Velocity and Intensity

Shape LFO

Each lane includes a tempo-synced Shape LFO that blends with the step sequencer output. The LFO uses one of 24 modulation shapes to define its waveform character.

Depth (0-100%)

Controls the blend between sequencer output and Shape LFO output:

  • 0%: Output equals the sequencer value only
  • 100%: Output equals the Shape LFO value only
  • In between: Linear blend of both sources

Rate

Tempo-synced LFO cycle period:

  • 1/4 beat: Fastest — one cycle per quarter beat
  • 1/2 beat: One cycle per half beat
  • 1 bar: One cycle per bar (default)
  • 2 bars: One cycle every two bars
  • 4 bars: One cycle every four bars
  • 8 bars: Slowest — one cycle every eight bars

LFO Modes

Loop

The LFO runs continuously, synced to the transport position. Phase derives directly from beat position modulo the rate period. When transport stops, the LFO holds at its current phase.

Trig

The LFO waits idle at the end of its cycle. On each note-on, it resets to the start and advances over the rate period. After completing one cycle, it holds until the next note triggers it again. Use for per-note modulation envelopes.

Presets

Browsing Presets

The preset dropdown organizes configurations by use case. Click any preset name to load it instantly.

Factory Preset Categories

Starting Points

Minimal configurations for learning Formfactor. Single lanes with clear cause-and-effect relationships.

Expression

Velocity and dynamics-focused presets. Direct mappings from playing intensity to modulation.

Rhythmic

Sequencer-driven patterns. Step sequences synced to tempo for pulsing, gating, and rhythmic effects.

Evolving

Slowly-changing modulation from Intensity and Temporal analysis. Creates movement over longer time scales.

User Presets

Save your own configurations using your DAW's preset management or Formfactor's built-in preset system.

Preset Storage Location:

  • macOS: ~/Library/Application Support/Aftertone & Signal/Formfactor/Presets/
  • Windows: %APPDATA%/Aftertone & Signal/Formfactor/Presets/
  • Linux: ~/.config/aftertone-and-signal/formfactor/presets/

MIDI Routing

Formfactor needs MIDI input to analyze and MIDI output to send its generated CCs.

Input Requirements

  • Note-on/off messages for analysis
  • Velocity values for Velocity & Expression mode
  • Transport position for tempo-synced triggers

Output Behavior

  • Pass-through: All incoming MIDI is passed unchanged
  • Generated CCs: New CC messages are added to the stream
  • No conflicts: If your input already contains CC 74, Formfactor's CC 74 output will interleave (consider using different CC numbers)

DAW-Specific Routing

Ableton Live

  1. Insert Formfactor as a MIDI effect on a MIDI track
  2. Place it before your instrument
  3. MIDI flows through automatically

Bitwig Studio

  1. Add Formfactor to a track's device chain
  2. It automatically passes MIDI to downstream devices
  3. Use the built-in modulation system to route Formfactor's output

Logic Pro

  1. Load Formfactor as an Instrument (not effect)
  2. Create a second track with your target instrument
  3. Set the target track's MIDI input to Formfactor's output
  4. Route your keyboard to Formfactor's input

FL Studio

  1. Load Formfactor in a Patcher or as a MIDI effect
  2. Route MIDI from your controller to Formfactor
  3. Route Formfactor's output to your instrument

Automation & Hardware Control

All Formfactor parameters are exposed for DAW automation and MIDI mapping.

Useful Parameters to Automate

  • Active Lanes: Bring lanes in/out during a song
  • Lane Enable: Toggle specific lanes
  • Lane CC Number: Change target parameter mid-song
  • Sequencer Steps: Create evolving patterns
  • Shape Selection: Different shapes for different sections
  • LFO Depth/Rate: Build intensity over time

Hardware Control

Map physical knobs to Formfactor's parameters using your DAW's MIDI learn feature. Particularly useful mappings:

  • LFO Depth on a knob for performance control
  • Density Window to adjust response character
  • Lane base Value for manual CC override

Tips & Techniques

Start Simple

  • Begin with one lane and one analysis mode
  • Mute all other modes to isolate the behavior
  • Add complexity only after understanding each component

Velocity-Controlled Filter

  • Lane 1: CC 74 (Cutoff)
  • Mute all except Velocity
  • Set Velocity Smoothing to 30-50%
  • Hard notes open the filter; soft notes close it

Density-Driven Reverb

  • Lane 1: CC 91 (Reverb Send)
  • Mute all except Density
  • Set Density Window to 500ms
  • Solo notes get more reverb; dense passages stay dry

Rhythmic Pulsing

  • Use sequencer with Beat or HalfBeat trigger
  • Mute all analysis modes
  • Set alternating high/low step values
  • Choose S14 Snap shape for hard gates, S01 Linear for sweeps

Intensity-Aware Expression

  • Lane 1: CC 11 (Expression)
  • Enable Intensity and Velocity modes
  • Set Intensity high (100+)
  • Long phrases gradually lose intensity; rests restore it

Per-Note LFO Envelopes

  • Set LFO Mode to Trig
  • Choose S08 BloomIn for gentle attacks
  • Or S18 BounceOut for plucky response
  • Each note triggers a fresh modulation cycle

Parallel CC Lanes

  • Multiple lanes can target the same CC
  • Use different shapes and modes per lane
  • Values combine for complex, layered modulation

Hardware Synth Modulation

  • Route Formfactor's output to your hardware via MIDI interface
  • Adds LFO shapes your hardware doesn't have natively
  • Use Temporal mode for expression that follows your playing

Parameter Reference

Analysis Parameters

ParameterRangeDefaultDescription
Temporal Sensitivity0-100%50%Temporal analysis response speed
Density Window50-2000 ms500 msEvent density measurement window
Velocity Smoothing0-100%30%Velocity tracking filter amount
Intensity0-127100Initial energy level

Lane Parameters (per lane)

ParameterRangeDefaultDescription
EnableOn/OffOnLane active state
CC Number0-127variesOutput CC number
Channel1-161Output MIDI channel
Value0-12764Base CC value
Step 1-80-127variesSequencer step values
Trigger SourceNoteOn/Beat/HalfBeat/QuarterBeatNoteOnSequencer advance trigger
ShapeS01-S24S01Modulation shape
LFO Depth0-100%0%Blend between sequencer (0%) and LFO (100%)
LFO Rate1/4 beat to 8 bars1 barTempo-synced cycle period
LFO ModeLoop/TrigLoopLFO behavior
Temporal MuteOn/OffOffIgnore temporal analysis
Density MuteOn/OffOffIgnore density analysis
Velocity MuteOn/OffOffIgnore velocity analysis
Intensity MuteOn/OffOffIgnore intensity analysis
Sequencer MuteOn/OffOffIgnore sequencer values

Formfactor v0.1.0
Aftertone & Signal
aftertone.co