pyglet.media.synthesis
- class ADSREnvelope
由四部分组成的攻击、衰变、暂停、释放信封。
这是一个四部分的ADSR信封。攻击、衰减和释放参数应以秒为单位提供。例如,值0.1将是100ms。IMPORT_AMPLATE参数会影响维持音量。该默认为0.5,但可以在0.0到1.0的范围内提供。
- 参数:
- class Envelope
合成源幅度包封的基本类。
自定义信封只需提供一个 get_generator 采用采样率和持续时间作为参数的方法。
- class LinearDecayEnvelope
线性腐烂的信封。
该包络在整个波形长度上线性地将幅度从峰值衰减到0。
- 参数:
- peak浮动
包络的初始峰值,从0.0到1.0。超出此范围的值将被钳制。
- __init__(peak=1.0)
- class Sawtooth
- class Silence
- class Sine
- class Square
- class SynthesisSource
合成波形的基类。
- 参数:
- __init__( )
- 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 < x
和r
是对齐的。
一个消息来源是 not 如果它执行以下任一操作,则精确:
返回值小于
x
的对齐请求的字节数x
字节,但数据仍然保留,因此其他请求将返回AudioData
/NOTNone
。返回的字节数多于请求的字节数。
为对齐的请求返回未对齐的字节数。
可以保证,pyglet的内部永远不会发出未对齐的请求或小于1024字节的请求。
如果此方法返回
False
,pyglet将把源代码包装在一个强制对齐的缓冲区中,从而产生额外的开销。如果重写此方法以返回
True
虽然信号源不符合上述要求,但在最好的情况下,音频播放可能会受到负面影响,在最坏的情况下,可能会发生内存访问违规。- 退货:
布尔:消息来源是否准确。
- class TremoloEnvelope
一种用于调制幅度的颤音包络。
一种用正弦模式调制波形幅度的颤音包络。可以指定调制的深度和速率。深度以最大幅度的百分比计算。例如:深度为0.2,振幅为0.5将使振幅在0.4和0.5之间波动。
- 参数:
- class Triangle
- class WhiteNoise
- composite_operator(*operators: Generator) Generator
组合多个发生器的输出。
这对两个或更多生成器的输出进行简单的和除。返回新发电机。
- 返回类型:
- sine_operator(
- sample_rate: int = 44800,
- frequency: float = 440,
- index: float = 1,
- modulator: Generator | None = None,
- envelope: Envelope | None = 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
modulator -- 一个可选的运算符来调制这个。
envelope -- 要应用于波形的可选信封。