Closed chriskiefer closed 2 years ago
yes, looks like a scope issue
DEBUG:treeToCode
logger.js:60 () => {let q=this.newq();
q.b0u41 = () => {
let lq = {};
lq.b0u40On = this.createMIDISender(0x90);lq.b0u40Off = this.createMIDISender(0x80);;
return (t, mem) => {
return
lq.b0u40On.play(t, 1, 9, 43, this.MIDIUmap(127), this.getCurrentTime());
lq.b0u40Off.play(1.0 -t, 1, 9, 43, 0, this.getCurrentTime())
}
}
q.b0u42 = new Module.maxiOsc();
q.b0u42.phaseReset(0);;; return q;}
logger.js:60 (q, inputs, mem) => {(mem[0] = q.b0u41);(
((
(() => {
if (q.b0u43 == undefined) {
q.b0u43 = (mem[0] != undefined ? mem[0] : 0)();
}
return q.b0u43(q.b0u42.square(1), mem);
})
()
))
)
;}
logger.js:70
brute:(t:@{t:, 1, 9, 43, 127}moNote);
{{1}sqr}brute:;
{}MIDIInfo; brute:(t:@{{t:,1,9,43,127}moNote}poll); {{1}imp}brute:;
//{{1}sqr, 1, 9, 43, 127}moNote;
this works only when the poll is in place, which must force the function to get evaluated
((()=>{
${o}On.play(${p[0].loop}, ${p[1].loop}, ${p[2].loop}, ${p[3].loop}, this.MIDIUmap(${p[4].loop}), this.getCurrentTime());
${o}Off.play(1.0 -${p[0].loop}, ${p[1].loop}, ${p[2].loop}, ${p[3].loop}, 0, this.getCurrentTime());
return ${p[0].loop};
})())
so, some sort of explicit evaluation is needed = apply or call?
solved - issue was a newline at start of loop definition. when put after return, the closure returned undefined
brute:(t:@{t:, 1, 9, 43, 127}moNote);
k:{{1}clp, [3,3,3,3]}rsq; {k:, 1, 9, 36, 127}moNote; hh:{{4}clp, [2,2,4]}rsq; {hh:, 1, 9, 42, 127}moNote; ho:{{4,0.25}clp, [1]}rsq; //{ho:, 1, 9, 43, 127}moNote; {ho:}brute:;
connected with scope of this.createMIDISender?