フォト
2017年5月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

« ルミちゃん vs. ちっちゃなミーニャ | トップページ | Ichigojamのファームウェアを1.2b12の動作確認 »

2016年3月 8日 (火)

PIC24FJ64GB002を使ったUSBホストの実験 5

*** 2017/02/22 更新 公開プログラムに不具合がありました。差し換えました。
*** 2017/02/22 更新 記事を追記しました。

ソフト的な問題(システムエクスクルシブの処理の不具合)が解決できたので、基板実装しました。

MIDI-INとシリアル入力でUSB接続のMIDI音源機器の制御が出来ます。
取りあえず、今回の実験の成果物とします。

Dscn4988

ポケット・ミクを接続してMIDI-IN経由で演奏している様子

Dscn4987


回路図的なもの(画像をダウンロードして表示すると大きい図になります)

02_2

基板実装図

01

プログラムソース
未熟なソースですが置いておきます。

ダウンロード UsbMidi.X.zip (141.6K) (不具合があり差し換えました)

2017/02/22 追記

かずぽんさんのご指摘で、動作確認したところ、システムエクスルシブメッセージの処理に
ミスがありました。かずぽんさんをはじめ、ご利用頂い方々に対しまして、ご迷惑おかけしました。修正して差し換えました。

IchigoJamで動作確認しました。

01

IchigoJam用の演奏プログラムは、IchigoJam開発者の福野さんのブログ
「福野泰介の一日一創」「YAMAHA NSX-1 x IchigoJam eVY1とBASICを使ったお手軽DTM」
にて公開しているプログラムを改造して利用しました。

福野さんの記事ではeVY1を使ってIchigoJamで演奏させています。


プログラムソース
CC BY 福野泰介 - Taisuke Fukuno / @taisukef

1 'KAERU's song (MIDI)
5 BPS31250
10 M="CDEFEDC EFGAGFE C C C C CDEFEDC "
20 D="0-0-0-0C0-0-0-0C0P0P0P0P0-0-0- 1"
21 LET [0],#F0,#43,#79,#09,#11,#0a,#00,#05,#03,#71
22 LET [10],#43,#02,#29,#0a,#06,#09,#03,#2c,#07,#71
23 LET [20],#6e,#0a,#0a,#0a,#0a,#01,#36,#0e,#24,#66
24 LET [30],#02,#29,#f7
27 UART1:LC0,-1:FOR I=0TO 32:?CHR$([I]);:NEXT
30 GOSUB @PLAY
40 BPS0:END
200 @MIDI:UART1:LC0,-1:IF N ?CHR$(#90+H,N,V);:WAITW:?CHR$(#80+H,N,0); ELSE WAIT W
210 UART0:LC0,0:RTN
300 @PLAY:CLS:W=5:P=0:LET[0],69,71,60,62,64,65,67
310 C=ASC(M+P):?CHR$(C)
315 B=ASC(D+P):?CHR$(B)
320 IF C=ASC("2") WAIT W
330 IF C>=ASC("A") AND C<=ASC("G") N=[C-ASC("A")]:H=0:V=127:GOSUB@MIDI
334 IF B!=ASC(" ") N=B:H=9:V=50:GOSUB@MIDI
338 WAIT 30
340 P=P+1:IF P<LEN(M) GOTO 310
350 RTN


21行から24行が歌詞用でデータです。27行でそのデータをポケットミクに送っています。
データの作成は下記のサイトを利用しました。
・ポケットミクで好きな歌詞を歌ってくれるMIDIファイルを作成
  http://aisot.org/39/mikuex
上記のサイトの「歌詞入力」にて、
  かえるのうたがきこえてくるよががががいちごじゃむうた
と入力して、対応する歌詞データを作成します。
  05:03:71:43:02:29:0a:06:09:03:2c:07:71:6e:0a:0a:0a:0a:01:36:0e:24:66:02:29:
これをテキストエディタで置換等の加工します。

歌詞の登録は次のコマンド(システムエクスルシブメッセージ)を送ります。
  F0 43 79 09 11 0A 歌詞スロット 歌詞データ F7

歌詞スロットは0,歌詞データ分は作成したデータを指定します。
本当は歌詞データの参照位置を指定したりする必要がありますが省略しています。
何回か再生すると、歌詞がずれたりします。

« ルミちゃん vs. ちっちゃなミーニャ | トップページ | Ichigojamのファームウェアを1.2b12の動作確認 »

PIC」カテゴリの記事

コメント

たま吉さん様はじめまして。
いつも貴重な情報提供をありがとうございます。

記事を真似てchigoJamでポケミクを喋らそうと、
拙い知識ながら中2の息子と奮闘しています。

UsbMidi.X.production.hexを使わせていただき、
2週間かけてGM音源を鳴らすところまできたの
ですが、どうしてもシステムエクスクルシブ命令
がミクに伝わらず、思い通りに喋ってくれません。

「PIC24FJ64GB002を使ったUSBホストの実験4」
と同様の症状にも見えます。いきなりのお願い事
で恐縮ですが、もし思い当たる原因などありまし
たら、ご教示いただけないでしょうか。

よろしくお願いいたします。

かずぼんさん、はじめまして。

まだまだ実験レベルなので、システムエクスクルシブの処理は
怪しい箇所があるかもしれません。動作確認いたします。

感動&完動です!ミクが喋りました!!
早速のご対応、ありがとうございました。

今回は助けていただきましたが、将来は
C言語を覚えて自分で対処できるように
なりたい、と息子が申しております(^^♪。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/63318430

この記事へのトラックバック一覧です: PIC24FJ64GB002を使ったUSBホストの実験 5:

« ルミちゃん vs. ちっちゃなミーニャ | トップページ | Ichigojamのファームウェアを1.2b12の動作確認 »