【问题标题】:Overlapping one sound multiple times in processing在处理中多次重叠一个声音
【发布时间】:2021-12-04 13:04:27
【问题描述】:

我正在处理交互式装置的声音部分,该部分需要 osc 触发事件的次数未定义,从而使与其关联的声音重叠而不是倒带并重新开始。

是否可以在不需要加载相同声音的数组的情况下做到这一点?

我实际上正在尝试使用处理和最小库来做到这一点。 您认为使用其他编程软件更容易实现吗?我发现自己在尝试使用 puredata 时遇到了同样的困难。非常欢迎任何提示或线索。

非常感谢。

【问题讨论】:

    标签: audio processing interactive puredata minim


    【解决方案1】:

    您将需要多个 阅读器(在 Pd 中 [tabread~] resp [tabplay~];我不知道 Processing/minim,但同样的原则适用)多次读取表格(在并行),每个都可以单独启动。

    但是,您只需要一个数据数组实例(例如[table]),因为不同的读取器可以独立访问同一个数组。

    【讨论】:

    • 您好,感谢您的信息。最后,这就是我在 pd 中所做的:使用 [tabread4~] 和 [phasor~] 构建不同的阅读器,以便从单个音频数组 [table] 独立访问,每个阅读器都有一个控制 int,用于检查它们是否真的在阅读声音。在 osc 消息进来的那一刻,它遍历不同的控制整数,搜索第一个未被读取的整数,因此使用第一个未使用的读取器读取数组。谢谢!
    • 通常您会使用 [poly] 为声音分配音符
    【解决方案2】:

    你可以在 Processing 中使用 Java 库吗?处理是基于 Java 构建的,是吗?

    如果可以的话,我有一个你可以使用的库,它支持一个我称之为AudioCue available via github 的类。这是以 Java Clip 为模型的,但具有附加功能。它允许多个并发播放。 AudioCue 还可以实时控制音量、平移和播放速度,以防您想在安装中添加更多交互性。

    我很想知道它是否可以与 Processing 一起使用。如果您尝试这条路线,请与我联系。我希望看到它完成,并且可以提供帮助。

    如果处理允许您将 PCM 直接发送出去进行播放,那么基本算法是将音频数据存储在一个数组中,并创建指针或游标(取决于您的首选术语)独立地遍历该数组。这是我用于AudioCue 的算法的主要基础,PCM 通过Java SourceDataLine 路由出去。

    【讨论】:

    • 嗨!抱歉,我什至无法将其导入处理。导入音频提示。*;只是不起作用,所以我忽略了如何开始尝试使用它。任何想法?很想尝试一下,如果不是为了这个,也许是为了未来的项目。谢谢!
    • 我必须了解更多关于您试图找出失败是由于处理/Java 不兼容还是由于 import 语句的语法。如果您只提取五个 java 文件(AudioCue.java、AudioCueInstanceEvent.java、AudioCueListener.java、AudioMixer.java、AudioMixerTrack.java),那么您可以编辑它们的包名称以匹配您在 IDE 中找到它们的包名称。你的 IDE 和包结构是什么?
    • 嗨,菲尔。正如你所说,我现在在 processing3 windows 的库文件夹中名为 AudioCue 的文件夹中有五个 .java 文件。写入时 import AudioCue.*;甚至这一行也显示错误:“AudioCue”包不存在。您可能缺少一个库。任何想法?也许你需要一个“library.properties”文件?感谢您的宝贵时间!
    • 我从来没有使用过Processing,我对Processing IDE一无所知。这五个文件中的代码都是核心java。您也许可以手动创建五个具有相同名称的类/接口并将代码复制进去,然后以这种方式使用它。
    猜你喜欢
    • 2015-07-04
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多