あらやだ。もう10月。
AVAudioUnitReverb
のbypass
をYES
にすると音が出なくなって困ってるところ。
これは私が凡ミスってるだけなの・・?
そんな情報出てこないし・・
ただUnit作ってattach,connectして、bypassをYESにしてるだけなんですけども。ぐえー。
その他のエフェクトはbypassをYESにしても音が出ることを確認。
Reverbはデフォ値ならかかってないことになるんでしょうけど、そういうものなの??
iOS8だ!わー! まだ入れてませんけど。
自分のような小物が記事にできるようなことは何もありませんが、
今ちょうどiOSのオーディオ関連に足を突っ込んでおりまして。
見てしまった・・新しいAVFoundationのリファレンスを。
そこに・・「AVAudioUnit」という文字があることを。
AVAudioUnit!
なんということでしょう!
まだチラ見ですが、AudioUnitがより扱いやすくなる予感です。
さらに、見つけてしまいました。
リバーブにプリセットが入ってる!
These constants describe the reverb presets. Declaration SWIFT enum AVAudioUnitReverbPreset : Int { case SmallRoom case MediumRoom case LargeRoom case MediumHall case LargeHall case Plate case MediumChamber case LargeChamber case Cathedral case LargeRoom2 case MediumHall2 case MediumHall3 case LargeHall2 }
おー、13個もあります!
どんな効果になるのかな!
ただし、AVAudioUnitReverbの場合、
公開されてるパラメータはwetDryMixのみですね。
プリセットを選び、wet/dryで調整する感じでしょうか。
私のような素人耳には全然これで十分でしょう・・・・
GainやDelayをいじる必要がある場合には
これまでと同様、AudioUnitを使わないといけないようですね。
(追記)→プロパティにaudioUnitがあるので、これ使ってAudioUnitSetParameter()
すればよいですね
ああ、もっと掘り下げたいな、iOS8!。゚+.(・∀・)゚+.゚
そういえば、これまでDryWetMixだったのにwetDryMixと逆になってる。なぜ。
(知らなかったのでメモ。。)
ARC環境下では、キャスト時に__bridge
がないと怒られる。
例:NSURL * から CFURLRef にキャスト
CFURLRef url = (__bridge CFURLRef)[NSURL URLWithString:@"path"]
NS〜とかObjective-CのオブジェクトはARC対象だけど CoreFoundationは対象外だから。
上のCFURLRef url
は、
NSURLのオブジェクトがなくなる時(スコープ外に出る)まで有効。
変数の中にアドレスが残っていたとしてもアクセスしてはだめ。
O-Cオブジェクトが破棄された以後もCFオブジェクトを使用したい時は、 retainやオーナーシップ権を委譲するbridgeキャストがある。
http://natsuapps.com/note/2011/11/ios5-arc-autorelease-bridge-xcode.html