|
3 4 6 7 8 0 - W E R T Y U I O P @ |
Sound: |
|
S D G H J L ; Z X C V B N M , . / |
Sound: |
基本的にサンプル4の鍵盤数を増やして2段にしただけです。
特殊なことは追加していません。
上段をMIDIチャンネル1、下段をMIDIチャンネル2で鳴らしています。
上段はノートナンバー60〜76、下段は36〜52です。
それに伴いキーマップは次のように拡張しています。なお、このキーマップは
ブラウザによって変わってきます。これはFirefox仕様です。
こういうことがあるので、ブラウザは極力Firefoxで統一願います。
var kmap={90:36,83:37,88:38,68:39,67:40,86:41,71:42,66:43,72:44,78:45,74:46,77:47,188:48,76:49,190:50,59:51,191:52,
87:60,51:61,69:62,52:63,82:64,84:65,54:66,89:67,55:68,85:69,56:70,73:71,79:72,48:73,80:74,173:75,64:76};
ノートナンバーが60以上のときにチャンネル1、それ以外はチャンネル2で
発音・消音するよう直接の命令部分のみ条件分けしています。
マウスクリックの消音部を例にとると次のような感じです。
document.onmouseup=function(e){
if(key){
var m=parseInt(key.id);
if(m>59){
Jazz.MidiOut(0x80,m,0);
}else{
Jazz.MidiOut(0x81,m,0);
}
key.className="";
key="";
}
}
変数名・関数名の末尾に1、2をつけて倍に増やし、
それぞれのチャンネルごとに専用で使用しています。
var current_snd1
var current_snd2
function changeSnd1()
function changeSnd2()
のような感じで、中身も2倍にしています。