|
3 4 6 7 8 0 - W E R T Y U I O P @ |
|
|
S D G H J L ; Z X C V B N M , . / |
全てを
拍の先頭以外を
|
|
||||
|
|
<body>
<td colspan=3 class=p10>
<input type=radio name=bpoc id=bpoc1 onchange='bed();'>全てを
<input type=radio name=bpoc id=bpoc2 onchange='bed();' checked>拍の先頭以外を
<br>
<select id=bporn>
<option value="only">ルートのみで
<option value="octs" selected>オクターブ上下含む
<option value="5tha">5度音も少し含む
<option value="5thb">5度音も多く含む
</select>
</td>
<script><!--
var octs=[0,0,0,0,0,0,0,0,12,12,-12,-12]; // オクターブ上下を含む
var tha=[0,0,0,0,0,0,0,0,12,12,-12,-12,7,-5]; // 5度音も少し含む
var thb=[0,0,0,0,0,0,0,0,12,12,-12,-12,7,7,-5,-5]; // 5度音も多く含む
var boc;
var born;
function tick(){
if(playing==2){ // ループプレイのとき
document.forms[0].elements[currbar-1].checked=true;
currdrptnb=document.forms[1].elements[currbar-1].value;
cht=document.forms[4].elements[currbar-1].value;
bpp=document.forms[5].elements[count].checked;
bvel=document.forms[5].elements[16].value;
if(document.getElementById('bpoc1').checked){ // ベース音程変化が
boc=0; // 全てのタイミングを対象
}else{
boc=1; // 拍の先頭タイミング以外を対象
}
born=document.getElementById('bporn').selectedIndex; // 変化パターン
if(bpp)Jazz.MidiOut(0x81,mbn+36,0); // 消音処理
(中略)
if(bpp){
tx=0;
if((boc==0)||(count%4!=0)){ // 音程変化をする場合
if(born==1){
tix=Math.floor( Math.random() * 12 );
tx=octs[tix]; // オクターブ上下
}
if(born==2){
tix=Math.floor( Math.random() * 14 );
tx=tha[tix]; // 5度も少し
}
if(born==3){
tix=Math.floor( Math.random() * 16 );
tx=thb[tix]; // 5度も多め
}
}
Jazz.MidiOut(0x91,cbn+tx+36,bvel); // 変化幅txを加算して発音
mbn=cbn+tx; // 変化幅txを加算して保管
}
}
(後略)
}
--></script>