<   2015年 02月 ( 2 )   > この月の画像一覧

ポケミク android で MIDI プレイヤー (2/28)

ずいぶん前にポケットミクを買っておいたのだが、音楽のセンスも何もなく、自分でキーボードから演奏するのは無理とあきらめていたのだが、ポケミクをMIDI Player(この辺がよくわかっていないのだが、MIDI シーケンサーっていうのは、MIDIで演奏データを作成するツールで、MIDI プレイヤーは色々な音源を持つ機器という認識でいいのかな?)にするアプリがあるらしい。元々WindowsにもMIDI音源のいくらかは入っているようなのだが、ポケミクには結構MIDI音源?リソース?が入っているみたい。
昔ローランドのMIDI音源に憧れたので、きっとその置き換えができるんじゃないかと思って¥4980払ったのです。
a0034780_2227517.jpg


WebMIDIでChormのWebAPIをONにしてWeb上からはコントロールできるのは、メーカサイトで告知されて知っていたが、基本的なことがわかってないから、今まで放置していた。

今日、Kako Homepage様で、Google Playで「eVY1 キーボード」が公開されているのを知り、TF-101にインストール、USBモードにして接続してみた。
ダイアログが出るはずだが、一回スリープモードになってからスイッチONで、表示された。上手くいかないときはしばらく放置するといいかも。

藤本健の“DTMステーション”様を見ると、eVY1互換モードというのも、ポケミクの方で勝手になってくれるみたいで、PC上で繋ぐときも、気にしなくてよさそう。

世界樹4.4というオープンソースプロジェクトで開発しているMIDIシーケンサーソフトを落として、USBモードでポケミクを接続。設定>MIDIデバイスとインストゥルメント>MIDI出力デバイス>出力ポート01でNSX-39を選択。適当なMIDIデータを探してきてオープン。プレイボタンを押下。あれっ?音が出ない。
色々調べたらポケミクのスピーカーの音が小さくて聞こえないだけでした。ポケミクにイヤホンを繋いでポケミクのVolumeボタン上を押して解決。

もちろんeVY1 キーボードもちゃんと鳴り、これでちゃんとしたMIDI音源機器が手に入ったわけです。

【作曲】
MIDIシーケンサーを使うのは敷居が高いけど、MMLなら書ける人は多いのかな?
だったらMML to MP3 with ぼーか郎でSMF(Standard MIDI File)に変換するといいかも。
サンプルの歌うMMLのかえるの歌はform_mml.midに変換されて、世界樹にD&Dでうまくいきました。
MIDIの事も歌うMMLのところで簡単な作り方が載ってます。
[PR]
by k1segawa | 2015-02-28 21:56 | Comments(0)

ポケコンPC-G850Vで 電子回路工作 (2/26)

ブレッドボードをポケコンの11ピンに繋げば、BASICから簡単にGPIO(デジタル入出力)を操作できます。

で、作ったのが汎用ロジックICをポケコンから制御するもの。
a0034780_11232013.jpg

汎用ロジックIC 「74HC164」 いわゆるシフトレジスタという、信号をクロックに合わせてシフトしていってくれる、シリアル→パラレル変換の1個手前の処理をICチップがやってくれます。

回路図はcadlus circuitで作成。

書き方は初めてで間違っているかも。

ポケコン側の2、3番ピンがVCC(+5V)、GND(0V)を出力している事を示し、
VCCという帽子のようなマークは2番ピンにつながっている事を示すショートカット、GNDマークは3番ピンということ。

74HC164の部品図に、7と14番ピンが省略されていたので追加している。
7セグはLA-301MLという製品が部品図になかったので、代替で描画。7セグの6と7番ピンはピリオドの部分なので未結線。それぞれQA~Gと7セグ1~10の間に1KΩの抵抗を挟んで、QA→1などのように繋ぐ。全部書くと煩雑なので点線のようにソケット部品を介するように書いているが、実際は直接接続。9にはGND。

【BASICプログラム】
10:OPEN "PIO:":PIOSET 0
20:READ A
30:IF A=99 THEN RESTORE 70:GOTO 20
40:PIOPUT A
50:WAIT 3:PRINT
60:GOTO 20
70:DATA 7,5,7,5,7,5,7,5,7,5,7,5,7,5,7,5,0,99

【解説】
10:11ピンをオープンして、すべて出力ピンに設定。
20:データ文から数値をAに読み込む
30:Aが99ならデータ文を70行の先頭から読み直すよう設定し、20行へジャンプ。
40:Aを11ピンへ出力
50:3(1/64秒単位)だけ待つ(PRINT文が必要)
60:20行へ戻る
70:データ文

11ピンは4~11番目がbit0~bit7(0が下位ビット)に対応している。
従ってデータ7,5は2進数で111,101であり、各ピンを

4ピン(A) :11
5ピン(CLK) :10
6ピン(!CLR):11

にON/OFFしており、データ文全体ではそれを8回繰り返し、最後全て0クリアするプログラムになってます。
なぜそうなっているのかは次の74HC164のタイミングチャートを見てほしい。
フィットデザインのホームページ様
a0034780_21193429.jpg

4ピンはAというICのデータ信号となって、
5ピンはCLKというICのクロック信号をON/OFFして、
6ピンはCLRというICのクリア信号をずっとOFF(リバースなので)し、最後にON。

シフトレジスタはCLKに合わせてデータ信号をQA→QB→QC・・・の順にシフトしていく機能を持つので、7セグに繋がっているLEDピンを1個2個3個とONにしていき、7セグの7個のLEDすべてをONにしたら、最後に0でクリア信号がON(リバース)になって消灯となる動きをします。

Youtube:ポケコン 汎用ロジックIC シフトレジスタ
a0034780_21101722.jpg
(写真と動画ではICの2番ピンは1番ピンへ接続していますが、本当はVCCに繋ぎます―回路図修正済み)
これを8回目で初めて7セグに送る回路をもう一段組めば、8を描画する処理になります。

QHを使っていないので7回でいいように思いますが、最初のクロックでAにデータをセットした時はまだQAには送られていないので、初期化1+7回送り=8となります。
あと70:DATA 7,4,6,5,6,5,6,5,6,5,6,5,6,5,99だとクルクル回るようになります。

【独り言・・・】
ポケコン PC-G850Vを使って何をしたいかというと、デジタル回路を操作したかったのです。
キーボードで直接BASICインタプリタをいじって、I/Oポート(GPIO)を操作できるのがいいのであって、キーボードレスのタブレットや、I/Oポートが直接出ていないPCや、Cなどのコンパイラでなく、すぐ変更・実行できるインタープリタ言語がいいのです。

電子工作が趣味の人には簡単すぎる事だけどここまでやっと来た感じです。
電池でLチカ→ポケコンでLチカ→電池でトランジスタ→電池で74HC04→ポケコンで74HC04→電池で74HC164→ポケコンで74HC164(今ここ)
途中で電子ブロックやブザー取り付け、BEEP制御、チップ抵抗、他のマイコンボードに道がそれたり、電子工作の本やマイコンボードの本、100均やグルーガンやヒートガン、ラグ板、ユニバーサルボード、各種LEDや電子工作部品や道具、秋月や千石で色んなものを購入しました。何が必要か必要でないか、情報も含めて玉石混交の状態から、共通項を洗い出し、試行錯誤し、自分でI/Oポートのその先にくっつける回路を自由に作成できる、最初の一歩にたどり着いたと思っています。
[PR]
by k1segawa | 2015-02-27 00:18 | ポケコン | Comments(0)