前回に続き、筑波大学「組み込み技術キャンパスOJT」(COJT)の「ハードウェア(H/W)コース」を受講している学生たちが自ら発信していきます。今回は、「ハードウェア(H/W)寄りチーム」の登場です。(編集部)

 初めまして。私たちはCOJTのH/WコースのH/W寄りチームです。このコラムはCOJTのH/Wコースを受講している12人のうち7人が執筆していて、秋学期の自由課題の大まかな方向性によってソフトウェア(S/W)寄りチームとH/W寄りチームに分かれて連載しています。

 H/W寄りチームのメンバーは、青木・石田・富田の3人です。青木は普通高校出身、石田・富田の二人は工業高等専門学校(高専)からの編入です。それぞれ音響機器や制御、通信などに興味があります。今後開発の過程をお伝えしていくに当たり、今回はメンバーの自己紹介をしますが、その前に「H/WコースのH/W寄り」ということの意味について説明しましょう。

「CPUの利用は最低限」、そうしなければつまらない

 COJTでは、FPGAを用いて各受講生が独自の組み込みシステムを開発します。COJTで利用するFPGAボードには、FPGAだけでなく制御用のCPUも搭載されているので、コンピューターとUSB接続することで、命令や値のやりとりをすることが可能です。

 このときCPU上での動作はC言語で、FPGA上での動作はVerilog HDLという言語を使って記述します。私たちH/W寄りチームは、

・可能な限り処理をFPGA側に行わせる
・制御をコンピューターに依存しない(コンピューターを経由して制御を行わない)

という目標を掲げています。

 CPU側の負担を多くするような書き方をすれば、HDL(H/W記述言語)をあまり書かず、Cだけで課題を実現することも可能です。しかし、それではつまらない。せっかくFPGAを使えるのだから、CPUの利用は最低限の制御にとどめるべきだし、コンピューターに依存しないFPGAの回路として完結するシステムを作りたい。私たちはそう考えています。これが「H/WコースのH/W寄り」の意味で、私たちのこだわりです。

 H/W寄りチームについて分かっていただけたでしょうか。それでは、メンバーの紹介に移ります。

ハードでシンセサイザーを作りたい

 筑波大学情報学群情報メディア創成学類3年の青木海です。

 僕は、とにかく音楽が大好きな人間です。21歳です。趣味は作曲とピアノ(最近はJazz)で、どちらも15年ぐらい続けています。特にコンピューターで曲を作るのが好きで、CDを作って売ったり企業の外注制作をしたりしています。コードを書くのも好きなので、普段は上の趣味に加えてサイトを作ったり、音を扱うプログラムを雑多に書いたりしています。

 COJTのH/Wコースに応募したのは、FPGAでシンセサイザーを作りたいと思ったからです。HDLを書いたことはおろか、はんだごてすら握ったことのない僕ですが、過去にC++でソフトシンセサイザーを書いた経験があり(いわゆる「VST(Virtual Studio Technology)インストゥルメント」)、今度はシンセをハードで作ってみたいと考えたのが挑戦のきっかけです。

 今はちょうど設計の段階で、ソフトで書いたときとは気を使わなければいけない部分が違っていてなかなか面白いのですが、このあたりの話は後々別の記事で書いていくことにして、ここでは僕自身のことを書きます。

コンピューターを用いた曲制作の様子
曲を作ったり、作った曲をまとめてCDを出したりするのを趣味にしています。音楽は僕の活動のモチベーションを支えるもので、そもそもコードを書くようになったのも、中学の頃に自分の曲をBGMにしたゲームを作り始めたことがきっかけでした。今回COJTでハードシンセの開発に挑戦しようと思ったのも、この趣味があったからです。
[画像のクリックで拡大表示]

 僕は他の2人と違って東京の私立高校出身で、今は情報メディア創成学類の3年生です。中学・高校生の頃はゲームやWebサイトの制作を、大学に入ってからは前述のソフトシンセを作ったり、ビジュアライザーを作ったりと、好きなことをやってきました。

 僕は前述の通り、はんだごても握ったことのないような“完全ソフト屋”の人間なので、初めはCOJTのソフトウェアコースに入るつもりでした。しかし他のH/Wコースの受講生と同様、独習の難しさや充実した環境を主な理由にH/Wコースを選択しました。せっかく講師の方に教えていただける機会があるのなら、より学習コストが高いことに挑戦したほうが面白いですし、何よりFPGAでシンセサイザーの実装をしてみたかったのです。

 最初は少し不安もあり、HDLの書き方やデバッグ方法の独特さにも戸惑いましたが、1学期間課題をこなしたことでだいぶ感触がつかめ、秋学期は楽しく課題に取り組んでいます。(もちろん今もよく原因不明なバグに直面しますが、もう慣れました。)またコースのメンバーも高専編入・情報科学類の学生がほとんどでしたが、だいぶなじめてきて実験室にいるのも楽しいです。

 今後は、ソフトとハードでの音声処理の実装の違いや、自分の下地を含めた観点で記事を書いていけたらと思っています。技術も文章も稚拙な身ですが、僕なりの試行錯誤を何とかお伝えできたらと思っています。お付き合いいただけましたら幸いです。