2008/12/07

卒論。。

生命と機械ってどこがどう違うのでしょうか??????

生命と機械はそもそも物質的に異なる(同じ場合もある?)けれど、でもイメージとしては常にいったりきたりしてますよね。だって、根本的なしくみをみると、すごい似てるとこが多いし。
しかも、ロボットとか、電脳とか、実際の身体を機械が犯すような考えがあるから、またさらに混乱する。ロボットとか無ければ、単に妄想の、頭の中だけでのできごとですんだのに。

本当にもやもやして気持ちがわるい。。

2008/11/14

Make Meeting 02 + 東大

久々にブログ更新、ほぼ一ヶ月さわっとらんかった。

先日多摩美で開催された MAKE MEETING 02の写真を少し。ケータイカメラだから全然ですが。とりあへず。


↑マリオキノコ半固定抵抗(ボリューム)


↑サーキットベンドコーナー(casioのskシリーズとか、ファービーとか、子供用玩具とかがベンドされてました)


↑ハチュネミク×100ネギ振り。(個人的に"チュネ"ってはいいたくないけど。。)


↑東大の某研究室にて。今年のals electronicaにもでたBTくんが今作ってる映像をみしてくれた!きもい。いい意味です!写真取り方へたくそすぎる。

今日は今から明日の発表用のパワポと半田漬けです。半田漬けうまくなりたいがためにBT君の仕事を奪ってきました。手先きよ〜になりてーなー!

2008/10/05

卒論

サミュエル・ベケットのクワッドについてかこうとしてるのですが、スーパー楽天主義なのかただの馬鹿なのかあさって卒論中間提出というのに目次すらかけてないという。。。読むべき本は15冊、ザ・山積み。

せめて目次とabstrucction的なものは書いておくとこまでいかなきゃ/

標題は「クワッドから考える人と機械のインタフェース」(ここからしてもはや教育学部英語英文学科とは関係なきにしも、、ない?)

概要としてはこんな感じ:

まず、'人' と '機械' の定義・認識についての歴史をひもとき、今回の議論における機械と人の関係性(人の身体性)やそれらの定義を掌握する。それから、クワッドがテレビというメディアを選択した意図、クワッド独特の構成とシナリオ(反復、リズム、音、幾何学的要素)、生命システム(粘菌)との類似点を考慮して、クワッドの演者は機械、人間のどちらでもないような存在(境界者)=インタフェースであることを指摘する。そこから人と機械をつなぐインタフェースの事例を挙げ、比較しつつ、その必要条件をあぶり出す。


僕の興味以外の何ものでもない感じです。英文学どこいった〜〜?

まぁ、途中までの仮目次はあるのですが、
とりあえずそれらすべてを見せた上で先生に指摘されたのは、演者が機械か人間か議論するまえに、クワッドの位置づけや演者自体がそもそも演技者なのか、クワッドは演劇なのか?不条理なのか?とか、もっと、布石というか、読者が何も知らなくて、初めてよんんでもわかるように、1から10まで細かく導いていかないといけませんよっていうことでした。

確かにって感じです。

今までかなりマニアックに考えすぎてたから、はじめに抱いていた疑問もなんか既に解決してしまったかのように錯覚してしまって、先走りすぎてたス。また、1から考え直そうってというか、また丁寧に考えてきた道順をたどってみようと思ったのです。

論理的に論理的に。。

2008/10/02

ARって

なんの略さ。

http://www.nicovideo.jp/watch/sm3342507
電脳コイルの世界。。

くるのかなぁ。生きてる間にそういう世界はこないかなぁ。

どっちにしても、こういう技術は開発とかするよりもこれは使う側になりたい。

というか常に使う側(中間的に)なりたい。
エンドユーザってわけでもなく、ファームもらってうまく使う立場っておいしいな。

東大研究室まではいかないけれども、東京工学院まではエンドユーズ的にはならないよーな(狭い尺度。。)。

半分は人が考えたものだけど、半分は自分のものみたいな。

しかし、思いついたらやってかないとなにもできないなぁ。

このあいだの音デバイスもいまんとこ仕事にとられてやれてないし。

あとDJし過ぎだし。

とにかくアイディア帳にはメモメモ。後で一気に。。っていつまでためんのやら。。

2008/09/16

いまさらの。。

uniclock!

楽しい。。

2008/09/14

terminalでscreen

terminalのscreen <-> usb-terminal変換 <-> xbee 通信を開くときのチップス。

screenにおいて。

まず

$ls /dev/tty.*
使用するポートを確認後、
$screen /dev/tty.usbserial-A4004VVV 19200
これで新しいポートのセッション開始。
そのポートとの通信を切る(killする)ときは
C-a C-k
つまりcontrol+aでescapeして、control+kでkill

これでとりあえず通信は確保。

xbeeのカンフィギュレーション書き換えは

GUI_serial_xbee3

にゆだねる。

2008/09/13

macでX-CTU エミュ

windowsにはxbeeのコンフィギュレーションを変更したり、ファームをアップデートしたり、通信テストしたりするのに、X-CTUなる便利なGUIのソフトがあるのです。がしかし、macではX-CTUが使えないので、基本的にterminalからコマンドラインで通信するしかない。

しかし!

そこへこの,

7 in Seven

mac版のX-CTUとまではいかないものの、

アドレスや通信レートの変更、スリープモードの選択などなど、最低限のことに限られますが、GUIでできます。

その名も

GUI_serial_xbee3

なんともありがたい!!

と早速ダウンロードしたのはいいものの、これを実際に使うまでに一晩つぶしてもうた。

後続の方のために(いるのかはわからないけれども)、また覚え書きとして、実際に使うまでにたどった道順をショートカットで簡単に書き留めておこうかなと。

僕の環境は、Mac OSX 10.3.9のパンサーで、X Codeとかデベロッパーツール等は既にインストール済み。



まずはGUI_serial_xbee3を上記のリンクからインストール。そして、デスクトップで解凍すると、そこに実行可能なアプリケーションが出現。即、ダブルクリック


そしたら、まぁそうでしょう。なんやらエラーが。

2008-09-12 06:57:13.118 GUI_serial_xbee3[476] A Python runtime could be located. You may need to install a framework build of Python, or edit the PyRuntimeLocations array in this application's Info.plist file.

和訳するとこんな感じかな?
Python.frameworkインストールして!もしくは、Info.plist中のPyRuntimeLocationを変更して
くださいとな。

3
なので、とりあえず、Python2.5.1をダウンロード。普通に解凍してインストーラ実行。その後、(念のためだったけか?)パソ再起動。


それから、
GUI_serial_xbee3を右クリック。Show Package Contentsで開き、Info.plist中のPyRuntimeLocationのパスをこんな感じに↓

System/Library/Frameworks/Python.framework/Versions/2.5/Python

これはもしかすると、インストールするときの権限によってとか、OSによってとかで微妙にちがうのかもしんないので、ハードディスク検索かけて微調整(要は実行可能ファイルUnix Executable Fileを参照するようにしてランタイムを走らせる!)

*ちなみにこの時 Info.plistは、デフォルトでProperty List Editorで編集するようになってた。
text editorだと

PyRuntimeLocations

@executable_path/../Frameworks/Python.framework/Versions/2.5/Python
System/Library/Frameworks/Python.framework/Versions/2.5/Python


ここの部分。


それから、またエラーが。。今度はこんな感じ

ImportError: dlcompat: dyld: /Users/MITO/Desktop/GUI_serial_xbee3.app/Contents/MacOS/GUI_serial_xbee3 can't open library: /Library/Frameworks/Tk.framework/Versions/8.4/Tk (No such file or directory, errno = 2)

6
だからここでTclTkAqua-8.4.1-Jaguar.dmgをダウンロード。インストール後、また再起動。

7
再びGUI_serial_xbee3をダブルクリック!!そしたら起動してGUIがお目見え!!(するはず)

8
そしたら、terminalのscreenプログラムでシリアル通信ポートを開く(前のポストを参照)。具体的には、

#ls /dev/tty.*
(これで現在の通信ポートを表示)

こんな感じでいくつか出る↓
>> found 4 ports:

[0]: /dev/tty.modem

[1]: /dev/tty.Bluetooth-PDA-Sync

[2]: /dev/tty.Bluetooth-Modem

[3]: /dev/tty.usbserial-A4004VVV (←これがusbシリアルポート,秋月のFTDIのやつ)

そんだら次は

#screen /dev/tty.usbserial-A4004VVV 19200  (←最後はボーレート。xbeeにあわせる。僕は19200)




10
で、ようやくGUI_serial_xbee3を起動、上から順に押してくかんじで。。
open押すと、右にポート名が表示される。次にsend ping押すと ATモード突入コマンド +++
が送られる。次にget押すと、現在のxbeeのコンフィギュレーション”パッ”と表示される。
書き換えるときは、普通に書き換えて、putを押す。

すべての手順でconsoleをみながらやるとよい。



*追記:手順が少しちがった!

terminalでポートと通信をとるまえに、まずGUI_serial_xbee3をひらいて、openを押しておく。その後、terminalのscreenで接続を開始。
で、あとはGUI_serial_xbee3で Send Pingおして、 Get おしてデータを読み出せる。はず。

というか結局相当めんどくさいことに。。guiだから簡単だとおもたら、そうでもないんだ。。
そもそもこのやり方が安全か正しいかもわからんとです。
各自の責任でってかんじです。

僕は3回くらいカーネルパニックくらいました。。。

2008/09/12

NPN型トランジスタ覚え書き

コレクタ=ソース(N)
ベース=ゲート(P)
エミッタ=ドレイン(N)

>Nはネガティブ、Pはポジティブ

>エミッタはグランド

>ベースでコレクターエミッタ間の電位を操作

>ベースが0の時、コレクターエミッタ間はオープン(電位差あり)
>逆にベースが1のとき、コレクターエミッタ間はショート(電位差なし)

ふむふむ。。

p.s. STM32F103のDFUブートローダの移植の際の注意点としては、discピン(USB disconnectピ
ン)に要注意!!これを設定しなくてはPC側にディスクリプタがいきません。あしからず。。

2008/09/07

Arduinoのwireless書き込みを思案中

新しく作るつもりの音用デバイスのために、Arduinoをワイヤレスで書き込めた方がいいよなぁということで、
Arduinoをxbee経由でワイヤレスにプログラム(Rob Faludiさんのページ)をみてなんでワイヤレスで書き込みができるのかちょっと調べてたのですが。

1割くらいわかた。

多分ですけど、Arduinoに書き込まれているブートローダのおかげによるところが大きい!!

流れとしては、
PC側のArduinoIDEで書き込みボタンを押すとソフトウェア的にブートモードに突入してくれて、一定のwaitタイム中(Faludiさんのサンプルの場合は5秒になってる)に新しいプログラムを書き込んであげれば、あとはこのサンプルにある通りトランジスタピンがおりてリセットがかかる。それによってブートモードから脱出して通常モード(プログラム開始位置からスタート)にかわる(というものだと思う)。

Faludiさんの回路でトランジスタでリセットの部分が追加されているのは、無線化したから。

無線でなければ、多分USB経由で物理的にリセットかけられてたんだと思う。けど、無線だから物理的にはリセット不可能なのね。

はじめはこの

int transistorPin = 12; ←(ATMega168のpb4)

ってブート突入モードのピンだと思ってたのですが、このサンプルをみる限りリセットでしかあり得なくて、
じっさいブートローダのソース(ATmegaBOOT_168.c)をみてみてもpd6ってなってるから、違う。


という推論。

あってるかどうかは、実際実験してみてからかな。

とにかくこれがあってれば、(ワイヤレス化した)Arduino Diecimilaボードを少し改良したらいけそうな気がするので、わくわくです。

とりあえずは、3v3(電源)の振れ幅で統一しないといけないだろうからまずはFaludiさんの記事通りにやってみます。

ではでは!!


P.S. Olimex のSTM32f103-STK評価ボードへのブートローダ(DFU)の移植めどがたってきた!!


追記@2008 09 11
Rob Faludiさんのページのローカル側のArduinoのリセットピンはnResetである(常識?)

2008/09/05

かっこいいなぁ



にしても、ArmマイコンのDFUブートローダをolimexのボードに移植しないといけないんだけど、
全然できん。なぜなぜ????????????

くっそ〜いらいら。もうやることないよ〜。

2008/08/30

arduino robot

なにこのさわやかな感じ。青春だなぁ〜。

2008/08/26

Kawai K4rのエディタ

K4rをいじってたら、もんのすごくエディットがしにくくて、マニュアルみてばっかではかどらない。。から、ネットでPC上でエディットできるいわゆるライブラリアンがないか探してみたら、ゲット!!

自分が調べた中では、
emagicのsounddiverを使ってつくったエディタと、
http://homepage.mac.com/synth_seal/html/gmegab.html

普通にc++みたいなんで作成されたっぽいものと、
http://www.soundtrackers.de/awe_without_frames.html
http://www.synthzone.com/kawai.htm

みつけたのだけど、sounddiverはxskeyっていうLogic用のドングルが必要みたいで、諸処断念。
(ドングルあればLogicも使えてsounddiverも使えてK4も使えてめっちゃお得だったんだけどなぁ)

なので後者の方をwindows vistaマシンにインストール。ただ、このマシン、midiがどうもうまく行かない。
オーディオ機能もクソ。スペックはいいマシンなのに、ソフトとハードが噛み合ってない気がする。
これってvistaのせいだよね。全体的に。

なので、これからwindowsでエディットできるのか??いろいろ試してみようと思います。

2008/08/15

iLok & PICをUSBで

昨日秋葉で仕事帰りにiLok を買ってきた〜。
でmax/mspのライセンスをいれた〜。

iLokだとどのパソでも起動するしあんまオーソライズでめんどいこともないからいいなぁ
ておもって。

なにげに安いし6000円(6800円だったかな??)


ただiLokをなくさないようにしないと終わってしまう。。

絶対なくさないようにせな。




にしてもcycling'74には5回以上確実にレスポンスキーを発行お願いしてるのに
全然だめっていわれない。なぜ?こっちとしてはありがたいけれども。。

にしてもSC(SuperCollider)やりたい。

それから昨日?一昨日のPICをUSBのHID(Human Interface Device)として認識させるってやつ。
PICの16f4540でやったんだけど、(といっても元のサンプルソースを2、3カ所かえただけだったけど。。例のディスクリプタの部分とmain関数の中を少し)最初うまくいかなくって、なんでかなぁ=と思ってネットに助けを求めたら、コメを噛めさんのとこで理由がわかた。

ベンダーIDかデバイスIDをどちらかを前の(サンプルのもの)にしておくと、ホスト側(PC側)でIDが更新されなくって、きちんとドライバが更新されないみたい。

なので、デバイスIDをいっこずらしたら、うまくいったよ。

こういう情報はあまり無いというか、初心者にはハードルの高いデバッグ要素なので
後続の人たちのためにとも思って一応パブリックドメインにアップしようと思いました。。

以上〜。

今回はPICにつけたボタン4つでマウスの代わりにした、HIDのゲームパッドとして2軸4ボタンのゲームパッドとして認識させただけなんだけど、次は(というか明日会社で)加速度センサをマウスのXY軸にしてやろーかと思う。これならわりと楽に組み込めそうだし。。
楽し〜〜。

でもこれってホスト側のソフト開発技術も無いと意味ないよ=な。。。そんなことないのかな?

2008/08/12

PICをUSBデバイスとして認識させる

ために、サンプルのソースに入ってるディスクリプタの部分を変更せねばいかんのですが、なんとも意味が分からん。どうしたもんかなぁ〜〜〜〜。

まず、HIDのゲームパッドとしてwindowsに認識させたいんで、それにはレポートディスクリプタのUSAGEを変更すればよいのでしょうが、USAGEがなんかいっぱいあって、エンドポイントもいっぱいあって、
そもそもディスクリプタを記述している構造体の並び方にも疑問があって、スーパー意味わからん。
しかも16bit幅の記述の仕方ね。ん〜なんじゃ。

USB.orgのページにあるリファレンスみてもわかんね〜。

どうすっぺなぁ。

もう少しみてみよふ。

(4時間くらい経過)

と、四苦八苦してたら、wakatta!

// Report descriptor prepared by USB DESCRIPTOR TOOL
// http://www.usb.org/developers/hidpage/#Descriptor_Tool
/* 15item, 29byte */
const char ReportDescriptor1[25] = {
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x09, 0x04, // USAGE (Joystick)
0xa1, 0x01, // COLLECTION (Application)
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x01, // USAGE_MINIMUM (Button 1)
0x29, 0x08, // USAGE_MAXIMUM (Button 8)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x08, // REPORT_COUNT (8)
0x81, 0x02, // INPUT (Data,Var,Abs)
0xc0 // END_COLLECTION
};

このレポートディスクリプタの場合。。。

まず、上から2行はGlobal Deskripterで、データの状態を表すラベルを書き換えるもの。カテゴリーをかえるとでもいうような感じ。で、例えばUSAGE PAGE(Generic Desktop)の場合、0x05, 0x01,は何を表すかといいますと、USB.orgから拝借したPDFの46ページをみると完璧にわかるのですが、

はじめの0x05がitem tagになっていて,この後に続くitemがUSAGE PAGEであるということを教えています。
で、次の0x01が実際のUSAGE PAGEの値。これはHID USAGE TABLE
をみると確認できます(実際みてみると、14ページでやはり"01 Generic Desktop Controls "との表記がある)。
とこんな感じで文字の羅列はこの二つのPDFをみながら解読できます。

で、問題なのはこの構造体の順番。
これは、普通に上から読んできゃいんだけど、注意しないといけないのは、Global,Main,Local itemの違いを把握してなきゃいけないってこと。
イメージ的にはMainが階層的には一番上で、main→global→localの順に細かく指定できる感じ。でもglobalがmainの前にきてもよくて、上の例でもLogical Minimum(global)の方がInput(main)の前にきてる。

で、特徴としては

globalはglobal自身でしか書き換えられなくて、書き換えられるまではずっとその値を保持してる。

mainは主にlocalの内容をホスト側に知らせる役。main itemはcollectionとendcollectionの中でのみ有効で、その中にさらにcollectionとendcollectionをネストできる。

localは実際の細かい設定を記述するとこ。次のcollectionにはその値は保持されない。

(詳しくは一個目のPDFの38~52あたりにmainとglobalとlocalの違いをまとめてある箇所がちらほらあるからそれをみるとわかる)

これらを頭に入れて上から順に読んでいくと意味がわかってくるはず!!
ということでした〜〜。

ちなみにreport descripterをエディットするソフトがあるからそっちでやるとはや〜い。


何か間違いとか指摘とか微妙な表現とかありましたらレスくださると助かります!>

2008/07/29

aphex_twin___

memoさんのブログに貼ってあったこれhttp://www.blogger.com/img/gl.link.gif

いいね〜〜〜。かっこいい。

2008/07/27

Arduino Diecimilaでブートローダ書き込み

これ知ってました??

衝撃です。これでdiecimila一台あれば、arduino chipの量産ができますね。
最高です〜。
出来上がったチップは外付けで水晶つけて、書き込みの時だけFTDIのシリアル変換を
使えばarduinoと全く同じですね。

ちかいうちにやってみます。

2008/07/26

google_API


で、グーグルのトップページにJAVAの(processingの)アプレットをあててみた。

やりかたは内緒。

2008/07/21

スーパーばか

がいた。

2008/07/13

秋葉原

本当にやる気がでない。。

おとついぐらいからずっとなんもしてない.
昨日はすしを食べにいって、ついでにビールも飲んで、ようやく部屋の蛍光灯をかいに行ったくらい。
(引っ越して7ヶ月、ずっとスポットライトの淡い光でがんばってた。から、夜が明るいことに驚き!
目が痛かった。。)


今日は秋葉原にいって色々電子部品を買いにいかないけんのですが、いかんせんこのあつさでエアコンをつけず、扇風機もつケズ何かであおぐこともせず、ひたすら汗をかいているわけです。

卒業がかかったテストも来週水曜日から始まるのに何もせず、、何もせず。


スーパー死にそうです。

今現在めんどくさい症候群です。

でもでも秋葉いかなきゃ。。

めんどくさい、をすぐにころっとポジティブに考えられるほどいい人じゃないっす。

2008/07/11

inno Setup

バイトでinno Setupを使ったインストーラの日本語化をしなくちゃならなくなって、pascalベースのスクリプトを日本語化してたんですが、一カ所(実際には二カ所だけど)どうしても日本語に出来ない場所があって、それは、

”インストール中”ウィザードのプログレスバーの上に出てくる進行状況の表示テキストなんですが、

画像はお見せできないけど、こんな感じ↓

File:
Speed:
Directry:

Extracting 3 of 5...

みたいな感じで、この下にプログレスバーがでてくるんだけど、

実際スクリプトのこのダイアログの部分の関数を見てみても何にもこれらを表示するような命令が
されてないのですよ(解読能力が足りて無いのかもしれないけど)。

Inno Setupには自分のオリジナルのダイアログをつくる機能がついていて、それかなぁ〜って思って、
検索した(CreateOutputProgresPageとか、SetProgressとかを)のですが、どうしても"ダウンロード中"ダイアログの部分はでてこない。。

なんかInno Setupが裏で勝手にそんな関数をデフォルトでくっつけてるのかもしれない。

ここにあるだろう、あるべきだってとこには

hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));

がかいてあるだけ。

でもこれはウィンドウのハンドルの数字を渡してるだけだろうから、実際にはなにもウィンドウを更新してるわけでもなく。。

ん〜わけわからん。他の人のインストーラにも勝手についてきてるのか、他の例が知りたいです。。

2008/07/02

ハイパー久しぶり

しばらく沖縄にて教育実習だったのさ〜〜。
ノスタルジーにまだまだどっぷり。そろそろぬけださなきゃ。

って思ってるときにこのヨウツベネタは困る。。やばすぎて。

まずはmumのカバー

次に正勝のgirlsのカバー

こいつは若干ふざけてる!!

でもどっちもいい。

ギター欲しい。。。弾けないのに〜。

2008/05/19

jitterでグリッチ

vadeさん
のサイトをベースに、プレーンを分解を付け加えてみました。
まだ全然物足りない感じなので、次回はもう少しアレンジをば加えてみようかと思います。
できればprocessingで計算式書いて、OSC経由で送ろうかと。


#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 210 375 32 196617 sel 0;
#P message 207 402 78 196617 outputmatrix 0;
#P newex 206 437 87 196617 jit.matrixset 1 1;
#P newex 195 501 29 196617 gate;
#P newex 336 494 68 196617 jit.op @op >>;
#P toggle 134 66 15 0;
#P newex 423 120 64 196617 metro 1000;
#P newex 318 121 64 196617 metro 1000;
#P message 407 152 14 196617 0;
#P newex 384 129 32 196617 sel 0;
#P user gswitch 394 177 41 32 0 0;
#P newex 424 150 64 196617 random 100;
#P message 301 148 14 196617 0;
#P newex 278 125 32 196617 sel 0;
#P user gswitch 288 173 41 32 0 0;
#P toggle 177 50 15 0;
#P newex 318 146 64 196617 random 100;
#P number 309 252 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 309 274 49 196617 \$1 1000;
#P newex 309 294 40 196617 line;
#P number 244 247 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 244 269 49 196617 \$1 1000;
#P newex 244 289 40 196617 line;
#N vpatcher 260 355 1112 807;
#P origin 0 182;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 9 235 115 196617 jit.slide @slide_down 3;
#P newex 9 69 27 196617 t l b;
#P number 26 143 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 91 82 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 91 101 27 196617 - 1;
#P message 26 181 80 196617 matrixcount \$1;
#P message 26 162 130 196617 outputmatrix \$1 \, index \$1;
#N counter 0 0 29;
#X flags 0 0;
#P newobj 26 121 77 196617 counter 0 0 29;
#P comment 71 68 89 196617 buffer frame size;
#P newex 9 210 158 196617 jit.matrixset 30 1 char 320 240;
#P comment 580 285 14 196617 B;
#P comment 384 281 14 196617 G;
#P window linecount 0;
#P newex 447 130 26 196617 s gb;
#P inlet 561 22 15 0;
#P inlet 389 21 15 0;
#P number 389 75 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 561 68 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 533 101 38 196617 del 20;
#P window linecount 0;
#P newex 359 100 38 196617 del 50;
#P window linecount 1;
#P newex 516 242 115 196617 jit.slide @slide_down 3;
#P newex 516 76 27 196617 t l b;
#P number 533 150 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 598 89 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 598 108 27 196617 - 1;
#P message 533 188 80 196617 matrixcount \$1;
#P message 533 169 130 196617 outputmatrix \$1 \, index \$1;
#N counter 0 0 29;
#X flags 0 0;
#P newobj 533 128 77 196617 counter 0 0 29;
#P comment 597 74 89 196617 buffer frame size;
#P newex 516 217 158 196617 jit.matrixset 30 1 char 320 240;
#P newex 344 239 115 196617 jit.slide @slide_down 3;
#P newex 344 73 40 196617 t l b b;
#P number 359 147 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 426 86 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 426 105 27 196617 - 1;
#P message 359 185 80 196617 matrixcount \$1;
#P message 359 166 130 196617 outputmatrix \$1 \, index \$1;
#N counter 0 0 29;
#X flags 0 0;
#P newobj 359 125 77 196617 counter 0 0 29;
#P comment 423 71 89 196617 buffer frame size;
#P newex 344 214 158 196617 jit.matrixset 30 1 char 320 240;
#P outlet 159 397 15 0;
#P inlet 159 21 15 0;
#P newex 173 236 115 196617 jit.slide @slide_down 3;
#P newex 173 70 27 196617 t l b;
#P newex 159 368 53 196617 jit.pack;
#B color 5;
#P number 190 144 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 255 83 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 255 102 27 196617 - 1;
#P message 190 182 80 196617 matrixcount \$1;
#P message 190 163 130 196617 outputmatrix \$1 \, index \$1;
#N counter 0 0 29;
#X flags 0 0;
#P newobj 190 122 77 196617 counter 0 0 29;
#P comment 235 69 89 196617 buffer frame size;
#P newex 173 211 158 196617 jit.matrixset 30 1 char 320 240;
#P newex 159 41 488 196617 jit.unpack;
#P window linecount 0;
#P comment 199 290 14 196617 R;
#P connect 1 0 52 0;
#P connect 52 0 44 0;
#P connect 48 0 44 0;
#P connect 47 0 44 0;
#P connect 44 0 53 0;
#P connect 52 1 46 0;
#P connect 46 0 51 0;
#P connect 51 0 47 0;
#P connect 50 0 48 0;
#P connect 49 0 46 4;
#P connect 50 0 49 0;
#P connect 13 0 1 0;
#P connect 53 0 10 0;
#P connect 10 0 14 0;
#P connect 1 1 11 0;
#P connect 5 0 2 0;
#P connect 6 0 2 0;
#P connect 11 0 2 0;
#P connect 2 0 12 0;
#P connect 12 0 10 1;
#P connect 24 0 10 2;
#P connect 11 1 4 0;
#P connect 4 0 9 0;
#P connect 9 0 5 0;
#P connect 8 0 6 0;
#P connect 34 0 10 3;
#P connect 7 0 4 4;
#P connect 8 0 7 0;
#P connect 1 2 23 0;
#P connect 19 0 15 0;
#P connect 18 0 15 0;
#P connect 23 0 15 0;
#P connect 15 0 24 0;
#P connect 23 1 35 0;
#P connect 35 0 17 0;
#P connect 17 0 22 0;
#P connect 22 0 18 0;
#P connect 21 0 19 0;
#P connect 38 0 35 1;
#P connect 39 0 38 0;
#P connect 20 0 17 4;
#P connect 21 0 20 0;
#P connect 23 2 41 0;
#P connect 1 3 33 0;
#P connect 28 0 25 0;
#P connect 29 0 25 0;
#P connect 33 0 25 0;
#P connect 25 0 34 0;
#P connect 33 1 36 0;
#P connect 36 0 27 0;
#P connect 27 0 32 0;
#P connect 32 0 28 0;
#P connect 31 0 29 0;
#P connect 40 0 37 0;
#P connect 37 0 36 1;
#P connect 30 0 27 4;
#P connect 31 0 30 0;
#P pop;
#P newobj 134 267 74 196617 p rgb;
#P number 564 303 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 525 304 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 699 290 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 644 290 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 545 237 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 768 372 20 196617 xy;
#P newex 453 261 59 196617 qlim 66.66;
#P newex 504 328 62 196617 pak dim 0 0;
#P newex 619 329 62 196617 pak dim 0 0;
#P newex 535 456 86 196617 jit.coerce 4 char;
#B color 5;
#P newex 347 452 160 196617 jit.repos @mode 1 @boundmode 4;
#B color 5;
#P newex 495 405 220 196617 jit.tiffany @grid 0 @xrange 0.9 @yrange 0.9;
#B color 5;
#P newex 495 375 68 196617 jit.op @op >>;
#P newex 609 349 97 196617 jit.noise 2 char 3 3;
#P newex 495 349 109 196617 jit.noise 2 char 10 10;
#P newex 644 309 27 196617 / 2;
#P newex 699 309 27 196617 / 2;
#P newex 134 532 68 196617 jit.op @op >>;
#P number 14 47 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 52 95 14 196617 3;
#P message 30 94 20 196617 23;
#P message 14 94 14 196617 0;
#P newex 14 74 53 196617 sel 0 1 2;
#P newex 39 140 72 196617 prepend op;
#P user ubumenu 14 119 60 196617 0 1 1 0;
#X add pass;
#X add *;
#X add /;
#X add +;
#X add -;
#X add +m;
#X add -m;
#X add %;
#X add min;
#X add max;
#X add abs;
#X add avg;
#X add absdiff;
#X add wrap;
#X add fold;
#X add !pass;
#X add !/;
#X add !-;
#X add !%;
#X add &;
#X add |;
#X add ^;
#X add ~;
#X add >>;
#X add <<;
#X add &&;
#X add ||;
#X add !;
#X add >;
#X add <;
#X add >=;
#X add <=;
#X add ==;
#X add !=;
#X add >p;
#X add #X add >=p;
#X add <=p;
#X add ==p;
#X add !=p;
#X add sin;
#X add cos;
#X add tan;
#X add asin;
#X add acos;
#X add atan;
#X add atan2;
#X add sinh;
#X add cosh;
#X add tanh;
#X add asinh;
#X add acosh;
#X add atanh;
#X add exp;
#X add exp2;
#X add ln;
#X add log2;
#X add log10;
#X add hypot;
#X add pow;
#X add sqrt;
#X add ceil;
#X add floor;
#X add round;
#X add trunc;
#X add ignore;
#X prefix_set 0 0 0;
#X pattrmode 1;
#P user jit.fpsgui 134 651 60 196617 0;
#P message 245 164 29 196617 stop;
#P message 206 164 33 196617 start;
#P message 170 164 30 196617 read;
#P newex 134 620 89 196617 jit.window "test";
#P newex 134 185 111 196617 jit.qt.movie @unique 1;
#P newex 134 106 67 196617 metro 33.33;
#P connect 13 0 9 0;
#P connect 9 0 10 0;
#P fasten 10 0 7 0 19 114 19 114;
#P fasten 11 0 7 0 35 114 19 114;
#P connect 12 0 7 0;
#P connect 9 1 11 0;
#P connect 7 1 8 0;
#P connect 9 2 12 0;
#P connect 50 0 0 0;
#P connect 0 0 1 0;
#P fasten 5 0 1 0 250 181 139 181;
#P fasten 4 0 1 0 211 181 139 181;
#P fasten 3 0 1 0 175 181 139 181;
#P connect 1 0 32 0;
#P connect 32 0 14 0;
#P connect 8 0 14 0;
#P connect 14 0 2 0;
#P connect 2 0 6 0;
#P connect 33 0 32 1;
#P connect 52 0 14 1;
#P connect 40 0 52 0;
#P connect 36 0 32 2;
#P connect 54 0 53 0;
#P connect 55 0 54 0;
#P connect 40 0 55 0;
#P connect 51 0 52 1;
#P connect 53 0 52 1;
#P connect 41 0 35 0;
#P connect 35 0 34 0;
#P connect 34 0 33 0;
#P connect 40 0 42 0;
#P connect 40 0 41 0;
#P connect 42 0 43 0;
#P connect 43 0 41 1;
#P connect 45 0 38 0;
#P connect 38 0 37 0;
#P connect 37 0 36 0;
#P connect 40 0 48 0;
#P connect 48 0 39 0;
#P connect 39 0 41 2;
#P connect 21 0 51 0;
#P connect 32 0 21 0;
#P connect 40 0 46 0;
#P connect 40 0 45 0;
#P connect 22 0 51 1;
#P connect 46 0 47 0;
#P connect 47 0 45 1;
#P connect 40 0 49 0;
#P connect 49 0 44 0;
#P connect 44 0 45 2;
#P connect 0 0 25 0;
#P connect 25 0 17 0;
#P connect 24 0 17 0;
#P fasten 17 0 19 0 500 370 500 370;
#P fasten 26 0 20 0 773 394 500 394;
#P fasten 19 0 20 0 500 400 500 400;
#P connect 20 0 21 1;
#P connect 27 0 25 1;
#P connect 30 0 24 1;
#P fasten 20 0 22 0 500 437 540 437;
#P fasten 18 0 19 1 614 373 558 373;
#P connect 31 0 24 2;
#P fasten 25 0 18 0 458 286 614 286;
#P connect 23 0 18 0;
#P connect 28 0 16 0;
#P connect 16 0 23 1;
#P fasten 15 0 23 2 704 327 676 327;
#P connect 29 0 15 0;
#P fasten 25 0 26 0 458 286 773 286;
#P window clipboard copycount 56;

2008/05/07

シンセ探し のおとも

<ハード編>
まずは、定番
http://www.vintagesynth.com/
このサイトは何がいいって、誰がどの機材を使用してるという
のがわかる!ただ、ほんとかどうかはわかんないし、
なんか全然知らないアーティストが多いんだけど。

あと関連機材とかもわかる。


http://homepage.mac.com/synth_seal/html/
ここはすばらしいです。載せてあるほとんどの機材のサンプルをかなり多くの
パターンで録ってあって、関連機材はもちろん、ラック版と鍵盤版の違いとか、
シリーズもので比較したりしてて、その音サンプル、周波数のプロットも
載せてくれてたりする。最高です。やり方にセンスを感じます。

http://www5e.biglobe.ne.jp/~masa-k/kbs2.htm
ここはちょ==楽しいです。みてるだけで。
おとサンプルとかは無いケど、愛を感じます。

<ソフト編>

http://www.hitsquad.com/smm/cat/AUTO_ACCOMPANIMENT/
ここは某h氏のブログで知りました〜。でもあんま使ってない。
量が豊富で選ぶのが大変そう〜。


http://www.studiotoolz.net/instantsampler
ここは友人に教えてもらった。
max系のプラグインが多い。スタンドアローンのパッチも落ちてる。
そのほか有名ハードのエミュレーションとか、ケッコープロの人がつかってる(た)
ようなものもあったりする。
でもやっぱりソフトですね。


今日はこのくらいです。

多分、何にも考えてなければ1日中ずっとみることができる。

2008/05/02

Orgon Systems のシンセ

以前Orgonエネルギーといういかにもオカルティなものに興味を持っていたとき、ふとこれをシンセに
してる人はいないものかと検索したら、どストライクでやってる人たちがいた。イギリスに。

こちらが、Orgon enigiser。

イギリス製。

なんと読むのかは知らなヒが、多分オルゴンエニジサール。みたいな使徒のようでそうじゃない
みたいな発音、であってほしい。

見つけた瞬間からスペックをみるまでもなく絶対イイとおもって、金がなくても欲しいと思って、
これを探しにイギリスまでいって、(結局なんも手がかりを得られず手ぶらでイギリスをでました)
日本で唯一持ってるのが確定している渋谷さん(の弟子?)にきいても渋い答えでだめだって。
さらに、
Orgon Systemsで検索しても公式ホームページらしきものがいっさい出てこなくて、でるのはYOUTUBEとattakの渋谷さんだけ。

なんとめぐまれてないことか、
残された道はおそらく、いつぞやのSOS(Sound ON Sound)に載っていた電話番号に直電か、もしくは渋谷
さまに僭越ながらメールなどでコンタクトをとるくらい。

理想のシンセをゲットするのは、英語で電話する勇気、アーティストに機材のことを聞くという、
若干の恥ずかしさを乗り越えなければならないのですね〜。

まぁmidiもcvもついてないから買うのは相当マニアの人だとおもうけど、
もしだれか持ってて、いらなかったら譲ってください!!

2008/04/23

飲み会にて

今日、大学のmaxの授業の先生とcycling'74の方と、その友達のかた、プロのギタリストの方、授業の生徒さんとお酒をご一緒させてもらったんですが、

せっかくmaxについてだとか音楽について深く語れそうな場だったのですが、うまくいかないもので、
世間話やなんやらで、結局お開きまで語れず。

あーもったいない。またいつかそんな機会はあるよね。

2008/04/19

max/mspでの一般的なキックの作り方

っていうのは、どうやるんだろーか。
cycle~で何基かオシレータを作って、それぞれにエンベロープを与えて、つくるやりかたしかしらないのだけど、ほかにうまい重ね方とかないものかなーー。というかadsrをきれいに与えられそうなENVIなるオブジェクトがあるみたいだけど、使ったことない。マルチスライダーとかのほうがエンベロープにはつかいやすそう。でも今日作ったやつでは定番と思われるfunctionオブジェでつくってみた。
どうなんでしょう~~。

だれかうまい作り方教えてーー!

#P window setfont "Sans Serif" 9.;
#P flonum 211 26 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 128 26 15 0;
#P window linecount 1;
#P newex 155 36 50 9109513 metro 100;
#P newex 142 64 19 9109513 t b;
#P flonum 607 112 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 454 111 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 778 125 33 9109513 10000;
#P message 743 125 33 9109513 15000;
#P newex 754 94 28 9109513 sel 1;
#P newex 753 70 16 9109513 t i;
#P flonum 789 262 46 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 881 169 28 9109513 clear;
#P flonum 814 150 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 807 169 64 9109513 setdomain \$1;
#P newex 790 355 27 9109513 *~;
#P flonum 837 304 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 848 268 27 9109513 line~;
#P button 782 147 15 0;
#P user function 787 195 887 250 1 1 0 0;
#X frgb 82 82 82;
#X brgb 204 204 204;
#X rgb2 85 85 85;
#X rgb3 255 255 255;
#X rgb4 0 0 0;
#X rgb5 0 0 0;
#X add 0. 0. 0;
#X add 3.863636 0. 0;
#X add 4.545455 0.1 0;
#X add 5. 0. 0;
#X domain 5.;
#X range 0. 1.;
#X done;
#P newex 791 286 35 9109513 noise~;
#P newex 785 327 33 9109513 *~ 0.2;
#P flonum 489 33 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 572 111 27 9109513 + 60;
#P newex 351 86 27 9109513 + 36;
#P newex 404 115 31 9109513 + 100;
#P newex 455 60 19 9109513 t b;
#P newex 570 87 52 9109513 random 10;
#P newex 351 64 47 9109513 random 5;
#P newex 413 87 52 9109513 random 10;
#N counter 0 0 3;
#X flags 0 0;
#P newobj 416 38 66 9109513 counter 0 0 3;
#P user gain~ 283 417 34 36 158 0 1.071519 7.94321 10.;
#P user gain~ 239 419 34 36 158 0 1.071519 7.94321 10.;
#P user meter~ 327 481 407 494 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P message 742 170 28 9109513 clear;
#P flonum 675 151 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 668 170 64 9109513 setdomain \$1;
#P newex 612 306 34 9109513 +~ 0.2;
#P newex 651 356 27 9109513 *~;
#P flonum 695 314 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 709 269 27 9109513 line~;
#P button 643 148 15 0;
#P user function 648 196 748 251 1 1 0 0;
#X frgb 82 82 82;
#X brgb 204 204 204;
#X rgb2 85 85 85;
#X rgb3 255 255 255;
#X rgb4 0 0 0;
#X rgb5 0 0 0;
#X add 0. 0. 0;
#X add 22.602293 0.133333 0;
#X add 26.590923 0. 0;
#X add 117. 0. 0;
#X domain 117.;
#X range 0. 1.;
#X done;
#P newex 652 287 35 9109513 noise~;
#P message 615 170 28 9109513 clear;
#P flonum 548 151 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 541 170 64 9109513 setdomain \$1;
#P newex 484 318 34 9109513 +~ 0.2;
#P newex 530 314 33 9109513 *~ 0.2;
#P newex 532 346 27 9109513 *~;
#P flonum 524 256 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 582 269 27 9109513 line~;
#P button 516 148 15 0;
#P user function 521 196 621 251 1 1 0 0;
#X frgb 82 82 82;
#X brgb 204 204 204;
#X rgb2 85 85 85;
#X rgb3 255 255 255;
#X rgb4 0 0 0;
#X rgb5 0 0 0;
#X add 0. 0. 0;
#X add 2.727273 0.866667 0;
#X add 8.181818 0.933333 0;
#X add 16.704546 0.733333 0;
#X add 23.181818 0.5 0;
#X add 30. 0. 0;
#X domain 30.;
#X range 0. 1.;
#X done;
#P newex 533 282 36 9109513 cycle~;
#P flonum 394 408 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 358 417 27 9109513 line~;
#P user ezdac~ 263 483 307 516 0;
#P newex 288 387 27 9109513 *~;
#P newex 247 385 27 9109513 *~;
#P message 460 165 28 9109513 clear;
#P flonum 393 146 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 386 165 64 9109513 setdomain \$1;
#P newex 329 313 34 9109513 +~ 0.2;
#P newex 375 309 33 9109513 *~ 0.2;
#P newex 407 326 27 9109513 *~;
#P flonum 369 251 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 427 264 27 9109513 line~;
#P button 361 143 15 0;
#P user function 366 191 466 246 1 1 0 0;
#X frgb 82 82 82;
#X brgb 204 204 204;
#X rgb2 85 85 85;
#X rgb3 255 255 255;
#X rgb4 0 0 0;
#X rgb5 0 0 0;
#X add 12.272728 0.766667 0;
#X add 24.545458 1. 0;
#X add 46.363636 0.666667 0;
#X add 60. 0. 0;
#X domain 60.;
#X range 0. 1.;
#X done;
#P newex 378 277 36 9109513 cycle~;
#P message 234 123 28 9109513 clear;
#P flonum 167 104 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 160 123 64 9109513 setdomain \$1;
#N counter 0 0 2;
#X flags 0 0;
#P newobj 253 43 66 9109513 counter 0 0 2;
#P newex 253 76 28 9109513 sel 1;
#P newex 60 265 34 9109513 +~ 0.2;
#P newex 106 261 33 9109513 *~ 0.2;
#P newex 138 278 27 9109513 *~;
#P flonum 100 203 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 158 216 27 9109513 line~;
#P button 137 90 15 0;
#P user function 140 149 240 204 1 1 0 0;
#X frgb 82 82 82;
#X brgb 204 204 204;
#X rgb2 85 85 85;
#X rgb3 255 255 255;
#X rgb4 0 0 0;
#X rgb5 0 0 0;
#X add 0. 0. 0;
#X add 1.5 0.566667 0;
#X add 3.75 0.833333 0;
#X add 7.5 0.966667 0;
#X add 12. 0.966667 0;
#X add 33.75 0.766667 0;
#X add 45.75 0.6 0;
#X add 66. 0. 0;
#X domain 66.;
#X range 0. 1.;
#X done;
#P newex 109 229 36 9109513 cycle~;
#P newex 646 328 33 9109513 *~ 0.2;
#P connect 2 1 4 0;
#P connect 5 0 1 0;
#P connect 4 0 6 1;
#P connect 7 0 6 0;
#P connect 1 0 8 0;
#P connect 8 0 7 0;
#P connect 11 0 2 0;
#P connect 12 0 11 0;
#P connect 13 0 2 0;
#P connect 24 0 15 0;
#P connect 23 0 22 0;
#P connect 22 0 15 0;
#P connect 21 0 20 0;
#P connect 14 0 21 0;
#P connect 20 0 19 0;
#P connect 17 0 19 1;
#P connect 18 0 14 0;
#P connect 15 1 17 0;
#P connect 29 0 28 0;
#P connect 32 0 31 0;
#P connect 31 1 33 0;
#P connect 33 0 35 1;
#P connect 36 0 35 0;
#P connect 37 0 36 0;
#P connect 38 0 31 0;
#P connect 39 0 38 0;
#P connect 40 0 31 0;
#P connect 50 0 42 0;
#P connect 49 0 48 0;
#P connect 48 0 42 0;
#P connect 44 0 46 1;
#P connect 42 1 44 0;
#P connect 43 0 42 0;
#P connect 47 0 0 0;
#P connect 41 0 0 0;
#P connect 0 0 46 0;
#P connect 45 0 0 1;
#P connect 52 1 53 0;
#P connect 25 0 52 0;
#P connect 26 0 53 0;
#P connect 52 0 27 0;
#P connect 6 0 26 0;
#P connect 6 0 25 0;
#P connect 19 0 26 0;
#P connect 19 0 25 0;
#P connect 28 0 26 1;
#P connect 28 0 25 1;
#P connect 35 0 26 0;
#P connect 35 0 25 0;
#P connect 46 0 26 0;
#P connect 46 0 25 0;
#P connect 53 0 51 0;
#P connect 53 0 27 1;
#P connect 57 0 61 0;
#P connect 61 0 34 0;
#P connect 60 0 5 0;
#P connect 16 0 15 0;
#P connect 62 0 54 4;
#P connect 68 0 63 1;
#P connect 63 0 69 0;
#P connect 66 0 65 0;
#P connect 65 1 67 0;
#P connect 67 0 69 1;
#P connect 70 0 65 0;
#P connect 71 0 70 0;
#P connect 72 0 65 0;
#P connect 69 0 26 0;
#P connect 69 0 25 0;
#P connect 74 0 75 0;
#P connect 54 2 74 0;
#P connect 54 2 58 0;
#P connect 76 0 73 0;
#P connect 75 0 76 0;
#P connect 77 0 73 0;
#P connect 75 1 77 0;
#P connect 56 0 60 0;
#P connect 58 0 57 0;
#P connect 58 0 55 0;
#P connect 58 0 56 0;
#P connect 59 0 18 0;
#P connect 55 0 59 0;
#P connect 78 0 59 1;
#P connect 79 0 61 1;
#P connect 34 0 30 0;
#P connect 30 0 37 0;
#P connect 64 0 63 0;
#P connect 80 0 3 0;
#P connect 82 0 81 0;
#P connect 81 0 10 0;
#P connect 83 0 81 1;
#P connect 9 1 80 0;
#P connect 10 0 54 0;
#P connect 10 0 9 0;
#P connect 9 0 65 0;
#P connect 9 0 42 0;
#P connect 9 0 31 0;
#P connect 9 0 15 0;
#P connect 9 0 2 0;
#P connect 3 0 2 0;
#P window clipboard copycount 84;

2008/04/03

ArduinoでのA/D変換

s.h.logさん
さらっとやってるとこがすごい。


/* intの桁数を返す */
char getDigit(int n){
char i;
i = 0;
while(n>0){
n /= 10;
i++;
}
return i;
}

/* int->String変換 */
char *intToStr(int n, char *buf){ // 変換する数、作業領域
int i, digit;
digit = getDigit(n); // 桁数
for(i = digit-1; i >= 0; i--){ // intは最大5桁
buf[i] = n%10+'0';
n /= 10;
}
buf[digit] = '¥0'; // 行末改行
return buf;
}

p55でのvj

某hさんののサイトで知ったp55でのアニメーションのきれいな切り替え方。僕も最近p55でのアニメーションの切り替えだとか、フェードインがとか全部スイッチでやってた。でもこれだと、スムーズというかきれいっぽい。
まだ詳しくはみてないけど、暇なときにいじってみようと思う。メインのvoid draw()の中がシンプル!

あと、ここね。

テスト

テストです。今日から始めますー。

Mitolog © 2008. Template by Dicas Blogger.

TOPへ