pyglet.media.synthesis

class ADSREnvelope

由四部分组成的攻击、衰变、暂停、释放信封。

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

参数:
  • attack (float) -- 攻击时间,以秒为单位。

  • decay (float) -- 衰减时间,以秒为单位。

  • release (float) -- 释放时间,以秒为单位。

  • sustain_amplitude (float) -- 维持幅度(音量),从0.0到1.0。

__init__(
attack: float,
decay: float,
release: float,
sustain_amplitude: float = 0.5,
)
get_generator(sample_rate: float, duration: float) Generator[float]

获取生成器实例。

参数:
  • sample_rate -- 将应用于此的源的采样率。

  • duration -- 源头的持续时间。这用于计算某些信封的字节数。

class Envelope

合成源幅度包封的基本类。

自定义信封只需提供一个 get_generator 采用采样率和持续时间作为参数的方法。

get_generator(sample_rate: float, duration: float) Generator[float]

获取生成器实例。

参数:
  • sample_rate -- 将应用于此的源的采样率。

  • duration -- 源头的持续时间。这用于计算某些信封的字节数。

class FlatEnvelope

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

参数:

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

__init__(amplitude: float = 0.5)
get_generator(
sample_rate: float = None,
duration: float = None,
) Generator[float]

获取生成器实例。

参数:
  • sample_rate -- 将应用于此的源的采样率。

  • duration -- 源头的持续时间。这用于计算某些信封的字节数。

class LinearDecayEnvelope

线性腐烂的信封。

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

参数:
peak浮动

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

__init__(peak=1.0)
get_generator(
sample_rate: float,
duration: float,
) Generator[float]

获取生成器实例。

参数:
  • sample_rate -- 将应用于此的源的采样率。

  • duration -- 源头的持续时间。这用于计算某些信封的字节数。

class Sawtooth
__init__(
duration: float,
frequency: int = 440,
sample_rate: int = 44800,
envelope: Envelope = None,
)

创建锯齿波。

class Silence
__init__(
duration: float,
frequency: int = 440,
sample_rate: int = 44800,
envelope: Envelope = None,
)

创建无声波。

class Sine
__init__(
duration: float,
frequency: int = 440,
sample_rate: int = 44800,
envelope: Envelope = None,
)

创建一个sinus(sine)曲线。

class Square
__init__(
duration: float,
frequency: int = 440,
sample_rate: int = 44800,
envelope: Envelope = None,
)

创建方形(脉冲)波。

class SynthesisSource

合成波形的基类。

参数:
  • generator (Generator) -- 一个从(-1.0,1.0)产生浮点流的波生成器

  • duration (float) -- 要生成的音频的长度,以秒为单位。

  • sample_rate (int) -- 每秒音频样本数。(CD质量为44100)。

  • envelope (Envelope | None) -- 要应用于波形的可选信封。

__init__(
generator: Generator,
duration: float,
sample_rate: int = 44800,
envelope: Envelope | None = None,
)
get_audio_data(
num_bytes: int,
compensation_time: float = 0.0,
) AudioData | None

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

返回类型:

AudioData | None

is_precise() bool

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

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

A source is precise if - for an aligned request of x bytes - it returns::rtype: bool

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

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

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

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

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

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

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

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

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

退货:

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

seek(timestamp: float) None

寻求给定的时间戳。

参数:

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

返回类型:

None

class TremoloEnvelope

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

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

参数:
  • depth (float) -- 波动量,从0.0到1.0。

  • rate (float) -- 波动频率,以秒为单位。

  • amplitude (float) -- 峰值幅度(音量),从0.0到1.0。

__init__(depth: float, rate: float, amplitude: float = 0.5)
get_generator(
sample_rate: float,
duration: float,
) Generator[float]

获取生成器实例。

参数:
  • sample_rate -- 将应用于此的源的采样率。

  • duration -- 源头的持续时间。这用于计算某些信封的字节数。

class Triangle
__init__(
duration: float,
frequency: int = 440,
sample_rate: int = 44800,
envelope: Envelope = None,
)

创建三角形波浪。

class WhiteNoise
__init__(
duration: float,
frequency: int = 440,
sample_rate: int = 44800,
envelope: Envelope = None,
)

创建随机白噪音波形。

composite_operator(*operators: Generator) Generator

组合多个发生器的输出。

这对两个或更多生成器的输出进行简单的和除。返回新发电机。

返回类型:

Generator

noise_generator(frequency: float, sample_rate: float) Generator[float]
pulse_generator(
frequency: float,
sample_rate: float,
duty_cycle: float = 50.0,
) Generator[float]
sawtooth_generator(frequency: float, sample_rate: float) Generator[float]
silence_generator(frequency: float, sample_rate: float) Generator[float]
sine_generator(frequency: float, sample_rate: float) Generator[float]
sine_operator(
sample_rate: int = 44800,
frequency: float = 440,
index: float = 1,
modulator: Generator | None = None,
envelope: Envelope | None = None,
) Generator[float]

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

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

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

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

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

triangle_generator(frequency: float, sample_rate: float) Generator[float]