纯数据开关

时间:2014-07-01 12:26:53

标签: puredata

我有这个简单的补丁:

Simple Patch Diagram

现在我将游戏控制器连接到Pd,其中按键给我1或0,具体取决于我是否按下按钮。

如果我按下我的按钮,我想要播放"播放"如果我发布它应该停止。

但是:我无法找到连接开关的位置。 我不想关掉DSP,因为我想在同一时间用另一个键播放另一个声音。

如果你们中的任何人都有解决方案,那就太好了

修改: 好的,以下解决方案有效,如果我已经完成了项目的需要(使用游戏控制器作为仪器),请直接与我联系。

3 个答案:

答案 0 :(得分:4)

在Pd中切换信号是通过将信号乘以0或1来完成的。信号的乘法是用对象*~完成的。由于你的游戏控制器已经有0和1,这应该很容易。但是,您将开始听到咔嗒声,具体取决于突然关闭时正弦波的位置。要解决此问题,请添加line~对象并使振荡器进入和退出。

答案 1 :(得分:4)

这是通过音频乘法对象[*〜]和0或1来完成的,如前面的答案所述。

这是一个简单的示例,带有PureData切换框(输出0或1,与游戏手柄按钮相同):

Simple audio on-off in Pd

source

对象[line~]从0到1平滑过渡并在100毫秒的过程中返回(上面的消息框用它输入替换令牌$ 1),这提供了一个音量包络并停止点击,当音调级别突然变化时可能会发生。如果您希望此更改立即发声,仍然使用[line~]但将100更改为10。

如果对您有任何帮助,我也有a tutorial on using game pads in pure data

答案 2 :(得分:1)

要记住的一点是,当打开LFO时,其相位的影响是可听见的。因此,根据振荡器的频率,在开启时控制其相位是可取的。您可以将数字参数(0-1)发送到右侧入口以控制相位。例如,如果您希望每次打开osc时LFO都减速,您可以向右侧入口发送0以在阶段开始时启动。

如果你走这条路线,你必须包括一个触发器,在你将一个发送到相位入口之前强制爆炸到斜坡。否则每次打开时都会听到剪辑。这对于缩短斜坡时间尤为重要。在" 2下的PureData的帮助文件中有关于使用触发器的爆炸顺序的更多信息。 control.examples / 03.connections.pd"

关闭时,可能没有理由向osc发送相位参数,因此您只需添加一个选择原子来指示开关,具体取决于您是打开还是关闭。