2017-11-07 4 views
3

previous issue에서이어서 AKSampler을 사용하여 AKMIDISampler에서 사용 된 기능으로 이동했습니다. 내 루프가 다시 (이 Google Groups post에서 도움을) 일하고 있지만, 나는 (MIDISampler가 소스 파일을 찾을 수없는 경우) 발생하는 사인파를 가지고있다.Audiokit에서 AKMIDISampler를 사용하여 미스테리 사인파 디버깅 시도

모두 대상으로하는 것이므로 대상으로하는 소스 파일에 문제가 없습니다. 대한 연락하십시오 -

에만 관련 세부 정보를 표시하기 위해 8 •)

(간체 및 편집 코드를 도와주세요 ... 정현파 과정에서 다른 곳에서오고,하지만 어디서 볼 수 없습니다 어떤 설명)

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() 
+1

AVAudioUnitSampler가 iOS에서 사인파를 재생하는 또 다른 사례를 발견했습니다. 백그라운드 오디오 용으로 plist를 설정하지 않으면 샘플러를로드 할 때 샘플러가 성공하지만 여전히 기본 사인파를 재생합니다. –

+0

이 입력에 감사드립니다. Eric. 이미 필요한 배경 음악을 사용할 수 있습니다 :''필요한 배경 모드 : 내가 생각한 설정 인 앱에서 오디오를 재생하거나 AirPlay를 사용하여 오디오/비디오를 스트리밍합니다. 가능한 소스로 AVAudioUnitSampler를 조사하겠습니다. –

+0

https://stackoverflow.com/questions/47335779/issues-with-extra-midi-track-being-created에서 설명한대로 템포 트랙에서 올 수 있습니까? - in - aksequencer - 사용 - audiokit? –

답변

1

이 문제의 원인을 발견했습니다. 필자는 MIDI 시퀀서가 특정 수의 MIDI 트랙을 만들었을 때 추가 트랙을 만들었다는 것을 알게되었습니다. 내 미디 파일에있는 네 개의 트랙에서 시퀀서는 나에게 다섯을주고 있었다. 이 추가 트랙은 템포 (예 : discovered here) 용입니다.

나는 또한 내 첫 트랙이 내 .plist (다른 곡의 줄기를 설치 한 곳)에서 무시되고 있다는 것을 알게되었습니다.

첫 번째 트랙이 템포 트랙에 사용되고 있다고 가정하고, .plist에서 다섯 개의 트랙을 만들어 시퀀서와 일치 시키면 사인파 톤이 사라졌습니다.

이렇게하면 해킹 해킹이 발생할 수 있습니다. 어쨌든 무시되고 있던 .plist에서 첫 번째 샘플을 복사 한 다음이 사운드를 화면에 표시하는 스프라이트를 숨겨서이 작업을 수행했습니다. 이것은 현재 작동하지만 누군가가이 템포 트랙과 그 사용법을 제어하는 ​​방법에 대한 아이디어가 있다면 AKSequencer 더 알고 싶습니다.

이렇게 짧게 : MIDI 파일에 사용할 트랙의 개수가 정확한지 확인하십시오. 템포 트랙을 추가 할 AKSequencer에 사용할 AKMIDISampler과 같은 번호를 만듭니다. 그 다음 시퀀서의 첫 번째 트랙이 템포 트랙이고 샘플 재생을하지 않음을 유의하십시오.

0

이 추측의 비트입니다,하지만 매우 일반적인 문제는 샘플러가 좋아하는 위치에 오디오 파일을 가지고. 이러한 예에서와 같이 샘플/폴더에 audiofiles을 넣어보십시오 :

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

또는 나는 사운드 또는 "샘플러 악기"폴더가 샘플러 데모뿐만 아니라 작동 생각 :

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

+0

도움이 될 경우를 대비하여이 도구를 사용해 보겠습니다. 모든 MP3 파일은 실제로 시도하고있는 첫 번째 파일 (콘솔에로드 된 것처럼 보이지만 트리거 될 수없는 파일)을 제외하고는 예상대로로드되고 재생됩니다 ... –