控制纯数据中信号的相位

Controlling the phase of signal in pure data

我需要找出一种改变信号相位的方法。 Objective是产生两个信号,一个相位改变,并观察组合时的模式。

以下是我目前使用的程序:

和上面的设置一样,我需要用同一个信号来产生一个相位变化的信号,然后把两个信号结合起来观察模式。

有人可以帮我解决这个问题吗?

谢谢。

要改变振荡器的相位,请使用右侧入口。

引用 Johannes Kreidler's Programming Electronic Music in Pd:

3.1.2.1.3 Phase

In Pd, you can also set membrane position for a sound wave where it should begin (or where it should jump to). This is called the phase of a wave. You can set the phase in Pd in the right inlet of the "osc~" object with numbers between 0 and 1:

A wave's entire period is encompassed by the range from 0 to 1. However, it is often spoken of in terms of degrees, where the entire period has 360 degrees. One speaks, for example, of a "90 degree phase shift". In Pd, the input for the phase would be 0.25.

因此,例如,如果您想观察两个信号如何由于破坏性干扰而变得静音,您可以尝试这样的操作:

请注意,我连接了一个 bang 以同时调整两个信号的相位。这很重要,因为虽然您可以随时将信号的相位重置为 0.0 和 1.0 之间的任何值,但不会重置另一个振荡器,因此结果将非常随机(您永远不知道哪个相位值其他信号将在!)。所以重置两者就可以了。

使用 [osc~] 对象的右入口是设置振荡器相位的有效方法,但它不是唯一甚至不是最正确的方法。右入口仅允许在 控制水平 .

浮动

可以使用 [phasor~]、[cos~]、[wrap~] 和 [+~] 在 信号级别 完成更全面的相位操作对象。本质上,您使用 table lookup 使用 [phasor~] 和 [cos~] 的技术执行与 [osc~] 相同的功能。你也可以用 [tabread4~] 而不是 [cos~] 阅读另一个 table。

这项技术可以让您的振荡器保持同步。您可以使用其他振荡器、table 查找来操纵振荡器的相位,当然仍然浮动(只要相位值在 0 和 1 之间,因此是 [wrap~] 对象)。

phase modulation at the signal level

之后,像这里的其他例子一样,你可以把信号加在一起写到对应的table或者输出信号链,或者两者兼而有之。

以下是您可以对自定义 table 查找执行相同操作的方法。当然,您可以将 sometable 替换为您自定义的 table 名称,并将 num-samp-in-some-table 替换为table.

中的样本数

signal level phase modulation with custom tables

希望对您有所帮助!