2010年1月31日日曜日

GarageBandでMIDIコントロール

Macを買うとついてくるiLifeシリーズですが、音楽作成ソフトとして「GarageBand」というソフトがあります。このソフトがなかなか使い勝手が良いので愛用しているのですが、そもそも電子楽器とMacをUSB経由のMIDIで接続し、DTMしていた私は、MIDIとの親和性が低いGarageBandに不満を感じていました。以前、「Dent Du Midi」というソフトを見つけてSMF(スタンダード・ミディ・ファイル)をGarageBandで再生/編集ができるようにしていました(その逆は不可)が、できることならGarageBandでMIDIをコントロールしたいと思っていました。

そんな折、ある本にフィジカル・コンピューティングに楽器をつなぐことが紹介されていて、その文脈の中で、「GarageBandでMIDI機器を操作する」ということが取り上げられていました。この中で紹介されていたのが「midiO」というプラグインです。このプラグイン(midiO.component)を「/Library/Audio/Plug-Ins/Components」に入れておくと、GarageBandからMIDI機器が利用できるというわけです。早速ダウンロードして、入れてみました。とは言え、しばらくMacをMIDI機器につないでいなかったので、すぐにつながる環境にないので動作実験はできていません。時間を見つけてつないで実験しようと思っています。

【追記】使い勝手の良いMIDIインターフェイスを探しているうちに、多忙を極めるようになって放置状態でした。orz…(2023.3.11)

2010年1月27日水曜日

スーパーボウル対戦チームが決まりました

25日にNFLの両カンファレンス(NFC、AFC)のチャンピオンシップゲームが行われ、AFCのコルツ対ジェッツは、30対17でコルツが勝ち、NFCのセインツ対バイキングスは、 31対28でセインツが勝って、それぞれスーパーボウルに出場することが決まりました。

今シーズンの連勝記録をつくってきた2チームがスーパーボウルで対戦するということで、順当すぎるくらい順当なのですが、それだけに好カードと言えるのではないかと思います。しかも、カンファレンス・チャンピオンシップゲームでは、後半に逆転勝利したコルツと、オーバータイムまでもつれ込んで何とか勝利したセインツと、両チームとも苦戦の末のスーパーボウル進出ですから、どちらが勝利するかもさることながら、どのような試合展開になるのか、楽しみで仕方がありません。

スーパーボウルは、日本時間の2月8日(月)に行われますが、試合の結果を聞かずに、2月9日の深夜のテレビ放送を楽しみにしたいと思います。
#本当は、昼間の生中継が見られるとうれしいのですが…。

2010年1月24日日曜日

Arduinoをベースに楽器作り

Arduinoを中心に、いろいろなものをつないで動かしてみる実験をしていますが、PCマザーボード用の部品(LEDやスピーカなど)をブレッドボードに接続するための簡単な変換モジュールを作ったのをきっかけに、これらを使って「楽器」を作ってみようと思い立ちました。

スピーカに電気を流すと、一瞬だけ「ブツッ」という音が出ます。これを、ある程度聞こえる音にしていくためには、ある一定の周期でON/OFFを繰り返す(周波数)ようなプログラムを作らなければなりません。「建築発明工作ゼミ2008」で見つけた「Arduino 圧電スピーカ」のページを参考にしながら、可変抵抗器を使った回路を組んで、スケッチを書いて動作実験をしてみました。

回路その物は難なく組みあがり、いかにも電子楽器の音というような音が出てくれました。こんな単純な仕組みでも、自分で作った回路から音が出るというのは感動的です。ひとしきり出来上がった楽器で遊んだ後、せっかくなら鍵盤の代わりとして、タクトスイッチを使って、音のON/OFFをコントロールして見ようと思いました。参考にしたのは、Arduinoを買ったときに一緒に買ってきた「Arduinoをはじめよう」という本です。

タクトスイッチ(BUTTON)の値を「digitalRead(BUTTON)」で、可変抵抗器(VOLUME)の値を「analogRead(VOLUME)」で読み取り、タクトスイッチが押されたときだけ音が出るようにプログラムしました。これで少しは楽器らしい雰囲気になってきました。これをもとに、音を加工したり音域を広げる工夫をすれば、立派なシンセサイザーになるなと感じました。時間を見つけて作り込んでみたいと思います。

2010年1月19日火曜日

yossy_workサイトにて

これまで長い間放置していた「yossy_work(←サービス終了につき閲覧不可)」のサイトですが、時々、ちょっとおもしろいネタがあったときにだけ、写真入りの簡単なページを作って公開するというような使い方をしていました。それ以外は、ほとんど使っておらず、そろそろ閉鎖してもよいかなぁと考えておりました。過去のネタには、次のようなものがありました。(いずれも、マニアな方々以外は、ドン引きなネタかもしれませんが…。)

ところが最近になって、フィジカル・コンピューティングの教育的な展開について語るとき、文字だけではどうしても伝えきれたい部分が多いことが気になるようになってきました。そこで、今まで簡単に作っていたページを、少しだけ手直ししてWebサイトらしい統一感を持たせ、このサイトでフィジカル・コンピューティングに関する情報を公開しようと考えました。特に、力を入れたいと思っているのが、「つないですぐ使える」シールドやモジュールを紹介することです。

そもそも、小学生を相手に、本格的なバリバリのフィジカル・コンピューティングをやらせようというのは、所詮無理な話です。私が考えている、小学生向けのフィジカル・コンピューティングは、ある機能を持った部品群を、あらかじめArduinoGainerなどで使えるように組み合わせてモジュール化し、それをつないで手軽にフィジカル・コンピューティング的な活動をするということを目指しています。そして、このことを通して、子どもたちの思考力や判断力を培い、問題解決力(自己実現能力)や表現・コミュニケーション能力を高めていきたいと考えているのです。

この考えのもと、さまざまな機器を試用したり、自作したりしながら、研究を進めていきたいと考えています。そして、このサイトを使って、情報発信していきたいと思っていますので、時々のぞいていただければ幸です。

2010年1月11日月曜日

Processing Arduino-IDE & Funnelの環境整備

このところフィジカル・コンピューティングに絡んで、ソフトウエア環境を整えるべくいろいろと調べ回っているのですが、記憶だけを頼りにするのも心もとない状況になってきましたので、このBLOGにまとめておくことにします。

Processingというソフトウエアは、そもそもデザインをやる方々に使われているようで、一般的なプログラミング言語より、デザイン関係に特化した言語仕様になっているようです。2008年に1.0がリリースされてから、より多くの人に使われるようになり、別のソフトウエア(派生版のような)のもとになっています。Javaベースのため、クロスプラットフォーム化されており、Linux、Mac OS Xでも動きます。GainerライブラリArduinoライブラリFunnelライブラリなどもあり、フィジカル・コンピューティングのキラーアプリとも言えるかもしれません。

Arduino-IDEは、Processingをベースに作られていて、C言語に似た言語仕様で、Arduinoを動かすことに特化している開発環境です。インターフェイスもほぼ同じですので、Processingと一緒に使っても違和感がないと思います。

Funnelは、ハード&ソフトをまとめたツールキットで、フィジカル・コンピューティング環境を研究するプロジェクトによって開発されました。そもそもは、ArduinoをXBeeと組み合わせて、無線で動かすことをメインとしていたようです。ProcessingをベースにしたpinFunnelやArduinoやGainerを使うためのFunnelサーバなどが開発・公開されています。動作環境としては、MacかWinが推奨環境のようですが、Linuxでも行けそうです。

【追記】あれこれ試行錯誤してみましたが、まだLinuxでの動作確認には至っていません。Test Funnelというサイトを見つけたので、何か手がかりになるかもと思っていますが、本職が忙しくて試す時間がありません。(2010.8.2)

これらのWebサイトから、必要だろうと思われるものをダウンロードし、Ubuntu 9.10やKNOPPIX 6.0.1で動かしています。どこまで使えるか分からないのですが、時間を見つけて、ArduinoやGainerなどをつないで動作実験して行きたいと思っています。

2010年1月8日金曜日

JavaScript教材の動きが…

久しぶりにJavaScriptで教材を作って見ました。教材と言っても、ノートPCの画面一杯に数字やアルファベットを1文字だけ表示するというもので、キーを操作するだけで表示が変わります。JavaScriptでキーイベントを取得して、それを使って表示が変わるようにしているというわけです。授業の際は、「USBテンキー」を使って操作しようと考えています。

この教材を使うと、1台のPCで1文字を表現することができるので、PCを複数台並べて「位の数」を表すのに便利かなぁと思って作ったのでありました。「アルファベット」にも対応しているので、英語の勉強にも使えるかなぁという期待もあります。もちろん、自由に使えるPCが複数台ないと話になりませんが、学校というところにはそれなりの台数のPCがありますので、こんな使い方もできるのです。

この教材の開発は、Ubuntu 9.10の「Bluefish Editor」で行いました。完成後、UbuntuにインストールされているFirefoxで動作を確認して、USBテンキーからも問題なく操作できることがわかりました。これですっかり安心して、ノートPCのKNOPPIX 6.0.1に持ち込んだら全くダメなのです。試行錯誤の末、ようやくノートPC側の「NumLock」もONにしておかなければならないのだということが分かりました。

そもそもUSBテンキーは、ノートPCなどのテンキーのないPCで使うのが便利な使い方です。しかし、USBテンキーの「NumLock」をONにすると、本体の「NumLock」が作動してしまって、アルファベットが正しく打てなくなるという問題が起きる可能性があります。そこで、そうならないような仕組みが導入されているのですが、これが災いして、KNOPPIXを動かしているノートPCに接続した、USBテンキーの動きが変だったのです。

とりあえず、問題は解決できたので、これで教材として使えるようになりました。あとは操作のミスをなくすように、備忘を兼ねてここに顛末を記しておきます。忘れないようにしなくては…。

2010年1月5日火曜日

NFLプレーオフ出場チームが決まりました

NFLの2009年シーズンが大詰めを迎えています。先日、レギュラーシーズンの最後の試合が終了し、プレーオフ出場チームが決まりました。
http://www.nfljapan.com/standing/

残念なのは、私が応援するデンバー・ブロンコスがプレーオフ進出を逃したこと。中盤まではいい調子かなぁと思っていたのですが、終盤は敗戦が続きヒヤヒヤものでした。もっともQBオートンの新加入で、チームの組み立て直しを迫られた今シーズンでしたので「プレーオフは無理かもなぁ」と思っていたところが、思いの外いい調子だったので、十分夢を見させてもらったことは間違いないのですが…。

最終戦は、同地区のチーフスとの対戦でしたが、今シーズン負けが先行しているチーフスだから何とかなるかもと期待していたにもかかわらず、20点もの大差で負けてしまいました。その裏には、チーム事情があったようで、プレーオフがかかった大切な試合なのだから、心を一つにして(日本人らしい発想かも)がんばってもらいたかったのですが、残念な結果となってしまいました。

結果が出てしまった後で恨みごとを言っても仕方がないので、ここはスパッと気持ちを切り替えて来シーズンに向けてがんばって欲しいなぁと思います。
#さて、スーパーボールに向けてどのチームを応援しようかな…。)

2010年1月4日月曜日

アキバ詣

我が子と一緒に、戦隊ヒーロー&変身ヒーローもののイベントに参加したついでに、秋葉原へ足を伸ばして買い物をしてきました。といっても当然のことながら萌系が目当てではございません。もともと私自身は、電子部品、電気機器の街として「技術屋」が集まる秋葉原に憧れがあったのですが、昨今は雰囲気がだいぶ変わってしまって近寄り難く感じでおりました。

それを押して、なぜ今回秋葉原へ行ったのかと言いますと、このところ個人的にもすっかりはまってしまった、フィジカル・コンピューティングのための電子部品を調達すべく、某電子部品のお店へ足を運んだのでありました。

店の中には、自宅付近では見ることすらできない(だから普段は通販を利用しています)ような電子部品や基板、工具などがずらりと並んでおりました。こうなると、あれもこれもと欲しくなるところなのですが、そうなるだろうと予想して、「買い物リスト」なるものを持参し、どうしても欲しいものだけを購入することにしました。買い物リストの基準は、最近購入したArduinoGainerの解説本などに書かれている回路を組むために「必要な電子部品」とし、それらをピックアップしてリスト化したのでありました。その中心は抵抗(150、330、10K、1M)でしたが、ロータリースイッチやモータ用のブリッジドライバなども購入しました。

そもそも、私には電子部品をいじって何かができるほどの知識や技能がないので、解説本などに書かれていることをそのままやってみて、それを応用的に膨らませる程度のことしかできないのですが、そういうことを通して「経験的に学ぶ」というのも悪くはないかなぁと思っています。
#プログラミングの方も似たような感じです。

一方、子どもたちに教材としてフィジカル・コンピューティング環境を使わせるとなると、センサーやアクチュエータとして、既にでき上がっているものをつなぐ、あるいは、身近なもので簡単に作れる程度のものを使うというのが現実的な解だと思っています。とは言え、闇雲につないでもうまくいかないことの方が多いのではないかと思います。できる限り簡単に、できる限り子どもたちの力で欲しい機能を実現させられるように、どのような機能を持ったものを用意しておけば良いのか、研究を深めて行きたいと思っています。