From a8d86242bf654e4bff5937ca1353f00b0d7f3aa7 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 14 Sep 2016 02:00:01 -0400 Subject: use interval series rather than equal tmp --- env.js | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'env.js') diff --git a/env.js b/env.js index 0ff85f9..0382770 100644 --- a/env.js +++ b/env.js @@ -42,6 +42,7 @@ var environment = (function(){ environment.build = function(){ environment.scale() environment.duration() + environment.set_intervals() snap = new Snap (window.innerWidth, window.innerHeight - $("#controls").height()) dot_grid = new DotGrid () @@ -111,6 +112,7 @@ var environment = (function(){ $("#tet").on("input", environment.scale) $("#root").on("input", environment.scale) $("#interval").on("input", environment.scale) + $("#intervals").on("input", environment.set_intervals) $("#duration").on("input", environment.duration) $("#use_scale").on("change", environment.use_scale) if (is_mobile) { @@ -134,6 +136,13 @@ var environment = (function(){ environment.use_scale = function(){ use_scale = $("#use_scale").get(0).checked } + environment.set_intervals = function(){ + scale = $("#intervals").val().split(" ").map(parseInterval).filter(function(v){ + return !! v + }).map(function(v){ + return v * root + }) + } environment.check_drawing = function(){ drawing = ! drawing $("#draw").html( drawing ? "drawing" : "playing" ) -- cgit v1.2.3-70-g09d2 From 46990e203362793d71871b23e91af8a4ac6958e8 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 14 Sep 2016 02:30:04 -0400 Subject: fiiiiix scaling --- env.js | 42 ++++++++++++++++++++++++++++++++---------- index.html | 4 +--- 2 files changed, 33 insertions(+), 13 deletions(-) (limited to 'env.js') diff --git a/env.js b/env.js index 0382770..a0dd02a 100644 --- a/env.js +++ b/env.js @@ -137,10 +137,29 @@ var environment = (function(){ use_scale = $("#use_scale").get(0).checked } environment.set_intervals = function(){ - scale = $("#intervals").val().split(" ").map(parseInterval).filter(function(v){ + root = parseFloat( $("#root").val() ) + var intervals = $("#intervals").val().split(/\s/).map(function(v){ + if (v.indexOf("/") !== -1) return parseInterval(v) // intervals + if (v.indexOf("f") !== -1) return parseFloat(v) // pure frequencies + return parseFloat(v) + }).filter(function(v){ return !! v - }).map(function(v){ - return v * root + }) + if (! intervals.length) return + var last_interval = intervals[ intervals.length-1 ] + if (last_interval > 20) { + interval = last_interval / intervals[0] + } + else { + interval = intervals.pop() + } + scale = intervals.map(function(v){ + if (v < 20) { + return v * root + } + else { + return v + } }) } environment.check_drawing = function(){ @@ -264,7 +283,7 @@ var environment = (function(){ var ratio, n tet = parseFloat( $("#tet").val() ) root = parseFloat( $("#root").val() ) - interval = parseInterval( $("#interval").val() ) + interval = intervals[ intervals.length - 1 ] ratio = Math.pow( interval, 1/tet ) n = root scale = [n] @@ -300,12 +319,15 @@ var environment = (function(){ return scale_f } environment.quantize_index = function(index){ - return mod(index, scale.length-1)|0 + return mod(index-1, scale.length)|0 } environment.index_to_frequency = function(index){ - var f = scale[ mod(index, scale.length-1)|0 ] - var pow = Math.floor(norm(index, 0, scale.length-1)) - 2 - f *= Math.pow(interval, pow) + var f = scale[ mod(index, scale.length)|0 ] +// if (f < 20) { + var pow = Math.floor(norm(index-1, 0, scale.length)) - 2 + f *= Math.pow(interval, pow) +// } + // console.log(index, f, pow) // console.log(index, scale.length, pow, f) return f } @@ -442,7 +464,8 @@ var environment = (function(){ } Wire.prototype.updateColor = function(should_set){ var index = this.index() - var color = Snap.hsl(mod(index / tet * 240 + 180, 360), 100, 50) + // console.log(index, scale.length, index / scale.length) + var color = Snap.hsl(mod(index / scale.length * 240 + 180, 360), 100, 50) if (should_set) { this.path.attr({ stroke: color, @@ -523,7 +546,6 @@ var environment = (function(){ if (isNaN(num)) return 2 if (isNaN(den) || den == 0) return num if (num == den) return 2 - if (num < den) return den/num return num / den } diff --git a/index.html b/index.html index c35674a..3131393 100644 --- a/index.html +++ b/index.html @@ -62,12 +62,10 @@ input[type=text] { width: 30px } - - - +
-- cgit v1.2.3-70-g09d2