2017-11-27 7 views
1

私はAudioKitを使い始めています。私はそれをとてもシンプルに保ちたい。私はいくつかのUIButtons(C、D、E、F、...)を作って、対応するピアノサンプルを演奏させたいと思っています。しかし、私はサンプルファイルを正しく準備する方法を理解していません。AudioKit - AKSamplerピッチはありますか、複数のサンプルファイルを追加する必要はありますか?

私はこの例を見つけました:

let sampler = AKSampler() 
sampler.loadWav("Sounds/fmpia1") 
let ampedSampler = AKBooster(sampler, gain: 3.0) 
var delay = AKDelay(ampedSampler) 
delay.time = pulse * 1.5 
delay.dryWetMix = 0.0 
delay.feedback = 0.0 

let cMajor = [72, 74, 76, 77, 79, 81, 83, 84] 

var mix = AKMixer(delay) 
var reverb = AKReverb(mix) 

AudioKit.output = reverb 
AudioKit.start() 

for note in cMajor { 
    sampler.playNote(note) 
    sleep(1) 
} 

私が理解:サンプラーのロードと数字(72、74、...)はノート用MIDI信号です。

ただし、サンプラーは何を再生するかをどのように知っていますか?サンプル "fmpia1"にはすべての音符が含まれていますか?それは単なるサンプルですか、AKSamplerは自動的にそれらを投げますか?しかし、AKSamplerはサンプルがどのようなメモであるかをどのように知っていますか?ファイル内のサンプルがAKSamplerに通知されるべきではありません、F#と言うでしょうか?だから、彼はそれに応じてピッチすることができます

私はこれについて非常に混乱しています。私はあなたが私の問題点を理解できることを願っています。

ありがとうございました!

答えて

1

AKSampler(およびAKMIDISampler)は、AppleのAVAudioUnitSamplerを内部的に使用します。あなたのルートノートを再生してピッチングするのはAVAudioUnitSamplerです。 AVAudioUnitSampler loadAudioFiles(at :)(https://developer.apple.com/documentation/avfoundation/avaudiounitsampler/1388631-loadaudiofiles)のドキュメントを見ると、オーディオファイルごとに新しいゾーンが作成され、オーディオファイルのメタデータが正しくマップされていることがわかります。ルートノートがファイル名にある場合(すなわち、 - ViolinC4)、ショートカットを取ることもできます。

だから、あなたの質問に直接応答で:

  1. fmpia1は、単一のオーディオファイル(ピッチ)です。ルートノートに内部的にマッピングされます(指定されていなければC4 - 確認が必要です)。
  2. 特定のノート番号でMIDIイベントを送信すると、サンプラーはオーディオファイルをそのノートに合わせて再生します。 (ここではMIDIノートの便利なマップです:https://medium.com/@gmcerveny/midi-note-number-chart-for-ios-music-apps-b3c01df3cb19
  3. はい、ルートノート(ファイルのピッチ)を知っている場合は、上記のように指定すると正確な再生が行われます。
+0

ありがとうございました。それはまさに私が知りたかったものです!私はMIDIテーブル/信号を理解していますが、私はどのサンプルを使用するのか分かりませんでした。 – casualcoder

関連する問題