Markov Test 2
this sucks
by Eve Weinberg
HTML
<script src="https://tonejs.github.io/CDN/r6/Tone.js"></script>
JavaScript
var snareUrl = "https://tonejs.github.io/Tone.js/examples/audio/505/snare.mp3";
var snare = new Tone.Player(snareUrl).toMaster();
var faster = 0
var Gotfaster =0.5
//what is retrigger?
snare.retrigger = true;
var synth = new Tone.FMSynth().toMaster();
//my scale, plus I want to add the snare
var val1 = "C2";
var val2 = "E2";
var val3 = "G2";
var val4 = "C3";
var val5 = "E3";
var val6 = "B3";
var val7 = "C4";
var val8 = "E4";
var val9 = "D2";
var obj = {};
obj[val1] = [val5, val2];
obj[val2] = val4;
//[ {value:val2,probability:.8},{value: val3,probability:.2} ]; // this is equal to obj.D1 = "D2"
//[ {value:val1,probability:.4},{value: val3,probability:.04},{value: val4,probability:0.2} ], // this is equal to obj.D2 = [ "D1", "D3" ]
obj[val3] = [val2, val4];
//[ {value:val2,probability:.4},{value: val4,probability:.04},{value: val5,probability:0.1},{value: val1,probability:0.1} ]; // this is equal to obj.D3 = "D1"
obj[val4] = [val1, val3]; // this is equal to obj.D3 = "D1"
obj[val5] = val4;
var chain = new Tone.CtrlMarkov(obj);
//if I run with E2, it's fune, but with G2 it's not
chain.value = obj.E2;
//play 70 notes
for (var i=0;i<70;i++){
//clamp this vaule
if (faster <.26){
var Gotfaster = 0.5-faster
} else{
Gotfaster=0.20
}
//schedule them all, note, time, velocity
synth.triggerAttackRelease(chain.value,0.2,i*(Gotfaster));
//get the next state in the Markov chain
chain.next();
faster = faster+.0045
}