2012-08-09 27 views
8

Tôi quay lại với một câu hỏi khác liên quan đến BASS. Tôi đã đăng câu hỏi này How Can we control bass of music in iPhone, nhưng không nhận được nhiều sự chú ý của người của bạn vì nó sẽ nhận được. Nhưng bây giờ tôi đã thực hiện thêm một số tìm kiếm và đã đọc Core AUDIO. Tôi nhận được một mã mẫu mà tôi muốn chia sẻ với bạn mọi người ở đây là liên kết để tải xuống mã này iPhoneMixerEqGraphTest. Có một cái nhìn về nó trong mã này những gì tôi đã thấy là các nhà phát triển đã sử dụng Equalizer cài đặt trước được đưa ra bởi iPod trong Apple. Hãy xem một số đoạn mã quá: ----Làm thế nào để sử dụng kAudioUnitSubType_LowShelfFilter của kAudioUnitType_Effect điều khiển âm trầm trong lõi Audio?

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

gì kAudioUnitSubType_AUiPodEQ làm là nó có giá trị định sẵn từ bộ cân bằng iPod và trở chúng ta trong Xcode trong một mảng mà chúng tôi có thể sử dụng trong PickerView/TableView và có thể đặt bất kỳ loại như bass, rock, Dance, vv .. Nó là bất lực đối với tôi vì nó chỉ trả về tên của các loại bộ cân bằng như bass, rock, Dance, vv vì tôi chỉ muốn thực hiện bass và muốn thực hiện nó trên UISLider.

Để triển khai Bass trên thanh trượt, tôi cần các giá trị để tôi có thể đặt giá trị tối thiểu và tối đa để có thể thay đổi âm trầm trượt.

Sau khi nhận được tất cả điều này tôi bắt đầu đọc lớp khung Audio Đơn vị của Core Audio và có Ipod Desc Image này sau đó tôi bắt đầu tìm kiếm để kiểm soát bass và có này

enter image description here

Vì vậy, bây giờ tôi cần phải thực hiện này kAudioUnitSubType_LowShelfFilter. Nhưng bây giờ tôi không biết làm thế nào để thực hiện điều này enum trong mã của tôi để tôi có thể kiểm soát bass như tài liệu bằng văn bản. Ngay cả Apple đã không viết rằng làm thế nào chúng ta có thể sử dụng nó. kAudioUnitSubType_AUiPodEQ loại này đã trả lại cho chúng tôi một mảng nhưng kAudioUnitSubType_LowShelfFilter loại không trả về bất kỳ mảng nào. Trong khi sử dụng kAudioUnitSubType_AUiPodEQ danh mục này, chúng tôi có thể sử dụng các loại bộ cân bằng từ một mảng nhưng làm cách nào chúng tôi có thể sử dụng loại này kAudioUnitSubType_LowShelfFilter. Ai có thể giúp tôi về điều này theo bất kỳ cách nào? Nó sẽ được đánh giá cao.

Cảm ơn.

Trả lời

3

Cập nhật

Mặc dù nó được khai báo trong tiêu đề iOS, Low Shelf AU là không thực sự sẵn trên iOS.


Thông số của giá thấp khác với iPod EQ.

Các thông số được khai báo và tài liệu trong `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 
}; 

Vì vậy, sau kệ thấp của AU được tạo ra, cấu hình các thông số của nó sử dụng AudioUnitSetParameter.

Một số giá trị tham số ban đầu bạn có thể thử là 120 Hz (kAULowShelfParam_CutoffFrequency) và +6 dB (kAULowShelfParam_Gain) - giả sử hệ thống của bạn tái tạo âm trầm tốt, nội dung tần số thấp của bạn phải lớn gấp đôi.


u có thể cho tôi biết làm thế nào tôi có thể sử dụng kAULowShelfParam_CutoffFrequency này để thay đổi tần số.

Nếu mọi thứ đều được cấu hình đúng, điều này nên tất cả những gì cần thiết:

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

cảm ơn cho câu trả lời justin. U có thể cho tôi biết làm thế nào tôi có thể sử dụng kAULowShelfParam_CutoffFrequency này để thay đổi tần số. Tôi đang cố gắng thay đổi nó nhưng khi tôi thay đổi giá trị nó bị treo. Hãy giúp tôi!!! –

+0

@NikhilBansal xem cập nhật. – justin

+0

ok cảm ơn bạn đã trả lời, hãy để tôi kiểm tra xem nó hoạt động cho tôi hay không –

Các vấn đề liên quan