Hatena::ブログ(Diary)

滴了庵日録 このページをアンテナに追加 RSSフィード

2014/02/20(Thu)

マリオネット・コントローラ

NT京都にむけてマリオネット風のロボットコントローラを製作。左右に3軸加速度センサジョイスティックが1個ずつ。マイコンはGR-KURUMI。Bluetooth(SPP)でロボットにコマンドを送る。ほんとうは左右のコントローラも無線でつなぎたかったのけど、今回は時間の関係でケーブル接続。

コントローラの写真


使用した主なコンポーネント


これで茶運び人形ロボを操縦する。操作方法はこんなかんじ↓


コントローラの操作方法


GR-KURUMI、加速度センサモジュール、およびハーネスのピン配置は下記の通り。


ハーネスのピン配置

2014/02/16(Sun)

GR-SAKURA用FM音源の3連符対応

FM音源シールド for GR-SAKURA のライブラリバージョンアップしました。

ダウンロードと解説はこちら

http://d.hatena.ne.jp/licheng/20131207

今回の変更点は以下の通りです。

3連符に対応

従来、全・2分・4分・8分・16分・32分の音符に対応していましたが、新たに3分・6分・12分・24分の音符に対応しました。これによって3連符の表現が可能になりました。たとえば4分音符を3等分する3連符ならば"C12D12E12"のように12分音符で表します。

なお、N88-BASICMMLでは { と } で3連符を含む任意の連符を表すことができますが、これには対応していません。したがって5連符や7連符には未対応です。

また、付点音符には対応していますが、もっとも短い32分音符は付点32分音符にはできません。

音色パラメータのデチューン項の負数対応

デチューンは、YM2203の仕様で0〜7の値をとり、x=4〜7のときは 4-x の負数に相当します。つまり4は0、5は-1、6は-2、7は-3を表します。これはやや分かりにくいので、-1〜-3の負数でも指定できるようにしました。従来通り4〜7での指定も可能です。

N88-BASIC相当の2次元配列での音色設定に対応

N88-BASICでは5×10整数型2次元配列で音色を設定していました。このデータを流用しやすいように、同等の2次元配列を音色構造体 YM2203_Timbre のコンストラクタに渡せるようにしました。ただし、ビブラートトレモロには対応していないので、これらに関するパラメータは無効です。

音色の追加

プリセット音色データ(暫定版)に、ピアノ(13)、エレクトリック・ピアノ(27)、エレキベース2(31)、クラビネット(45)、ハープシコード(46)を追加しました。

なお、使用している音色データは、阿保 剛さんがVAL-SOUNDにて公開されているFM-Libraryより引用しました。

2014/02/15(Sat)

GR-SAKURA用FM音源シールドライブラリのバージョンアップ

長らく放置していたGR-SAKURA用FM音源シールドライブラリをちょっとだけバージョンアップしました。

ダウンロードと解説はこちら → http://d.hatena.ne.jp/licheng/20131207

今回の変更点は以下の通りです。

SSG音源にノイズモードを追加

SSG音源のトーンとノイズをミックスする機能をサポートしました。従来は各SSGチャンネルからは矩形波トーンしか出せませんでしたが、新しく追加した MMLplayer.setToneNoise() により、(1)トーンのみ (2)ノイズのみ (3)トーン+ノイズ のいずれかを設定できるようになりました。


MMLplayer.setToneNoise(int ch, int mode)

  • ch チャンネル番号。3〜5のSSG音源のみ有効。
  • mode トーン/ノイズ モードの指定。
TONE_MODEトーンのみ出力
NOISE_MODE ノイズのみ出力
TONE_NOISE_MODE トーン+ノイズを出力

プリセット音色テーブルを準備(データは作成中)

プリセット音色テーブルを準備しました。データはまだ作成中です。

番号と楽器名は、PC-8801のプリセット音色に合わせてますが、本物のPC-8801の音色はパラメータが分からないので、だいぶ違う音色かも。

現状で使用できるのは、トランペット(23)、ストリングス1(24)、ストリングス2(25)、エレキベース(30)、クラリネット(39)、シタール(44) です。

なお、使用している音色データは、阿保 剛さんがVAL-SOUNDにて公開されているFM-Libraryより引用しました。

MMLに@コマンド(音色指定)を追加

上記のプリセット音色をMMLで使用するために、@コマンドを追加しました。@の後に音色番号を指定します。もちろんFM音源チャンネルでのみ有効です。

MMLに&コマンド(タイおよびスラー)を追加

タイおよびスラーを表現するために、&コマンドを追加しました。&コマンドは前後の音をキーオフせずにつなぎます。前後の音符が同じ音程であればタイに、異なる音程であればスラーになりやす。

MMLplayer.setEnvelope()の不具合修正

エンベロープ番号に0〜7を指定したときにはじかれる不具合があったので、修正しました。