Audio 纯数据:动态地将音频信号路由到不同的通道

Audio 纯数据:动态地将音频信号路由到不同的通道,audio,puredata,Audio,Puredata,我正在为一个项目使用纯数据,在这个项目中,我将同时向不同的扬声器播放多个音频文件 假设我有两个文件,我想在声卡的左声道播放一个,在右声道播放第二个,这是dac~12对象的第一个和第二个入口 如何根据另一个值传送音频信号 我基本上是在寻找类似于route对象的东西,但是有一些额外的参数,或者用一些方法将音频信号与频道号(1,2)打包,并使用该号码来路由信号 我刚刚发现Yves Degoyon的“unauthorized”库中有一个spiget~对象,它可以满足我的需要,但只有两个通道。最后,我希望

我正在为一个项目使用纯数据,在这个项目中,我将同时向不同的扬声器播放多个音频文件

假设我有两个文件,我想在声卡的左声道播放一个,在右声道播放第二个,这是
dac~12
对象的第一个和第二个入口

如何根据另一个值传送音频信号

我基本上是在寻找类似于
route
对象的东西,但是有一些额外的参数,或者用一些方法将音频信号与频道号(1,2)打包,并使用该号码来路由信号


我刚刚发现Yves Degoyon的“unauthorized”库中有一个
spiget~
对象,它可以满足我的需要,但只有两个通道。最后,我希望能够将不同的声音输出到八个或九个通道。

您可以使用Zexy库中的[demultiplex~]将一个输入信号路由到多个出口中的一个。例如,[demultiplex~1 2 3 4]将有一个入口和四个出口。单入口接收输入信号(将被路由)和选择信号将被路由到的出口的单浮子。对于相反的行为(多个输入信号到多个入口,其中只有一个由单个出口输出),请尝试[multiplex~]


还请注意,您可以使用[mux~][demux~],因为它们是这些相同对象的别名。

Pd extended不再维护。您可以通过Debian软件包或Deken插件为Vanilla Pd安装Zexy。然后您将有可用的
解复用
对象。但是,可能有很好的理由说明您根本不想使用外部接口。这里有一种方法可以连接一种交换机。附加好处:您可以指定您最喜欢的淡入淡出时间和类型


根据Max N应答,您还可以使用切换来修改信号的音量,并知道信号重定向的位置:


在这种情况下,如果开关处于激活状态,信号将在左侧出口发送。如果它处于非活动状态,则右侧插座将收到信号。

我不知道您可以在vanilla PD上安装外部软件包。Pd extended不再维护是一个问题吗?我想我更喜欢UI的某些方面……至于你建议的解决方案,我考虑过类似的东西,但没有找到干净和功能性的东西。谢谢“然而,可能有很好的理由说明你根本不想使用外部设备。”你能给出其中一些理由吗?我从来没有领导过任何人主张在Pd中避免外部行为。另外,使用[demux~]的一个明显优点是,它可以动态创建尽可能多的入口arguments@Niavlys“Pd extended不再维护是一个问题吗?”这不是一个问题,只不过你永远不会修复bug(其中有些bug),也不会得到与更新版本一起提供的更新对象。如果您使用的是Linux,我建议您看看第三个Pd发行版Pd-l2Ork(它可能很快会针对OSX和Windows发布)。它的GUI非常棒,而且维护得非常好。@gilberto.agostinho。当然,这里有三个:1。您希望创建一个无依赖项或最小化依赖项的修补程序,以便更容易被其他人打开。2.您希望在另一台设备上运行修补程序,可能是使用libpd,但不希望附带另一个库。3.您希望使用外部冲突的许可证部署项目(例如,您不想发布所有源代码的商业项目)。@MaxN[clone]在这里对您没有帮助;有了Pd-0.47-0,我们终于有了
[initbang]
,它允许您创建
[demux~]
作为一个抽象-但是
[initbang]
只能作为一个外部文件使用:-(顺便说一句,
[demux~)
是zexy的一部分,而不是Pd extended;Pd extended预装了zexy,但有许多不同的安装方法…@umläute我编辑了答案并删除了对Pd extended的引用,而不是[expr 1-$f1],您也可以简单地使用[==0]。请注意,此解决方案将在没有声音和衰减时间的情况下硬切换音频。这可能会导致持久性有机污染物。