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

1行プログラムでつくる楽器、IchigoJamでPS/2キーボードがMIDIドラムパッドに変身!

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

PCNサミットでの大橋さんの基調講演でも触れられたコンピューターの発展とMIDIの意外な関係。

歴史を紐解くとその関係は必然で、ラジオやテレビなどマスメディアとともに届く音楽に誰もが夢中になる中、新技術としてのコンピューターを積極的に採り入れたYMOがありました。 持っていたパソコンMSX turboRのMIDI端子に、譲ってもらった中古MIDI音源をつなぎ、家で鳴った感動、覚えてます。

音楽の楽しさを演奏テクニックなしに味わえるコンピューターミュージック。
まずは超シンプルなドラムマシンで遊んでみましょう。

1 BPS 31250:K=INKEY():IF K=0 GOTO 1 ELSE ?CHR$(#89,N,0,#99,K,127);:N=K:GOTO 1

プログラムは1行!
こちらを参考にIchigoJamと楽器をつないで、MIDI楽器の電源ON、そしてRUN!
あとはいろいろキーボードを押して演奏を楽しみましょう。


「IchigoJam x SC-88 Pro」 - IchigoJamからの接続はたった2本の線(RXD/VCC)

こちらは同じプログラムをわかりやすく書いたもの。

1 'MIDI DRUM PAD 10 BPS 31250 20 K=INKEY():IF K=0 GOTO 20 30 ?CHR$(#89,N,0,#99,K,127); 40 N=K 50 GOTO 20

10ch(=#99 10chノートon / #89 10chノートoff)がドラム音源、35以上81の47音が標準です。

画面にも何か表示した場合は、UART1/UART0でMIDIへの送信を制御し、LC0,-1でMIDI送信時には画面に表示しない出力を使うと便利です。

UART1:LC0,-1:?CHR$(#99,35,127);:UART0:LC0,0:?"NOTE on!"

コンピューター利用が当たり前になり、音楽への関心が薄れていた高専学生時代、MIDI制御であえて生楽器を使う明和電機は衝撃でした。 しかも、今でもバリバリ現役、かつ子供向けワークショップも!
6月30日(水)より、メディアラボ第7期展示「ノック!ミュージック -打楽器からコンピューターに至る4つの進化論-」を公開します。 | 日本科学未来館 (Miraikan)」(2010年)


こちらお手軽MIDI音源「歌うキーボード ポケット・ミク
安くてかわいく、人気の音声合成付き!なんとかIchigoJamと直結できないかと挑戦しますが、成功できていません。


左の大きなチップが音源、YAMAHA製NSX-1(YMW820) (ピン配置を含むデータシート)
同じチップを使ってシリアル接続しているeVY1シールドがあるので、17ピン(RXD)につなげばなんとかなるはず!


参考になった解析資料「○歌うキーボード ポケット・ミク(NSX-39)解析してみました - HOBBY STATION
RXDはGNDに接続されてしまっているので、ピンを切って配線してみるも、鳴らず。
SPI有効を表すESS_Nが定期的に使われているようなので、競合しているのかもと思い、パターンをカットしてプルアップすると起動せず。
初期化中はESS_Nを有効にするためスイッチをつけて、初期化後に切り離すも、鳴らず。

こどもにやさしく楽しいお手軽音源、なんとか鳴らしてみたいところです。

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

150円でつなぐ!MIDI音源で音楽あそび - Roland SC-88 Pro x IchigoJam

2016/02/14 23:55:00
#IchigoJam #KidsIT #sound #midi 

訳あってちょっと音痴IchigoJam
餅は餅屋、憧れのMIDI音源、Roland SOUND CANVAS SC-88 Proにつないで演奏してみました。
MIDIは、電子ピアノやエレクトーンにもついているので、お家にある楽器をハックしちゃおう!


IchigoJamからたった2本、線をつなぐだけ!(ケーブルは2年前つくったもの


MIDI端子は5ピンDINという規格。マルツで5ピンDINプラグ(150円)を買って、ピンを正面から見て左から2番目に赤色、と4番目に黄色の線をはんだづけ。写真の細い線ではなくジャンパーピンを使うのがオススメ。
5ピンDINソケット(120円)の方を買って、MIDIケーブルで接続するようにするのもアリ!

MIDIの正体は31250bpsのシリアル信号。IchigoJamのシリアル出力TXDに黄色、VCCに赤色を接続すれば準備OK!

IchigoJamで鳴らしてみよう!MIDIのお約束(プロトコル)を見て、ドの音を鳴らしてみます。
(参考、MIDI - Wikipedia

BPS 31250 ?CHR$(#90,60,127);

#90は1chに音鳴らすというコマンド、60が音階(半音で1上がる)、127が音の強さ。
画面に表示したものをそのまま鳴らそうとしてしまうので、鳴らさない時は UART0 でシリアル出力をオフにしよう。
おかしなことになったらMIDI音源の電源を一旦か、?CHR$(#ff); とシステムリセット信号を送ってみよう。

こちら和音の鳴らすプログラム

1 'MIDI WAON 10 BPS 31250:T=1 20 ?CHR$(#C0,T); 30 ?CHR$(#90,60,127,#90,64,127,#90,67,127); 40 WAIT 60 50 ?CHR$(#80,60,0,#80,64,0,#80,67,0); 60 UART0

減衰音の場合50行のノートオフはなくてもOK。

続いて、ドラムパート用に用意された特殊な10chを使ってドラム音を順番に鳴らすプログラム。

1 'MIDI DRUMS 10 BPS 31250:CLS 20 FOR I=35 TO 81 30 LC0,-1:?CHR$(#99,I,127); 40 LC0,0:UART0:?I:UART1 50 WAIT 30 60 NEXT 70 UART0

MIDI信号用の表示を画面に表示しないために、LC0,-1で画面外へ。
画面にだけ表示する場合は、LC0,0で位置を戻して、UART0で一時的にシリアル信号をオフにしよう。

以前つくったリズムマシーンをMIDI用に改造するのも楽しいかも?
本格DTM(for PanCake)、ゲームの効果音、加速度センサーを使ったオリジナル楽器作り、温度や距離測センサーを使って、外部環境に合わせたリズムを奏でるマシンづくりなど、発想自由自在!

IchigoJamイベント紹介
- 2016/2/20 第一回 PCNサミット IchigoJamワークショップ&こどもロボットpaprika 先着10名
- 2016/3/5 「きょうりゅうゲームをつくろう」IchigoJamプログラミングワークショップ 先着20組 - IODD2016

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

電子ピアノをMIDIとマイコンでIoTに

2014/03/30 23:55:00
#maker #IoT #lpc1114 #midi 

小学生の頃やっていたもの、ミニ四駆、パソコン(MSX)、電子工作、スイミングスクール、お絵かき教室、そろばん教室、エレクトーン。続いているのはパソコン、最近復活した電子工作。逆に、すぐに辞めてしまったのが、YAMAHAの電子鍵盤型多音色楽器、エレクトーン。この曲を弾きなさいとノルマが課せられるスタイルが性に合わなかった。

音楽が嫌いなわけではなく、10年ほど前に再度挑戦と買ったのが電子ピアノ、Roland FP-5。エレクトーンと違って、本物のピアノっぽいタッチがなんだかその気になれるかなと思ったが、やはりちゃんと弾くには練習が必要。子供の頃の蓄積もないので、上達も遅く、ほこりをかぶり、ついに本日リビングから追い出されることになった。

このまま使われなくなるのはかわいそうなのでネットにつないでIoT化してみる。PM2.5の値によって曲が変わる目覚まし時計や、10分後の雨降りの音をレインドロップ音で表現、スマホをMIDI楽器にして合奏するなど、いろいろと楽しく使えそう。ネットにつなぐには、MSXturboRでも使っていたMIDIという楽器をデジタルでつなぐ規格、パソコンにもつなぐことはできますが、ここは気軽に使えるようにマイコン(LPC1114)とつないでみる。

こちらLPC1114からMIDI信号を出すようにしてつないでみたデモ映像。ボタンで音色が変えられるようにしてある。ボタン電池でも動作するので、お気に入りの曲を持って、MIDI楽器屋さんに行っていろいろ試してみるのもいいかもしれない。Bluetoothなどで接続すれば無線化して、遠隔から音楽を操ることができる。

MIDI信号は非常にシンプル。マルツパーツ館で買える、DINプラグ5ピンというもの、内2本だけケーブルを引き出し、31,250bpsのシリアル信号を鳴らしたいタイミングで高さと音量を送るだけ。エレクトーンもMIDIに対応、電子楽器を余らせている方、オススメです!

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