create every day - 福野泰介の一日一創

ファミコンMIDI音源「ふぁみみみっでぃ」音声出力簡単改造 x IchigoJam

2017/09/23 23:55:00
#IchigoJam #midi #maker 

コミケC92で入手したファミコンをMIDI音源にしてしまうカセット「ふぁみみみっでぃ by @hekekekun」をちょっとだけ改造してIchigoJamに接続。


起動音がかわいい、ふぁみみみっでぃ、IchigoJamでいろいろ鳴らしてみるプログラムがこちら。普通のMIDI音源として使えます。

10 UART0:BPS31250:V=127 20 FOR I=30 TO 100 30 C=#90:GSB100 40 C=#93:GSB100 50 IF BTN() END 60 NEXT 70 GOTO 10 100 UART1:?CHR$(C,I,V);:WAIT10:?CHR$(C,I,0);:UART0:RTN

普通のファミコンの場合、音声出力がRF(アンテナ)なので、AV改造などが必要でしたが、カセットの仕様を見ると音声がカセット端子にでています(45ピン)。 これを使って鳴らしてみた今回ですが、ちょっとノイズがひどいのでもうちょっと解析と対策が必要な様子。

ふぁみみみっでぃのBACK側、真ん中あたりの青い線がSOUND INにあたる45ピン。 ついでに、VCCにIchigoJamからの5Vをつなぐので、ファミコンのACアダプターもいらなくなってコンパクト!

links
- ファミコン実機とMIDI連携できるカセット「ふぁみみみっでぃ」のご紹介!MIDINES欲しかった人は要チェックです! | ハイレゾスタイル
- へけけくん (@hekekekun) | Twitter (ふぁみみみっでぃの作者さんのTwitter)
- 極楽ほんげら (ふぁみみみっでぃの作者さんのサイト)
- IchigoJam BASIC 15行、バンブラ奏法で奏でるMIDI楽器

シリアル通信で簡単接続!TouchMIDI32 x IchigoJam = BEEPタッチ楽器

2017/09/04 23:55:00
#maker #IchigoJam #sound #midi 

USB-MIDIでWeb MIDIでパソコンに接続してみた、タッチMIDコントローラー「TouchMIDI32
実はシリアル接続してIchigoJam、Arduino、ラズパイなどとも簡単に使えることが判明!


電源を3.3V(5VでもOK、1.71V-5.5V)でとって、TouchMIDI32のシリアル出力(PB8-4)からIchigoJamのRXDにつなぐだけ!

10 BPS31250 20 K=INKEY():IF !K CONT 30 L=INKEY():M=INKEY() 40 ?K,L,M 50 GOTO 20

テストプログラム、MIDIメッセージのTONE ON/OFFが受信できました。
(シリアル通信での0受信は、256となるIchigoJam BASICの仕様です)

早速、次のプログラムを加えてBEEP楽器化してみます!

15 LET[0],240,227,214,202,191,180,170,160,151,143,135,127 43 IF M=127 N=L-60:BEEP[N%12]>>(N/12),15

テストプログラムに15行と43行の2行を加えるだけ!
32音階、2オクターブちょっとあるので、いろいろ弾けそうです


鳴りました! SOUNDとGNDにつないだステレオジャックに、100均スピーカーをつなげています。


端子がなければ、100均のスピーカーを分解して直接はんだづけしちゃうのもいいですね!
参考までに、meetsで買ったスピーカー、緑と青が接続されていて、金と赤が追加スピーカー用となってました。


音がなるモノ、子供たちを惹きつけますね!(鯖江Hana道場にて)

触るウェブ、Web MIDI API x TouchMIDI32 = WebTouch

2017/09/03 23:55:00
#maker #web #js #midi 

ちょっとハードルが高い、ハードウェア工作。
でも、奇楽堂TouchMIDI32があれば、JavaScriptでタッチボタンがすぐできる!(旧10キー版は安い!)

TouchMIDI32は、32コのタッチセンサーをつなぐMIDI入力デバイス、USBでパソコンにつなぐと、MIDI IN デバイスとして使えて、Web MIDI API を使えば、ブラウザ上のJavaScriptで簡単に遊べる!

Web MIDI API は、使い方簡単!

navigator.requestMIDIAccess({ sysex: false }).then(successcallback, errcallback);

requestMIDIAccess でデバイスを受け取ったら、onmidimessage で受信したり、send で送信するだけ!


WebTouch with Web MIDI API

links
- Web MIDI API - W3C
- MIDIデバイスの準備不要、Web MIDI APIの基礎 | HTML5Experts.jp
- Web MIDI APIを触ってみた - Qiita
- Web MIDIでつなぐパソコンとIchigoJam

ぬいぐるみとNFCとMIDIでFM音源BGM自動生成、高専インターンOB/OGハッカソン「クリエイティビティーを刺激せよ」エキシビジョン

2017/08/26 23:55:00
#sabae #IchigoJam #music #intern #midi 

鯖江、めがね会館で開催、高専インターンOB/OGハッカソン「クリエイティビティーを刺激せよ!」
10時からネタ出しチーム分け、昼食後、13時から開発開始、17時発表までの4時間で勝負!

それぞれで楽しいチーム開発が進みます。

現役インターン生とインターンOB/OGの混合チーム。

小学生でも優しく作れる、だれでもSPARQL、SPRACH。

創造活動を応援してくれる、ちあがーるふれんど(仮

各チーム毎に自分以外に1票いれて選ぶ、優勝チームは「Waku2Pad」

他の作品も楽しかった!
- おやつアート - オープンデータなお菓子画像で創造&爆発
- いらすと屋2.0 - 気軽なイラスト共有プラットフォーム
- このゆびとまれ - 創造活動チームを組成支援

各チームのちょっとだけ手伝いしつつ、終盤は一人チームでつくった、クリエイティビティーを高めるBGM。
ぬいぐるみにNFCをつけ、気分に合わせたBGMが聞いて、気分をアゲようという提案!

IchigoJamのプログラムは過去作品の組み合わせ!
RFIDで読み取ったIDを乱数の種に、MIDIで音階を自動生成するプログラムに連携します

10 LET[0],36,38,43,50,42,46,39,75,67,49 20 BPS 31250:UART1 30 SRND S 40 FOR I=0 TO 7 45 T=[RND(10)] 50 ?CHR$(#90,T,80); 60 WAIT 10 65 ?CHR$(#80,T,0); 66 IF BTN() BPS0:LRUN0 70 NEXT 90 GOTO 30

KORG plugKEYを使うと、iPhone/iPad/iPod touchがIchigoJamから使える高音質MIDI楽器に早変わり!
動画の楽器アプリはYAMAHAのFM音源アプリ「FM Essentia」MIDIコントロール可能!

KORGの音源アプリも、MIDIで接続できる!

IchigoJamのかわくだりゲームを改造して遊ぶ高専生達。

また来年!

IchigoJamで音楽づくり PSG単音での音遊びから、MIDIキーボード&MIDI音源をつないだ本格DTMまで

2016/05/07 23:55:00
#IchigoJam #midi 

プログラミングの必修化では、「全て教科」でのICT活用が謳われています。 鯖江の小中学校でのIchigoJamクラブでは、IchigoJamのMMLを使った音楽づくりが人気です。

MML(Music Macro Language)とは、「ドレミ」を"CDE"で表す。BASIC時代から使われている曲記述言語です。 そういえば、MSXのFM音源で音楽の教科書の「コンドルは飛んで行く」とかをMMLにして、PLAYコマンドで鳴らしてました!

こちらおなじみ、学校のチャイムのMMLです

'MML SCHOOL CHIME PLAY"T60 BGAD2.R DABG2.R"

※Tはテンポ、Rが休符、基本は4分音符で後ろに2など付けると2分音符などにできます

'MML HAPPY BIRTH DAY PLAY"T180G.G8A2G2<C2>B2.R G.G8A2G2<D2C2.>R G.G8<G2E2C.C8>B2A2.R <F.F8E2C2D2C2.R

誕生日の定番!(ver1.2用のMMLです、オクターブの上げ下げがver1.1やMSXでは逆なので注意!)

'MML NEKO FUNJATTA PLAY"T200< D+8C+8>F+8R8<F+F+ D+8C+8>F+8R8<F+F+ D+8C+8>F+8R8<F+>D+<F+>C+<FF D+8C+8>C+8R8<FF D+8C+8>C+8R8<FF D+8C+8>C+<F>D+<F>F+<F+F+

唯一弾けるピアノ曲「ねこふんじゃった」

'SKATER'S WALTZ PLAY"T140 $E2.G2AA1R2 F2.A2BB1R2 <D2.C2>EA2.G2FE2.D2.C1R2

レトロゲームといえばクラシック!スケーターズワルツのループ(MML内の$があると末尾からそこに飛びます)
MixJuice で ?"MJ GET ichigojam.net/p/ からダウンロードできます!)


これら曲の打ち込みに活躍したのは、中古で手に入れた小型MIDIキーボード x SC-88 Pro を使ったIchigoJam DTM環境!
※最近の小型はMIDI端子が非搭載なのが多いので注意!

MIDIキーボードで演奏した曲をMMLにするプログラムをつくってみました。音の長さの判定がいい加減なので、手で修正は必要ですが、これでだいぶ楽になりました。 メトロノーム機能付き!(テンポは変数Dで調整、不要な場合は11行を消してください、50行でMIDIキーボードの拡張キーを使ったちょっとした編集機能を追加)

1 'MIDI-RECORD for 1.2 2 LET[0],"C","C+","D","D+","E","F","F+","G","G+","A","A+","B" 5 BPS31250:UART0,2:D=30:T=D:N=0:CLT 6 C=0:S=0:U=0 7 CLS:LC0,2:?"PLAY";CHR$(34);:L=5:O=5 10 K=INKEY() 11 IF TICK()>T BEEP 10-(N%4=0)*4:N=N+1:T=T+D 12 IF K=0 GOTO 10 ELSE K=K&#FF 25 UART1,2:LC0,-1:?CHR$(K);:UART0,2 30 IF K&#80 C=K:S=0:GOTO 10 40 IF C=#91 S=S+1:IF S=1 M=K ELSE V=K:S=0:IF V GOSUB300:GOSUB400:?STR$([M%12]);:L=L+LEN([M%12]):U=TICK() ELSE U=TICK()-U:IF U>D GOSUB300:?2;:L=L+1:'?" ";U 50 IF C=#B1 S=S+1:IF S=1 IF K=#19:GOTO 7 ELSE IF K=#15 L=L-1:GOSUB300:?" " ELSE IF K=#16 GOSUB300:?" ":L=L+1 200 GOTO 10 300 LC L%32,L/32+2:RETURN 400 IF M/12>O ?"<";:L=L+1:O=O+1:RETURN 410 IF M/12<O ?">";:L=L+1:O=O-1 420 RETURN

動画 on Vine

こちらは単純にMIDI入力をMIDI出力にスルーするプログラム。
作曲ツールや、演奏ツールの雛形として活用ください。

1 'MIDI-THRU for 1.2 5 BPS31250:UART0,2 10 K=INKEY():IF K=0 GOTO10 20 ?HEX$(K,2);" "; 25 UART1,2:LC0,-1:?CHR$(K);:UART0,2 30 GOTO 10


YAMAHAのMIDI音源、eVY1ボードへの接続はMIDIケーブルも不要!(つなぎかた


IchigoJamでMIDI音源を鳴らすのはとっても簡単!
MIDI端子にジャンパー線を2つはんだづけして、片方をVCCに片方をTXDに挿しこむだけ!(つくりかた
MIDI楽器もっている方、昔DTMに憧れた方、家にMIDI端子があるエレクトーン/電子ピアノがあるご家庭の方にオススメです!(MIDI入力は、IchigoJam BASIC ver1.2以降で対応します)
→ 秋月電子から「IchigoJam用MIDIインタフェース基板キット: 組立キット」も登場!

関連リンク
- Web MIDIでつなぐパソコンとIchigoJam
- 夢の明和電機楽器をIchigoJamで演奏!まだまだ使える日本発の規格「MIDI」
- MIDIキーボードをIchigoJamにつないで明和電機ごっこ!?
- 再燃!?MIDI音源であそぼう! IchigoJam 1.2β シリアル入力バイナリ対応
- YAMAHA NSX-1 x IchigoJam eVY1とBASICを使ったお手軽DTM
- 1行プログラムでつくる楽器、IchigoJamでPS/2キーボードがMIDIドラムパッドに変身!
- 150円でつなぐ!MIDI音源で音楽あそび - Roland SC-88 Pro x IchigoJam
- 電子ピアノをMIDIとマイコンでIoTに

再燃!?MIDI音源であそぼう! IchigoJam 1.2β シリアル入力バイナリ対応

2016/04/13 23:55:00
#IchigoJam #midi #akiba 

コンピューターの歴史は、コンピューターミュージックの歴史。
現代はすっかりソフトウェア音源全盛だからこそ、デジタルでは表現できないアナログ世界へとつなぐMIDIが熱い!
生楽器のMIDIコントロールといえば明和電機ですが、コルグ(KORG)からおもしろいMIDI楽器が出てました。


こちら現代のMIDI楽器「KORG volca beats」、PCNフラッグシップ秋葉原で遊べます。
なんと、アナログ回路でドラムセットを再現したMIDI音源!PC上のソフトウェアではできない音!
(最近はなんと、FM音源版 volca fmも登場!!)
MIDIの仕様書もあって単3電池駆動、IchigoJamから簡単に遊べますよ


キーボードからの入力、謎だったノートオフ信号もちゃんととれるようになりました!(1.2beta19)
キーボードにたくさんついているツマミや、スライダーからはID付きで0〜127の128段階の値が受け取れるので、マルチ入力デバイスとしても使えます。 多人数対戦のテニスゲームPongのようなパーティーゲームや、たくさんの電車をまとめてコントロールするのにもいいかも?(MIDIキーボード購入の際は、MIDI-OUT端子付きかどうか、よく確認しましょう)

【変更点 1.2b19】
INKEY()で0を処理する際、いままでと互換をとる関係で、#100(10進数で256)として処理します。
IF !K K=K&#FF とすることで、0〜255の値が使えます。


MIDI回路は非常に単純、MIDI-OUTなら直結でOK、MIDI-INもフォトカプラと抵抗2つ、ダイオードを使った簡単回路でつながります。


SC-88VLとつながったデモプログラムも必聴!


こちらAssemblageの常連さんがつくっていったという、MIDIピアノプログラム!良い音鳴ります。


音色を聞いてもらおうと探したSC-88VLのデモ演奏、ちょっともたつく感じがかわいい!
これはIchigoJamからの再生ではないですが、近いことができるはず!
初心に帰れる、IchigoJam x MIDIコンピューターミュージック!


PCNフラッグシップ秋葉原 by Assemblageは、秋葉原駅、電気街口出て徒歩1分、明るいはんだづけスペース完備!


こどもロボットpaprikaもいます。

Web MIDIでつなぐパソコンとIchigoJam

2016/04/10 23:55:00
#IchigoJam #js #midi 

ブラウザ上でMIDI信号を扱う「Web MIDI」を使って、IchigoJamと接続してみました。


Web MIDI Monitor」 for Chrome

IchigoJamからのMIDI信号がブラウザ上に伝わり、表示されます(データの最初を16進数表示)
逆に、ブラウザからIchigoJamへMIDI信号をテストとしてドの音を送ることができるサンプルとなっています。

楽器として使うのはもちろん、双方向に通信できるので、いろんな使い方ができそうです!


USB-MIDIを経由して、IchigoJamのMIDIシールド(開発中)をつなぎ、テストしている図

参考リンク
- JavaScriptだけでMIDIで遊べる!最高に乱暴なWeb MIDI API利用方法 - Qiita
- MIDIノート番号と音名、周波数の対応表

夢の明和電機楽器をIchigoJamで演奏!まだまだ使える日本発の規格「MIDI」

2016/04/08 23:55:00
#IchigoJam #midi 

23年来のファン、生楽器を電気じかけで演奏するアーティスト、明和電機。
都内某所、年に一度の花見の日。


ついに、夢の明和電機楽器をIchigoJamコントロール!

1 'Marinca test driver 10 BPS 31250 20 N=#C+RND(12) 30 UART1:?CHR$(#80,N,10);:WAIT1:?CHR$(#90,N,0);:UART0 40 IF BTN() END 50 WAIT 15:GOTO 20

Marinca左右、12鍵盤、1オクターブをランダムに鳴らすプログラム!(MIDI OUT使用)


動画でどうぞ!IchigoJam pocket、こういう時に便利です!


明和電機楽器は全てMIDIコントロール!MIDIで多数の100V電源をON/OFFするボックスが生楽器強制演奏の秘密。 音源の小型版とか、つくってみたい!
MIDI規格誕生30周年を迎えて


会長自作の縦笛、熱かった!


明和電機生社歌も!

MIDIキーボードをIchigoJamにつないで明和電機ごっこ!?

2016/04/04 23:55:00
#IchigoJam #midi #sound 

LPC1114を電子ピアノにつないで遊んでからのMIDI電子工作、IchigoJamを使うと簡単DTMができました(ドラムパッドNSX-1対応)。 今度はMIDI-IN、MIDI入力に挑戦です!ちょっとだけ回路が複雑になりますが、ミニブレッドボードで5分と部品が揃えば5分でできます!


IchigoJamに電子ピアノをRoland FP-5(後継機種Roland FP-50)につないで、好きなように遊べます! チャンネル1に、押した鍵盤の音階と押した強さデータが31250bpsのシリアル受信(RXD)経由で受け取れます。

10 BPS 31250:UART 1,2 20 K=INKEY():IF K ?HEX$(K);" "; 30 GOTO 20

MIDI信号モニタープログラム
※UARTの2番目のパラーメータの2で、シリアル受信したESCコードでプログラムが停止しないようにしておきます。

MIDI-INのつくりかた

材料
- MIDIソケット x 1 (60円 秋月電子) 2コ買っておけばMIDI-OUTもつくれます!
- ジャンパー線 x 5 (220円/60本 秋月電子)
- 220Ω抵抗 x 2 (100円/100コ 秋月電子)
- ダイオード x 1 (100円/50本 秋月電子)
- フォトカプラ x 1 (20円 秋月電子)
- ブレッドボード x 1 (150円 秋月電子)

MIDIソケットに2本ジャンパー線をはんだづけ。裏返して、左から2番目に赤(電源っぽい色)、4番目に緑(信号っぽい色)。


ブレッドボードで回路を組みます。フォトカプラは丸い印が右上にして、入力を上、出力を下にしています。
フォトカプラの入力側+に220Ωの抵抗通じて赤い線、-に緑線、ダイオードは保護用?
フォトカプラの出力側+に1kΩの抵抗通じてVCCとRXD、-にGNDを接続(220Ω → 1kΩへ訂正)
フォトカプラの中身は、LEDとフォトダイオード、MIDI機器と回路を電気的に絶縁するのがMIDIのお作法のようです。


MIDI-OUTは、MIDIソケットにジャンパー線を2本つなげただけのものを、赤をVCC、緑をTXD(シリアル送信)につなぐだけ! このプログラムで、MIDIキーボードで任意のMIDI楽器を鳴らす、MIDI Thru(MIDIスルー)のできあがり!

10 BPS31250:UART1,2 20 K=INKEY():IF K ?CHR$(K); 30 GOTO 20

MIDI-INで受けて、サーボモーターを動かせば何かを叩くことができますね!
明和電機っぽい楽器もできちゃうかも?
レッツ、お気軽MIDI DTM!!


【イベント】明和電機事業報告ショー2016 チケット一般発売中! - 明和電機 - Maywa Denki明和電機 – Maywa Denki」とのこと!

YAMAHA NSX-1 x IchigoJam eVY1とBASICを使ったお手軽DTM

2016/02/25 23:55:00
#IchigoJam #sound #midi 

意外と手軽に楽しめるMIDIポケットミクの直結を試みるも失敗。

ひとまず、ポケットミクでも使われている音源チップ、YAMAHA NSX-1を搭載したシールド「eVY1」を使ってDTMしてみました。


接続するのは3本だけ!MIDIケーブルを介さず、直結できます。


eVY1シールドを開封したらまずはピンソケットをハンダ付けします。使用するのは3ピンだけです。
接続ピン
上CN5-2 (MIDI-RXD)に、IchigoJamのTXDを接続
下CN2-5(5V)に、IchigoJamなどから5Vを接続(※VCCは3.3Vなので動作しません)
下CN2-6(または7)(GND)に、IchigoJamのGNDを接続

簡単ですね!あとはプログラムです。起動後、ひとまずシリアル出力を UART0 で止めて、BPS31250 としてシリアル出力を初期設定すれば、MIDIへ信号送って演奏し放題です! ※参考「150円でつなぐ!MIDI音源で音楽あそび - Roland SC-88 Pro x IchigoJam

久しぶりのDTM、まずはシンプルにかえるの歌をドラムパターン付きで演奏するプログラムを作ってみます。

1' KAERU's song 10 M="CDEFEDC EFGAGFE C C C C CDEFEDC " 20 D="0-0-0-0C0-0-0-0C0P0P0P0P0-0-0- 1" 30 GOSUB @PLAY

MML風にメロディを書き、時間軸を合わせてドラムパターンを書いて、サブルーチン呼び出しで鳴ることをゴールとしました。

下記が最終的なプログラム(IchigoJam ver 1.2β8用)

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" 30 GOSUB @PLAY 40 END 200 @MIDI:UART1:LC0,-1:IF N ?CHR$(#90+H,N,127);:WAITW:?CHR$(#80+H,N,0); ELSE WAIT W 210 UART0:LC0,0:RTN 300 @PLAY:CLS:W=0: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=1:GOSUB@MIDI 334 IF B!=ASC(" ") N=B:H=9:GOSUB@MIDI 338 WAIT 30 340 P=P+1:IF P<LEN(M) GOTO 310 350 RTN

200-210:チャンネルHで、音階N、長さWで鳴らす(N=0の時は鳴らさない)
300-350:文字列Mをメロディ、文字列Dをドラムパターンとして鳴らす(@MIDI使用)

IchigoJamだけで、さらさらっとプログラミングDTM、なかなか楽しいです!

おまけ1、ランダムに鳴らす

20 N=RND(70)+35:H=1:GOSUB@MIDI:IF INKEY() END ELSE CONT GOTO 20

おまけ2、ドラムを試す

30 N=INKEY():IF !N CONT ELSE H=9:GOSUB@MIDI:CONT GOTO30

おまけ3、画面左上のヨコ8文字、タテ5文字を使ったリズムシーケンサー

40 H=9:W=20:FOR I=0 TO 7:FOR J=0 TO 4:N=SCR(I,J):GOSUB@MIDI:LC0,8:NEXT:WAIT20:IF INKEY() END ELSE NEXT:CONT GOTO 40

音楽演奏が苦手なら、コンピューターに演奏させればいい!
かつてのMIDI流行もそういう背景があったとのこと。


小中学生対象のPCNこどもプロコン、音楽プログラムもぜひどうぞ!MIDIがなくても付属の圧電サウンダーで単音はなりますよ! 締め切りは、2/29(月)!

参考リンク
- 「WindowsマシンをIchigoJamのMIDI音源に使う - kazueda式

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image