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: - attack : float
The attack time, in seconds.
- decay : float
The decay time, in seconds.
- release : float
The release time, in seconds.
- sustain_amplitude : float
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: - amplitude : float
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: - peak : float
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: - generator : A non-instantiated generator object
A waveform generator that produces a stream of floats from (-1, 1)
- duration : float
The length, in seconds, of audio that you wish to generate.
- sample_rate : int
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.
-
seek
(timestamp)¶ Seek to given timestamp.
Parameters: timestamp (float) – Time where to seek in the source. The timestamp
will be clamped to the duration of the source.
-
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: - depth : float
The amount of fluctuation, from 0.0 to 1.0.
- rate : float
The fluctuation frequency, in seconds.
- amplitude : float
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_rate : int
Audio samples per second. (CD quality is 44100).
- frequency : float
The frequency, in Hz, of the waveform you wish to generate.
- index : float
The modulation index. Defaults to 1
- modulator : sine_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)¶