Guitar Scalerと
MML&MIDI
自作楽器製作勉強会
2007/11/25 cloned
飛び入りですみません
くじらさんに何か発表できませんか?と言われて
あわてて資料を作りました
自己紹介とGuitar Scalerについて
簡単にお話します
自己紹介 その1
id:cloned
はてなでブログ書いてます
仕事はWebのプログラマをやってます
自己紹介 その2
初めて触ったシーケンサ
Singer Song Writer for Windows 95
楽譜が演奏されることに感動
自己紹介 その3
中学/高校はひたすら打ち込み
ステップ入力 ステップ入力
QS300と共に過ごした青春時代
ギタースケールを表示するツール
Webで閲覧可能
7弦ギター対応
27フレット対応
変則チューニング対応
ニッチなご要望にお応えします
Guitar ScalerとMML&MIDIの関係
表示したギタースケールを再生するのに利用
処理概要
JavaScriptでMMLを作成
  -> AjaxでMMLをサーバーにPOST
  <- MIDIファイル名をJSONでレスポンス
<- QuickTimeにMIDIファイル名を設定
  -> QuickTimeがMIDIを読み込んで再生
MMLの作成
全てJavaScriptで実装
JavaScriptでMIDIが作れると良かったけれど
JavaScriptはバイナリが扱えないので断念
追記:↑バイナリが扱えない訳ではないみたい
スケールの実装
notes: {
  "A":  0,
  "B♭": 1,
  "B":  2,
  "C":  3,
...scales: {
  "Major"           : "0,2,4,5,7,9,11",
  "Major Pentatonic": "0,2,4,7,9",
  "Minor Pentatonic": "0,3,5,7,10",
...基音に対する半音階を数値で表現
MMLに変換
map: {
  "A":  "a",
  "B♭": "a+",
  "B":  "b",
  "C":  "c",
...Guitar Scalerの変数をさらにMMLにマッピング
あとはMMLのフォーマットに合わせてゴリゴリ変換
まとめ
音符に関わるプログラミングは
とても楽しいです!
ご静聴ありがとうございました