pyglet.media.synthesis
- class ADSREnvelope(attack, decay, release, sustain_amplitude=0.5)
A four part Attack, Decay, Suspend, Release envelope.
This is a four part ADSR envelope. The attack, decay, and release parameters should be provided in seconds. For example, a value of 0.1 would be 100ms. The sustain_amplitude parameter affects the sustain volume. This defaults to a value of 0.5, but can be provided on a scale from 0.0 to 1.0.
- Parameters
- attackfloat
The attack time, in seconds.
- decayfloat
The decay time, in seconds.
- releasefloat
The release time, in seconds.
- sustain_amplitudefloat
The sustain amplitude (volume), from 0.0 to 1.0.
- get_generator(sample_rate, duration)
- class FlatEnvelope(amplitude=0.5)
A flat envelope, providing basic amplitude setting.
- Parameters
- amplitudefloat
The amplitude (volume) of the wave, from 0.0 to 1.0. Values outside this range will be clamped.
- get_generator(sample_rate, duration)
- class LinearDecayEnvelope(peak=1.0)
A linearly decaying envelope.
This envelope linearly decays the amplitude from the peak value to 0, over the length of the waveform.
- Parameters
- peakfloat
The Initial peak value of the envelope, from 0.0 to 1.0. Values outside this range will be clamped.
- get_generator(sample_rate, duration)
- class Sawtooth(duration, frequency=440, sample_rate=44800, envelope=None)
- class Silence(duration, frequency=440, sample_rate=44800, envelope=None)
- class Sine(duration, frequency=440, sample_rate=44800, envelope=None)
- class Square(duration, frequency=440, sample_rate=44800, envelope=None)
- class SynthesisSource(generator, duration, sample_rate=44800, envelope=None)
Base class for synthesized waveforms.
- Parameters
- generatorA non-instantiated generator object
A waveform generator that produces a stream of floats from (-1, 1)
- durationfloat
The length, in seconds, of audio that you wish to generate.
- sample_rateint
Audio samples per second. (CD quality is 44100).
- envelope
pyglet.media.synthesis._Envelope
An optional Envelope to apply to the waveform.
- get_audio_data(num_bytes, compensation_time=0.0)
Return num_bytes bytes of audio data.
- class TremoloEnvelope(depth, rate, amplitude=0.5)
A tremolo envelope, for modulation amplitude.
A tremolo envelope that modulates the amplitude of the waveform with a sinusoidal pattern. The depth and rate of modulation can be specified. Depth is calculated as a percentage of the maximum amplitude. For example: a depth of 0.2 and amplitude of 0.5 will fluctuate the amplitude between 0.4 an 0.5.
- Parameters
- depthfloat
The amount of fluctuation, from 0.0 to 1.0.
- ratefloat
The fluctuation frequency, in seconds.
- amplitudefloat
The peak amplitude (volume), from 0.0 to 1.0.
- get_generator(sample_rate, duration)
- class Triangle(duration, frequency=440, sample_rate=44800, envelope=None)
- class WhiteNoise(duration, frequency=440, sample_rate=44800, envelope=None)
- composite_operator(*operators)
- noise_generator(frequency, sample_rate)
- pulse_generator(frequency, sample_rate, duty_cycle=50)
- sawtooth_generator(frequency, sample_rate)
- silence_generator(frequency, sample_rate)
- sine_generator(frequency, sample_rate)
- sine_operator(sample_rate=44800, frequency=440, index=1, modulator=None, envelope=None)
A sine wave generator that can be optionally modulated with another generator.
This generator represents a single FM Operator. It can be used by itself as a simple sine wave, or modulated by another waveform generator. Multiple operators can be linked together in this way. For example:
operator1 = sine_operator(samplerate=44800, frequency=1.22) operator2 = sine_operator(samplerate=44800, frequency=99, modulator=operator1) operator3 = sine_operator(samplerate=44800, frequency=333, modulator=operator2) operator4 = sine_operator(samplerate=44800, frequency=545, modulator=operator3)
- Parameters
- sample_rateint
Audio samples per second. (CD quality is 44100).
- frequencyfloat
The frequency, in Hz, of the waveform you wish to generate.
- indexfloat
The modulation index. Defaults to 1
- modulatorsine_operator
An optional operator to modulate this one.
- envelope
pyglet.media.synthesis._Envelope
An optional Envelope to apply to the waveform.
- triangle_generator(frequency, sample_rate)