2012-08-09 9 views
8

BASSにもう1つ質問があります。私はすでにこの質問を掲載しましたHow Can we control bass of music in iPhoneしかし、あなたの人々の注目を集めることはできません。しかし、今私はいくつかの検索を行い、コアAUDIOを読んだ。私はここであなたと共有したいサンプルコードを1つ手に入れました。ダウンロードするリンクはiPhoneMixerEqGraphTestです。このコードを見て、私が見たことは、開発者がアップルのiPodで与えられたプリセットイコライザーを使用していたことです。 ---- kAudioUnitSubType_AUiPodEQは何コアオーディオの低音をコントロールするkAudioUnitType_EffectのkAudioUnitSubType_LowShelfFilterの使い方は?

// iPodEQ unit 
CAComponentDescription eq_desc(kAudioUnitType_Effect, kAudioUnitSubType_AUiPodEQ, kAudioUnitManufacturer_Apple); 

は、それがiPodのイコライザーからプリセット値を取得し、我々はPickerView /テーブルビューで使用することができますし、任意のカテゴリを設定することができ、アレイにXcodeで私たちを返すです:あまりにもいくつかのコードスニペットを見てみましょう低音、岩、ダンスなどのイコライザータイプの名前を返すだけなので、私にとっては無力です。低音のみを実装したいので、UISLiderで実装したいのです。

Bass on sliderを実装するには、スライダベースの移動を変更できるように最小値と最大値を設定できる値が必要です。

このすべてを取得した後、私は、Core Audioのオーディオユニットフレームワークのクラスを読み始めると私は低音のコントロールの検索を開始その後、このIpod Desc Image を持って、私はこのを実装する必要があるだから今この

enter image description here

を得ましたkAudioUnitSubType_LowShelfFilter。しかし、今私は私のコードでこのenumを実装する方法を知らないので、書かれたドキュメントとして低音をコントロールすることができます。たとえAppleがそれをどうやって使うことができるのかを書いていなかった。 kAudioUnitSubType_AUiPodEQこのカテゴリは配列を返していますが、kAudioUnitSubType_LowShelfFilterカテゴリは配列を返していません。 kAudioUnitSubType_AUiPodEQこのカテゴリを使用している間は、アレイからイコライザのタイプを使用できますが、このカテゴリはどのように使用できますかkAudioUnitSubType_LowShelfFilter誰でもこのことについて何らかの方法で私を助けることができますか?それは非常に認められるだろう。

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

答えて

3

それはiOSのヘッダで宣言されていますが、更新は

、ローシェルフAUは、iOS上で、実際には使用できません。


Low Shelfのパラメータは、iPod EQと異なります。

パラメータは `のAudioUnit/AudioUnitParameters.h 'で宣言され、文書化されています

// Parameters for the AULowShelfFilter unit 
enum { 
    // Global, Hz, 10->200, 80 
    kAULowShelfParam_CutoffFrequency = 0, 

    // Global, dB, -40->40, 0 
    kAULowShelfParam_Gain = 1 
}; 

だからあなたの低い棚の後にAUが作成され、AudioUnitSetParameterを使用して、そのパラメータを設定します。あなたが試すことができます

いくつかの初期パラメータ値は120ヘルツ(kAULowShelfParam_CutoffFrequency)と6デシベル(kAULowShelfParam_Gain)になり - あなたのシステムを仮定すると低音が良く、お使いの低周波成分が二倍の大声でなければなりません再現します。


uがどのように周波数を変更するには、このkAULowShelfParam_CutoffFrequencyを使用することができます教えてもらえます。

すべてが右に設定されている場合、これはすべてのことが必要とされている必要があります:答えジャスティンのための

assert(lowShelfAU); 
const float frequencyInHz = 120.0f; 
OSStatus result = AudioUnitSetParameter(lowShelfAU, 
             kAULowShelfParam_CutoffFrequency, 
             kAudioUnitScope_Global, 
             0, 
             frequencyInHz, 
             0); 
if (noErr != result) { 
    assert(0 && "error!"); 
    return ...; 
} 
+0

感謝を。このkAULowShelfParam_CutoffFrequencyを使用して周波数を変更する方法を教えてください。私はそれを変更しようとしているが、値を変更するとクラッシュする。助けてください!!! –

+0

@NikhilBansal更新を参照してください。 – justin

+0

私はそれが私のために動作するかどうかを確認して返信いただきありがとうございます –

関連する問題