首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在Audiokit中使用AKMIDISampler调试神秘的正弦波

尝试在Audiokit中使用AKMIDISampler调试神秘的正弦波
EN

Stack Overflow用户
提问于 2017-11-07 22:18:50
回答 4查看 497关注 0票数 4

在使用previous issue之后,我不再使用AKSampler来使用AKMIDISampler中使用的功能。让我的循环再次工作(在这个Google Groups post的帮助下),但我有一个正弦波播放(这发生在MIDISampler找不到它的源文件时)。

这不是我所针对的源文件的问题,因为它们都运行得很好。正弦波来自这个过程中的其他地方,但我看不到在哪里……

请帮帮忙8·)

(简化和编辑代码,仅显示相关细节-如有任何澄清,请联系)

代码语言:javascript
复制
var MIDISamplePlayer = AKMIDISampler()
var sequencer: AKSequencer?
var mixer: AKMixer!

// initialise the mixer
mixer = AKMixer()

do  {
        audiofile = try AKAudioFile(readFileName: SoundFilename as! String, 
        baseDir: .resources)
    } catch let error as NSError {
        print("There's an error: \(error)")
    }

do {
       try sprite.MIDISamplePlayer.loadAudioFile(audiofile)
    } catch let error as NSError {
       print("There's an error: \(error)")
    }

sprite.tracker = AKAmplitudeTracker(sprite.MIDISamplePlayer)
mixer.connect(to:sprite.tracker, bus: mixer.nextInput.bus)

sequencer = AKSequencer(filename: POPmidi)
sequencer?.enableLooping()

let midi = AKMIDI()

for i in 0..<popCount {
    gPOPs[i].MIDISamplePlayer.enableMIDI(midi.client, name: "MIDISample_\(i)")
    mixer.connect(gPOPs[i].MIDISamplePlayer)
    sequencer!.tracks[i].setMIDIOutput(gPOPs[i].MIDISamplePlayer.midiIn)
}

AudioKit.start()
sequencer!.play()
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-11-18 06:01:59

我找到了这个问题的原因。我了解到,当我给MIDI音轨指定数量时,MIDI音序器正在创建一个额外的音轨;对于我的midi文件中的四个音轨,音序器给我五个音轨。这个额外的音轨用于节拍(作为discovered here)。

我还了解到,我的第一首曲目在我的.plist (我为不同的歌曲设置词干)中被忽略了。

测试了我的假设,即第一个曲目用于节奏曲目,当我在.plist中创建了五个曲目来匹配音序器时,正弦波音调消失了。

这导致了一种变通方法。为此,我复制了.plist中的第一个样本,然后将代表此声音的sprite隐藏在屏幕之外。这是目前的工作,但如果谁有一个想法,如何控制这个节奏轨道和它在AKSequencer中的使用,我很想知道更多。

因此,简而言之:确保MIDI文件中包含您想要使用的曲目的确切数量。创建要在AKSequencer中使用的相同数量的AKMIDISampler,为tempo曲目添加一个。然后请注意,音序器中的第一个音轨是节拍音轨,不能播放样本。

票数 2
EN

Stack Overflow用户

发布于 2017-11-17 02:01:04

这只是一个猜测,但将音频文件放在采样器喜欢的位置是一个非常常见的问题。尝试将音频文件放在Samples/文件夹中,如以下示例所示:

http://audiokit.io/playgrounds/Playback/Sequencer/ http://audiokit.io/playgrounds/Playback/Sampler/

或者我认为Sound或"Sampler Instruments“文件夹的工作效果与Sampler Demo中的一样好:

https://github.com/AudioKit/AudioKit/tree/master/Examples/iOS/SamplerDemo/SamplerDemo/Sounds

票数 1
EN

Stack Overflow用户

发布于 2018-03-11 14:23:23

我的代码中也有一个神秘的正弦波。在我的情况下,事实证明我有一个额外的出现以下代码:

代码语言:javascript
复制
AudioKit.output = sampler

所以我意外地指定了两次AudioKit.output。在去除额外的出现后,正弦波消失了。我不确定这是如何导致正弦波的,但我在这里留下这个答案,以防它能帮助其他可能有类似问题的人。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47160168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档