Paul Lehn
Paul Lehn

Reputation: 3342

AudioUnitSetProperty Swift errors

I am trying to set the bands in my equalizer by using AudioUnitSetProperty but cant figure out the syntax in Swift. My code looks like this:

var eqFrequencies: NSArray = [ 32, 250, 500, 1000, 2000, 16000 ]
    var noBands = UInt32(eqFrequencies.count)

AudioUnitSetProperty(self.MyAppUnit, AudioUnitParameterID(kAUNBandEQProperty_NumberOfBands), AudioUnitScope(kAudioUnitScope_Global), 0, 6, UInt32(sizeof(noBands)))

Anyone know the correct way of doing this?

Upvotes: 0

Views: 1373

Answers (1)

Gordon Childs
Gordon Childs

Reputation: 36169

Try this (compiles for me in Xcode 6.3):

    var eqFrequencies: [UInt32] = [ 32, 250, 500, 1000, 2000, 16000 ]

    AudioUnitSetProperty(
        self.MyAppUnit,
        AudioUnitPropertyID(kAUNBandEQProperty_NumberOfBands),
        AudioUnitScope(kAudioUnitScope_Global),
        0,
        eqFrequencies,
        UInt32(eqFrequencies.count*sizeof(UInt32))
    )

Swift griped about the various int types, hence the extra casts, and the size calculation was wrong, but the band swift array of UInt32s (not NSArray) should convert automatically to UnsafePointer<Void>.

Upvotes: 1

Related Questions