Category Archives: iPhone

[DJ]iPhone controls Ableton Live[Video]


iPhoneをMIDIコンにしてAbletonLiveでDJをやっている動画を撮影してみた。

HD動画はこちら

USBのMIDIコンを現場に運ぶのがめんどくさいので荷物を減らせないか試行錯誤してたのだが、最近はiPhoneをMIDIコンにしてDJができるようになったので設定手順を記す。

使用したiPhoneのアプリはTouch OSCAppStoreで450円。
Touch OSCの公式サイトはここ

Mac側にインストールするアプリは
OSCulaor
PayPalで$39の値段($19以上ならかまわない)
osculator-screenc

無線LANでMacとiPhoneが接続されている状態ならAbletonLiveの設定にすすむ。
DJをするクラブなどで無線LANが整備されている可能性は低いためAdhoc接続でMacとiPhoneを接続する手順を記す。

右上のメニューの無線LANのアイコンからネットワークを作成
adhoc
パスワードはなくてもかまわないが設定することを薦める。

iPhoneの設定->Wifiから先ほど作成したネットワークを選択
img_0001

パスワードが合っていればMacとiPhoneがダイレクトに接続される。

macでOSCulatorを起動する
e38394e382afe38381e383a3-8
この写真は僕の使っている設定
Touch OSCのタッチパネル上のキーにどのMIDI ノートを割り当てるか設定していく。

iPhoneでTouch OSCを起動し接続設定を行う
img_0003

Ableton Liveの環境設定
MIDIコンでOSCulatorを使用する設定にする
e38394e382afe38381e383a3-7

Mix2
img_00011img_0002img_00031

僕はこのMix2ってモード使ってるけどそのほかにMix16,Key,BeatMachineってモードがある
img_00081

Ableton Live 8
Ableton Live 8
posted with amazlet at 10.01.31
Ableton/エイブルトン (2009-04-21)
売り上げランキング: 11924
MASTER OF Live 8
MASTER OF Live 8
posted with amazlet at 10.01.31
尾川 一行
ビー・エヌ・エヌ新社
売り上げランキング: 25671

iPhone 2.2.1 JailBreak on OSX10.5.6

OSX 10.5.6だとDFUモードに入れないのでここを参考にOSにパッチ

スクリプトをダウンロードして実行後再起動

本家のサイトからQuickPwnダウンしてDFUモードにはいってアップデートして完了した。なぜかPwnageToolだとうまくいかなかったんだよな。

 

 

[iPhone]AVFoundationを使ったmp3再生


iPhoneでの音声の再生方法にはいろいろあって一番メジャーなのは
AudioQueueを使用する方法らしいのだが、
これみると結構大変。

調べるとiPhone 2.2からAVFoundationを使ってもっと簡単に再生できることがわかったのでやってみたので手順を記す。

 

フレームワークにAVFoundationを追加する。

Frameworksを右クリックして「追加」->「既存のフレームワーク」を選択

e38394e382afe38381e383a3-1

デフォルトだと、AVFoundation.frameworkのある場所は2.0のフレームワーク場所を指していて見つからないから、
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulatior2.2sdk/System/Library/Frameworks

から選択すること。(ここに嵌ったw)

コントローラのヘッダにを追加

#import <AVFoundation/AVFoundation.h>

コントローラオブジェクトへオブジェクトを追加

AVAudioPlayer*    m_sound;

初期化
リソースからfreeek.mp3ファイルをロードする場合のサンプル
あらかじめ、リソースにmp3ファイルを追加しておくこと。

NSString* a_file_path = [[NSBundle mainBundle] pathForResource:@"freeek" ofType:@"mp3"];
NSURL* a_file_url = [NSURL fileURLWithPath:a_file_path];
if( a_file_url ){
NSError* a_error = nil;
m_sound = [[AVAudioPlayer alloc] initWithContentsOfURL:a_file_url error:&amp;amp;amp;amp;amp;amp;a_error];
}

再生したい場所でplayメッセージを送る。非同期で再生される。

[m_sound play]

tAkatronixおすすめのiPhone開発本

iPhone デベロッパーズ クックブック
Erica Sadun
ソフトバンククリエイティブ
売り上げランキング: 84906
詳解 Objective-C 2.0
詳解 Objective-C 2.0
posted with amazlet at 10.01.31
荻原 剛志
ソフトバンククリエイティブ
売り上げランキング: 4163
iPhoneプログラミングUIKit詳解リファレンス
所 友太
リックテレコム
売り上げランキング: 3089
iPhone Core Audioプログラミング
永野 哲久
ソフトバンククリエイティブ
売り上げランキング: 22615

[iPhone]タイマー処理 NSTimerの使い方


iPhoneでタイマー処理の書き方

初期化処理

この例だと1/100秒毎にくりかす

NSTimer* timer;
timer = [NSTimer scheduledTimerWithTimeInterval:0.01				//	発生間隔(秒)
target:self				//	送信先オブジェクト
selector:@selector(onTimer:)	//	コールバック関数
userInfo:nil					//	パラメータ
repeats:YES];				//	繰り返し

コールバック関数のハンドラ

-(void)onTimer:(NSTimer*)timer
{
NSLog(@"onTimer\n");
}

tAkatronixおすすめのiPhone開発本

iPhone デベロッパーズ クックブック
Erica Sadun
ソフトバンククリエイティブ
売り上げランキング: 84906
詳解 Objective-C 2.0
詳解 Objective-C 2.0
posted with amazlet at 10.01.31
荻原 剛志
ソフトバンククリエイティブ
売り上げランキング: 4163
iPhoneプログラミングUIKit詳解リファレンス
所 友太
リックテレコム
売り上げランキング: 3089
iPhone Core Audioプログラミング
永野 哲久
ソフトバンククリエイティブ
売り上げランキング: 22615

[iPhone]加速度センサの使い方


初期化の処理
viewDidLoadにいれたけどどこでもよさげ
更新周期は0.01秒

[[UIAccelerometer sharedAccelerometer] setUpdateInterval:0.01]; // アップデートする周期
[[UIAccelerometer sharedAccelerometer] setDelegate:self];

初期化すると次のハンドラにさっきので指定した周期でコールされる

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {

シェイクの検出
X,Y,Zのセンサのうちどれかが2.0G以上ならシェイクされたと判断する

if(fabsf(acceleration.x) > 2.0 || fabsf(acceleration.y) > 2.0 || fabsf(acceleration.z) > 2.0){

落下の検出
落下するとき、物質の質量は0になるので、X,Y,Z軸すべてが0の時とやればいいのだが、実際のセンサの値は0にはならないようでいろいろためしたけど0.2G以下になったら検出というのが一番しっくりきた

if(fabsf(acceleration.x) < 0.2 &amp;amp;&amp;amp; fabsf(acceleration.y) < 0.2 &amp;amp;&amp;amp; fabs(acceleration.z) < 0.2) {
if(time(NULL) - tmEvent <= 1)
return;
tmEvent = time(NULL);
}

加速度センサのコールバックは初期化した時のパラメータでがんがんよばれるので、最後に落下を検出したときから1秒以上たっていたら、、という処理も追加したらいい感じになった。

tAkatronixおすすめのiPhone開発本

iPhone デベロッパーズ クックブック
Erica Sadun
ソフトバンククリエイティブ
売り上げランキング: 84906
詳解 Objective-C 2.0
詳解 Objective-C 2.0
posted with amazlet at 10.01.31
荻原 剛志
ソフトバンククリエイティブ
売り上げランキング: 4163
iPhoneプログラミングUIKit詳解リファレンス
所 友太
リックテレコム
売り上げランキング: 3089
iPhone Core Audioプログラミング
永野 哲久
ソフトバンククリエイティブ
売り上げランキング: 22615