Hexaphonic Serial Audio Processor — User Guide

Six independent 12-step control sequences organize amplitude modulation, source-segment duration, stereo position, and tape-speed transposition. The processor moves through four serial transformation sections and repeats the 48-event cycle until the entire source has been consumed.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 0.4 (2026) License: MIT License Repo: Praat AudioTools
Contents:

What this does

Hexaphonic Serial Audio Processor turns one Sound into a sequence of serially controlled stereo events. Six separate 12-value control sequences determine modulation rate, modulation depth, waveform shape, source-segment duration, stereo position, and tape-speed transposition. The sequences are transformed and cross-coupled across four sections, producing a changing but systematically organized set of processing decisions.

“Hexaphonic” refers to six control sequences, not six audio channels. The selected source is intentionally reduced to one mono processing source and every processed event is then placed in a newly created stereo field.

The processor reads forward through the source without rearranging source order. The Duration row decides how much source time each event consumes; the Speed row can make the corresponding output event shorter or longer. When one 48-event serial cycle finishes and source audio remains, the same four-section cycle begins again from its first event.

Processing pipeline

1. Source preparation
Select exactly one Sound → create a zero-based mono working source → retain the original sample rate and source start time.

2. Six control sequences
Parse Rate, Depth, Shape, Duration, Panning, and Speed sequences → generate P, I, R, and RI forms for each sequence.

3. Four serial sections
Process Sections A–D, twelve events per section, using different combinations of P/I/R/RI forms.

4. Event processing
Extract the next source span → apply tape-speed transposition → apply amplitude modulation → convert the mono event to equal-power stereo according to the Panning value.

5. Continue to end of source
After 48 events, repeat the serial cycle if source material remains. The last event is shortened when necessary so source extraction never runs past the end.

6. Assemble output
Concatenate all stereo events in order → restore the original Sound start time → apply Safety peak attenuation only when required.

Six 12-step control sequences

SequenceWhat values 0…11 control
Mod rateAmplitude-modulation rate between Min rate and Max rate.
Mod depthAmplitude-modulation depth between Min depth and Max depth.
Mod shapeSelects sine, triangle, square, or sawtooth modulation.
DurationAmount of source time consumed by the event, between Min duration and Max duration.
PanningPlaces the mono event from full left through exact center to full right.
SpeedTape-speed transposition from −6 to +5 semitones.
A control sequence is not required to be a twelve-tone permutation. Custom sequences must contain exactly 12 integer values in the range 0…11, but values may repeat. Several built-in presets intentionally contain repetitions—for example, the Webern Speed sequence concentrates strongly on value 6. Only Random Permutations constructs six true permutations in which every value 0…11 appears once.

Serial transformations

For every control sequence, the script creates four related forms:

P = original sequence I = 11 − value (complement inversion) R = original sequence reversed RI = reversed complement inversion

I is therefore a direct numerical complement over the 0…11 control range. It is used as a parameter transformation; the script does not transpose an inversion to preserve a particular first element.

Four-section cross-coupling

SectionRateDepthShapeDurationPanSpeed
APPPPPP
BIRPIRI
CRPIRIR
DRIIRRIPRI

One complete pass through A–D contains 48 events. This is a cycle length, not a fixed output segment count: short sounds may end before 48 events, while long sounds can require several cycles. A workload guard stops processing if more than 5000 serial events would be required.

Parameter mapping

Modulation rate

With the default Perceptual rate scaling, Rate values are mapped exponentially:

rate = MinRate × (MaxRate / MinRate)^(value / 11)

When perceptual scaling is disabled, the mapping is linear:

rate = MinRate + (value / 11) × (MaxRate − MinRate)

Modulation depth

depth = MinDepth + (value / 11) × (MaxDepth − MinDepth)

Four AM waveforms

Shape valuesModulatorApplied multiplier
0–2Sine1 + depth × sin(2π rate t)
3–5Triangle1 + depth × triangle(t)
6–8Square1 + depth × square(t)
9–11Sawtooth1 + depth × saw(t)

The modulation is centered around unity gain. With Depth constrained to 0…1, the instantaneous gain remains between 1−depth and 1+depth.

Source duration

source span = MinDuration + (value / 11) × (MaxDuration − MinDuration)

This controls how much of the input timeline is consumed before the next serial event begins.

Tape-speed transposition

semitones = value − 6 speed factor = 2^(semitones / 12)

Value 0 gives −6 semitones, value 6 gives 0 semitones, and value 11 gives +5 semitones. The segment is first reinterpreted at the changed sampling frequency and then resampled back to the original sample rate. This behaves like tape-speed change: pitch and duration change together. Positive transposition shortens the output event; negative transposition lengthens it.

Stereo panning

The Panning sequence uses a piecewise 0…1 map so that row value 6 is exactly center:

value 0 → pan = 0.0 (full left) value 6 → pan = 0.5 (exact center) value 11 → pan = 1.0 (full right) left = cos(π/2 × pan) right = sin(π/2 × pan)

This is equal-power panning, not the linear gain law described in the older documentation.

Presets

The preset chooses the six prime control sequences. Parameter ranges remain controlled by Advanced settings.

PresetImplementation
CustomUses the six sequences entered in the main form.
Classic WebernLoads the script's Webern-labelled six-sequence set.
Berg SymmetricalLoads the Berg-labelled six-sequence set.
Schoenberg Op.25Loads the Schoenberg-labelled six-sequence set.
Chromatic AscentUses strongly ordered ascending/complementary control patterns.
All-IntervalLoads the dedicated AllInterval control set.
Pentatonic SerialLoads the dedicated Pentatonic-labelled control set.
Whole-Tone SerialLoads the dedicated WholeTone-labelled control set.
Random PermutationsGenerates six independent random permutations of 0…11.
The historical names are preset labels for the control material used by this implementation. The processor's behavior is determined by the actual six sequences shown in the Info window after the preset is loaded.

Random reproducibility

Random seed = 0 uses an unpredictable random state. Any non-zero seed initializes the Random Permutations preset predictably, so the same seed reproduces the same six generated sequences.

Advanced settings

ParameterDefaultRoleBehavior
Min / Max rate0.5 / 50 HzRate mappingEndpoints for row values 0 and 11.
Min / Max depth0.05 / 0.95AM depthMust remain within 0…1.
Min / Max duration0.1 / 3.0 sSource segmentationControls source time consumed per event.
Perceptual rate scalingOnRate mappingOn = exponential; Off = linear.
Random seed0Random preset0 = unpredictable; non-zero = repeatable.
Safety peak0.99Output protectionAttenuates only when the assembled output exceeds the target.

Source, channels, timing, and output

Mono analysis/processing source

The selected Sound is deliberately collapsed to mono before serial processing. For multichannel input, Praat first uses Convert to mono. If that downmix almost completely cancels relative to the original peak, the script falls back to channel 1 instead of processing a near-silent cancellation result.

Stereo is newly created

Every processed mono event is copied to left and right with equal-power gains derived from the Panning sequence, then combined to stereo. Consequently, the original stereo or multichannel image is not preserved; spatialization is rebuilt by the serial pan row.

Duration

The whole source is consumed exactly once in forward source order, but output duration is generally different from input duration because tape-speed transposition changes each event's duration. The final source event is truncated at the source end rather than extending beyond it.

Sample rate and start time

The final Sound uses the original sampling frequency. Processing is performed on a zero-based source copy so non-zero input start times do not disturb segment indexing; after concatenation the original Sound start time is restored.

Safety peak

Safety peak is not normalization. The script measures the assembled stereo output and applies gain only when the absolute peak exceeds the requested ceiling. Signals already below the ceiling are left at their existing level.

Visualization

The AudioTools picture summarizes the transformation rather than attempting to plot every parameter of every event.

PanelWhat it shows
InputA mono display copy of the selected source.
OutputA mono display fold-down of the final stereo result.
EventsActual event boundaries on the output-time axis. Colors distinguish Sections A–D. Up to the first 200 events are stored for this timeline.
Rate rowThe 12 values of the prime Rate sequence.
Pan rowThe 12 values of the prime Panning sequence, with row value 6 marked as the exact center reference.
SummaryActual segment count, output duration, rate/depth/duration ranges, speed range, Safety peak, and stereo-output status.
Because tape-speed processing changes event durations, the event timeline is calculated from actual output durations, not from the original source-time segmentation.

Practical reading of the processor

The six sequences form a coordinated control score. A Duration value determines how much source material enters an event; a Speed value determines how that event expands or contracts in the output; Rate, Depth, and Shape determine its amplitude-modulation behavior; and Pan places the resulting event in the stereo field. The P/I/R/RI section scheme changes how those six control streams relate over time, while repeated 48-event cycles allow the same formal mechanism to operate on sources of arbitrary practical length.