2012-08-09 4 views
8

estoy de vuelta con una pregunta más relacionada con BASS. Ya había publicado esta pregunta How Can we control bass of music in iPhone, pero no recibe tanta atención de su gente como debería. Pero ahora he hecho más búsquedas y he leído Core AUDIO. Tengo un código de muestra que quiero compartir con ustedes. Aquí está el enlace para descargarlo iPhoneMixerEqGraphTest. Eche un vistazo en este código. Lo que vi es que el desarrollador usó el ecualizador preestablecido que le dio el iPod en Apple. Veamos algunos fragmentos de código también: ----Cómo usar kAudioUnitSubType_LowShelfFilter de kAudioUnitType_Effect que controla los graves en Core Audio?

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

Lo que hace es que kAudioUnitSubType_AUiPodEQ obtener valores predefinidos de ecualizador del iPod y nos devuelven en Xcode en una matriz que podemos utilizar en PickerView/TableView y puede fijar cualquier categoría como bajo, rock, Dance, etc. Es impotente para mí, ya que solo devuelve nombres de tipos de ecualizadores como bajo, rock, dance, etc., ya que solo quiero implementar bajos y quiero implementarlos en UISLider.

Para implementar el control deslizante Bass on necesito valores para que pueda establecer el valor mínimo y máximo para que se pueda cambiar el control deslizante en movimiento.

Después de conseguir todo esto empiezo clases de lectura del marco de audio Unidad de Core Audio y conseguí este Ipod Desc Image después de que empezara la búsqueda de control de bajos y conseguí este

enter image description here

Así que ahora tengo que poner en práctica esta kAudioUnitSubType_LowShelfFilter. Pero ahora no sé cómo implementar esta enumeración en mi código para poder controlar el bajo como documentación escrita. Incluso Apple no había escrito eso, ¿cómo podemos usarlo? kAudioUnitSubType_AUiPodEQ esta categoría nos devolvió una matriz pero kAudioUnitSubType_LowShelfFilter categoría no devuelve ninguna matriz. Al usar kAudioUnitSubType_AUiPodEQ esta categoría podemos usar tipos de ecualizadores de una matriz, pero ¿cómo podemos usar esta categoría kAudioUnitSubType_LowShelfFilter? ¿Alguien puede ayudarme con respecto a esto de alguna manera? Sería altamente apreciable.

Gracias.

Respuesta

3

actualización

Aunque se declaró en las cabeceras de iOS, la plataforma AU baja no es realmente disponible en IOS.


Los parámetros de Low Shelf son diferentes de los del iPod EQ.

parámetros son declarados y documentados en `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 
}; 

Así que después de su plataforma baja se crea la UA, se pueden configurar los parámetros utilizando AudioUnitSetParameter.

Algunos valores de parámetros iniciales que puede probar serían 120 Hz (kAULowShelfParam_CutoffFrequency) y +6 dB (kAULowShelfParam_Gain); suponiendo que su sistema reproduzca bien los graves, su contenido de baja frecuencia debería ser el doble de alto.


u puede decirme cómo puedo utilizar este kAULowShelfParam_CutoffFrequency para cambiar la frecuencia.

Si todo está configurado bien, esto debería ser todo lo que se necesita:

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

gracias por la respuesta de Justin. ¿Puedes decirme cómo puedo usar esta kAULowShelfParam_CutoffFrequency para cambiar la frecuencia? Estoy tratando de cambiarlo, pero cuando cambio el valor, se bloquea. ¡¡¡Por favor ayuda!!! –

+0

@NikhilBansal ver la actualización. – justin

+0

ok gracias por responder, déjenme verificar si me funciona o no –

Cuestiones relacionadas