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のフォーマットに合わせてゴリゴリ変換
まとめ
音符に関わるプログラミングは
とても楽しいです!
ご静聴ありがとうございました