UPIC Draw Synthesis — User Guide
Draw a macro pitch arc, a micro waveform, and a dynamic envelope for each voice, then realize the same graphic material as a single UPIC-style line, a Xenakis-inspired sound mass, or a GENDYN-inspired living stochastic mass.
What this does
UPIC Draw Synthesis is a graphic synthesis environment built entirely inside Praat. Each arc is defined by three connected drawings: a pitch trajectory over time, a single-cycle waveform, and a dB envelope.
The distinctive feature is that the drawing is only the compositional structure. The same arc can be rendered in three different ways: as one deterministic line, as a population of related glissando trajectories, or as a stochastic population whose pitch and waveform evolve around the drawing.
Quick start
- Run
UPIC_Draw_Synthesis.praat. No input Sound is required. - Choose a preset: UPIC Pure, Xenakis Mass, GENDYN Mass, or Custom.
- Set the duration, number of arcs, and frequency range.
- On the macro screen, click points to draw the current pitch arc and its dB envelope.
- Press Tab or M to switch to the micro screen and reshape the waveform polygon.
- Press keys 1–6 to select another arc.
- Press R to cycle the current arc between Line, Mass, and Stochastic Mass.
- Press Enter to render and audition the current arc.
- Press F to render the complete composition.
The three drawn layers
| Layer | Domain | Function |
|---|---|---|
| Pitch arc | Time × frequency | Defines the macro frequency trajectory. The frequency axis is logarithmic, so straight lines correspond to straight pitch glissandi. |
| Waveform polygon | Phase 0–1 × amplitude −1…1 | Defines one cycle of the oscillator. In GENDYN-like operation it becomes an attractor around which breakpoint amplitudes and phase positions evolve. |
| Envelope | Time × dB | Controls relative gain. In mass modes it can also control how many members of the population are active. |
The waveform is periodic: its final breakpoint joins the first breakpoint of the next cycle. Its cycle mean is removed before rendering so that the drawn waveform does not introduce a static DC offset.
Realization modes
| Mode | What the drawing becomes |
|---|---|
| Line | One oscillator follows the drawn pitch arc and reads the drawn waveform. This is the most direct UPIC-like realization. |
| Mass | The arc becomes a population of related voices. Members receive structured pitch offsets, different glissando slopes, onset scatter, gain scatter, random phase, and optional stereo dispersion. |
| Stochastic Mass | The Mass realization plus correlated pitch drift for each member. The population is no longer a fixed fan but a continuously moving statistical field. |
Realization is stored per arc, so one composition can combine deterministic lines, stable masses, and stochastic masses simultaneously.
Xenakis-inspired mass engine
In Mass mode the drawn pitch line becomes the centre of a population. Each member receives a static pitch offset and its own variation of the glissando slope:
The dispersion factors are distributed around zero, so the population is designed to remain centred on the drawn trajectory while opening into a fan or wedge.
Population members also receive independent:
- starting phase,
- onset delay,
- gain deviation,
- position within the pitch spread,
- equal-power stereo position when stereo width is active.
GENDYN-inspired waveform evolution
The drawn waveform can act as an attractor rather than a permanently fixed wavetable. At the selected mutation rate, every breakpoint amplitude and breakpoint phase position undergoes correlated Ornstein–Uhlenbeck motion around the drawn polygon.
The correlation parameter controls persistence. High values produce slow, continuous wandering; lower values produce faster and less correlated change. Breakpoint positions are constrained so that they remain ordered inside the cycle.
The evolving cycles are baked into a two-dimensional phase × time wavetable and read by each oscillator during synthesis. The mean of each waveform frame is removed before playback.
Density & register fields
Envelope-driven population density
In mass modes, the dB envelope can control both acoustic level and the number of active population members:
Members enter in order of distance from the central drawn line. As the population opens, the result can move perceptually from a thin trajectory toward a thickened line and finally a full sound mass.
Register field
The register field does not apply an EQ filter. Instead, it weights which population members exist at each moment.
| Field | Population behavior |
|---|---|
| None | All members are available. |
| Hollow centre | Suppresses members near the central trajectory and emphasizes the outer population. |
| Low to high | A moving population window travels from the lower to the upper side of the mass. |
| High to low | The same movement in the opposite direction. |
| Moving window | A sinusoidally moving region selects changing portions of the population. |
| Alternating bands | Creates changing internal bands across member position and time. |
Structural roughness
There is no separate noise-effect stage. Instead, disorder increases as the mass becomes wider and denser. The engine derives a roughness factor from pitch spread and the current active population fraction:
This factor increases the stochastic innovations used by waveform mutation and pitch drift. Consequently, a broad and densely populated mass becomes less stable through the same structural conditions that make it large.
Energy & stereo
Population energy
Each member is scaled approximately by:
This prevents population level from growing linearly with the number of members while still allowing dense realizations to retain their own energy profile.
The final mix is not automatically normalized. A peak guard rescales the result to 0.99 only if its raw peak exceeds the safe range.
Stereo mass width
When stereo width is greater than zero, members are distributed across an equal-power stereo field. With zero width the result is mono.
Presets
| Preset | Purpose |
|---|---|
| Custom | Uses the selected realization and the editable mass / GENDYN settings. |
| UPIC Pure | One deterministic voice per arc, no mass spread, no waveform mutation, no density coupling, mono. |
| Xenakis Mass | Sixteen voices per arc with pitch spread, glissando dispersion, onset and gain scatter, density coupling, and stereo width. Waveform mutation is disabled. |
| GENDYN Mass | Sixteen stochastic-mass voices with pitch spread and slope dispersion plus waveform-amplitude mutation, breakpoint drift, correlated evolution, density coupling, and stereo width. |
Controls
Main form
| Control | Default | Function |
|---|---|---|
| Preset | Custom | Selects Custom, UPIC Pure, Xenakis Mass, or GENDYN Mass. |
| Duration_s | 8 s | Duration of the complete synthesis page. |
| Number_of_arcs | 4 | Number of editable arcs; accepted range is 1–6. |
| Lowest_frequency_Hz | 55 Hz | Bottom of the logarithmic pitch display. |
| Highest_frequency_Hz | 1760 Hz | Top of the pitch display; must remain below 0.45 × sample rate. |
| Sample_rate | 44100 Hz | 22050 or 44100 Hz. |
| Realization | Stochastic Mass | Default realization assigned to the arcs in Custom mode. |
| Mass_voices_per_arc | 12 | Population size in Mass and Stochastic Mass; accepted range is 1–32. |
| Random_seed | 12345 | Positive values reproduce the same stochastic population. Non-positive values request a generated seed. |
| Edit_mass_and_GENDYN_details | Off | Opens the detailed mass, GENDYN, density, register, and stereo controls. |
| Keep_individual_arcs | Off | Retains separately rendered arc Sounds in addition to the final mix. |
Detailed mass & GENDYN controls
| Control | Custom default | Function |
|---|---|---|
| Pitch spread cents | 80 | Static population thickness around the drawn trajectory. |
| Glissando dispersion percent | 25% | Changes member slopes around the drawn slope, producing fans and wedges. |
| Onset scatter ms | 30 ms | Randomizes member entry times. |
| Gain scatter dB | 3 dB | Randomizes member gains before 1/√N population scaling. |
| Waveform mutation percent | 20% | Stationary amplitude deviation of waveform breakpoints around the drawing. |
| Breakpoint drift percent | 5% | Allows waveform breakpoint positions to move around their drawn phase positions. |
| Mutation correlation | 0.90 | Persistence of the stochastic waveform and pitch-drift process. |
| Mutation rate Hz | 25 Hz | Temporal update rate of the evolving wavetable and stochastic control processes. |
| Envelope density coupling percent | 50% | Amount by which negative envelope values reduce the active member count. |
| Register field | None | Selects which region of the population exists over time. |
| Stereo mass width percent | 70% | Width of the equal-power member distribution; zero produces mono. |
Interaction
| Action | Function |
|---|---|
| Click | Add a point, or move an existing point at approximately the same time / phase. |
| U | Undo the most recent add or move. |
| 1–6 | Select the arc to edit. |
| Tab / M | Switch between macro pitch/envelope editing and micro waveform editing. |
| R | Cycle the selected arc through Line → Mass → Stochastic Mass. |
| Enter | Render and play the current arc. |
| F | Render, mix, visualize, and play the complete page. |
| Esc | Cancel the session. |
Visualization
The Demo-window display exposes both the graphic source and the behavior of the realization engine.
Macro view
Shows all drawn pitch arcs on a logarithmic frequency axis. Mass realizations additionally display the static population fan generated by pitch offsets and glissando dispersion.
Envelope view
Shows the current arc's dB trajectory, including the dedicated bottom region used as an explicit off / silence state.
Micro view
Shows the drawn waveform polygon and the rendered-cycle preview. In stochastic configurations the drawing is interpreted as the centre of a time-evolving waveform population.
Result view
After final rendering, the display shows the completed pitch-arc structure together with the rendered output and spectral result, allowing the drawn geometry to be compared with the realized sound mass.
Outputs
| Output | Purpose |
|---|---|
UPIC_mix | The final composition containing all rendered arcs. |
UPIC_arc1, UPIC_arc2… | Optional per-arc Sounds when Keep_individual_arcs is enabled. |
| Info report | Summarizes the arc geometry, waveform data, realization choices, population behavior, and final output levels. |
| Demo / result visualization | Shows the relationship between drawn arcs, mass realization, waveform structure, and final output. |
Notes & limitations
- Polygon drawing. The editor uses clicked vertices rather than freehand dragging.
- Offline rendering. Praat scripting blocks during processing; audio is heard after committing an arc or rendering the full composition.
- Maximum six arcs. Each arc may contain up to 32 mass members, subject to the workload guard.
- Fixed page duration. The complete session uses one time axis and does not provide zoom or multiple pages.
- Waveform aliasing. Piecewise-linear waveform polygons are not band-limited; rich waveforms can alias at high oscillator frequencies.
- Static fan preview. The macro editor visualizes pitch offsets and glissando dispersion, while stochastic drift, onset/gain scatter, density, and register-field effects are primarily audible and become apparent in the rendered result.
- GENDYN-inspired, not a historical emulation. The dynamic waveform process uses correlated attractor motion around a user-drawn cycle.
- Seeded stochasticity. With a positive seed, the stochastic population is reproducible.
Citation
Praat AudioTools: Cohen, S. (2026). Praat AudioTools: An Offline Analysis–Resynthesis Toolkit for Experimental Composition.