ドラムセット表示アプリ(改良版) ― 2011年08月22日 12時06分51秒
Quartz Composer コンポジションを、Xcode でスタンドアロンアプリに書き出しました。
Ver2.0(笑)です。
ここをクリックするとダウンロードできます。(5.9MB)
(公開終了)
DTM初心者の方が、ドラムセットの配置例とドラムの名称、ドラム譜上での記載例、及び鍵盤上での一般的な配列(GM配列)を覚えられるように作った教材です。(B0以下、D#1、F2以上は省略)
OSX10.6以上で動くMacと、MIDIキーボードなどMIDIノートメッセージを出力する楽器があれば動作します。
改良点と残念な点
・音も出ます。一応ベロシティ対応ですが、あまり正確な反応ではありません。
・視点の移動に合わせて、音像定位も移動します。
・Sound のチェックを外して消音出来ます。(他の音源の音だけ聞きたい場合など)
・バスドラムだけでなく、ちゃんとペダルも付けました(笑)
・ウインドウサイズ変更できます(・・でも、アスペクト比固定にするにはどうやったら??)
・ハイハットオープン、クローズ、ペダルの排他的処理(同時に発音させない処理)が作れませんでした。(今も考え中)
・私のMacBookPro(古い)とOxgen49だけで発生する不具合かもしれませんが、アプリの起動に時間がかかりすぎた時は、殆どの場合MIDIノートを正しく受診できなくなっています。一旦終了し、MIDIキーボードのUSB端子を差し込み直すか、電源を入れ直してから再度起動すると正常に動きます。
3D Sound Player ― 2011年08月20日 08時00分05秒
Quartz Composer コンポジションに、発音機構も組み込む場合は、3D Sound Player を使用します。
が、どうも使いにくいです、コレ。
Patchは全て、Enableのチェックがはずれている時にはパラメータ変更が効かないので、発音させる前に音量や定位やピッチを指定したくても出来ません。
つまり、Note On Velocity 対応が可能ではあるのですが、タイミングの問題で正しく機能してくれないわけです。
Enableとは別に発音トリガーがあれば良いのですが・・。
で、波形の先頭に50msec程の空白を作って、わざと発音タイミングを遅らせたりします。
当然気持ち悪いです。
何か、良い方法はないものでしょうかね・・。
見た目がきれいだったのでなんとなく ― 2011年05月22日 13時49分14秒
32フレット(実質37フレット音域)ギター ― 2011年03月18日 14時59分26秒
32Fret Guitar
Quartz Composer & MIDI (Example 12)
今度は、憧れのハイフレットギター(ヘルゲ仕様)で作ってみました。
ついでにチョーキングとビブラートにも対応(?)しています。
全音フレット上に無いノートは、その音が存在する他の弦のMIDIチャンネルに割り振る、という機構(私は Cubase の Input Transformaer で作りました)を間に挟めば、言わば「ハイフレット・シミュレータ」・・フレーズをハイフレット音域で演奏する場合、どういう運指になるのかを確認できる・・という事に、作った後で気付きました。
いつの日か、ハイフレットギターをオーダーで作った時には、練習に役立つ・・んじゃないかな・・とか(笑)
色々と遊んでみて判ったのですが、28フレット以上を最も有効に使えるキーは、E(C#m)なのですね ・・。
こんなもので遊んでくれる人は極端に少ないですし、スタンドアロンのアプリに書き出してもしょうがないので、公開ファイルはQCコンポジションのままです。
Quartz Composer 4.0以上で開けます。
File Download(公開終了)
既にハイフレットギターを所有していて、GKなどのデバイデッドピックアップを装着済みならば、そのまま演奏するだけで、弾いた通りの映像になりますが、まずそんな人は居ないでしょう(笑)
普通のギター + GK ならば、GR か VG-99 側で(または、間に何らかのMIDIプロッセッシング可能なツールを挟んで)ピッチを1オクターブ上げる必要があります。
Fretboard ― 2011年03月09日 15時01分27秒
Quartz Composer & MIDI (Example 11)
殆ど Line パッチばかり使って、何か作れないかと考えていて、思い付きました。
ギターの指板って、殆ど「線」ばかりですよね。
で、暇だったので作り始めたら、以外に奇麗だったので公開します。
振動の大きさとか早さとか、玉の色と明るさとか、弾いた強さ(ベロシティ)に対応させたり、ほんと無駄に凝ってみました(笑)
Mac内でMIDIノートを扱えれば、とりあえず動きますが、やはりこれは GR か VG で、ギターから変換されたMIDI信号をMacに送り込める環境を備えてないと面白くないでしょう。
MIDIコンバータのモード設定は、もちろん MONO Mode で、1弦~6弦 = 11ch~16ch です。
(動画ではギター2本ですが、ファイルでは1本です)
File Download(公開終了)
MacOSX 10.6以上
ちなみに、チョーキングや縦方向ビブラートの表現も大して苦労する事無く追加できますが、Guitar >> MIDIコンバータからのピッチベンドは(ホイールみたいにバネが付いてるわけではないので)手を離した時に完全に中央値に戻っているとは限らず、その結果、弦を表現している Line に折れ目が付いたりして美しくなかったので、今回は見送りました。
それでジャズ風な演奏にしたわけですけど・・・まあ、得意な分野じゃないので演奏内容は大めに見て下さい(笑)
Guitar → MIDI → Graphic ― 2011年03月06日 15時23分11秒
フィルターエンベロープ補助教材 ― 2011年02月16日 16時10分37秒
Quartz Composer & MIDI (Example 09)
Logic の ソフトウェア音源 MS P で、シンセサイズの基本を学習する際の補助教材として作りました。
授業用では M-Audio Oxygen49 のプリセッットを「01」にした状態で、C1~C17が使えますが、下記の一般用では、最初の画面に表示されたCCを送ってやると機能します。
まあ、こんなモノ誰もいらんでしょうが(笑)
フィルターエンベロープ視覚化アプリ
File Download(公開終了)
MacOSX 10.6以上
停滞中(追記) ― 2011年02月06日 09時29分35秒
古いバージョンのマニュアルしか見当たらないで、仕方なくそれを見ながら進めてきましたが、Listing 5-1 がどうたらいう所から、先へ進めずにいます。
ここまで凄く楽しかったのでここで止めたくないのですが、まあ、私はプログラマーになりたいわけじゃなし、なれるわけもなし(笑)必要な事は覚えたので、まあ良いか・・。
Quartz Composer コンポジションを、スタンドアロンで機能するアプリにし、パラメータを制御するコントローラを備えるところまで出来ましたが、ウインドウサイズを自由に変更したり、フルスクリーンにしたりしたければ、ここから先、このテの知識が必要なようですね。
MacOSX10.4 の Developer/Examples/Quartz Composer に入っていた Player というフォルダのXcodeプロジェクトをビルドした「QuartzComposerPlayer」が、現在(MacOSX10.6 )Developer 付属の Quartz Composer Visualizer でしょうから、何も自分で作らずにそれを使えば良いだけなのですが、まったく困った事に、アスペクト比 4:3 のコンポジションだと、MIDI制御系などが正しく機能しないのです。(ディスプレイ設定を 1024 × 768 などにしても、表示が合っているだけで制御が機能しません)
で、何故、私が今時 4:3 でコンポジションを作っているかというと、この2ヶ月の作業は全て
ライブハウスのプロジェクタで、演奏中に表示させるため
・・であるからです。
Quartz Composer のプログラミングを練習した一番の目的はそれで、教材作りは副産物でした。
しかし残念・・。
この先の項目をざっと見た所、コードを理解できなくても、コピペするだけで何とかなりそうなのですが、マニュアルで説明されているバージョンと、今のXcode(Ver 3.2)は、あちこち違うので、図解説明があっても殆ど役に立ちません。
Web上にも解説は見つからず、自分であれこれ試しまくるしかない状態で、実はここに辿り着くまででも大変でした。
MacOSX10.4 のままにしてある、以前使っていた PowerBookG4 で、その時点でのXcode(Ver 2.0)を使ってみたところ、上記の部分までは解ったものの、そこから先で???
残念・・。
まあそれでも、コードを一行も書かず、その知識も全く無いまま、なんとか一応アプリケーションらしきモノを作れる所まで辿り着きましたし、Quartz Composer を起動したままなら、フルスクリーンでの表示も出来ますから・・。少なくとも、自分がやりたかった、ギターによる映像制御に関しては、ほぼ全て実現できて、その点は満足です。
残念ながら、まだ次のライブの予定はありませんが、その時には披露できます。
しかし、音源テンコモリの Reason を、Cubase のMIDIプラグイン経由でギターから鳴らしながら、さらに Quartz Composer を起動した状態でライブって、大丈夫かな・・。
たぶん大丈夫じゃない・・。
何とか工夫しないと。
テンポ検出 ― 2011年01月30日 16時14分57秒

つまらないもんですが(笑)タイミング検出と平均値算出、及び許容範囲設定の機構を作っておきたかったので・・。
数値表示だけだと、見た目があんまりそっけなかったので、ボールに撥ねてもらいました。
回転がめちゃくちゃですが気にしないで下さい。
Quartz Composer にはオーディオ入力のパッチもあり、ピークレベルとスペクトラム(16バンド)を出力できるので、周波数アナライザや波形表示も可能です。
ただ、正弦波やパルスを使って試してみたところ、あまり精度が高くないように思いました。
それでも、このようにマイク入力からのピークを検出するくらいなら、当然ながら問題ありません。
Maximum Tolerable の2つの設定値からズレたタイミングでビートが入った場合、平均テンポの計算から除外するようにしてあるので、普通の8ビートなどならば、シンコペーションやゴーストノートが入っても、テンポの数値を維持できます。

テンポを検出したところで、MIDIクロックの(受診はできても)送信はできないので、数値をQuartz Composer から外部に出して何らかの利用をするなら、OSC (Open Sound Control) を経由させるしかないでしょう。
3D Drumset / Drum Score / GM Arrangement ― 2011年01月27日 14時59分22秒
Quartz Composer Composition
3D Drumset / Drum Score / GM Arrangement
授業用に作った Quartz Composer コンポジションです。
DTM初心者の方が、ドラムセットの基礎知識とドラム譜上での記載例、及び鍵盤上での一般的な配列(GM配列)を覚えるのに使用します。(B0以下、D#1、F2以上は省略)
OSX10.6以上で動くMacと、MIDIキーボードなどMIDIノートメッセージを出力する楽器があれば動作します。








