<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="ja" xmlns="http://www.w3.org/2005/Atom">
	<title>Karappo Interaction Lab.</title>
	<subtitle>インタラクティブ</subtitle>
	<id>http://labs.karappo.net/interact/:7</id>

	<link rel="alternate" type="text/html" href="http://labs.karappo.net/interact/" />
	<link rel="self" type="application/atom+xml" href="http://labs.karappo.net/interact/atom.php" />
	<generator uri="http://nucleuscms.org/">Nucleus CMS v3.71</generator>
	<updated>2012-07-22T09:43:43Z</updated>

	<entry>
 <title type="html"><![CDATA[windowsで音楽ソフト同士でMIDIデータの送受信をする方法　（Max/MSP -> MIDI Yoke -> Ableton Live等）]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=307" />
 <author>
  <name>mio</name>
 </author>
 <updated>2012-07-22T09:43:43Z</updated>
 <published>2012-07-22T18:43:43+09:00</published>
 <content type="html"><![CDATA[MacですとOS標準の機能で、ソフトウェア間でのMIDIのバイパスが簡単に行えるのですが、Windowsの場合はOS標準ではそういった機能はないようです。ですが、それだと不便ですよね。実は、Windowsでもソフトウェア間でMIDIデータをやりとりできる、MIDI Yokeというフリーソフトがありました。<br />
<br />
<b>MIDI Yoke のダウンロード</b><br />
下記ウェブサイトの、左メニューから MIDI Yokeをクリックで、 MIDI Yoke のページのDownloadというところに、ダウンロードのリンクがあります。対応OSがWindows XPまでしか書かれていませんが、Windows 7 (32bit)でも動作しました。Win 7 (64bit)は未確認。<br />
<a href="http://www.midiox.com/">MIDI-OX</a><br />
※MIDI-OXというソフトが目立っていますが、インストールの必要はありません。<br />
<br />
<img src="http://labs.karappo.net/media/2/20120722-MIDIOX_yoke.png" width="1126" height="793" alt="" title="" /><br />
<img src="http://labs.karappo.net/media/2/20120722-MIDIOX_yoke2.png" width="1042" height="726" alt="" title="" /><br />
<br />
<br />
<br />
<b>MIDI Yokeの機能</b><br />
MIDI Yokeは、ソフトウェアといっても、Windows起動時に自動的にバックグラウンドで立ち上がるソフトのようで、特に何かを操作したりということは一切ありません。何が変わるかというと、Ableton Live、Max/MSP、Cubase、FL Studio等、各種音楽ソフトの、MIDIの環境設定のportのところに、MIDI Yoke 1 〜　MIDI Yoke 8 までの8つのポートが追加されて、このポートを通じて、ソフトウェア間でMIDIデータの送受信ができるようになります。イメージとしては、ソフトウェア間でoutputのポートと、inputのポートを対応させることで、ソフトウェア間でMIDIケーブルをつなげるような感じです。<br />
<br />
例えば、Max/MSPからの MIDIの出力を、Ableton Liveで受け取る場合は、Max/MSP側のアウトプットのポートを、MIDI Yoke 1にして、Ableton Live 側のインプットのポートの MIDI Yoke 1をアクティブにすれば、Max/MSPで生成したMIDIの出力を、Ableton Liveで受け取れるようになります。その他のソフトの場合も同様です。<br />
<br />
<br />
↓Max/MSPの場合 (MIDIのアウトプット先として、MIDI Yokeが選べます)<br />
<br />
<img src="http://labs.karappo.net/media/2/20120722-S_002_max.JPG" width="656" height="565" alt="" title="" /><br />
<br />
<br />
↓Ableton Live の場合 （MIDI portsに、MIDI Yokeが並んでいます）<br />
<br />
<img src="http://labs.karappo.net/media/2/20120722-S_003.JPG" width="506" height="606" alt="" title="" /><br />
<br />
<br />
↓<a href="http://altosc.com/ja/">ALT OSC</a> （KARAPPOが開発したiPhone/iPad用のOSCコントローラー）のMIDI Bridge　ソフトの場合<br />
<br />
<img src="http://labs.karappo.net/media/2/20120722-S_002.JPG" width="876" height="712" alt="" title="" /><br />
<br />
<br />
<a href="http://filenotfound.blog15.fc2.com/blog-entry-77.html">FL Studioの場合</a><br />
]]></content>
 <id>http://labs.karappo.net/interact/:7:307</id>
</entry><entry>
 <title type="html"><![CDATA[iTunesのビジュアライザを、Quartz Composer で作るときの確認方法]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=279" />
 <author>
  <name>mio</name>
 </author>
 <updated>2011-08-03T02:22:06Z</updated>
 <published>2011-08-03T11:22:06+09:00</published>
 <content type="html"><![CDATA[<img src="http://labs.karappo.net/media/2/20110803-ss01.png" width="1192" height="740" alt="ss" title="ss" /><br />
<br />
<br />
0) Quartz Composer側で、Templateパッチの「Music Visualizer」を開いておく。<br />
1) iTunesで、音を再生<br />
2) iTunesで、ビジュアライザを起動。(Command + T)<br />
3) ビジュアライザの種類を、旋盤、ゼリー、スティック、のいずれかにする。<br />
<br />
※<br />
iTunes ビジュアライザ及び、iTnews Classic ビジュアライザに設定すると、<br />
QuartzComposer 側が反応しません。<br />
この2つが、QuartzComposer以外の仕組みで動いているからかもしれません。]]></content>
 <id>http://labs.karappo.net/interact/:7:279</id>
</entry><entry>
 <title type="html"><![CDATA[openFrameworksでカメラから取得した画像がピンク色になってしまう]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=265" />
 <author>
  <name>terada</name>
 </author>
 <updated>2011-01-07T08:33:50Z</updated>
 <published>2011-01-07T17:33:50+09:00</published>
 <content type="html"><![CDATA[oFでウェブカメラから取得した画像をdrawするだけの簡単なサンプルを作っていて、何故か書き出された映像がピンク色になってしまう現象に遭遇しました。<br />
<img src="http://labs.karappo.net/media/1/20110107-pinkscreen.png" width="652" height="732" alt="pinkscreen" title="pinkscreen" /><br />
原因はちゃんと理解できてないのですが、フォーラムに対処方法が載っていたのでメモしておきます。（テクスチャってなんだろ・・・）<br />
<br />
対処方法：<br />
draw関数の最初にこれを挿入します。<br />
<pre class="code">ofSetColor(255,255,255);</pre><br />
<br />
引用元：<a href="http://www.openframeworks.cc/forum/viewtopic.php?f=9&amp;t=991&amp;view=unread">Logitech webcam pink/purple color</a>]]></content>
 <id>http://labs.karappo.net/interact/:7:265</id>
</entry><entry>
 <title type="html"><![CDATA[openFrameworksで、画像の左右反転]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=264" />
 <author>
  <name>mio</name>
 </author>
 <updated>2010-12-21T19:09:26Z</updated>
 <published>2010-12-22T04:09:26+09:00</published>
 <content type="html"><![CDATA[openFrameworks本などのサンプルで、カメラを使ったものが多いですが、<br />
左右反転の方法が載っていなかったので調べました。<br />
<br />
カメラなどで、鏡のように左右反転させたい場合は、<br />
以下のように書けばOKです。<br />
<br />
hogeImg.mirror(false, true); <br />
<br />
１つ目の引数は、上下反転<br />
２つ目の引数は、左右反転<br />
を意味します。<br />
<br />
<a href="http://www.openframeworks.cc/forum/viewtopic.php?t=1716">情報ソースはこちら。</a>（英語）<br />
他にも使えそうなメソッドがありますね。]]></content>
 <id>http://labs.karappo.net/interact/:7:264</id>
</entry><entry>
 <title type="html"><![CDATA[XCodeでスクリーンセーバーを作る時のデバッグ方法]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=262" />
 <author>
  <name>terada</name>
 </author>
 <updated>2010-12-15T19:17:09Z</updated>
 <published>2010-12-16T04:17:09+09:00</published>
 <content type="html"><![CDATA[Xcde上でObjective-CでMacOSX用のスクリーンセーバーを作成する際のデバッグ方法で苦戦したのでメモです。XcodeのScreenSaverテンプレートで新規プロジェクトを作り、実行時にNSLogを使って出力するまでの方法をまとめます。<br />
<br />
環境：<br />
MacBook <br />
MacOS 10.6.5<br />
XCode 3.2.4<br />
SaverLab1.7.4<br />
<br />
１）XCodeで「ScreenSaver」テンプレートから新規プロジェクトを作成します。（例としてプロジェクト名「TestSaver」とします）<br />
<img src="http://labs.karappo.net/media/1/20101216-newproject.png" width="868" height="705" alt="新規プロジェクトの作成" title="新規プロジェクトの作成" /><br />
<br />
２）animateOneFrameの中にNSlogで出力用のコードを書きます。<br />
<img src="http://labs.karappo.net/media/1/20101216-coding.png" width="869" height="708" alt="出力のコードを記述" title="出力のコードを記述" /><br />
<br />
３）この段階で一度ビルドします。ビルドを実行するとスクリーンセーバーファイル「TestSaver/build/Debug/TestSaver.saver」が作成されるので、これをダブルクリックしてインストールします。インストールできたら環境設定パネルは終了してください。<br />
<img src="http://labs.karappo.net/media/1/20101216-install.png" width="918" height="557" alt="ビルド" title="ビルド" /><br />
<br />
５）次に、SaverLabというアプリケーションをダウンロードしてきて、解凍後Applicationフォルダにインストールします。<br />
> <a href="http://www.dozingcatsoftware.com/SaverLab/readme.html">SaverLab</a><br />
<br />
６）XCodeに戻って、「グループとファイル」のカラムで右クリックし、プロジェクトに「新規カスタム実行可能ファイル」を追加します。<br />
<img src="http://labs.karappo.net/media/1/20101216-add.png" width="555" height="234" alt="実行ファイルを追加" title="実行ファイルを追加" /><br />
<br />
７）ポップアップで、先ほどインストールした「SaverLab」のアプリケーションファイルを選択し、「完了」を押します。<br />
<img src="http://labs.karappo.net/media/1/20101216-jikko2.png" width="665" height="507" alt="SaverLabを選択" title="SaverLabを選択" /><br />
<br />
８）カラムに「実行可能ファイル」が追加されたら、今度は「概要」のプルダウンから「アクティブアーキテクチャ」を「i386」に変更します。理由は理解できていませんが、その他だとエラーが出てビルドできませんでした。<br />
<img src="http://labs.karappo.net/media/1/20101216-gaiyo.png" width="250" height="315" alt="概要の設定を変更" title="概要の設定を変更" /><br />
<br />
９）「ビルドと実行」が有効になっているはずなので、実行します。<br />
<br />
１０）SaverLabが立ち上がるはずなので、一覧の中から「TestSaver」をダブルクリックして立ち上げます。すると、コンソールが立ち上がって出力されるはずです。コンソールが立ち上がらない場合はメニューから「Control > Show Console Window」で開いてください。Preferenceで自動的にコンソールを立ち上げる設定にも出来ます。<br />
<img src="http://labs.karappo.net/media/1/20101216-fin.png" width="623" height="515" alt="終了！" title="終了！" /><br />
<br />
以上です。<br />
注意点としては、実行する前に一度ビルドしてインストールを済ませてからでないと、うまく出力されないこと。SaverLab単体では同じく出力されず、XCodeから実行しないといけない点です。もしかしたら、後者は別の手だてがあってもおかしくないと思うのですが、調べられたのはここまででした。ソースを編集して、再び試したい場合は、再度３）の手順から行う必要があります。スクリーンセーバーのデバッグって面倒ですね。<br />
<br />
※ もっといい方法があったら、ぜひ教えてください！]]></content>
 <id>http://labs.karappo.net/interact/:7:262</id>
</entry><entry>
 <title type="html"><![CDATA[ofToStringの部分でエラーが出た時はSDKのバージョンをチェック]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=261" />
 <author>
  <name>terada</name>
 </author>
 <updated>2010-12-14T14:27:16Z</updated>
 <published>2010-12-14T23:27:16+09:00</published>
 <content type="html"><![CDATA[openFrameworksの勉強中、サンプルコードのofToStringの部分で下記のようなエラーが出て、困っていましたが、プロジェクトファイルを右クリックして「情報を見る」＞「ビルド」タブの「ベースSDK」が1.5になっている場合は1.6にしてあげると、うまくコンパイルされるようです。<br />
<br />
<pre class="code">Undefined symbols:<br />
  "std::basic_ostream<char, std::char_traits<char> >& std::basic_ostream<char, std::char_traits<char> >::_M_insert<double>(double)", referenced from:<br />
      ofToString(double, int)in openFrameworks.a(ofUtils.o)<br />
ld: symbol(s) not found<br />
collect2: ld returned 1 exit status</pre>]]></content>
 <id>http://labs.karappo.net/interact/:7:261</id>
</entry><entry>
 <title type="html"><![CDATA[ターミナル上でテキストファイルのエンコードを調べる方法]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=258" />
 <author>
  <name>terada</name>
 </author>
 <updated>2010-11-21T17:56:05Z</updated>
 <published>2010-11-22T02:56:05+09:00</published>
 <content type="html"><![CDATA[（あまり、出番はないかもしれませんが）ターミナル上でテキストファイルのエンコードを調べる方法です。<br />
nkfコマンドでオプションに「-g」をつけてあげるとエンコーディングを判別して出力してくれます。<br />
<br />
<pre class="code">$ nkf -g example.txt<br />
Shift_JIS</pre><br />
ただしnkfコマンドを使うためには、（当たり前ですが）NKF（Network Kanji Filter）がインストールされている必要があります。<br />
<br />
<pre class="code">$ nkf -g example.txt<br />
-bash: nkf: command not found</pre>と出力された場合はNKFがインストールされていないので、次の手順が必要です。<br />
<br />
<b>１:NKFのソースファイルをダウンロード</b><br />
<a href="http://sourceforge.jp/projects/nkf/">こちら</a>からソースコードをダウンロードしてきます。<br />
<br />
<b>２：実行ファイルを作成してインストール</b><br />
<pre class="code">$ cd  <span style="color:blue;">ダウンドードしたディレクトリのパス</span><br />
$ sudo make install<br />
Password:</pre><br />
上記のようにして、パスワードはルート権限のあるユーザのパスワードを入力します。<br />
そうすると自動で「/usr/local/bin/」にnkfがコピーされたり、他にも必要なファイルがそれぞれに配置され、インストールが完了するようです。<br />
<br />
※下記の内容よりもこちらの方が正しいようです。UNIXのmakeコマンドのことがまだちゃんと理解できてなくて、すみませんでした。<br />
参考：<a href="http://www.yynet.tama.tokyo.jp/~yokota/INSTALL/build.html">http://www.yynet.tama.tokyo.jp/~yokota/INSTALL/build.html</a><br />
<br />
<strike><br />
<b>２：実行ファイルを作成</b><br />
cdでソースコードのとこまで移動して、makeコマンドを実行すればNKFの実行ファイル「nkf」がソースコードと同階層に作成されます。<pre class="code">$ cd <span style="color:blue;">ダウンドードしたディレクトリのパス</span><br />
$ make</pre><img src="http://labs.karappo.net/media/1/20101122-nkf.png" width="625" height="401" alt="実行ファイル" title="実行ファイル" /><br />
<br />
ここまですれば下記で、nkfコマンドを実行できます。<pre class="code">$ <span style="color:blue;">実行ファイルへのパス</span> -g example.txt</pre>が、毎回実行ファイルへのパスを入力したり、ターミナルウィンドウへ実行ファイルをドラッグして指定するのも面倒なので、実行ファイルまでのパスを省略できるようにしておきます。<br />
<br />
<b>３：実行ファイルまでのパスを通す</b><br />
先ほどの実行ファイル「nkf」を任意の場所に置きます。ここでは、「/Users/<span style="color:blue;">ユーザー名</span>/local/bin/」に置きます。（このディレクトリがない場合は自分で作ってしまってOKです）<br />
「/Users/ユーザー名/.bashrc」という隠しファイルの最後の行に追加でこのように記述します。<br />
<pre class="code">export PATH=${PATH}:/Users/<span style="color:blue;">ユーザー名</span>/local/bin</pre><br />
これでパスが通ったはずなので、ターミナルでnkfコマンドを実行してみます。<br />
<pre class="code">$ nkf -g example.txt<br />
UTF-8</pre><br />
このように出力されたら成功です。<br />
※bashされるようなら、ターミナルを再起動してみてください</strike><br />
<br />
参考：<a href="http://www.yynet.tama.tokyo.jp/~yokota/INSTALL/nkf/">http://www.yynet.tama.tokyo.jp/~yokota/INSTALL/nkf/</a>]]></content>
 <id>http://labs.karappo.net/interact/:7:258</id>
</entry><entry>
 <title type="html"><![CDATA[Xcodeのキーショートカットに「行の複製」を追加]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=257" />
 <author>
  <name>terada</name>
 </author>
 <updated>2010-11-21T11:12:46Z</updated>
 <published>2010-11-21T20:12:46+09:00</published>
 <content type="html"><![CDATA[Xcodeでは、デフォルトで「行の複製」コマンドがありません。なので、キーショートカットのプロパティリストを編集してキーコマンドでできるようにしましょう。<br />
<br />
１<br />
キーショートカットの設定がデフォルトのものしかない場合は、<br />
Xcode > 環境設定 > キーバインド<br />
の「キーバインドセット：」の項目で、<br />
「Xcode デフォルト」を選択した状態で「複製」ボタンを押下。<br />
任意の名前をつけて保存したら、「適用」もしくは「OK」を押下。<br />
<br />
２<br />
&#732;/Library/Application Support/Xcode/Key Bindings<br />
に、先程保存した名前で拡張子が「.pbxkeys」というファイルがあるので、これを<a href="http://labs.karappo.net/interact/index.php?itemid=256">PlistEdit Pro</a>で開きます。<br />
<br />
３<br />
XML形式でショートカットキーとコマンドがセットになっているので、ここに「行の複製」を追加します。<br />
今回はキーコマンド「Ctrl+Shift+D」とします（※）。<br />
New ChildやNew Siblingを使って、Keyを「^$D」Classを「Array」とした要素をまず作成し、その子供に次の要素を追加します。<br />
<br />
selectLine:<br />
copy:<br />
moveToEndOfLine:<br />
insertNewline:<br />
paste:<br />
deleteBackward:<br />
<br />
<img src="http://labs.karappo.net/media/1/20101121-plist.png" width="459" height="135" alt="設定" title="設定" /><br />
<br />
※「Shift+Command+D」は「ファイル > すばやく開く」で使用されているため避けます。<br />
<br />
４<br />
Xcodeを再起動して設定完了。<br />
<br />
参考：<a href="http://viva.viva-mambo.co.jp/obj-c4aser/index.php?Xcode#g850b828">http://viva.viva-mambo.co.jp/obj-c4aser/index.php?Xcode#g850b828</a>]]></content>
 <id>http://labs.karappo.net/interact/:7:257</id>
</entry><entry>
 <title type="html"><![CDATA[PropertyListEditorがなくなったのでPlistEdit Proを使いましょう]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=256" />
 <author>
  <name>terada</name>
 </author>
 <updated>2010-11-21T10:06:28Z</updated>
 <published>2010-11-21T19:06:28+09:00</published>
 <content type="html"><![CDATA[Macプログラミングする際に頻出のプロパティリスト（.plist）を簡単に編集できるツリーテキストエディタ「PropertyListEditor」が、いつのまにか最新のMacOSX（10.6.5）ではなくなっているようです。でも、その代わりに同じようなエディタがAppleDevelopperToolsからダウンロードできました。これを使いましょう。<br />
<br />
<br />
<a href="http://www.apple.com/downloads/macosx/development_tools/plisteditpro.html"><b>PlistEdit Pro</b></a>]]></content>
 <id>http://labs.karappo.net/interact/:7:256</id>
</entry><entry>
 <title type="html"><![CDATA[Quartz Composerのjavascriptパッチ内での Structureの扱い方]]></title>
 <link rel="alternate" type="text/html" href="atom.php?itemid=240" />
 <author>
  <name>mio</name>
 </author>
 <updated>2010-09-04T06:17:43Z</updated>
 <published>2010-09-04T15:17:43+09:00</published>
 <content type="html"><![CDATA[<img src="http://labs.karappo.net/media/2/20100904-spectrum.png" width="331" height="243" alt="Audio Spectrum splitter" title="Audio Spectrum splitter" /><br />
<br />
Quartz Composer で、Audio Spectrumの部分の値を取り出すのに、structure Key Memberをいちいち使うのは面倒なので、上記のように、Audio Spectrumを突っ込めば、一発で値を取り出せるjavascriptパッチを作りました。<br />
<br />
作る過程でStructureの扱いでつまずいたので、<br />
その点についてもメモっておきます。<br />
<br />
<br />
■ Structure を使おうとして遭遇したエラーと対処法<br />
<br />
Structure型のデータを、任意の変数に代入しようとすると、<br />
TypeError: Result of expression 'Structure' [null] is not an object<br />
というエラーが出る。<br />
※'Structure'は自分で決めた引数の名前<br />
<br />
どうもjavascriptパッチは、パッチが立ち上がるときに、<br />
そのパッチに不具合がないかチェックが入るようなのですが、<br />
チェックの時点では、引数の__structure型の値が null なので、<br />
var hoge = Structure[0];<br />
のようなことをすると、<br />
Structureが null だから、そんなことできないっす、と上記のエラーが出るようです。<br />
<br />
なので、<br />
if( Structure != null){<br />
 var hoge = Structure[0];<br />
}<br />
<br />
とすれば、エラーも出ず正常に動くようです。<br />
<br />
ちなみに、この「javascriptの事前チェック（TestMode という言うらしい）」ですが、<br />
事前チェックのときは、_testModeという名の隠し変数（？）の値が true で、<br />
普通に動いているときは false になっているようなので、<br />
上記の部分を<br />
<br />
if(! _testMode){<br />
 var hoge = Structure[0];<br />
}<br />
<br />
としても正常に動くようです。<br />
TestModeなんて知るかよ！という感じですが、まあ一件落着ですね。<br />
<br />
情報ソース<br />
<a href="http://www.cybero.co.uk/QuartzComposer/examples/jelly2.html">http://www.cybero.co.uk/QuartzComposer/examples/jelly2.html<br />
</a><a href="http://web.archiveorange.com/archive/v/jFOq6bIjYcp88vRFKV2d">http://web.archiveorange.com/archive/v/jFOq6bIjYcp88vRFKV2d</a><br />
<br />
<br />
以下は、ソースコード<br />
<br />
■ Pattern 1 ：　出力に配列を使う場合<br />
<br />
<pre>function (__number eq[16]) main (__structure Structure)<br />
{<br />
	var result = new Object();<br />
	result.eq = new Array(16);<br />
	<br />
	result.eq[0] = 0;//これがないとエラーがでます。<br />
	<br />
	for( var i = 0; i < 16; i++){<br />
		if(Structure != null){<br />
			result.eq[i] = Structure[i];<br />
		}<br />
	}<br />
	<br />
	return result;<br />
}<br />
</pre><br />
■ Pattern 2 ：　出力用変数を文字でやる場合　<br />
　（こっちの方がパッチの見た目がスッキリしてます）<br />
<br />
<pre>function (__number eq0,__number eq1,__number eq2,__number eq3,__number eq4,__number eq5,__number eq6,__number eq7,__number eq8,__number eq9,__number eq10,__number eq11,__number eq12,__number eq13,__number eq14,__number eq15)<br />
main (__structure Structure)<br />
{<br />
	var result = new Object();<br />
	<br />
	for( var i = 0; i < 16; i++){<br />
		if( Structure != null){<br />
				result["eq" + i] = Structure[i];<br />
			}<br />
	}<br />
	return result;<br />
}<br />
</pre><br />
見た目はこんな感じ。<br />
<br />
<img src="http://labs.karappo.net/media/2/20100904-spectrum2.png" width="333" height="243" alt="Structure splitter 2" title="Structure splitter 2" />]]></content>
 <id>http://labs.karappo.net/interact/:7:240</id>
</entry>
</feed>