SonicBirthでgainエフェクトを作ったんですが、いつか突然使えなくなると嫌だなと思ったので、本家AppleのXcodeで作ってみました。
simple Gain
/Library/Audio/Plug-Ins/Componentsにいれてお使いください。使い方は同じ。
例によってご使用は自己責任でお願いします。
しかし、XcodeもC++もよくわからん。
「iPhone Core Audioプログラミング」詳しく書いてあるんだが、理解力が全く足りないので頭に入ってこない。
結局、著者さんのサイトMy Codex Leicesterを参考にしつつ、AppleからFilterDemoと"audiounit programming guide"ってのを持ってきて、XcodeでAU effectのひながたでプロジェクトを作って、じっとにらめっこ。
そのうち、フェーダーを一個付けたいだけだし、パラメータを追っかければいいのではと気づいた。
kParamなんとかというのを検索しつつ、分からないところは無視しつつ、同じところに同じように置いていったら、なんだかできそうな気がしてきた。
最後の方に計算するところがあって、よくよく見たら、ひながたの段階でgain一個付いてたということに気がついた。
なんだ。そのままビルドすればよかったんじゃん。がっかり。
という顛末でした。じゃんじゃん。
以下、覚書。
AppleにOnguでコード申請。登録。
simpleGain.h
追加とコメントアウト
simple Gain
/Library/Audio/Plug-Ins/Componentsにいれてお使いください。使い方は同じ。
例によってご使用は自己責任でお願いします。
しかし、XcodeもC++もよくわからん。
「iPhone Core Audioプログラミング」詳しく書いてあるんだが、理解力が全く足りないので頭に入ってこない。
結局、著者さんのサイトMy Codex Leicesterを参考にしつつ、AppleからFilterDemoと"audiounit programming guide"ってのを持ってきて、XcodeでAU effectのひながたでプロジェクトを作って、じっとにらめっこ。
そのうち、フェーダーを一個付けたいだけだし、パラメータを追っかければいいのではと気づいた。
kParamなんとかというのを検索しつつ、分からないところは無視しつつ、同じところに同じように置いていったら、なんだかできそうな気がしてきた。
最後の方に計算するところがあって、よくよく見たら、ひながたの段階でgain一個付いてたということに気がついた。
なんだ。そのままビルドすればよかったんじゃん。がっかり。
という顛末でした。じゃんじゃん。
以下、覚書。
AppleにOnguでコード申請。登録。
simpleGain.h
追加とコメントアウト
enum {
kParam_Gain = 0,
kNumberOfParameters = 1
};
static CFStringRef kParamGainName = CFSTR("Gain");
static const float kMinValue_Gain = 0.0;
static const float kMaxValue_Gain = 1.0;
static const float kDefaultValue_Gain = 1.0;
/*
static const float kDefaultValue_ParamOne = 0.5;
static CFStringRef kParameterOneName = CFSTR("Parameter One");
enum {
kParam_One =0,
//Add your parameters here...
kNumberOfParameters=1
};
*/
simpleGain.r
NAME書き換え
#define NAME "Ongu: simpleGain"
simpleGainVersion.h
変更
#define simpleGain_COMP_SUBTYPE 'Gain'
#define simpleGain_COMP_MANF 'Ongu'
simpleGain.cpp
simpleGain::GetParameterInfo
case kParam_One:以下を変更
case kParam_Gain :
AUBase::FillInParameterName (outParameterInfo, kParamGainName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_LinearGain;
outParameterInfo.minValue = kMinValue_Gain ;
outParameterInfo.maxValue = kMaxValue_Gain ;
outParameterInfo.defaultValue = kDefaultValue_Gain ;
simpleGain::simpleGainKernel::Process
kParam_OneをkParam_Gainに変更
Float32 gain = GetParameter( kParam_Gain );
私も同じようにしてIACバスを使ってMIDIコントロールでFADE OUTしてましたが、何らかの外部コントローラ実機が無いとオーディオチャンネルのMIDIコントロール割りあてができないLIVEの仕様に不便を覚えておりました。
返信削除ループ再生すれば、LIVEのみで出来るということで、目から鱗が落ちました・・・。
ところで、Xcodeでおつくりになったプラグインをぜひ使用してみたいと思ったのですが、
"You must be logged in"
となってダウンロードできません。
どこか別の場所に置いていただけませんでしょうか。
よろしくお願いします。
匿名さん、いらしゃいませ。
返信削除あれ、KVRってそうでしたっけか。失礼しました。
ここに置きます。
http://www.mediafire.com/?mcup4qgq7rp5a4w
解凍してbuild/release以下にあるsimpleGain.componentを
/Library/Audio/Plug-Ins/Componentsにいれてお使いください。
ちなみにOSX10.5用,Universal Binaryになっていると思うのですが...
もし動かなかったらごめんなさい。
ありがとうございます。
返信削除OSX 10.6.6 / Live8.2.1 でバッチリ動作しました。
末永く使わせていただきます!