2023年2月26日日曜日

JamToastでSDカードにプログラムを保存してIchigoJam Rに移せるかやってみる

再びIchigoJamの話題です。IchigoJamでプログラムしたものは、SAVE0〜3で4つまで保存することができます。呼び出すときは、LOAD0〜3で呼び出すことができます。最近メインで使っているのは、IchigoJam S(圧電スピーカー付)ですが、PS/2キーボードしか使えずUSB接続のキーボード類が使えません。そこで、IchigoJam R(USBキーボード対応)を使ってUSB接続のキーボードがどのくらい使えるものか検証してみようと考えました。その過程で、IchigoJam Sで作って本体に保存したキーボードで音を鳴らすプログラムをSDカードに保存して、IchigoJam Rに持ち込むことができないかやってみることにしたのです。(苦労して作ったプログラムなので、Macにも保存しておきたかったということもあります)

IchigoJamのSとRの違いですが、簡単に言うとCPUとしているICチップの違いです。SがLPC1114FDH28を搭載している(以前のUやTもLPC1114ベース)ARM Cortex-M0+/M0のマイコンを使ったボードなのに対して、RはGD32VF103CBT6を搭載しているRISC-Vのマイコンを使ったボードだということです。これによって、RではUSB接続のキーボードが使える(全てではないようですが)というメリットがあります。
(「イチゴジャムレシビ」の「IchigoJam の種類」を参考にしました)

早速Sの方にJamToastを載せてSDカード(今回は16MBのものを使用)を挿して起動しました。このIchigoJamのは、キーボードで音を鳴らすプログラムが入っています。これを「LOAD0」で呼び出して、「SAVE100」で保存します。しかし、「File error」と表示されて保存することができません。256MBのものや2GBのものでも試してみましたがみんな同じ状態。別の軽い簡単なプログラムを作ってやってみても、SDカードのフォーマットからやり直してみても、SDカードの中に予め「IJ100.BAS」という空のファイルを保存しておいても結果は同じでした。原因はよくわかりませんが、MMCカードではなくSDカードを使っているからなのか、相性問題が発生しているのか、そもそも何かの故障があるのか…。JamToastとSDカードの組み合わせでファームウェアのアップデートができているので、故障や相性問題ではないのかもしれませんが、わからないことに変わりがありません。
(『なんとかする予定「JamToast 特設ページ」』を参考にしました)

この方法がうまく行かないとなると、「IchigoJamで作ったプログラムをパソコンに保存する方法」のようにUSBシリアル変換モジュールを使ってMacにIchigoJamのプログラムを読み込むという方法が考えられます。こちらの方法も、簡単なわけではないので時間を作ってトライしてみたいと思います。

〈参考〉

2023年2月13日月曜日

Scratchでプログラムして4 keyミニキーボードで楽器風に演奏してみる

以前の続きです。4 keyミニキーボードを管楽器のピストン風にして、これを使って楽器を演奏しているような雰囲気にしたいということです。前回までにミニキーボードの改造が終了しているので、今回はScratchのプログラミングをやっていきます。
(久しぶりにScratchで音楽系のプログラミングをしてみましたが、ちょっとしょぼくなっている気が…)

メインのプログラムは以下のとおりです。
https://scratch.mit.edu/projects/799298176/
雰囲気を出すために、トランペットのスプライトを使い、スクラッチキャットが演奏している風にしてみました。(笑)

「吹く」という動作は、「スペースキーを押す」ことで代用しました。本当は、ブレスコントローラーがあればよいのですが、手頃な値段のものがないため代替の方法にしたという訳です。電気的に使いやすい方法を考えると、コンデンサマイクやファンを使う方法が考えられると思います。
(本当は、PicoBoardLEGO WeDo 1.0(解説)が使えたら良いのですが、現行のScratch 3.0では両方とも使えません)

コンデンサマイクを使う方法は、PC用のマイクを接続して息を吹きかけるだけでもできるかもしれません。マイクは複数台在庫があるので、練習用のプラスチックマウスピース(YAMAHATMPTR」など)と組み合わせて、何か作れないかなと妄想しています。Scratchでは、マイクからの「音量」をセンシングすれば何らかの数値が出てきそうです。

ファンを使う方法は、micro:bitMakey Makeyとの組み合わせでできるのではないかと思います。本来は、ファンに電気を流してファンを回す使い方が一般的ですが、逆にそのファンを吹いて回して何らかの電気を得ることができないかということです。この電気をセンシングしてScratchへの入力として使えたら、「吹く」という動作を電気信号に変換することができるように思います。できるだけ小さなファンを用意して、息を吹きかけて回して出てきた電気をmicro:bitやMakey MakeyにつないでScratchに入力すれば良いのではないかと思います。

次の懸案事項は、音程の変え方です。管楽器は「吹く」だけでなく、吹き方で音を高くしたり低くしたりする楽器です。これをどのように再現するかということが課題となります。やはりしばらくは試行錯誤が続きそうです。

2023年2月6日月曜日

4 keyミニキーボードを使って楽器のインターフェイス(ガジェット)を作ってみた

このところ、IchigoJamを使って電子楽器を作る実験をしてきました。マイコンボードを使って簡易な電子楽器を作ろうと考えると、Arduinoとかmicro:bitあたりを使うのが定番な感じがしますが、本体でプログラムができるところがIchigoJamの強みではないかと思っています。しかも、PS/2キーボードがメイン(IchigoJam RはUSBキーボード対応)とは言え、市販のキーボードを直接つないで使えるという魅力もあります。(その意味では、Raspberry piScratchの組み合わせも良いと思います)

そんな中、電子楽器づくりに使えるガジェットはないかと思って探していたところ、Amazonで4 keyしかないミニキーボード(SIKAI CASEの製品らしい)を見つけて衝動買してしまいました。かなり昔、ArduinoやPicoBoardにつないで電子楽器のインターフェイスとして使うものを電子工作していたのですが、作ったあとから本職が忙しくなりすぎてしまって(言い訳)長いこと放置していました。(そろそろこっちも何かやってみたい)

早速、購入した4 keyのミニキーボードをMacにつないで動作確認してみました。まず、4つのどのキーを押しても「c」が打ち込まれるようになっていて、デフォルトではどうにも使いにくいことがわかりました。キーの割当を変更したいのですが、このミニキーボードの設定をするためのソフト(MINI KeyBoard.exe)がWindowsにしか対応しておらず、自室にWindowsで動いているPCがないので設定ができません。このところWineの需要もなかったため、自宅のPC環境を再構築してからWineも使っていませんでした。そこで、不本意ながら別のWindows機を使わせてもらって、4つのキーをそれぞれ「1」「2」「4」「8」に設定しました。(この後、時間を見つけてWineHQの設定をしましたが、MINI KeyBoard.exeの起動には成功したものの、ミニキーボード自体との接続がうまくいきませんでした)

次に、この4 keyミニキーボードはホットスワップ対応なので、キースイッチ(Cherry MXの互換品)を元々ついていた赤軸(OUTEMU)から自宅に在庫していた黒軸(AJAZZ)に変更しました。この黒軸キースイッチは、だいぶ昔にHARD OFFでジャンク品として売られていた不動箇所があるキーボードから救出したもので、キーボードの筐体から取り外して別の自作キーボードに使おうと思って在庫していたものでした。赤軸と同じリニアタイプですが、少し反発力が強く楽器としての演奏感を出せたら良いと思って交換することにしました。実際は、少しは重くなったものの大きくは変わらないので変える程のことではなかったかもしれません。

ここまできたら、キーキャップを交換して楽器っぽくしてみようと考えて、タイプライター風のキーキャップにシルバーのスプレーでペイントを施して、管楽器のピストン風にしてみました。出来上がりは以下のとおりです。


これを使って楽器のように演奏できたらと妄想しています。IchigoJamだとUSBキーボードに対応したIchigoJam Rを使うか、Raspberry PiとScratchの組み合わせでやるか思案中です。「吹く(音を出す)」という動きをどうするか、持ち歩いて演奏できるようにするにはどうするか、まだまだ解決しなければならないことがあります。