hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

RubyからMIDI経由でTR-8を操作していいドラムの音を出す

RolandのTR-8っていうドラムマシンにUSBケーブルをつなぐとMIDIで通信できて音を出せることに気付いたので,ちょっとやってみた.
unimidiというRubyのライブラリを使って,スネア叩いてくださいって送るとプログラム経由でスネア叩いてもらえる.

自動で演奏する

自動で演奏しつつも,ずっとループだと飽きるので,ぼちぼち展開する.ふだん使い用.

TR-8にRubyでMIDI信号を送って全自動ドラムマシンが完成した 放っておいても勝手に曲が展開して便利

だんだん細かくする

四分音符のつぎ5分音符,6部音符,8分音符のとぎ三連符,16分音符,とか延々と一拍を細かくしていく.最終的に63連符とかになってたのしい.11連符を聞きたい!!みたいなとき用.

四分音符から徐々に細かくしていって待ってると63連符とかまで聴けるやつができた

ちょっとずつずらす

ドラムマシンはなにがいいかというとほっとくとずっと演奏するし,まったくずれないのが良い.ので,ずれるようにする.キックとスネアのBPMがずれたまま進んでいく,みたいな気持ち悪い状況.気持ち悪いとき用.

パートごとのBPMをちょっとずつずらして機械でやってるのにだんだんずれていってつらいというのができた

ポイント

  • MIDI信号はドラムなので10番のチャンネルに送る
  • ベロシティ0でnote onを送るとライトが消える
  • タイミングの制御はRuby側でsleepしてがんばる
    • そのかわりに,パートごとに別々のBPMにする,みたいなのを自分で書けるようになる
  • note onとnote offがあって…とかチャンネルがあって…とか,小学生のころにMIDI手打してた知識が役立った
    • メモ帳でMMLを書いたり,Cherryでポチポチやったり,エレクトーンとMIDIケーブルでつないで弾いたのを取り込んだりしてた…
  • MIDIの規格の資料,↓がよさそうだった

TR-8持ってる人いたらどうぞ

midiで遊ぶためのリポジトリに置いてあるのでご利用ください.改造してあらたないい曲ができたらPull Requestください.
github.com

お手本

お手本はこちら.みなさんには,Jeff Millsを超えるプログラムを書いてもらいます.
www.youtube.com

関連

MIDI情報.
hitode909.hatenablog.com
hitode909.hatenablog.com

いまオフィスにKAOSS DJとかTR-8とかカリンバとか神楽鈴とかプレステ用ギターコントローラーとか楽器が並んでて良い雰囲気になってきている.打楽器は揃ってきたのでトラックメイカーとラッパー募集中です.