pyglet.media.synthesis

class ADSREnvelope(attack, decay, release, sustain_amplitude=0.5)

一个由攻击、腐烂、暂停、释放四部分组成的封套。

这是一个四部分的ADSR信封。攻击、衰减和释放参数应以秒为单位提供。例如,值0.1将是100ms。IMPORT_AMPLATE参数会影响维持音量。该默认为0.5,但可以在0.0到1.0的范围内提供。

参数:
attack浮动

攻击时间,以秒为单位。

decay浮动

衰减时间,以秒为单位。

release浮动

释放时间,以秒为单位。

sustain_amplitude浮动

维持幅度(音量),从0.0到1.0。

get_generator(sample_rate, duration)
class FlatEnvelope(amplitude=0.5)

平坦的包络,提供基本的幅度设置。

参数:
amplitude浮动

波的幅度(体积),从0.0到1.0。超出此范围的值将被钳制。

get_generator(sample_rate, duration)
class LinearDecayEnvelope(peak=1.0)

线性腐烂的信封。

该包络在整个波形长度上线性地将幅度从峰值衰减到0。

参数:
peak浮动

包络的初始峰值,从0.0到1.0。超出此范围的值将被钳制。

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)

合成波形的基类。

参数:
generator未实例化的生成器对象

从(-1,1)产生浮点流的波形产生器

duration浮动

要生成的音频的长度,以秒为单位。

sample_rate集成

每秒音频样本数。(CD质量为44100)。

envelopepyglet.media.synthesis._Envelope

要应用于波形的可选信封。

get_audio_data(num_bytes, compensation_time=0.0)

返回 num_bytes 音频数据的字节数。

is_precise() bool

布尔:这个消息来源是否被认为是准确的。

x 源上的字节数 s 如果符合以下条件,则被视为对齐 x % s.audio_format.bytes_per_frame == 0 ,因此在返回的数据中不会有部分音频帧。

源是精确的If-对于对齐的请求 x 字节-它返回:

  • 如果 x 或更多字节可用, x 字节。

  • 如果不再有足够的字节可用, r 字节数,其中 r < xr 是对齐的。

一个消息来源是 not 如果它执行以下任一操作,则精确:

  • 返回值小于 x 的对齐请求的字节数 x 字节,但数据仍然保留,因此其他请求将返回 AudioData /NOT None

  • 返回的字节数多于请求的字节数。

  • 为对齐的请求返回未对齐的字节数。

可以保证,pyglet的内部永远不会发出未对齐的请求或小于1024字节的请求。

如果此方法返回 False ,pyglet将把源代码包装在一个强制对齐的缓冲区中,从而产生额外的开销。

如果重写此方法以返回 True 虽然信号源不符合上述要求,但在最好的情况下,音频播放可能会受到负面影响,在最坏的情况下,可能会发生内存访问违规。

退货:

布尔:消息来源是否准确。

seek(timestamp)

寻求给定的时间戳。

参数:

timestamp (float) -- 在哪里寻找源头的时间。这个 timestamp 将钳制到源码的持续时间。

class TremoloEnvelope(depth, rate, amplitude=0.5)

一种用于调制幅度的颤音包络。

一种用正弦模式调制波形幅度的颤音包络。可以指定调制的深度和速率。深度以最大幅度的百分比计算。例如:深度为0.2,振幅为0.5将使振幅在0.4和0.5之间波动。

参数:
depth浮动

波动量,从0.0到1.0。

rate浮动

波动频率,以秒为单位。

amplitude浮动

峰值幅度(音量),从0.0到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)

一种正弦波发生器,可以选择用另一台发电机进行调制。

该生成器代表单个调频运算符。它可以单独用作简单的正弦波,也可以由另一个波形发生器进行调制。可以通过这种方式将多个运算符链接在一起。例如::

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)
参数:
sample_rate集成

每秒音频样本数。(CD质量为44100)。

frequency浮动

要生成的波形的频率,以赫兹为单位。

index浮动

调制指数。默认为1

modulatorsine_operator

一个可选的运算符来调制这个。

envelopepyglet.media.synthesis._Envelope

要应用于波形的可选信封。

triangle_generator(frequency, sample_rate)