# BTDSys Pulsar

## Installation

Unzip BTDSys Pulsar.dll to your Gear\Generators folder, and BTDSys PulsarFX.dll to your Gear\Effects folder.

Note that if you have Cyanphase Overloader 1.5 installed, the parameter window will have visual separators between the parameter groups. So installing the latest Overloader is highly recommended, though not required.

## Introduction

WARNING: This machine is a BETA version. This means:

- You must not use it in songs you want to keep or share (unless the song is specifically meant as a test or demonstration of this beta).
- You must not rely on the machine not to crash, and if it does I can't be held responsible for lost songs or ruined live sets.
- You must report any bugs, feature suggestions, or general comments to me via email or on the buzzmachines.com message board.

This machine implements Pulsar Synthesis, which is a variant of granular synthesis named after the spinning neutron stars which emit periodic signals. Pulsar synthesis was originally developed by Curtis Roads and is described and discussed more fully in Microsound.

One of the distinguishing features of pulsar synthesis is its ability to generate both rhythmic and tonal sounds, depending on the pulsar emission frequency used.

[todo]

## Basics of Pulsar Synthesis

Pulsar synthesis generates a train of pulsars, each of which consists of a pulsaret of duration d followed by a silent interval of length s. The length p = d + s of the pulsar corresponds to the pulsar emission frequency. The pulsaret consists of an arbitrary waveform (shown in black in the diagram above) under an arbitrarily shaped pulsaret envelope (shown in red).

Generally, frequency p dictates the fundamental frequency of the generated tone (or the period of the generated rhythm), while frequency d, the pulsaret waveform and envelope, and other parameters such as masking (discussed later) contribute to defining the timbre or spectral qualities.

[todo]

## PulsarFX

PulsarFX is an effect version of Pulsar. Its operation is mostly the same as the generator, the important difference being that the pulsaret envelope is constantly sampled from the machine's input, rather than being taken from the wavetable.

In this document, any parameters which differ between Pulsar and PulsarFX are denoted (Generator only) or (Effect only). Other than those, all descriptions apply to both machines.

## Parameters

### Global Parameters

Inertia: Controls the glide time for certain parameters. [List of inertia parameters to be compiled]

Freq Mode: Toggles between Linear and Logarithmic frequency sliders (P Freq and D Freq). Logarithmic allows greater resolution at lower frequencies at the expense of less at higher frequencies. Linear has more or less the opposite effect.

Min P Freq: Sets minimum P Freq value.

Min D Freq: Sets minimum D Freq value.

Oversample: Use oversampling to reduce signal aliasing. Default value is 2x, and can be increased up to 32x. Be fore-warned that this is the most computationally intensive part of Pulsar, and high settings will require a lot of CPU power, especially when used in combination with high overlap settings.

DC Removal: Removes any DC offset using a specialized highpass filter to insure maximum dynamic range.

### Track Parameters

Synchronise: (pattern editor only) Resets the LFOs and phase counters, synchronising the machine.

Overlap: Specified the number of simultanteously overlapping pulsarets. Defaults to 1 (off), which allows only one pulsaret to be generated at a time. Increasing this value will allow multiple pulsarets to overlap. In technical terms: the Duty cycle frequency (D Freq) of an individual pulsaret will always complete, regardless if it extends past the pulsar emission frequency (P Freq) which determines the rate at which new pulsars are generated.

This setting can have a significant effect on CPU usage, especially in combination with oversampling. Furthermore, depending on the source material, high overlap values may cause clipping -- it is suggested that you reduce the volume setting before experimenting.

P Freq: Controls the pulsar emission frequency in hertz. This is the rate that new pulsars are generated. See pulsar diagram for detailed explaination.

P Period: Controls the pulsar emission frequency in ticks. This is the rate that new pulsars are generated. See pulsar diagram for detailed explaination.

P Note: (pattern editor only) Sets the note to use for P Freq. P Param must be set to Note for note data to have any effect.

P Param: Selects the parameter that controls the P Freq. Choices are:

- Freq: Uses P Freq parameter (hertz)
- Period: Uses P Period parameters (ticks)
- Note: Uses a Note value (as entered into pattern editor's P Note value)
- Slave: Slaves to previous track's value. No effect if set on track 0.

D Freq: Controls the Duty cycle frequency in hertz. This determines the length of the pulsaret, the audible part of the pulsar. See diagram for detailed explaination.

Volume: Volume of output.

Pan: Pan position of output.

Burst: [todo]

Rest: [todo]

Stoch Mask: Stochastic masking introduces a probability into the otherwise orderly generation of pulsarets. The value of the stochastic mask represents the chance of the current pulsaret being triggered.

Random Pan: The amount of randomness applied to panning position on a per pulsaret basis. Range is from 0% (no random panning) to 100% (full random panning) Note that this setting is relatitve to the absolute track pan position as set via the Pan parameter.

### Envelope/Waveform Section

On/Off: (Generator only) Turns Pulsar's sound generation on or off.

Freeze: (Effect only) When this is On, PulsarFX will stop sampling its source waveform from the input, and keep using the most recently sampled wave.

Wave: (Generator only) Select the wavetable number that Pulsar will use as source material in sound genertion. Values 201 and above use internal waveforms, which consist of: Sine, Sawtooth, Pulse, Triangle, Noise, 303 Sawtooth, Vela_short, [todo]

Start: Specify the start position (in percent) of the waveform selected in the Wave parameter.

End: Specify the end position (in percent) of the waveform selected in the Wave parameter.

Envelope: Select the envelope to be applied to pulsarets. Default is a rectangular envelope. Other selections are Gausian, Linear Decay, Exponential Decay, Linear Attack, Exponential Attack, or a user supplied envelope in the wavetable. See the pulsaret envelope entry in the terminology section for images.

The Gaussian, Exponential Decay, Exponential Attack, and Wavetable envelopes can be altered using the Env Param setting.

Env Wave: Wavetable slot to use for user defined pulsaret envelope.

Env Param: Alters the parameters of the pulsaret envelopes. This has different effects depending on the selected envelope:

- Exp Attack / Exp Decay: Alters the steepness of the exponential curve.
  Default Exponential Attack (note discontinuity at onset)
  Default Exponential Attack (/w normalization)
  Exponential Attack with env param of 0.15 (/w normalization)
  Exponential Attack with env param of 0.7 (/w normalization)
- Gaussian: Alters the variance ("steepness" or "width") of the Gaussian function.
Default Gausian (note discontinuities)
Default Gausian (/w normalization)
Gaussian with env param of 0.1 (/w normalization)
Gaussian with env param of 0.7 (/w normalization)
- Wavetable: Acts as a DC offset parameter, allowing the center of the envelope to be shifted. A value of 1 centers the wave, while a value of 0 shifts the envelope to maximum depth. Will not have any effect if Env Norm is enabled.

Env Norm: Normalizes the pulsaret envelope to the range of 0 to 1. This suppresses discontinuities which sometimes occur at the ends of the Gaussian and Exponential envelopes.

### LFO Section (Low Frequency Oscillator)

LFO1 Period: The period (speed), in ticks, of the LFO waveform.

LFO1 Shape: The waveform the LFO generates. All the usual settings: Sine, Square, Triangle, Ramp Up, Ramp Down, Lin Wander, Cos Wander (like linear wander, except with cosine segments, making it smoother), Random, and Wavetable.

LFO1 Wave: Selects the wavetable slot to use for the LFO waveform (provied Wavetable is selected in LFO Shape).

LFO1 Target: The parameter that LFO will modulate.

LFO1 Track: Selects which track number of Pulsar that the LFO will modulate. It can select from one track or all.

LFO1 Amount: Controls the depth of the LFO upon the targeted parameter. The amount is expressed as a percentage of the parameter's full range.

LFO2: The settings for LFO2 are nearly identical to LFO1, except that it can target the period and amount of LFO1.

## Attributes

Off on stop: Sets whether Pulsar stops generating a signal when the stop button is pressed. 0 = No, 1 = Yes.

LFO Amount midpoint * 1000: Sets the mapping used for the LFO Amount parameters. Values less than 500 give finer control for lower values at the expense of precision for high values, values greater than 500 have the opposite effect (finer control for high values), and exactly 500 gives a linear scale (same precision for the entire range). Technically, what you are setting here is the value corresponding to the parameter slider's midpoint, and an appropriate curve is fit around this to give an overall range of 0% to 100%.

## Visualization

[todo]

## Terminology

Aliasing

: A type of distortion which occurs in digital recording or synthesis when the signal contains frequency components which exceed the Nyquist frequency (sampling rate/2). Because the signal cannot be correctly represented, it becomes aliased at a lower frequency, causing 'phantom' frequencies to arise and interfering with the original frequency content. External Links: Aliasing, Nyquist Theorem

Duty cycle frequency: The frequency (D Freq) which controls the length of pulsarets. Low values may allow pulsarets to overlap. The maximum density of overlaping can be ontrolled via the overlap parameter.

Oversampling: A technique used to reduce the severity of aliasing artifacts in digital audio. Oversampling is a complex subject, but the basic theory behind it is to temporarily increase the sampling rate of digitized audio. By increasing the sampling rate, it becomes significantly easier to filter out frequencies that will cross the Nyquist frequencies and cause aliasing.

Pulsar

: The term to describe the overall output of pulsar synthesis, taking into account all of the variables. Also: A neutron star which rotates at an extremely rapid rate, emitting radiation at a regular interval. These pulses of radio emissions were first detected in 1967, and originally thought to be the product of an extraterrestrial civilization. External Link: Pulsars

Pulsar emission frequency: The frequency (P Freq) at which pulsarets are emitted by the generator.

Pulsaret: A discrete pulse of arbitrary sound, emitted at the pulsar emission frequency (P Freq) and altered in length by the duty frequency (D Freq).

Pulsaret envelope: The amplitude envelope applied to the pulsaret. Different envelopes will affect the spectrum and timbre of the sound, with steeper/discontinuous envelopes generally creating noisier spectra.

## Tips and Tricks

[todo]

## Credits

©2004 Ed Powley.

Documentation, waves and suggestions by K.M. Krebs.

This beta machine may not be redistributed without permission. It may only be downloaded from the alpha/beta page at http://btdsys.cjb.net.

[todo: write more here?]

## References

Microsound. Curtis Roads, MIT Press, 2001.