packages feed

musicw 0.3.5 → 0.3.5.1

raw patch · 2 files changed

+104/−51 lines, 2 files

Files

musicw.cabal view
@@ -1,5 +1,5 @@ name:                musicw-version:             0.3.5+version:             0.3.5.1 synopsis:            Sound synthesis library, to be used with GHCJS and Web Audio API description:         A library for sound synthesis, currently targeting GHCJS and the Web Audio API. Used in the Inner Ear and Estuary projects. homepage:            https://github.com/dktr0/musicw/blob/master/README.md
src/Sound/MusicW/Worklets.hs view
@@ -151,8 +151,10 @@ \    const input1 = inputs[0];\ \    const input2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      if(input1[0][i] == input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\    if(input1[0] === undefined || input2[0] === undefined){for(let i=0;i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        if(input1[0][i] == input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\      }\ \    }\ \    return true;\ \  }\@@ -170,8 +172,10 @@ \    const input1 = inputs[0];\ \    const input2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      if(input1[0][i] != input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\    if(input1[0] === undefined || input2[0] === undefined){for(let i=0;i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        if(input1[0][i] != input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\      }\ \    }\ \    return true;\ \  }\@@ -189,8 +193,10 @@ \    const input1 = inputs[0];\ \    const input2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      if(input1[0][i] > input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\    if(input1[0] === undefined || input2[0] === undefined){for(let i=0;i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        if(input1[0][i] > input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\      }\ \    }\ \    return true;\ \  }\@@ -208,8 +214,10 @@ \    const input1 = inputs[0];\ \    const input2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      if(input1[0][i] >= input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\    if(input1[0] === undefined || input2[0] === undefined){for(let i=0;i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        if(input1[0][i] >= input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\      }\ \    }\ \    return true;\ \  }\@@ -227,8 +235,10 @@ \    const input1 = inputs[0];\ \    const input2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      if(input1[0][i] < input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\    if(input1[0] === undefined || input2[0] === undefined){for(let i=0;i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        if(input1[0][i] < input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\      }\ \    }\ \    return true;\ \  }\@@ -246,8 +256,10 @@ \    const input1 = inputs[0];\ \    const input2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      if(input1[0][i] <= input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\    if(input1[0] === undefined || input2[0] === undefined){for(let i=0;i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        if(input1[0][i] <= input2[0][i]) output[0][i] = 1; else output[0][i] = 0;\+\      }\ \    }\ \    return true;\ \  }\@@ -260,8 +272,10 @@ \  process(inputs,outputs,parameters) {\ \    const input = inputs[0];\ \    const output = outputs[0];\-\    for(let i = 0; i < input[0].length; i++) {\-\      output[0][i] = 440 * (2 ** ((input[0][i]-69)/12));\+\    if(input[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input[0].length; i++) {\+\        output[0][i] = 440 * (2 ** ((input[0][i]-69)/12));\+\      }\ \    }\ \    return true;\ \  }\@@ -274,8 +288,10 @@ \  process(inputs,outputs,parameters) {\ \    const input = inputs[0];\ \    const output = outputs[0];\-\    for(let i = 0; i < input[0].length; i++) {\-\      output[0][i] = 69 + (12 * (Math.log2(input[0][i]/440)));\+\    if(input[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input[0].length; i++) {\+\        output[0][i] = 69 + (12 * (Math.log2(input[0][i]/440)));\+\      }\ \    }\ \    return true;\ \  }\@@ -288,8 +304,10 @@ \  process(inputs,outputs,parameters) {\ \    const input = inputs[0];\ \    const output = outputs[0];\-\    for(let i = 0; i < input[0].length; i++) {\-\      output[0][i] = 10 ** (input[0][i]/20);\+\    if(input[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input[0].length; i++) {\+\        output[0][i] = 10 ** (input[0][i]/20);\+\      }\ \    }\ \    return true;\ \  }\@@ -302,8 +320,10 @@ \  process(inputs,outputs,parameters) {\ \    const input = inputs[0];\ \    const output = outputs[0];\-\    for(let i = 0; i < input[0].length; i++) {\-\      output[0][i] = 20 * Math.log10(input[0][i]);\+\    if(input[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input[0].length; i++) {\+\        output[0][i] = 20 * Math.log10(input[0][i]);\+\      }\ \    }\ \    return true;\ \  }\@@ -316,8 +336,10 @@ \  process(inputs,outputs,parameters) {\ \    const input = inputs[0];\ \    const output = outputs[0];\-\    for(let i = 0; i < input[0].length; i++) {\-\      output[0][i] = Math.abs(input[0][i]);\+\    if(input[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input[0].length; i++) {\+\        output[0][i] = Math.abs(input[0][i]);\+\      }\ \    }\ \    return true;\ \  }\@@ -330,8 +352,10 @@ \  process(inputs,outputs,parameters) {\ \    const input = inputs[0];\ \    const output = outputs[0];\-\    for(let i = 0; i < input[0].length; i++) {\-\      output[0][i] = Math.sqrt(input[0][i]);\+\    if(input[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input[0].length; i++) {\+\        output[0][i] = Math.sqrt(input[0][i]);\+\      }\ \    }\ \    return true;\ \  }\@@ -345,9 +369,11 @@ \    const input1 = inputs[0];\ \    const input2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      if(input2[0][i] == 0) output[0][i] = 0;\-\      else output[0][i] = input1[0][i] / input2[0][i];\+\    if(input1[0] === undefined || input2[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        if(input2[0][i] == 0) output[0][i] = 0;\+\        else output[0][i] = input1[0][i] / input2[0][i];\+\      }\ \    }\ \    return true;\ \  }\@@ -361,8 +387,10 @@ \    const input1 = inputs[0];\ \    const input2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      output[0][i] = input1[0][i] / input2[0][i];\+\    if(input1[0] === undefined || input2[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        output[0][i] = input1[0][i] / input2[0][i];\+\      }\ \    }\ \    return true;\ \  }\@@ -376,8 +404,10 @@ \    const input1 = inputs[0];\ \    const input2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      output[0][i] = Math.pow(input1[0][i],input2[0][i]);\+\    if(input1[0] === undefined || input2[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        output[0][i] = Math.pow(input1[0][i],input2[0][i]);\+\      }\ \    }\ \    return true;\ \  }\@@ -390,8 +420,10 @@ \  process(inputs,outputs,parameters) {\ \    const input1 = inputs[0];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      output[0][i] = Math.floor(input1[0][i]);\+\    if(input1[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        output[0][i] = Math.floor(input1[0][i]);\+\      }\ \    }\ \    return true;\ \  }\@@ -404,8 +436,10 @@ \  process(inputs,outputs,parameters) {\ \    const input1 = inputs[0];\ \    const output = outputs[0];\-\    for(let i = 0; i < input1[0].length; i++) {\-\      output[0][i] = input1[0][i] % 1;\+\    if(input1[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input1[0].length; i++) {\+\        output[0][i] = input1[0][i] % 1;\+\      }\ \    }\ \    return true;\ \  }\@@ -420,8 +454,10 @@ \    const max = inputs[1];\ \    const input = inputs[2];\ \    const output = outputs[0];\-\    for(let i = 0; i < input[0].length; i++) {\-\      output[0][i] = Math.min(Math.max(input[0][i], min[0][i]), max[0][i]);\+\    if(min[0] === undefined || max[0] === undefined || input[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < input[0].length; i++) {\+\        output[0][i] = Math.min(Math.max(input[0][i], min[0][i]), max[0][i]);\+\      }\ \    }\ \    return true;\ \  }\@@ -435,8 +471,10 @@ \    const in1 = inputs[0];\ \    const in2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < in1[0].length; i++) {\-\      output[0][i] = Math.max(in1[0][i],in2[0][i]);\+\    if(in1[0] === undefined || in2[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < in1[0].length; i++) {\+\        output[0][i] = Math.max(in1[0][i],in2[0][i]);\+\      }\ \    }\ \    return true;\ \  }\@@ -450,8 +488,10 @@ \    const in1 = inputs[0];\ \    const in2 = inputs[1];\ \    const output = outputs[0];\-\    for(let i = 0; i < in1[0].length; i++) {\-\      output[0][i] = Math.min(in1[0][i],in2[0][i]);\+\    if(in1[0] === undefined || in2[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < in1[0].length; i++) {\+\        output[0][i] = Math.min(in1[0][i],in2[0][i]);\+\      }\ \    }\ \    return true;\ \  }\@@ -479,8 +519,10 @@ \  process(inputs,outputs,parameters) {\ \    const input = inputs[0];\ \    const output = outputs[0];\-\    for(let i = 0; i < output[0].length; i++) {\-\      output[0][i] = (input[0][i] >= 0) ? 1 : -1;\+\    if(input[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < output[0].length; i++) {\+\        output[0][i] = (input[0][i] >= 0) ? 1 : -1;\+\      }\ \    }\ \    return true;\ \  }\@@ -494,8 +536,10 @@ \  process(inputs,outputs,parameters) {\ \    const input = inputs[0];\ \    const output = outputs[0];\-\    for(let i = 0; i < output[0].length; i++) {\-\      output[0][i] = Math.abs(Math.asin(input[0][i]))*this.MULT-1;\+\    if(input[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      for(let i = 0; i < output[0].length; i++) {\+\        output[0][i] = Math.abs(Math.asin(input[0][i]))*this.MULT-1;\+\      }\ \    }\ \    return true;\ \  }\@@ -509,10 +553,12 @@ \    const input1 = inputs[0];\ \    const input2 = inputs[1];\ \    const output = outputs[0];\-\    var a;\-\    for(let i = 0; i < output[0].length; i++) {\-\      a = Math.abs(Math.asin(input1[0][i]))*this.MULT;\-\      output[0][i] = (input2[0][i] >= 0) ? (a-1) : (1-a);\+\    if(input1[0] === undefined || input2[0] === undefined){for(let i=0; i<output[0].length;i++)output[0][i]=0;}else{\+\      var a;\+\      for(let i = 0; i < output[0].length; i++) {\+\        a = Math.abs(Math.asin(input1[0][i]))*this.MULT;\+\        output[0][i] = (input2[0][i] >= 0) ? (a-1) : (1-a);\+\      }\ \    }\ \    return true;\ \  }\@@ -525,8 +571,15 @@ \  process(inputs,outputs,parameters) {\ \    const output = outputs[0];\ \    if(inputs.length < 2) { for(let i = 0; i < output[0].length; i++) output[0][i] = 0;}\-\    else if(inputs.length == 2) { for(let i = 0; i < output[0].length; i++) output[0][i] = inputs[1][i];}\+\    else if(inputs[0][0] === undefined || inputs[1][0] === undefined) { for(let i = 0; i < output[0].length; i++) output[0][i] = 0;}\+\    else if(inputs.length == 2) { for(let i = 0; i < output[0].length; i++) output[0][i] = inputs[1][0][i];}\ \    else {\+\      for(let n = 2; n < inputs.length; n++){\+\        if(inputs[n][0] === undefined){\+\          for(let i = 0; i < output[0].length; i++) output[0][i] = 0;\+\          return true;\+\        }\+\      }\ \      var a,n = inputs.length - 1;\ \      for(let i = 0; i < output[0].length; i++) {\ \        a = inputs[0][0][i] * 0.5 + 0.5;\