diff options
| author | Jules Laplace <jules@okfoc.us> | 2016-09-19 18:55:47 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2016-09-19 18:55:47 -0400 |
| commit | d142c4b5ba6be49fda5413713096eaa3b911b306 (patch) | |
| tree | 5970841d76d4e9cdab4a8ad018d1b995ad6d7adb /index.html | |
| parent | 6971d016561a9563a07494d0fc9fdb32250d5b0e (diff) | |
v1 of library
Diffstat (limited to 'index.html')
| -rw-r--r-- | index.html | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/index.html b/index.html new file mode 100644 index 0000000..358b4a3 --- /dev/null +++ b/index.html @@ -0,0 +1,77 @@ +<style> +.note { + color: #339; + text-decoration: underline; + cursor: pointer; +} +* { + cursor: default; +} +</style> +<pre> +<script src="intonation.js"></script> +<script> +var delim = "</span> <span>" +function write(s){ document.write("<span>" + (s || "") + "</span>\n") } + +s = new Intonation({ + intervals: '1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1', +}) +write("original scale:") +write( s.range(0, 10).map(function(i){ return i.toFixed(0) }).join(delim) ) +write("") + +s = new Intonation({ + root: 450, + intervals: '1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1', +}) +write("root @ 450:") +write( s.range(0, 10).map(function(i){ return i.toFixed(0) }).join(delim) ) +write("") + +s = new Intonation({ + tet: 5, +}) +write("5-tet") +write( s.range(0, 6).map(function(i){ return i.toFixed(0) }).join(delim) ) +write("") + +s = new Intonation({ + tet: 12, +}) +write("12-tet") +write( s.range(0, 13).map(function(i){ return i.toFixed(0) }).join(delim) ) +write("") + +s = new Intonation({ + tet: 17, +}) +write("17-tet") +write( s.range(0, 18).map(function(i){ return i.toFixed(0) }).join(delim) ) +write("") + +</script> +<script src="http://asdf.us/harp/js/vendor/Tone.min.js"></script> +<script> +polysynth = new Tone.PolySynth(8, Tone.synth) +polysynth.set({ + oscillator: { type: "sine" }, + envelope:{ + attack: 0.01, + decay: 2.5, + sustain: 0.0, + release: 0.1, + } +}) +var comp = new Tone.Compressor(-30, 3).toMaster() +polysynth.connect(comp) +Array.prototype.slice.apply( document.querySelectorAll("span") ).forEach(function(span){ + if (! span.innerHTML.match(/[^0-9]/)) { + var f = parseInt(span.innerHTML) + span.classList.add("note") + span.addEventListener("click", function(){ + polysynth.triggerAttackRelease(f, 1.5) + }) + } +}) +</script>
\ No newline at end of file |
