<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gaje &#187; MIDI</title>
	<atom:link href="http://gaje.jp/category/midi/feed/" rel="self" type="application/rss+xml" />
	<link>http://gaje.jp</link>
	<description>Happy making</description>
	<lastBuildDate>Tue, 08 Jun 2010 21:22:40 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>nanoKEY (なんちゃって)スタンダロン化はどうなったか？</title>
		<link>http://gaje.jp/2009/05/13/1449/</link>
		<comments>http://gaje.jp/2009/05/13/1449/#comments</comments>
		<pubDate>Wed, 13 May 2009 14:46:09 +0000</pubDate>
		<dc:creator>Gan</dc:creator>
				<category><![CDATA[MIDI]]></category>
		<category><![CDATA[nanokey]]></category>

		<guid isPermaLink="false">http://gaje.jp/?p=1449</guid>
		<description><![CDATA[すみません。飽きてやめたとか、行き詰まって断念とか、そういうんじゃないんです。
どうしても先にやらなくてはいけない別のことが立て込んでいて、プロジェクトがとまってるだけです。
多分6月ぐらいから再開予定です。
なにもかも [...]]]></description>
			<content:encoded><![CDATA[<p>すみません。飽きてやめたとか、行き詰まって断念とか、そういうんじゃないんです。</p>
<p>どうしても先にやらなくてはいけない別のことが立て込んでいて、プロジェクトがとまってるだけです。</p>
<p>多分6月ぐらいから再開予定です。</p>
<p>なにもかもどうにも手が遅くてすみません。</p>
]]></content:encoded>
			<wfw:commentRss>http://gaje.jp/2009/05/13/1449/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>手が止まってます &#8212; nanoKEY をスタンダロン化</title>
		<link>http://gaje.jp/2009/04/10/1358/</link>
		<comments>http://gaje.jp/2009/04/10/1358/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 03:23:18 +0000</pubDate>
		<dc:creator>Gan</dc:creator>
				<category><![CDATA[MIDI]]></category>
		<category><![CDATA[nanokey]]></category>

		<guid isPermaLink="false">http://gaje.jp/?p=1358</guid>
		<description><![CDATA[ここまでは順調だったのですが Serial MIDI でつまづき
Serial MIDI は、レガシー MIDI の規格と違うのですね。不勉強でした。レガシー MIDI にしないとつなぐ機器がありません。
解決法を思案し [...]]]></description>
			<content:encoded><![CDATA[<p>ここまでは順調だったのですが Serial MIDI でつまづき</p>
<p>Serial MIDI は、レガシー MIDI の規格と違うのですね。不勉強でした。レガシー MIDI にしないとつなぐ機器がありません。</p>
<p>解決法を思案しています。今のところ思いついているのは2つ:</p>
<ol>
<li>USB MIDI -&gt; レガシー MIDI 変換をするデバイスを作る</li>
<li>Serial MIDI -&gt; レガシー MIDI 変換をするデバイスを作る</li>
</ol>
<p>もあさんの <a href="http://web.mac.com/kuwatay/morecat_lab./Pepper-midi.html" target="_blank">PepperMIDI</a> をベースにできるならば 1. の方法のほうが良さそうです。</p>
<p><span id="more-1358"></span></p>
<p>PepperMIDI の作りは、以前 SX-150 の MIDI/CV に使ったときにはあまり詳細を見なかったのですが、気になるのは</p>
<ul>
<li>クロックはどうなっているか？MIDI 信号を出すならクロックはそれなりに精度が必要</li>
<li>Pepper MIDI がマイコンの UART 機能を使っていると、実装が面倒になる</li>
</ul>
<p>の二点です。早速ソースコードをざっとチェック</p>
<p>クロックは RC クロックを USB 信号を基準にして 8.25MHz に校正するようです。よくできています。USB 信号の精度が MIDI クロックに使うのに十分なら、ここは問題ないはずです。</p>
<p>UART は、PepperMIDI で使われている ATTiny45 にそもそも用意されていないので、問題ないようです。</p>
<p>ということで、PepperMIDI の MIDI 受けの部分を ATTiny2313 に移植すれば USB MIDI -&gt; レガシー MIDI 変換はやれそうと今のところ考えています。さてさてどうなることやら。あっ 2313 のプログラム領域に全部入りきるかも気にしないといけませんね。ATTiny45 を使うなら問題なさそうですが、シリアル通信プロトコルを実装するのがちょっと面倒かもしれません。あと、手持ちがない :-)</p>
<p>今度こそデバッグ機能が必要になるかな。AVR dragon の使い方を覚えなくては。近頃覚える必要のあることが多くてちょっと泣きそうです。</p>
<p>それにしても、PepperMIDI のコード、かっこいいです。とてもきれいに書かれています。</p>
]]></content:encoded>
			<wfw:commentRss>http://gaje.jp/2009/04/10/1358/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>nanoKEY とシリアルポートをつなぐ</title>
		<link>http://gaje.jp/2009/04/05/1346/</link>
		<comments>http://gaje.jp/2009/04/05/1346/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 15:27:00 +0000</pubDate>
		<dc:creator>Gan</dc:creator>
				<category><![CDATA[MIDI]]></category>
		<category><![CDATA[nanokey]]></category>

		<guid isPermaLink="false">http://gaje.jp/?p=1346</guid>
		<description><![CDATA[進行中プロジェクト「ナノキーのスタンダロン化」
nanoKEY の信号をシリアルポートに出力させるところまでできました。
一日60分程度しか時間を割いていない（さけない）亀プロジェクト．．．ですが、なんとかじわじわと前進 [...]]]></description>
			<content:encoded><![CDATA[<p>進行中プロジェクト「ナノキーのスタンダロン化」</p>
<p>nanoKEY の信号をシリアルポートに出力させるところまでできました。</p>
<p>一日60分程度しか時間を割いていない（さけない）亀プロジェクト．．．ですが、なんとかじわじわと前進．．．</p>
<p>今のところ、プログラミングなしでできています。遅延の問題がなければ、このままスクリプト作成ぐらいで済ませても良い気もしてきました。問題は、小型化したときにディスプレイなしでどうやって起動確認するかですね。電気的にシリアルの TxD 信号をモニタするのが良いかもしれません。信号を検知したら LED を光らせる回路をくっつけておくのはどうかしら。</p>
<p><a href="http://gaje.jp/projects/labo/usb_midi_host/#section5">http://gaje.jp/projects/labo/usb_midi_host/#section5</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gaje.jp/2009/04/05/1346/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>nanoKEY 用 USB-MIDI ホスト： ALSA sequencer API</title>
		<link>http://gaje.jp/2009/03/31/1303/</link>
		<comments>http://gaje.jp/2009/03/31/1303/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 04:08:28 +0000</pubDate>
		<dc:creator>Gan</dc:creator>
				<category><![CDATA[MIDI]]></category>
		<category><![CDATA[nanokey]]></category>
		<category><![CDATA[新着]]></category>
		<category><![CDATA[自作]]></category>

		<guid isPermaLink="false">http://gaje.jp/?p=1303</guid>
		<description><![CDATA[SBC でナノキーを動かそうプロジェクト

開発機(デスクトップPC)に Linux をインストールしてみる (debian)
とりあえず何でもいいからソフトで認識をさせる (kmidimon)
それがどんな API を [...]]]></description>
			<content:encoded><![CDATA[<p>SBC でナノキーを動かそうプロジェクト</p>
<ul>
<li>開発機(デスクトップPC)に Linux をインストールしてみる (debian)</li>
<li>とりあえず何でもいいからソフトで認識をさせる (kmidimon)</li>
<li>それがどんな API を使っているか調べる (ALSA sequencer API)</li>
</ul>
<p>まで進みました。どうやら、ALSA sequencer API というものを使えそうです。前の記事に、自分が MIDI ドライバ作るなら、サーバとして作ってイベントのやりとりはソケットで、と書きましたが、理解違いでなければ、どうやら、実際にもそれにかなり近いつくりになっているようです。</p>
<p>詳しく、もないですが、詳しくはこちら。</p>
<p><a href="http://gaje.jp/projects/labo/usb_midi_host/" target="_blank">http://gaje.jp/projects/labo/usb_midi_host/</a></p>
<p><a href="http://gaje.jp/projects/labo/" target="_blank">しかかり中プロジェクト置き場</a>のページを作りました。</p>
]]></content:encoded>
			<wfw:commentRss>http://gaje.jp/2009/03/31/1303/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新プロジェクト: nanoKEY スタンダロン MIDI キーボード化</title>
		<link>http://gaje.jp/2009/03/29/1276/</link>
		<comments>http://gaje.jp/2009/03/29/1276/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 01:47:10 +0000</pubDate>
		<dc:creator>Gan</dc:creator>
				<category><![CDATA[MIDI]]></category>
		<category><![CDATA[nanokey]]></category>
		<category><![CDATA[自作]]></category>

		<guid isPermaLink="false">http://gaje.jp/?p=1276</guid>
		<description><![CDATA[ぼちぼちとはじめてます。
近頃話題の nanoKEY、私も入手しました。nanoKEY、小さくて便利ですが、USB MIDI のみ対応なので、USB ホストがないと使えません。
普段のシンセ作業では、nanoKEY 導入 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://gaje.jp/projects/labo/usb_midi_host/" target="_blank">ぼちぼちとはじめてます</a>。</p>
<p>近頃話題の nanoKEY、私も入手しました。nanoKEY、小さくて便利ですが、USB MIDI のみ対応なので、USB ホストがないと使えません。</p>
<p>普段のシンセ作業では、nanoKEY 導入以前から、PC から MIDI モニタソフト経由で MIDI 信号を出していたので、USB MIDI でも全く不都合ないのですが、nanoKEY をたとえばデモなどで持ち出して使いたいときには、PC がなくてはいけなくて少しとりまわしが悪いです。</p>
<p>ということで、nanoKEY をスタンダロン MIDI 化すると、とっても便利そうです。</p>
<p><span id="more-1276"></span></p>
<p>シンセ自作界隈の皆様同じように考えられているようで、マイコンを使って USB ホストの実装をすることを検討し始めている方もいらっしゃいます。</p>
<p>ところで、そもそもスタンダロン化するにはどんなアプローチがあるでしょうか？だいたいこんなところでしょうか</p>
<ul>
<li>nanoKEY 自体を改造して、レガシー MIDI が直接出せるようにしてしまう</li>
<li>じゃまにならない程度に小型のホストを開発してしまう</li>
</ul>
<p>前者は、仕上がりすっきりしますが、MIDI 信号を発生するプログラムを書き直す必要があります。nanoKEY は、使ってみるとわかりますが、弾き具合など、とてもしっかりチューンされていて、同じ弾き具合を再現するのは（とても勉強になりそうですが）ちょっと大変そうだし、内部に手を入れて壊してしまうリスクも伴います</p>
<p>ということで、まずは後者のアプローチのほうが無難そうです（とはいえ楽ではないのですが）。そこで、マイコンを使って USB ホストの実装、となるんですが、私にはUSBホストを実装するウデはない、でもやっぱりスタンダロン化はしたい、ということで、ちょっと違うアプローチをとってみることにします。</p>
<p>それはこんなアプローチ：</p>
<p>nanoKEY -&gt; (USB) -&gt; シングル・ボード・コンピュータ (Linux) -&gt; (シリアルポート) -&gt; MIDI out</p>
<p>シングル・ボード・コンピュータというのは、超小型の PC です。どれぐらい小さいかというと、たとえば 3.5インチディスクぐらいの大きさです。中にはフロッピーディスクサイズのものもあります。れっきとした 386 互換機もあって、普通に Windows や Linux などがインストールできます。ディスプレイも普通のを使えます。これだと、使い勝手は普通の PC と変わりませんから、USBホストの知識がなくてもやれます。でもまあその、高くつきます。SBC の値段は nanoKEY の何倍もします。なのでちょっとアホらしい方法なのですが、今、死蔵している SBC があるので、「新たにモノを買わない」というルールのもとにプロジェクトを立ち上げました。</p>
<p>現在のところの進捗状況</p>
<ul>
<li>まずは、テスト・開発を行うため、普通のデスクトップ PC に Linux をインストール</li>
<li>nanoKEY をつないで、認識されることを確認</li>
</ul>
<p>MIDI 出しのところは、シリアルポートから MIDI 信号を出すソフトを書いてしまおうかと。ということで、USB-MIDI ドライバから情報をもらう必要があるので、次には、Linux の USB-MIDI ドライバがどんな仕組みになっているかを調べ上げることになります。</p>
<p>ここはドキュメントあさりになります。が、あまりに安易なので、ちょっとは考えてみることにしました。もし自分が USB-MIDI ドライバを作るのだったらどうするかな？ええと、USB-MIDI の信号を拾いたいアプリは、一度にひとつとは限らないから、ドライバは共有できるようにしたいです。そして、リアルタイム性が重要だから、ドライバとアプリの通信は、プロデューサ・コンシューマモデルがいいでしょうか。共有するプロデューサ・コンシューマモデルといっても、シェアドメモリとかファイルとか、共有の受け渡しリソースを介すると、どっから読み始めて？、とかリソースサイズは？、とか、かなりうっとおしそうなので、受け渡し自体はアプリと一対一の接続で、ドライバからアプリに一方的にイベントを流し込むやり方が楽そうです。<br />
と、いうことで、ドライバはサーバとして実装して、アプリとの通信はソケット経由、イベントは、サーバからアプリへ一方的に流し込めばいいし、ネットワークを介さなければパケットの消失もあまりなさそうなので、通信は UDP でやるのがいいのかな？こんな感じかなぁ</p>
<p>ということで、次には実物のつくりを調べて答え合わせしてみますです。</p>
]]></content:encoded>
			<wfw:commentRss>http://gaje.jp/2009/03/29/1276/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Linux MIDI HOWTO</title>
		<link>http://gaje.jp/2009/03/28/1272/</link>
		<comments>http://gaje.jp/2009/03/28/1272/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 13:55:16 +0000</pubDate>
		<dc:creator>Gan</dc:creator>
				<category><![CDATA[MIDI]]></category>

		<guid isPermaLink="false">http://gaje.jp/?p=1272</guid>
		<description><![CDATA[備忘です。
http://tldp.org/HOWTO/MIDI-HOWTO.html
]]></description>
			<content:encoded><![CDATA[<p>備忘です。</p>
<p><a href="http://tldp.org/HOWTO/MIDI-HOWTO.html" target="_blank">http://tldp.org/HOWTO/MIDI-HOWTO.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gaje.jp/2009/03/28/1272/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
