fc2ブログ
 
■アフィリリンク

iTunes Store(Japan)
iTunes Store(Japan)
Mac ソフトのことなら act2.com
act2.com
リンクシェア アフィリエイト紹介プログラム

■プロフィール

飴屋/菖蒲

Author:飴屋/菖蒲
(あめや・あやめ)
「UTAU」の作者です。

■アクセスカウンタ

08/10/20設置

■リンク
■ブログ内検索

■最近の記事
■カテゴリー
■最近のコメント
■月別アーカイブ
■RSSフィード
■Amazon

アソシエイトリンク

MIDI出力をLAN経由でルーティングしてみるテスト
UTAUとはちょっと遠い話。

ふと、MIDI→LAN LAN→MIDI なことが出来たら面白いかも?

と、思い立って検索してみたら、OSXにはもう実装されていたり、
(参考:http://av.watch.impress.co.jp/docs/20050530/dal192.htm)
他にもWINDOWSやLINUXで動くものもいくつかあるようです。
(これはWindows:http://www.dtmm.co.jp/dtmmnews/200209/news200209091.shtml)
でも殆どが有料なんですよね。

そこで考えました。
・アプリケーション層でMIDI入出力なら比較的簡単にプログラミング出来る。
・LAN通信プログラムなら作ったことあるし、UDPにすれば、実装もそんなに面倒じゃない。
・シーケンサ等との接続はMIDI Yokeに任せればデバドラ作らなくてすむ。
ってわけで、
なんだかいけそうだったので、作ってみました。
こんなの。
midi-lan.png

テストその1
PC1でMIDIを再生して、音はPC2で鳴らす。
[PC1]
Domino
  ↓out
MIDI Yoke
  ↓in
LMC(自作アプリ)
  ↓lan

[PC2]
  ↓in
LMC(自作アプリ)
  ↓out
MGCS(XPに付属のMIDIソフトシンセサイザ)

[結果]
結構いい感じ。
Dominoでは結構音数の多いMIDIファイルを再生してみたんですが、
殆どローカルと変わりなく再生できました。

テストその2
DAWを使ってWAVは全部ローカル、MIDIは一部リモートPCで音を出してみた。

[PC1]
Reaper 0.999 (一部を外部MIDI出力)
  ↓out
MIDI Yoke
  ↓in
LMC(自作アプリ)
  ↓lan

[PC2]
  ↓in
LMC(自作アプリ)
  ↓out
Reaper 2.53 v2.53Trial
  ↓
 VSTiを色々。

[結果]
反応が遅いみたいでいまいちでした。
確認のため、Reaperでローカルとリモートで同時に同じメロディも
流してみたんですが、聞いて判るくらい遅れてました。
聞いた感じ、30~40msくらいかな? 
やっぱアプリケーション層でやるとソフトシンセとCPUリソース取り合っちゃってダメっぽいです。
あとReaper自体も重いみたいだ。

というか、MIDIイベント丸投げする必要はないのか。
(「MIDI同期」というのがあることを知りました)
要は製作中に同期して再生できれば最後にそれぞれのPCでWAV出力後、
MIXすればいい話だし。
使えるかもしれないのでもう少し研究してみます。

今回の実験はこれまで。


その他 | 20:18:36 | Trackback(0) | Comments(4)
コメント
MIDIの伝送速度
VistaだとMIDI Yokeが・・・

蛇足かもしれませんが、検索していたら、こんなのが出てきました。

目で見るMIDI (Part2)
http://homepage2.nifty.com/el_freesoft/Midi2/Midi2.htm
MIDI経由だと、ノートメッセージ1個あたり約1msec かかるんですね・・
2008-11-24 月 08:20:54 | URL | つくね [編集]
コメントありがとうございます。
Vistaでも使えないことはないんですが、色々面倒ですよね。
MidiYokeは管理者権限でインストールしないと使えないし、
http://www.parof.jp/Misc/MIDI-VST/ ここの8.3参照)
ファイアウォール設定で使用ポートあけないとLAN経由できないし。

>ノートメッセージ1個あたり約1msec
Lanの方が桁違いに速いんですね。
2008-11-24 月 21:38:37 | URL | あめや [編集]
参照リンクありがとうございます。
MIDI Yoke行けました。
8.4.1のレジストリ・・のあたりも入れておいた方が便利ですね。
うちの子、64bit版なので、ソフト音源も制約があったりしますが・・・

MIDI Yoke関連で、こんなページもありました。
http://www.pp-express.info/Vista_MIDI/vista_midi.htm
どこのレジストリをいじるのか気になって見に行ったのですが、
CC#64とか色々、Microsoft GS Wavetable Synthのバグの方が
重大な気がして。

>Lanの方が桁違いに速い
MIDIの速度は、USBが登場する前のシリアル通信(昔のピーガラガラのアナログモデムと似たようなもの)を想像すると分かりやすいかもしれません。
2008-11-25 火 17:46:21 | URL | つくね [編集]
MIDIの伝送速度補足
さらに蛇足ですが、リンク先見ましたが……
MIDI規格の中に「ランニングステータス」という概念がありますが、当該ページでは触れられていない模様。

これは、本来イベントのタイミングに0~127(ステータス)の値がきた場合、直前のイベントのデータとみなす、というものです。
間にノートオンメッセージ以外のものが挟まらない限りはノートオンイベントは省略可能となります。

「3)左手でC ( ソ ド ミ ) を同時に押すと。」で記述されている例だと
実際には 91 37 7F 3C 7F 40 7Fと出力することでデータ量を減らすことが出来るのです。

なので、実際には2バイト削ることが出来て、320x9=2880μ秒ではなく320x7=2240μ秒で伝送完了となります。

ご参考までに。
2009-01-14 水 20:49:34 | URL | オトッキー [編集]
コメントの投稿

管理者にだけ表示を許可する