问题标签 [aksequencer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
44 浏览

arrays - 从Firebase“提前一个文件”下载和加载随机音频文件

我正在研究一个随机音频文件播放项目。我正在寻找一种从远程服务器下载随机音频文件的方法,但要提前准备一个播放列表以实现无缝循环。我想了解如何在播放期间提前下载随机选择的文件,而不是一次下载所有文件。

当我从本地设备加载时,这很容易:我创建了一个数组AKPlayers,每个数组都加载了不同的音频文件,我通过随机调用函数 (randomWithRepeats) 触发它们。

但这一次,这似乎很棘手,因为该文件被放置在远程 URL 上,即 google firebase。

到目前为止,我在 上上传了多个音频文件firebase storage,并创建了完全相同的文件firebase database以比较/更新元数据。下载整个音频文件后,我能够随机播放音频文件。它成功了!但我正在寻找一种只提前下载一个或两个文件的方法,因为 1)首先下载所有内容需要太多时间,以及 2)节省用户的数据空间。

理想情况下,我正在寻找一种逐个下载文件的方法,但随机下载文件,因为 AKPlayer 将播放下一个。就像玩俄罗斯方块一样,用户知道接下来会出现什么块,但它仍然是随机的。(可能与某种播放列表有关??)如果我能在这里得到一些建议,将不胜感激。<3

0 投票
2 回答
72 浏览

swift - 在 AKPlayer 上使用切换(开关)开关

我正在尝试在播放多个 AKPlayers 时实现开关。首先,我调用了两个,由inAKPlayers触发。AKCallbackInstrumentsAKSequencer

当我打开开关时,1)两个 AKPlayer 被分配给 AKMixer,2)Audiokit 启动,3)两个轨道被添加到 AKSequencer,4)Sequencer 启动。

并且当关闭时,1)两个AKPlayers.stop(),2)sequencer.stop()3)sequencer.deleteTrack(trackIndex: 0)sequencer.deleteTrack(trackIndex:1)4)AudioKit.stop()

首先打开和关闭工作成功。但是当我第二次打开开关时,音乐越来越响亮,可能是因为一些 MIDI 音轨/音序器音轨没有完全移除。谁能告诉我我在这里缺少什么?非常感激。<3

0 投票
1 回答
170 浏览

swift - 如何从 AudioKit 中的 AKMusicTrack 输出外部 MIDI

我想知道最好的方法是让 AKSequencer(实际上是 AKMusicTrack)将它的 MIDI 输出到外部设备。

我已经让它工作了,但我觉得可能有一种更有效的方法。

我这样做的方式:

我已经创建了 AKPolyphonicNode 的子类(“MyPolyphonicNode”)

我用它来初始化 AKMIDINode 的子类(“MyMIDINode”),

并将 AKMusicTrack 的输出设置 MIDIoutput 到 AKMIDINode 子类的 midiIn:

然后在 MyPolyphonicNode 子类中,我重写了:

在其代表中:

这行得通,但我认为可能有一种方法可以直接告诉 AKMusicTracks 直接从外部输出而不做所有这些?

0 投票
1 回答
159 浏览

audiokit - AKSequencer 与 Ableton Link

有没有人准确地将AKSequencer与Ableton Link同步?无论我做什么,它根本不同步。

我从 AbletonLink 获取 beatTime 并在此位置播放音序器 + 输出延迟。由于调用函数播放和实际播放之间的延迟是不可预测的,因此它不起作用

0 投票
0 回答
31 浏览

audiokit - AKsequencer 重复时释放(包络)被切断?

我使用MIDI 音符AKSequencer触发AKPlayer,重复某些音频文件。

我的问题是,音频文件有时比指定的 midi 持续时间略长因为音频中包含释放声音。AKPlayer在音序器持续时间结束时似乎没有继续播放文件 - 它立即移动到触发的新文件,因此音频文件的声音总是在结束时略微剪切。有点尴尬。

是否有某种选项,例如“在触发后静音AKDuration”与“触发后继续播放”?我什至不确定这是与 AKplayer 相关还是与 AK-sequencer 相关的问题。非常感谢<3

0 投票
1 回答
981 浏览

ios - 如何使用 AudioKit 的新 AKSequencer 播放 MIDI

我在 AudioKit 4.9.1 上,无法使用新的AKSequencer(替换AKAppleSequencer)播放 MIDI 文件。没有声音播放。假设 MIDI 文件和样本已正确加载,因为它们以前使用AKAppleSequencer. 还启用了背景音频模式功能。

这是相关代码:(我也尝试过AKSamplerAKAppleSampler但结果相同)

如何设置我缺少的信号链有什么不同吗?

0 投票
0 回答
103 浏览

swift - 收听来自 AKSequencer 的 MIDI 事件

音频套件 4.9。我想从新AKSequencer的. 调查源代码我发现有两种方法可以从(in 的内部音序器)接收 MIDI:in和 via 。我找不到任何替代方法,因此我想知道是否有任何方法可以将值传递给of以对应? 我可能错过了一些东西,请解释一个更好的方法来解决这个问题。AKMIDICallbackInstrumentAKAppleSequencerAKSequencerEngineDSPKernelAKSequencerAudioUnitMIDIEndpointAudioUnitAKMIDICallbackInstrumentmidiEndpointAKSequencerEngineDSPKernelAKMIDICallbackInstrumen.midiIn

0 投票
2 回答
595 浏览

ios - AudioKit:将新的 AKSequencer 与各种回调乐器一起使用

该主题已被多次讨论,并且我已在以前的应用程序中成功地使用了AKMIDICallbackInstrument旧的 a。AKAppleSequencer

我开始使用新的AKSequencer,这绝对是惊人的:优雅的界面,易于使用。但是,我一生无法弄清楚如何用它处理回调事件。我需要使用回调来触发基于音序器播放的 GUI 事件。

这是我的示例代码:

这段代码正确地创建了一系列节拍,它通过我的一切都在世界上进行n回放。AKSampler除了没有回调事件发生(使用打印语句确认)

思考过程

使用AKAppleSequencerAKMIDICallbackInstrument,您可以globalMIDIOutput使用AKAppleSequencer的 MIDI 输入来设置AKMIDICallBackInstrument

现在新的AKSequencerAKCallbackInstrument没有这些选项,新的也没有AKSequencerTrack(旧的AKAppleSequencer将使用AKMusicTrack可以设置 midi 输入/输出的对象)。在查看 new 的实现时AKSequencer,它是由AKNode对象驱动的,AKCallbackInstrument 一个AKNode对象,并且应该能够由具有正确 midi 数据的轨道驱动。

我将轨道添加到我的音序器,并从该轨道中添加必要的 midi 数据,这些数据完全复制了我想要回调的 midi 事件并执行我的 GUI 事件。但是,使用这种方法,它似乎不会调用回调。

有谁知道如何通过回调使用这些新组件?我真的不想回去,AKAppleSequencer除非显然没有办法用新的AKSequencer.

0 投票
1 回答
128 浏览

swift - AudioKit:如何动态改变节奏?

我是 AudioKit 和编程音乐应用程序的新手。我正在构建一个节拍器应用程序并使用 AudioKit 的 AKMetronome。我想要一个功能,用户可以指定一系列不同节奏的节拍模式。但是我发现使用苹果的 DispatchQueue 是不准确的。

我正在考虑使用 AKSequencer 重写节拍器。有没有办法使用 AudioKit 的音序器即时更改速度或生成具有多个不同速度的序列?(音序器示例:https ://github.com/AudioKit/Cookbook/blob/main/Cookbook/Cookbook/Recipes/Shaker.swift )

更新:

我发现您可以使用 AKMetronome.callback 为 AKMetronome 分配一个回调函数。(https://audiokit.io/docs/Classes/AKMetronome.html#/s:8AudioKit11AKMetronomeC8callbackyycvp)然后您可以在新序列开始时更新速度。