0000: 63 6f 6d 6d 69 74 20 38 65 36 37 30 65 36 64 61 commit 8e670e6da
0010: 32 33 65 66 66 37 34 38 37 64 31 37 65 38 66 33 23eff7487d17e8f3
0020: 38 35 37 65 65 30 36 32 31 33 31 66 38 34 37 0a 857ee062131f847.
0030: 41 75 74 68 6f 72 3a 20 58 79 7a 7a 79 20 41 70 Author: Xyzzy Ap
0040: 70 73 20 3c 78 79 7a 7a 79 61 70 70 73 40 67 6d ps <xyzzyapps@gm
0050: 61 69 6c 2e 63 6f 6d 3e 0a 44 61 74 65 3a 20 20 ail.com>.Date:
0060: 20 4d 6f 6e 20 4e 6f 76 20 31 35 20 30 37 3a 34 Mon Nov 15 07:4
0070: 37 3a 35 36 20 32 30 32 31 20 2b 30 30 30 30 0a 7:56 2021 +0000.
0080: 0a 20 20 20 20 4c 61 74 65 73 74 20 63 68 61 6e . Latest chan
0090: 67 65 73 0a 0a 64 69 66 66 20 2d 2d 67 69 74 20 ges..diff --git
00a0: 61 2f 66 69 72 73 74 2e 6a 73 20 62 2f 66 69 72 a/first.js b/fir
00b0: 73 74 2e 6a 73 0a 69 6e 64 65 78 20 63 62 32 33 st.js.index cb23
00c0: 31 66 66 2e 2e 37 33 31 32 34 66 30 20 31 30 30 1ff..73124f0 100
00d0: 36 34 34 0a 2d 2d 2d 20 61 2f 66 69 72 73 74 2e 644.--- a/first.
00e0: 6a 73 0a 2b 2b 2b 20 62 2f 66 69 72 73 74 2e 6a js.+++ b/first.j
00f0: 73 0a 40 40 20 2d 35 38 2c 39 20 2b 35 38 2c 31 s.@@ -58,9 +58,1
0100: 31 20 40 40 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 1 @@ function on
0110: 63 65 20 28 29 20 7b 0a 20 20 20 20 20 20 20 20 ce () {.
0120: 20 76 61 72 20 69 6e 74 72 6f 20 3d 20 5b 5d 0a var intro = [].
0130: 20 20 20 20 20 20 20 20 20 76 61 72 20 6d 61 69 var mai
0140: 6e 20 3d 20 5b 5d 0a 20 20 20 20 20 20 20 20 20 n = [].
0150: 76 61 72 20 62 61 73 73 20 3d 20 6d 61 69 6e 0a var bass = main.
0160: 2d 20 20 20 20 20 20 20 20 76 61 72 20 73 6f 6c - var sol
0170: 6f 20 3d 20 62 61 73 73 0a 20 20 20 20 20 20 20 o = bass.
0180: 20 20 76 61 72 20 65 6e 64 20 3d 20 5b 5d 20 0a var end = [] .
0190: 2d 20 20 20 20 20 20 20 20 76 61 72 20 63 6f 75 - var cou
01a0: 6e 74 20 3d 20 30 3b 0a 2b 20 20 20 20 20 20 20 nt = 0;.+
01b0: 20 76 61 72 20 73 6f 6c 6f 20 3d 20 65 6e 64 0a var solo = end.
01c0: 2b 20 20 20 20 20 20 20 20 76 61 72 20 66 69 6e + var fin
01d0: 20 3d 20 65 6e 64 0a 2b 20 20 20 20 20 20 20 0a = end.+ .
01e0: 2b 20 20 20 20 20 20 20 76 61 72 20 63 6f 75 6e + var coun
01f0: 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 t = 0;.
0200: 76 61 72 20 6f 6c 64 5f 73 63 65 6e 65 20 3d 20 var old_scene =
0210: 22 22 3b 0a 20 20 20 20 20 20 20 20 20 0a 20 20 "";. .
0220: 20 20 20 20 20 20 20 0a 40 40 20 2d 36 39 2c 31 .@@ -69,1
0230: 36 20 2b 37 31 2c 31 38 20 40 40 20 66 75 6e 63 6 +71,18 @@ func
0240: 74 69 6f 6e 20 6f 6e 63 65 20 28 29 20 7b 0a 20 tion once () {.
0250: 20 20 20 20 20 20 20 20 6c 65 74 20 79 20 3d 20 let y =
0260: 31 30 30 3b 0a 20 0a 20 20 20 20 20 20 20 20 20 100;. .
0270: 69 6e 73 74 61 6e 63 65 2e 73 65 74 75 70 20 3d instance.setup =
0280: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 2d 20 function() {.-
0290: 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 78 var x
02a0: 20 3d 20 69 6e 73 74 61 6e 63 65 2e 63 72 65 61 = instance.crea
02b0: 74 65 43 61 6e 76 61 73 28 37 30 30 2c 20 34 31 teCanvas(700, 41
02c0: 30 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 0);.+
02d0: 20 76 61 72 20 78 20 3d 20 69 6e 73 74 61 6e 63 var x = instanc
02e0: 65 2e 63 72 65 61 74 65 43 61 6e 76 61 73 28 31 e.createCanvas(1
02f0: 32 38 30 2c 20 34 31 30 29 3b 0a 20 20 20 20 20 280, 410);.
0300: 20 20 20 20 20 20 20 20 78 2e 63 61 6e 76 61 73 x.canvas
0310: 2e 73 74 79 6c 65 2e 70 6f 73 69 74 69 6f 6e 20 .style.position
0320: 3d 20 22 61 62 73 6f 6c 75 74 65 22 3b 0a 2d 20 = "absolute";.-
0330: 20 20 20 20 20 20 20 20 20 20 20 69 6e 73 74 61 insta
0340: 6e 63 65 2e 66 72 61 6d 65 52 61 74 65 28 32 29 nce.frameRate(2)
0350: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 69 ;.+ i
0360: 6e 73 74 61 6e 63 65 2e 66 72 61 6d 65 52 61 74 nstance.frameRat
0370: 65 28 30 2e 32 35 29 3b 0a 20 20 20 20 20 20 20 e(0.25);.
0380: 20 20 20 20 20 20 69 6e 74 72 6f 2e 70 75 73 68 intro.push
0390: 28 69 6e 73 74 61 6e 63 65 2e 6c 6f 61 64 49 6d (instance.loadIm
03a0: 61 67 65 28 27 2f 63 6c 6f 73 65 64 2f 69 6e 74 age('/closed/int
03b0: 72 6f 2f 31 2e 70 6e 67 27 29 29 3b 0a 2d 20 20 ro/1.png'));.-
03c0: 20 20 20 20 20 20 20 20 20 20 69 6e 74 72 6f 2e intro.
03d0: 70 75 73 68 28 69 6e 73 74 61 6e 63 65 2e 6c 6f push(instance.lo
03e0: 61 64 49 6d 61 67 65 28 27 2f 63 6c 6f 73 65 64 adImage('/closed
03f0: 2f 69 6e 74 72 6f 2f 32 2e 70 6e 67 27 29 29 3b /intro/2.png'));
0400: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 . ma
0410: 69 6e 2e 70 75 73 68 28 69 6e 73 74 61 6e 63 65 in.push(instance
0420: 2e 6c 6f 61 64 49 6d 61 67 65 28 27 2f 63 6c 6f .loadImage('/clo
0430: 73 65 64 2f 6d 61 69 6e 2f 31 2e 70 6e 67 27 29 sed/main/1.png')
0440: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 );.
0450: 6d 61 69 6e 2e 70 75 73 68 28 69 6e 73 74 61 6e main.push(instan
0460: 63 65 2e 6c 6f 61 64 49 6d 61 67 65 28 27 2f 63 ce.loadImage('/c
0470: 6c 6f 73 65 64 2f 6d 61 69 6e 2f 32 2e 70 6e 67 losed/main/2.png
0480: 27 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 '));.
0490: 20 20 6d 61 69 6e 2e 70 75 73 68 28 69 6e 73 74 main.push(inst
04a0: 61 6e 63 65 2e 6c 6f 61 64 49 6d 61 67 65 28 27 ance.loadImage('
04b0: 2f 63 6c 6f 73 65 64 2f 6d 61 69 6e 2f 33 2e 70 /closed/main/3.p
04c0: 6e 67 27 29 29 3b 0a 2b 20 20 20 20 20 20 20 20 ng'));.+
04d0: 20 20 20 20 20 6d 61 69 6e 2e 70 75 73 68 28 69 main.push(i
04e0: 6e 73 74 61 6e 63 65 2e 6c 6f 61 64 49 6d 61 67 nstance.loadImag
04f0: 65 28 27 2f 63 6c 6f 73 65 64 2f 6d 61 69 6e 2f e('/closed/main/
0500: 34 2e 70 6e 67 27 29 29 3b 0a 2b 20 20 20 20 20 4.png'));.+
0510: 20 20 20 20 20 20 20 20 20 6d 61 69 6e 2e 70 75 main.pu
0520: 73 68 28 69 6e 73 74 61 6e 63 65 2e 6c 6f 61 64 sh(instance.load
0530: 49 6d 61 67 65 28 27 2f 63 6c 6f 73 65 64 2f 6d Image('/closed/m
0540: 61 69 6e 2f 35 2e 70 6e 67 27 29 29 3b 0a 2b 20 ain/5.png'));.+
0550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 ma
0560: 69 6e 2e 70 75 73 68 28 69 6e 73 74 61 6e 63 65 in.push(instance
0570: 2e 6c 6f 61 64 49 6d 61 67 65 28 27 2f 63 6c 6f .loadImage('/clo
0580: 73 65 64 2f 6d 61 69 6e 2f 36 2e 70 6e 67 27 29 sed/main/6.png')
0590: 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 );.+
05a0: 20 20 20 20 6d 61 69 6e 2e 70 75 73 68 28 69 6e main.push(in
05b0: 73 74 61 6e 63 65 2e 6c 6f 61 64 49 6d 61 67 65 stance.loadImage
05c0: 28 27 2f 63 6c 6f 73 65 64 2f 6d 61 69 6e 2f 37 ('/closed/main/7
05d0: 2e 70 6e 67 27 29 29 3b 0a 20 20 20 20 20 20 20 .png'));.
05e0: 20 20 20 20 20 20 65 6e 64 2e 70 75 73 68 28 69 end.push(i
05f0: 6e 73 74 61 6e 63 65 2e 6c 6f 61 64 49 6d 61 67 nstance.loadImag
0600: 65 28 27 2f 63 6c 6f 73 65 64 2f 65 6e 64 2f 31 e('/closed/end/1
0610: 2e 70 6e 67 27 29 29 3b 0a 2d 20 20 20 20 20 20 .png'));.-
0620: 20 20 20 20 20 20 65 6e 64 2e 70 75 73 68 28 69 end.push(i
0630: 6e 73 74 61 6e 63 65 2e 6c 6f 61 64 49 6d 61 67 nstance.loadImag
0640: 65 28 27 2f 63 6c 6f 73 65 64 2f 65 6e 64 2f 32 e('/closed/end/2
0650: 2e 70 6e 67 27 29 29 3b 0a 20 20 20 20 20 20 20 .png'));.
0660: 20 20 7d 3b 0a 20 0a 20 20 20 20 20 20 20 20 20 };. .
0670: 69 6e 73 74 61 6e 63 65 2e 64 72 61 77 20 3d 20 instance.draw =
0680: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 40 40 20 function() {.@@
0690: 2d 38 36 2c 39 20 2b 39 30 2c 39 20 40 40 20 66 -86,9 +90,9 @@ f
06a0: 75 6e 63 74 69 6f 6e 20 6f 6e 63 65 20 28 29 20 unction once ()
06b0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 09 {. .
06c0: 6f 6c 64 5f 73 63 65 6e 65 20 3d 20 63 75 72 72 old_scene = curr
06d0: 65 6e 74 5f 73 63 65 6e 65 3b 0a 20 20 20 20 20 ent_scene;.
06e0: 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 75 6e coun
06f0: 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 t = 0;.
0700: 20 20 20 20 7d 0a 2d 20 20 20 20 2f 2f 20 20 20 }.- //
0710: 20 20 20 20 20 69 6e 73 74 61 6e 63 65 2e 63 6c instance.cl
0720: 65 61 72 28 29 3b 0a 2b 20 20 20 20 20 20 20 20 ear();.+
0730: 20 20 20 69 6e 73 74 61 6e 63 65 2e 63 6c 65 61 instance.clea
0740: 72 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 r();.
0750: 20 20 76 61 72 20 63 20 3d 20 65 76 61 6c 28 60 var c = eval(`
0760: 24 7b 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 7d ${current_scene}
0770: 60 29 0a 2d 20 20 20 20 20 20 20 2f 2f 20 20 20 `).- //
0780: 20 20 69 6e 73 74 61 6e 63 65 2e 69 6d 61 67 65 instance.image
0790: 28 63 5b 63 6f 75 6e 74 5d 2c 20 30 2c 20 30 29 (c[count], 0, 0)
07a0: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 69 ;.+ i
07b0: 6e 73 74 61 6e 63 65 2e 69 6d 61 67 65 28 63 5b nstance.image(c[
07c0: 63 6f 75 6e 74 5d 2c 20 30 2c 20 30 29 3b 0a 20 count], 0, 0);.
07d0: 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 75 6e coun
07e0: 74 20 2b 3d 20 31 0a 20 20 20 20 20 20 20 20 20 t += 1.
07f0: 20 20 20 20 63 6f 75 6e 74 20 3d 20 63 6f 75 6e count = coun
0800: 74 20 25 20 63 2e 6c 65 6e 67 74 68 3b 0a 20 0a t % c.length;. .
0810: 40 40 20 2d 31 31 38 2c 38 20 2b 31 32 32 2c 36 @@ -118,8 +122,6
0820: 20 40 40 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 63 @@ function onc
0830: 65 20 28 29 20 7b 0a 20 20 20 20 20 20 20 20 20 e () {.
0840: 61 75 64 69 6f 2e 6d 61 73 74 65 72 2e 69 6e 2e audio.master.in.
0850: 67 61 69 6e 2e 76 61 6c 75 65 20 3d 20 76 6f 6c gain.value = vol
0860: 75 6d 65 5f 67 75 61 72 64 31 28 76 61 6c 20 2f ume_guard1(val /
0870: 20 31 30 29 3b 0a 20 20 20 20 20 7d 29 0a 20 20 10);. }).
0880: 20 20 20 0a 2d 0a 2d 0a 20 09 6d 65 6d 2e 6d 61 .-.-. .mem.ma
0890: 73 74 65 72 20 3d 20 6e 65 77 20 54 6f 6e 65 2e ster = new Tone.
08a0: 43 68 61 6e 6e 65 6c 28 7b 63 68 61 6e 6e 65 6c Channel({channel
08b0: 43 6f 75 6e 74 3a 20 32 2c 20 76 6f 6c 75 6d 65 Count: 2, volume
08c0: 3a 20 2d 31 30 7d 29 2e 63 68 61 69 6e 28 20 20 : -10}).chain(
08d0: 6d 65 6d 5b 22 6d 61 73 74 65 72 5f 66 69 6c 74 mem["master_filt
08e0: 65 72 22 5d 2c 20 20 6d 65 6d 5b 22 6d 61 73 74 er"], mem["mast
08f0: 65 72 5f 73 74 65 72 65 6f 22 5d 2c 20 54 6f 6e er_stereo"], Ton
0900: 65 2e 44 65 73 74 69 6e 61 74 69 6f 6e 29 3b 0a e.Destination);.
0910: 20 20 20 20 20 53 61 6d 70 6c 65 28 22 6b 22 2c Sample("k",
0920: 20 30 2c 20 6e 75 6c 6c 2c 20 2d 35 29 3b 0a 20 0, null, -5);.
0930: 20 20 20 20 53 61 6d 70 6c 65 28 22 73 6e 31 22 Sample("sn1"
0940: 2c 31 2c 20 6e 75 6c 6c 2c 20 30 29 3b 0a 40 40 ,1, null, 0);.@@
0950: 20 2d 31 33 36 2c 31 37 20 2b 31 33 38 2c 31 34 -136,17 +138,14
0960: 20 40 40 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 63 @@ function onc
0970: 65 20 28 29 20 7b 0a 20 20 20 20 20 73 61 6d 70 e () {. samp
0980: 6c 65 73 5b 35 5d 2e 63 6f 6e 6e 65 63 74 28 6d les[5].connect(m
0990: 65 6d 5b 6e 61 6d 65 20 2b 20 22 5f 63 68 61 6e em[name + "_chan
09a0: 6e 65 6c 22 5d 29 3b 0a 20 20 20 20 20 68 69 74 nel"]);. hit
09b0: 5f 6d 61 70 5b 6e 61 6d 65 5d 20 3d 20 35 3b 0a _map[name] = 5;.
09c0: 20 20 20 0a 2d 20 20 20 20 0a 2d 20 20 20 20 0a .- .- .
09d0: 2b 20 20 0a 20 0a 20 20 20 20 20 0a 20 20 20 20 + . . .
09e0: 20 0a 2d 20 20 20 20 0a 2d 20 20 20 20 0a 2d 20 .- .- .-
09f0: 20 20 20 53 61 6d 70 6c 65 28 22 6d 61 6e 61 67 Sample("manag
0a00: 65 72 22 2c 36 2c 20 6e 75 6c 6c 2c 20 2d 31 35 er",6, null, -15
0a10: 29 3b 0a 2b 20 20 20 20 53 61 6d 70 6c 65 28 22 );.+ Sample("
0a20: 6d 61 6e 61 67 65 72 22 2c 36 2c 20 6e 75 6c 6c manager",6, null
0a30: 2c 20 2d 35 29 3b 0a 20 20 20 20 20 53 61 6d 70 , -5);. Samp
0a40: 6c 65 28 22 6f 72 64 65 72 22 2c 37 2c 20 6e 75 le("order",7, nu
0a50: 6c 6c 2c 20 2d 31 35 29 3b 0a 20 20 20 20 20 53 ll, -15);. S
0a60: 61 6d 70 6c 65 28 22 63 72 22 2c 38 2c 20 6e 75 ample("cr",8, nu
0a70: 6c 6c 2c 20 2d 31 35 29 3b 0a 2d 20 20 20 20 53 ll, -15);.- S
0a80: 61 6d 70 6c 65 28 22 70 69 61 6e 6f 22 2c 39 2c ample("piano",9,
0a90: 20 34 30 30 2c 20 2d 31 35 29 3b 0a 2b 20 20 20 400, -15);.+
0aa0: 20 53 61 6d 70 6c 65 28 22 70 69 61 6e 6f 22 2c Sample("piano",
0ab0: 39 2c 20 34 30 30 2c 20 2d 35 29 3b 0a 20 20 20 9, 400, -5);.
0ac0: 20 09 53 61 6d 70 6c 65 28 22 73 69 74 61 72 22 .Sample("sitar"
0ad0: 2c 31 30 2c 20 35 30 30 30 2c 20 2d 31 35 29 3b ,10, 5000, -15);
0ae0: 0a 20 20 20 20 20 0a 20 20 20 20 20 63 6f 6e 73 . . cons
0af0: 74 20 61 75 64 69 6f 20 3d 20 41 75 64 69 6f 28 t audio = Audio(
0b00: 29 3b 0a 40 40 20 2d 31 37 32 2c 32 32 20 2b 31 );.@@ -172,22 +1
0b10: 37 31 2c 32 36 20 40 40 20 66 75 6e 63 74 69 6f 71,26 @@ functio
0b20: 6e 20 6f 6e 63 65 20 28 29 20 7b 0a 20 20 20 20 n once () {.
0b30: 20 20 20 20 20 63 75 74 6f 66 66 5f 67 75 61 72 cutoff_guar
0b40: 64 20 3d 20 67 75 61 72 64 28 5b 33 30 2c 20 37 d = guard([30, 7
0b50: 30 30 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 74 00]);. t
0b60: 68 72 65 65 2e 70 61 72 61 6d 73 2e 63 75 74 6f hree.params.cuto
0b70: 66 66 2e 76 61 6c 75 65 20 3d 20 63 75 74 6f 66 ff.value = cutof
0b80: 66 5f 67 75 61 72 64 28 76 61 6c 20 2a 20 31 30 f_guard(val * 10
0b90: 30 30 29 3b 0a 20 20 20 20 20 7d 29 0a 2b 20 20 00);. }).+
0ba0: 20 20 0a 2b 20 20 20 20 0a 2b 20 20 20 20 6d 65 .+ .+ me
0bb0: 6d 2e 6b 31 20 3d 20 6b 6e 6f 62 28 7b 72 61 6d m.k1 = knob({ram
0bc0: 70 20 3a 20 5b 30 2e 35 32 35 2c 20 30 2e 38 2c p : [0.525, 0.8,
0bd0: 20 30 2e 34 2c 20 30 2e 32 35 2c 20 30 2e 37 35 0.4, 0.25, 0.75
0be0: 2c 20 30 2e 32 35 5d 2c 20 73 74 65 70 3a 20 30 , 0.25], step: 0
0bf0: 2e 30 30 35 2c 20 22 6e 75 6d 62 65 72 22 3a 20 .005, "number":
0c00: 64 69 61 6c 73 5b 31 5d 5b 22 63 65 6c 6c 22 5d dials[1]["cell"]
0c10: 20 7d 29 3b 0a 2b 20 20 20 20 61 6c 77 61 79 73 });.+ always
0c20: 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b = function () {
0c30: 0a 2b 20 20 20 20 20 20 20 20 6c 65 74 20 63 75 .+ let cu
0c40: 74 6f 66 66 5f 67 75 61 72 64 20 3d 20 67 75 61 toff_guard = gua
0c50: 72 64 28 5b 33 30 2c 20 39 30 30 5d 29 3b 0a 2b rd([30, 900]);.+
0c60: 20 20 20 20 20 20 20 20 74 68 72 65 65 2e 70 61 three.pa
0c70: 72 61 6d 73 2e 63 75 74 6f 66 66 2e 76 61 6c 75 rams.cutoff.valu
0c80: 65 20 3d 20 63 75 74 6f 66 66 5f 67 75 61 72 64 e = cutoff_guard
0c90: 28 6d 65 6d 2e 6b 31 2e 6d 6f 76 65 28 29 20 2a (mem.k1.move() *
0ca0: 20 31 30 30 30 29 3b 0a 2b 20 20 20 20 7d 0a 20 1000);.+ }.
0cb0: 7d 0a 20 0a 20 66 75 6e 63 74 69 6f 6e 20 74 77 }. . function tw
0cc0: 65 61 6b 28 29 20 7b 0a 20 20 0a 2d 20 20 20 20 eak() {. .-
0cd0: 76 61 72 09 73 6e 61 72 65 5f 63 6f 75 6e 74 20 var.snare_count
0ce0: 3d 20 63 65 6c 6c 78 28 31 36 29 3b 0a 2d 20 20 = cellx(16);.-
0cf0: 20 20 0a 2d 20 20 20 20 0a 2b 20 20 20 20 76 61 .- .+ va
0d00: 72 09 73 6e 61 72 65 5f 63 6f 75 6e 74 20 3d 20 r.snare_count =
0d10: 63 65 6c 6c 78 28 30 29 3b 0a 20 20 20 20 20 0a cellx(0);. .
0d20: 2b 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 73 + . s
0d30: 6e 61 72 65 5f 63 6f 75 6e 74 2e 6f 6e 43 68 61 nare_count.onCha
0d40: 6e 67 65 28 66 75 6e 63 74 69 6f 6e 20 28 65 29 nge(function (e)
0d50: 20 7b 0a 20 20 20 20 20 20 20 20 20 76 61 72 20 {. var
0d60: 76 61 6c 20 3d 20 70 61 72 73 65 49 6e 74 28 65 val = parseInt(e
0d70: 5b 22 64 61 74 61 22 5d 2e 76 61 6c 75 65 29 3b ["data"].value);
0d80: 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 76 61 . if (va
0d90: 6c 20 3d 3d 20 32 32 29 20 7b 0a 20 20 20 20 20 l == 22) {.
0da0: 20 20 09 20 09 63 75 72 72 65 6e 74 5f 73 63 65 . .current_sce
0db0: 6e 65 20 3d 20 22 66 69 6e 22 3b 0a 2d 09 09 09 ne = "fin";.-...
0dc0: 70 31 28 38 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c p1(8, null, null
0dd0: 2c 20 31 32 2e 32 35 29 3b 0a 2d 09 20 20 20 20 , 12.25);.-.
0de0: 7d 20 65 6c 73 65 20 7b 0a 2d 20 20 20 20 20 20 } else {.-
0df0: 20 20 20 20 20 70 28 31 2c 20 6e 75 6c 6c 2c 20 p(1, null,
0e00: 6e 75 6c 6c 2c 20 22 34 6e 22 29 0a 2d 20 20 20 null, "4n").-
0e10: 20 20 20 20 20 7d 0a 2b 09 09 09 20 70 31 28 38 }.+... p1(8
0e20: 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 31 32 , null, null, 12
0e30: 2e 32 35 29 3b 0a 2b 09 20 20 20 20 7d 20 0a 20 .25);.+. } .
0e40: 20 20 20 20 7d 29 0a 20 20 20 20 20 0a 20 20 20 }). .
0e50: 20 20 0a 40 40 20 2d 32 33 33 2c 38 20 2b 32 33 .@@ -233,8 +23
0e60: 36 2c 36 20 40 40 20 69 66 20 28 62 61 72 73 20 6,6 @@ if (bars
0e70: 3d 3d 20 35 29 20 7b 0a 20 7d 0a 20 0a 20 0a 2d == 5) {. }. . .-
0e80: 0a 2d 0a 20 69 66 20 28 62 61 72 73 20 3d 3d 20 .-. if (bars ==
0e90: 31 32 29 20 7b 0a 20 09 65 76 61 6c 5f 67 75 61 12) {. .eval_gua
0ea0: 72 64 20 3f 20 63 75 65 28 22 41 64 64 20 62 61 rd ? cue("Add ba
0eb0: 73 73 22 29 3a 20 22 22 3b 0a 20 20 20 20 20 63 ss"): "";. c
0ec0: 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 3d 20 22 urrent_scene = "
0ed0: 62 61 73 73 22 3b 0a 40 40 20 2d 32 35 33 2c 37 bass";.@@ -253,7
0ee0: 20 2b 32 35 34 2c 37 20 40 40 20 69 66 20 28 62 +254,7 @@ if (b
0ef0: 61 72 73 20 3d 3d 20 34 32 29 20 7b 0a 20 0a 20 ars == 42) {. .
0f00: 7d 0a 20 0a 2d 69 66 20 28 62 61 72 73 20 3d 3d }. .-if (bars ==
0f10: 20 34 36 29 20 7b 0a 2b 69 66 20 28 62 61 72 73 46) {.+if (bars
0f20: 20 3d 3d 20 34 38 29 20 7b 0a 20 09 65 76 61 6c == 48) {. .eval
0f30: 5f 67 75 61 72 64 20 3f 20 63 75 65 28 22 53 6f _guard ? cue("So
0f40: 6c 6f 20 22 29 3a 20 22 22 0a 20 20 20 20 20 63 lo "): "". c
0f50: 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 3d 20 22 urrent_scene = "
0f60: 73 6f 6c 6f 22 3b 0a 20 7d 0a 40 40 20 2d 32 36 solo";. }.@@ -26
0f70: 39 2c 37 20 2b 32 37 30 2c 37 20 40 40 20 61 6c 9,7 +270,7 @@ al
0f80: 77 61 79 73 28 29 3b 0a 20 69 66 20 28 74 72 61 ways();. if (tra
0f90: 63 6b 5f 6e 6f 20 3d 3d 20 31 29 20 7b 0a 20 69 ck_no == 1) {. i
0fa0: 66 20 28 63 6f 75 6e 74 20 3d 3d 20 30 29 20 7b f (count == 0) {
0fb0: 0a 20 09 63 75 65 28 22 53 61 6d 70 6c 65 22 29 . .cue("Sample")
0fc0: 0a 2d 20 2f 2f 20 20 20 70 31 28 38 2c 20 6e 75 .- // p1(8, nu
0fd0: 6c 6c 2c 20 6e 75 6c 6c 2c 20 31 32 2e 32 35 29 ll, null, 12.25)
0fe0: 3b 0a 2b 20 20 20 20 70 31 28 37 2c 20 6e 75 6c ;.+ p1(7, nul
0ff0: 6c 2c 20 6e 75 6c 6c 2c 20 31 32 2e 32 35 29 3b l, null, 12.25);
1000: 0a 20 7d 0a 20 7d 0a 20 0a 40 40 20 2d 33 31 31 . }. }. .@@ -311
1010: 2c 39 20 2b 33 31 32 2c 39 20 40 40 20 69 66 20 ,9 +312,9 @@ if
1020: 28 69 73 48 69 74 29 20 7b 0a 20 20 20 20 20 20 (isHit) {.
1030: 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 69 66 }. if
1040: 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 35 29 (track_no == 5)
1050: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {.
1060: 69 66 20 28 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 if (meta[tick]["
1070: 70 69 74 63 68 22 5d 29 20 7b 0a 2d 20 20 20 20 pitch"]) {.-
1080: 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 6d 5b mem[
1090: 22 74 68 72 65 65 22 5d 2e 73 74 65 70 28 7b 22 "three"].step({"
10a0: 67 6c 69 64 65 22 3a 20 74 72 75 65 2c 20 22 61 glide": true, "a
10b0: 63 63 65 6e 74 22 3a 20 66 61 6c 73 65 2c 20 22 ccent": false, "
10c0: 6e 6f 74 65 22 3a 20 6d 65 74 61 5b 74 69 63 6b note": meta[tick
10d0: 5d 5b 22 70 69 74 63 68 22 5d 7d 29 3b 0a 2b 20 ]["pitch"]});.+
10e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 //
10f0: 20 6d 65 6d 5b 22 74 68 72 65 65 22 5d 2e 73 74 mem["three"].st
1100: 65 70 28 7b 22 67 6c 69 64 65 22 3a 20 74 72 75 ep({"glide": tru
1110: 65 2c 20 22 61 63 63 65 6e 74 22 3a 20 66 61 6c e, "accent": fal
1120: 73 65 2c 20 22 6e 6f 74 65 22 3a 20 6d 65 74 61 se, "note": meta
1130: 5b 74 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d 7d [tick]["pitch"]}
1140: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 );.
1150: 7d 20 65 6c 73 65 20 7b 0a 2d 20 20 20 20 20 20 } else {.-
1160: 20 20 20 20 20 20 20 20 20 20 6d 65 6d 5b 22 74 mem["t
1170: 68 72 65 65 22 5d 2e 73 74 65 70 28 22 6f 66 66 hree"].step("off
1180: 22 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 ");.+
1190: 20 20 20 2f 2f 20 20 6d 65 6d 5b 22 74 68 72 65 // mem["thre
11a0: 65 22 5d 2e 73 74 65 70 28 22 6f 66 66 22 29 3b e"].step("off");
11b0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a . }.
11c0: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 }.
11d0: 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f if (track_no
11e0: 20 3d 3d 20 36 29 20 7b 0a 40 40 20 2d 33 35 30 == 6) {.@@ -350
11f0: 2c 34 20 2b 33 35 31 2c 34 20 40 40 20 69 66 20 ,4 +351,4 @@ if
1200: 28 69 73 48 69 74 29 20 7b 0a 20 0a 20 7d 0a 20 (isHit) {. . }.
1210: 0a 2d 0a 2b 20 0a 5c 20 4e 6f 20 6e 65 77 6c 69 .-.+ .\ No newli
1220: 6e 65 20 61 74 20 65 6e 64 20 6f 66 20 66 69 6c ne at end of fil
1230: 65 0a 0a 63 6f 6d 6d 69 74 20 32 62 61 32 61 33 e..commit 2ba2a3
1240: 38 33 31 35 62 38 32 66 62 30 33 64 31 35 36 37 8315b82fb03d1567
1250: 64 38 65 37 39 65 62 35 38 62 64 35 39 66 34 31 d8e79eb58bd59f41
1260: 63 39 0a 41 75 74 68 6f 72 3a 20 58 79 7a 7a 79 c9.Author: Xyzzy
1270: 20 41 70 70 73 20 3c 78 79 7a 7a 79 61 70 70 73 Apps <xyzzyapps
1280: 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 44 61 74 65 @gmail.com>.Date
1290: 3a 20 20 20 53 75 6e 20 4e 6f 76 20 31 34 20 31 : Sun Nov 14 1
12a0: 32 3a 33 31 3a 33 39 20 32 30 32 31 20 2b 30 30 2:31:39 2021 +00
12b0: 30 30 0a 0a 20 20 20 20 54 75 74 6f 72 69 61 6c 00.. Tutorial
12c0: 0a 0a 64 69 66 66 20 2d 2d 67 69 74 20 61 2f 74 ..diff --git a/t
12d0: 75 74 6f 72 69 61 6c 2e 6a 73 20 62 2f 74 75 74 utorial.js b/tut
12e0: 6f 72 69 61 6c 2e 6a 73 0a 6e 65 77 20 66 69 6c orial.js.new fil
12f0: 65 20 6d 6f 64 65 20 31 30 30 36 34 34 0a 69 6e e mode 100644.in
1300: 64 65 78 20 30 30 30 30 30 30 30 2e 2e 63 33 63 dex 0000000..c3c
1310: 35 66 36 37 0a 2d 2d 2d 20 2f 64 65 76 2f 6e 75 5f67.--- /dev/nu
1320: 6c 6c 0a 2b 2b 2b 20 62 2f 74 75 74 6f 72 69 61 ll.+++ b/tutoria
1330: 6c 2e 6a 73 0a 40 40 20 2d 30 2c 30 20 2b 31 2c l.js.@@ -0,0 +1,
1340: 31 38 33 20 40 40 0a 2b 76 6f 6c 75 6d 65 5f 67 183 @@.+volume_g
1350: 75 61 72 64 31 20 3d 20 67 75 61 72 64 28 5b 2d uard1 = guard([-
1360: 32 30 2c 31 35 5d 29 0a 2b 54 6f 6e 65 2e 4d 61 20,15]).+Tone.Ma
1370: 73 74 65 72 2e 76 6f 6c 75 6d 65 2e 76 61 6c 75 ster.volume.valu
1380: 65 20 3d 20 76 6f 6c 75 6d 65 5f 67 75 61 72 64 e = volume_guard
1390: 31 28 4d 61 74 68 2e 72 6f 75 6e 64 28 64 69 61 1(Math.round(dia
13a0: 6c 73 5b 30 5d 5b 22 63 65 6c 6c 22 5d 28 29 20 ls[0]["cell"]()
13b0: 2a 20 33 30 29 20 2d 32 30 29 3b 0a 2b 2f 2f 20 * 30) -20);.+//
13c0: 6d 65 6d 5b 22 73 74 61 62 5f 63 68 61 6e 6e 65 mem["stab_channe
13d0: 6c 22 5d 2e 76 6f 6c 75 6d 65 2e 76 61 6c 75 65 l"].volume.value
13e0: 20 3d 20 76 6f 6c 75 6d 65 5f 67 75 61 72 64 32 = volume_guard2
13f0: 28 2d 32 29 3b 0a 2b 2f 2f 20 6d 65 6d 5b 22 73 (-2);.+// mem["s
1400: 74 61 62 5f 66 69 6c 74 65 72 22 5d 2e 66 72 65 tab_filter"].fre
1410: 71 75 65 6e 63 79 2e 76 61 6c 75 65 20 3d 20 4d quency.value = M
1420: 61 74 68 2e 72 6f 75 6e 64 28 64 69 61 6c 73 5b ath.round(dials[
1430: 31 5d 5b 22 63 65 6c 6c 22 5d 28 29 20 2a 20 31 1]["cell"]() * 1
1440: 30 30 30 30 29 3b 0a 2b 0a 2b 0a 2b 73 63 65 6e 0000);.+.+.+scen
1450: 65 31 20 3d 20 5b 0a 2b 20 20 20 20 63 65 6c 6c e1 = [.+ cell
1460: 78 28 22 70 20 31 30 30 30 20 31 30 30 30 20 31 x("p 1000 1000 1
1470: 30 30 30 20 31 30 30 30 22 29 2c 0a 2b 20 20 20 000 1000"),.+
1480: 20 63 65 6c 6c 78 28 22 70 20 30 30 78 30 20 30 cellx("p 00x0 0
1490: 30 78 30 20 30 30 78 30 20 30 30 78 30 22 29 2c 0x0 00x0 00x0"),
14a0: 0a 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 20 30 .+ cellx("p 0
14b0: 78 30 30 20 30 30 30 30 20 30 30 30 30 20 78 30 x00 0000 0000 x0
14c0: 30 30 22 29 2c 0a 2b 20 20 20 20 63 65 6c 6c 78 00"),.+ cellx
14d0: 28 22 70 20 30 30 30 30 20 78 30 30 30 20 30 30 ("p 0000 x000 00
14e0: 30 30 20 78 30 30 30 22 29 2c 0a 2b 20 20 20 20 00 x000"),.+
14f0: 63 65 6c 6c 78 28 22 70 20 78 78 30 78 20 63 30 cellx("p xx0x c0
1500: 78 30 20 78 30 78 30 20 78 30 78 78 22 29 2c 0a x0 x0x0 x0xx"),.
1510: 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 30 + cellx("p x0
1520: 30 30 20 78 30 78 30 20 30 30 30 30 20 78 30 78 00 x0x0 0000 x0x
1530: 30 22 29 2c 0a 2b 5d 0a 2b 0a 2b 70 61 74 74 65 0"),.+].+.+patte
1540: 72 6e 73 20 3d 20 73 63 65 6e 65 31 0a 2b 0a 2b rns = scene1.+.+
1550: 0a 2b 66 75 6e 63 74 69 6f 6e 20 4e 6f 69 73 65 .+function Noise
1560: 53 79 6e 74 68 20 28 6e 61 6d 65 29 20 7b 0a 2b Synth (name) {.+
1570: 20 20 20 20 6e 61 6d 65 20 3d 20 6e 61 6d 65 20 name = name
1580: 7c 7c 20 22 77 66 22 3b 0a 2b 20 20 20 20 6d 65 || "wf";.+ me
1590: 6d 5b 6e 61 6d 65 20 2b 20 22 5f 73 74 65 72 65 m[name + "_stere
15a0: 6f 22 5d 20 3d 20 6e 65 77 20 54 6f 6e 65 2e 53 o"] = new Tone.S
15b0: 74 65 72 65 6f 57 69 64 65 6e 65 72 28 7b 77 69 tereoWidener({wi
15c0: 64 74 68 3a 20 31 7d 29 3b 0a 2b 20 20 20 20 6d dth: 1});.+ m
15d0: 65 6d 5b 6e 61 6d 65 5d 20 3d 20 20 6e 65 77 20 em[name] = new
15e0: 54 6f 6e 65 2e 4e 6f 69 73 65 28 22 70 69 6e 6b Tone.Noise("pink
15f0: 22 29 2e 73 74 61 72 74 28 29 3b 0a 2b 20 20 20 ").start();.+
1600: 20 6d 65 6d 5b 6e 61 6d 65 20 2b 20 22 5f 66 69 mem[name + "_fi
1610: 6c 74 65 72 22 5d 20 3d 20 6e 65 77 20 54 6f 6e lter"] = new Ton
1620: 65 2e 46 69 6c 74 65 72 28 34 30 30 2c 20 27 6c e.Filter(400, 'l
1630: 6f 77 70 61 73 73 27 2c 20 2d 39 36 29 3b 0a 2b owpass', -96);.+
1640: 20 20 20 20 6d 65 6d 5b 6e 61 6d 65 20 2b 20 22 mem[name + "
1650: 5f 63 68 61 6e 6e 65 6c 22 5d 20 3d 20 6e 65 77 _channel"] = new
1660: 20 54 6f 6e 65 2e 43 68 61 6e 6e 65 6c 28 7b 63 Tone.Channel({c
1670: 68 61 6e 6e 65 6c 43 6f 75 6e 74 3a 20 32 2c 20 hannelCount: 2,
1680: 76 6f 6c 75 6d 65 3a 20 2d 31 30 2c 20 70 61 6e volume: -10, pan
1690: 3a 20 2d 30 2e 38 7d 29 2e 63 68 61 69 6e 28 6d : -0.8}).chain(m
16a0: 65 6d 5b 6e 61 6d 65 20 2b 20 22 5f 66 69 6c 74 em[name + "_filt
16b0: 65 72 22 5d 2c 20 6d 65 6d 5b 6e 61 6d 65 20 2b er"], mem[name +
16c0: 20 22 5f 73 74 65 72 65 6f 22 5d 2c 20 6d 65 6d "_stereo"], mem
16d0: 2e 6d 61 73 74 65 72 29 3b 0a 2b 20 20 20 20 6d .master);.+ m
16e0: 65 6d 5b 6e 61 6d 65 5d 2e 63 6f 6e 6e 65 63 74 em[name].connect
16f0: 28 6d 65 6d 5b 6e 61 6d 65 20 2b 20 22 5f 63 68 (mem[name + "_ch
1700: 61 6e 6e 65 6c 22 5d 29 0a 2b 7d 0a 2b 0a 2b 66 annel"]).+}.+.+f
1710: 75 6e 63 74 69 6f 6e 20 53 74 61 62 28 6e 61 6d unction Stab(nam
1720: 65 29 20 7b 0a 2b 20 20 20 20 6e 61 6d 65 20 3d e) {.+ name =
1730: 20 6e 61 6d 65 20 7c 7c 20 22 73 74 61 62 22 3b name || "stab";
1740: 0a 2b 0a 2b 20 20 20 20 6d 65 6d 5b 6e 61 6d 65 .+.+ mem[name
1750: 20 2b 20 22 5f 66 69 6c 74 65 72 22 5d 20 3d 20 + "_filter"] =
1760: 6e 65 77 20 54 6f 6e 65 2e 46 69 6c 74 65 72 28 new Tone.Filter(
1770: 35 32 35 30 2c 20 27 6c 6f 77 70 61 73 73 27 2c 5250, 'lowpass',
1780: 20 2d 39 36 29 3b 0a 2b 20 20 20 20 6d 65 6d 5b -96);.+ mem[
1790: 6e 61 6d 65 20 2b 20 22 5f 68 66 69 6c 74 65 72 name + "_hfilter
17a0: 22 5d 20 3d 20 6e 65 77 20 54 6f 6e 65 2e 46 69 "] = new Tone.Fi
17b0: 6c 74 65 72 28 38 30 2c 20 27 68 69 67 68 70 61 lter(80, 'highpa
17c0: 73 73 27 2c 20 2d 39 36 29 3b 0a 2b 20 20 20 20 ss', -96);.+
17d0: 6d 65 6d 5b 6e 61 6d 65 20 2b 20 22 5f 72 65 76 mem[name + "_rev
17e0: 65 72 62 22 5d 20 3d 20 6e 65 77 20 54 6f 6e 65 erb"] = new Tone
17f0: 2e 52 65 76 65 72 62 28 30 2e 31 29 3b 0a 2b 20 .Reverb(0.1);.+
1800: 20 20 20 6d 65 6d 5b 6e 61 6d 65 20 2b 20 22 5f mem[name + "_
1810: 64 65 6c 61 79 22 5d 20 3d 20 6e 65 77 20 54 6f delay"] = new To
1820: 6e 65 2e 46 65 65 64 62 61 63 6b 44 65 6c 61 79 ne.FeedbackDelay
1830: 28 22 34 6e 22 2c 20 30 2e 34 29 3b 0a 2b 20 20 ("4n", 0.4);.+
1840: 20 20 2f 2f 20 6d 65 6d 5b 6e 61 6d 65 20 2b 20 // mem[name +
1850: 22 5f 70 64 65 6c 61 79 22 5d 20 3d 20 6e 65 77 "_pdelay"] = new
1860: 20 54 6f 6e 65 2e 50 69 6e 67 50 6f 6e 67 44 65 Tone.PingPongDe
1870: 6c 61 79 28 22 32 6e 22 2c 20 30 2e 31 29 3b 0a lay("2n", 0.1);.
1880: 2b 20 20 20 20 6d 65 6d 5b 6e 61 6d 65 20 2b 20 + mem[name +
1890: 22 5f 73 74 65 72 65 6f 22 5d 20 3d 20 6e 65 77 "_stereo"] = new
18a0: 20 54 6f 6e 65 2e 53 74 65 72 65 6f 57 69 64 65 Tone.StereoWide
18b0: 6e 65 72 28 7b 77 69 64 74 68 3a 20 30 2e 32 35 ner({width: 0.25
18c0: 7d 29 3b 0a 2b 20 20 20 20 6d 65 6d 5b 6e 61 6d });.+ mem[nam
18d0: 65 20 2b 20 22 5f 63 68 61 6e 6e 65 6c 22 5d 20 e + "_channel"]
18e0: 3d 20 6e 65 77 20 54 6f 6e 65 2e 43 68 61 6e 6e = new Tone.Chann
18f0: 65 6c 28 7b 63 68 61 6e 6e 65 6c 43 6f 75 6e 74 el({channelCount
1900: 3a 20 32 2c 20 76 6f 6c 75 6d 65 3a 20 2d 32 7d : 2, volume: -2}
1910: 29 2e 63 68 61 69 6e 28 6d 65 6d 5b 6e 61 6d 65 ).chain(mem[name
1920: 20 2b 20 22 5f 66 69 6c 74 65 72 22 5d 20 2c 20 + "_filter"] ,
1930: 20 20 6d 65 6d 5b 6e 61 6d 65 20 2b 20 22 5f 64 mem[name + "_d
1940: 65 6c 61 79 22 5d 2c 20 6d 65 6d 5b 6e 61 6d 65 elay"], mem[name
1950: 20 2b 20 22 5f 72 65 76 65 72 62 22 5d 2c 20 20 + "_reverb"],
1960: 6d 65 6d 5b 6e 61 6d 65 20 2b 20 22 5f 68 66 69 mem[name + "_hfi
1970: 6c 74 65 72 22 5d 20 2c 6d 65 6d 5b 6e 61 6d 65 lter"] ,mem[name
1980: 20 2b 20 22 5f 73 74 65 72 65 6f 22 5d 2c 20 6d + "_stereo"], m
1990: 65 6d 2e 6d 61 73 74 65 72 29 0a 2b 0a 2b 0a 2b em.master).+.+.+
19a0: 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 76 6f 69 function voi
19b0: 63 65 28 6e 6f 2c 20 74 79 70 65 29 20 7b 0a 2b ce(no, type) {.+
19c0: 20 20 20 20 20 20 20 20 6d 65 6d 5b 6e 61 6d 65 mem[name
19d0: 20 2b 20 22 5f 73 79 6e 74 68 22 20 2b 20 6e 6f + "_synth" + no
19e0: 5d 20 3d 20 6e 65 77 20 54 6f 6e 65 2e 4d 6f 6e ] = new Tone.Mon
19f0: 6f 53 79 6e 74 68 28 7b 0a 2b 20 20 20 20 20 20 oSynth({.+
1a00: 20 20 20 20 20 20 6f 73 63 69 6c 6c 61 74 6f 72 oscillator
1a10: 3a 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 : {.+
1a20: 20 20 20 20 20 74 79 70 65 3a 20 74 79 70 65 0a type: type.
1a30: 2b 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 2b + }.+
1a40: 20 20 20 20 20 20 20 20 7d 29 0a 2b 20 20 20 20 }).+
1a50: 20 20 20 20 6d 65 6d 5b 6e 61 6d 65 20 2b 20 22 mem[name + "
1a60: 5f 73 79 6e 74 68 22 20 2b 20 6e 6f 5d 2e 63 6f _synth" + no].co
1a70: 6e 6e 65 63 74 28 6d 65 6d 5b 6e 61 6d 65 20 2b nnect(mem[name +
1a80: 20 22 5f 63 68 61 6e 6e 65 6c 22 5d 29 3b 0a 2b "_channel"]);.+
1a90: 20 20 20 20 7d 0a 2b 0a 2b 20 20 20 20 76 6f 69 }.+.+ voi
1aa0: 63 65 28 31 2c 20 22 73 61 77 74 6f 6f 74 68 22 ce(1, "sawtooth"
1ab0: 29 0a 2b 20 20 20 20 76 6f 69 63 65 28 32 2c 20 ).+ voice(2,
1ac0: 22 73 61 77 74 6f 6f 74 68 22 29 0a 2b 20 20 20 "sawtooth").+
1ad0: 20 76 6f 69 63 65 28 33 2c 20 22 73 61 77 74 6f voice(3, "sawto
1ae0: 6f 74 68 22 29 0a 2b 20 20 20 20 76 6f 69 63 65 oth").+ voice
1af0: 28 34 2c 20 22 70 77 6d 22 29 0a 2b 20 20 20 20 (4, "pwm").+
1b00: 76 6f 69 63 65 28 35 2c 20 22 70 77 6d 22 29 0a voice(5, "pwm").
1b10: 2b 20 20 20 20 76 6f 69 63 65 28 36 2c 20 22 70 + voice(6, "p
1b20: 77 6d 22 29 0a 2b 7d 0a 2b 0a 2b 66 75 6e 63 74 wm").+}.+.+funct
1b30: 69 6f 6e 20 73 28 76 65 6c 2c 20 6e 6f 74 65 73 ion s(vel, notes
1b40: 2c 20 64 75 72 61 74 69 6f 6e 29 20 7b 0a 2b 20 , duration) {.+
1b50: 20 20 20 76 65 6c 20 3d 20 76 65 6c 20 7c 7c 20 vel = vel ||
1b60: 31 2e 30 3b 0a 2b 20 20 20 20 64 75 72 61 74 69 1.0;.+ durati
1b70: 6f 6e 20 3d 20 64 75 72 61 74 69 6f 6e 20 7c 7c on = duration ||
1b80: 20 22 32 6e 22 3b 0a 2b 20 20 20 20 6e 6f 74 65 "2n";.+ note
1b90: 73 20 3d 20 6e 6f 74 65 73 20 7c 7c 20 20 5b 22 s = notes || ["
1ba0: 45 32 22 2c 20 22 42 32 22 2c 20 22 47 32 22 5d E2", "B2", "G2"]
1bb0: 3b 0a 2b 20 20 20 20 6d 65 6d 5b 22 73 74 61 62 ;.+ mem["stab
1bc0: 5f 73 79 6e 74 68 31 22 5d 2e 74 72 69 67 67 65 _synth1"].trigge
1bd0: 72 41 74 74 61 63 6b 52 65 6c 65 61 73 65 28 6e rAttackRelease(n
1be0: 6f 74 65 73 5b 30 5d 2c 20 64 75 72 61 74 69 6f otes[0], duratio
1bf0: 6e 2c 20 75 6e 64 65 66 69 6e 65 64 2c 20 76 65 n, undefined, ve
1c00: 6c 29 3b 0a 2b 20 20 20 20 6d 65 6d 5b 22 73 74 l);.+ mem["st
1c10: 61 62 5f 73 79 6e 74 68 32 22 5d 2e 74 72 69 67 ab_synth2"].trig
1c20: 67 65 72 41 74 74 61 63 6b 52 65 6c 65 61 73 65 gerAttackRelease
1c30: 28 6e 6f 74 65 73 5b 31 5d 2c 20 64 75 72 61 74 (notes[1], durat
1c40: 69 6f 6e 2c 20 75 6e 64 65 66 69 6e 65 64 2c 20 ion, undefined,
1c50: 76 65 6c 29 3b 0a 2b 20 20 20 20 6d 65 6d 5b 22 vel);.+ mem["
1c60: 73 74 61 62 5f 73 79 6e 74 68 33 22 5d 2e 74 72 stab_synth3"].tr
1c70: 69 67 67 65 72 41 74 74 61 63 6b 52 65 6c 65 61 iggerAttackRelea
1c80: 73 65 28 6e 6f 74 65 73 5b 32 5d 2c 20 64 75 72 se(notes[2], dur
1c90: 61 74 69 6f 6e 2c 20 75 6e 64 65 66 69 6e 65 64 ation, undefined
1ca0: 2c 20 76 65 6c 29 3b 0a 2b 0a 2b 20 20 20 20 6d , vel);.+.+ m
1cb0: 65 6d 5b 22 73 74 61 62 5f 73 79 6e 74 68 34 22 em["stab_synth4"
1cc0: 5d 2e 74 72 69 67 67 65 72 41 74 74 61 63 6b 52 ].triggerAttackR
1cd0: 65 6c 65 61 73 65 28 6e 6f 74 65 73 5b 30 5d 2c elease(notes[0],
1ce0: 20 64 75 72 61 74 69 6f 6e 2c 20 75 6e 64 65 66 duration, undef
1cf0: 69 6e 65 64 2c 20 76 65 6c 29 3b 0a 2b 20 20 20 ined, vel);.+
1d00: 20 6d 65 6d 5b 22 73 74 61 62 5f 73 79 6e 74 68 mem["stab_synth
1d10: 35 22 5d 2e 74 72 69 67 67 65 72 41 74 74 61 63 5"].triggerAttac
1d20: 6b 52 65 6c 65 61 73 65 28 6e 6f 74 65 73 5b 31 kRelease(notes[1
1d30: 5d 2c 20 64 75 72 61 74 69 6f 6e 2c 20 75 6e 64 ], duration, und
1d40: 65 66 69 6e 65 64 2c 20 76 65 6c 29 3b 0a 2b 20 efined, vel);.+
1d50: 20 20 20 6d 65 6d 5b 22 73 74 61 62 5f 73 79 6e mem["stab_syn
1d60: 74 68 36 22 5d 2e 74 72 69 67 67 65 72 41 74 74 th6"].triggerAtt
1d70: 61 63 6b 52 65 6c 65 61 73 65 28 6e 6f 74 65 73 ackRelease(notes
1d80: 5b 32 5d 2c 20 64 75 72 61 74 69 6f 6e 2c 20 75 [2], duration, u
1d90: 6e 64 65 66 69 6e 65 64 2c 20 76 65 6c 29 3b 0a ndefined, vel);.
1da0: 2b 7d 0a 2b 0a 2b 66 75 6e 63 74 69 6f 6e 20 6f +}.+.+function o
1db0: 6e 63 65 28 29 20 7b 0a 2b 20 20 20 20 76 61 72 nce() {.+ var
1dc0: 20 70 72 3b 0a 2b 20 20 20 20 63 6f 6e 73 74 20 pr;.+ const
1dd0: 73 20 3d 20 28 20 70 20 29 20 3d 3e 20 7b 0a 2b s = ( p ) => {.+
1de0: 20 20 20 20 20 20 20 20 70 72 20 3d 20 70 3b 0a pr = p;.
1df0: 2b 20 20 20 20 20 20 20 20 76 61 72 20 69 6d 67 + var img
1e00: 3b 0a 2b 20 20 20 20 20 20 20 20 6c 65 74 20 78 ;.+ let x
1e10: 20 3d 20 31 30 30 3b 0a 2b 20 20 20 20 20 20 20 = 100;.+
1e20: 20 6c 65 74 20 79 20 3d 20 31 30 30 3b 0a 2b 0a let y = 100;.+.
1e30: 2b 20 20 20 20 20 20 20 20 70 2e 73 65 74 75 70 + p.setup
1e40: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a = function() {.
1e50: 2b 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 + var
1e60: 20 78 20 3d 20 70 2e 63 72 65 61 74 65 43 61 6e x = p.createCan
1e70: 76 61 73 28 37 30 30 2c 20 34 31 30 29 3b 0a 2b vas(700, 410);.+
1e80: 20 20 20 20 20 20 20 20 20 20 20 20 78 2e 63 61 x.ca
1e90: 6e 76 61 73 2e 73 74 79 6c 65 2e 70 6f 73 69 74 nvas.style.posit
1ea0: 69 6f 6e 20 3d 20 22 61 62 73 6f 6c 75 74 65 22 ion = "absolute"
1eb0: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 70 ;.+ p
1ec0: 2e 66 72 61 6d 65 52 61 74 65 28 33 30 29 3b 0a .frameRate(30);.
1ed0: 2b 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 + img
1ee0: 20 3d 20 70 2e 6c 6f 61 64 49 6d 61 67 65 28 27 = p.loadImage('
1ef0: 2f 74 65 73 74 2e 70 6e 67 27 29 3b 0a 2b 20 20 /test.png');.+
1f00: 20 20 20 20 20 20 7d 3b 0a 2b 0a 2b 20 20 20 20 };.+.+
1f10: 20 20 20 20 70 2e 64 72 61 77 20 3d 20 66 75 6e p.draw = fun
1f20: 63 74 69 6f 6e 28 29 20 7b 0a 2b 20 20 20 20 20 ction() {.+
1f30: 20 20 20 20 20 20 20 76 61 72 20 65 20 3d 20 67 var e = g
1f40: 65 74 52 61 6e 64 6f 6d 49 6e 74 28 32 29 3b 0a etRandomInt(2);.
1f50: 2b 20 20 20 20 20 20 20 20 20 20 20 20 70 2e 63 + p.c
1f60: 6c 65 61 72 28 29 3b 0a 2b 20 20 20 20 20 20 20 lear();.+
1f70: 20 20 20 20 20 69 66 20 28 65 20 3d 3d 20 30 29 if (e == 0)
1f80: 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 {.+
1f90: 20 20 20 20 2f 2f 20 20 20 70 2e 66 69 6c 6c 28 // p.fill(
1fa0: 31 32 33 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 123);.+
1fb0: 20 20 20 20 20 20 20 2f 2f 20 20 70 2e 72 65 63 // p.rec
1fc0: 74 28 78 2c 79 2c 35 30 2c 35 30 29 3b 0a 2b 20 t(x,y,50,50);.+
1fd0: 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 } els
1fe0: 65 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 e {.+
1ff0: 20 20 20 20 20 2f 2f 09 70 2e 69 6d 61 67 65 28 //.p.image(
2000: 69 6d 67 2c 20 30 2c 20 30 29 3b 0a 2b 20 20 20 img, 0, 0);.+
2010: 20 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 }.+
2020: 20 20 20 20 7d 3b 0a 2b 20 20 20 20 7d 3b 0a 2b };.+ };.+
2030: 0a 2b 20 20 20 20 6c 65 74 20 6d 79 70 35 20 3d .+ let myp5 =
2040: 20 6e 65 77 20 70 35 28 73 2c 20 20 64 6f 63 75 new p5(s, docu
2050: 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42 ment.getElementB
2060: 79 49 64 28 27 63 61 6e 76 61 73 2d 63 6f 6e 74 yId('canvas-cont
2070: 61 69 6e 65 72 27 29 29 3b 0a 2b 20 20 20 20 0a ainer'));.+ .
2080: 2b 0a 2b 20 20 20 20 76 61 72 20 76 69 73 75 61 +.+ var visua
2090: 6c 69 7a 65 72 20 3d 20 69 6e 69 74 57 69 6e 61 lizer = initWina
20a0: 6d 70 28 22 5f 41 64 65 72 72 61 73 69 20 2d 20 mp("_Aderrasi -
20b0: 57 61 6e 64 65 72 65 72 20 69 6e 20 43 75 72 76 Wanderer in Curv
20c0: 65 64 20 53 70 61 63 65 20 2d 20 6d 61 73 68 30 ed Space - mash0
20d0: 30 30 30 20 2d 20 66 61 63 6c 65 6d 70 74 20 6b 000 - faclempt k
20e0: 69 62 69 74 7a 69 6e 67 20 6d 65 73 68 75 67 67 ibitzing meshugg
20f0: 61 6e 61 20 73 63 68 6d 61 6c 74 7a 20 28 47 65 ana schmaltz (Ge
2100: 69 73 73 20 63 6f 6c 6f 72 20 6d 69 78 29 22 29 iss color mix)")
2110: 3b 0a 2b 0a 2b 20 20 20 20 72 65 6e 64 65 72 5f ;.+.+ render_
2120: 6c 6f 6f 70 20 3d 20 66 75 6e 63 74 69 6f 6e 20 loop = function
2130: 28 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 76 69 () {.+ vi
2140: 73 75 61 6c 69 7a 65 72 2e 72 65 6e 64 65 72 28 sualizer.render(
2150: 29 3b 0a 2b 20 20 20 20 7d 0a 2b 20 20 20 20 0a );.+ }.+ .
2160: 2b 20 20 20 20 54 6f 6e 65 2e 4d 61 73 74 65 72 + Tone.Master
2170: 2e 76 6f 6c 75 6d 65 2e 76 61 6c 75 65 20 3d 20 .volume.value =
2180: 2d 33 30 3b 0a 2b 20 20 20 20 6d 65 6d 2e 6d 61 -30;.+ mem.ma
2190: 73 74 65 72 20 3d 20 6e 65 77 20 54 6f 6e 65 2e ster = new Tone.
21a0: 43 68 61 6e 6e 65 6c 28 7b 63 68 61 6e 6e 65 6c Channel({channel
21b0: 43 6f 75 6e 74 3a 20 32 2c 20 76 6f 6c 75 6d 65 Count: 2, volume
21c0: 3a 20 2d 31 30 7d 29 2e 63 68 61 69 6e 28 54 6f : -10}).chain(To
21d0: 6e 65 2e 44 65 73 74 69 6e 61 74 69 6f 6e 29 3b ne.Destination);
21e0: 0a 2b 0a 2b 20 20 20 20 2f 2f 20 4e 6f 69 73 65 .+.+ // Noise
21f0: 53 79 6e 74 68 28 29 3b 0a 2b 20 20 20 20 53 74 Synth();.+ St
2200: 61 62 28 29 3b 0a 2b 20 20 20 20 53 61 6d 70 6c ab();.+ Sampl
2210: 65 28 22 6b 22 2c 20 30 2c 20 33 30 30 30 2c 20 e("k", 0, 3000,
2220: 33 29 3b 0a 2b 20 20 20 20 53 61 6d 70 6c 65 28 3);.+ Sample(
2230: 22 68 22 2c 20 31 2c 20 37 30 30 30 2c 20 2d 31 "h", 1, 7000, -1
2240: 35 29 3b 0a 2b 20 20 20 20 53 61 6d 70 6c 65 28 5);.+ Sample(
2250: 22 73 6e 22 2c 32 2c 20 36 30 30 30 2c 20 2d 31 "sn",2, 6000, -1
2260: 35 29 3b 0a 2b 20 20 20 20 53 61 6d 70 6c 65 28 5);.+ Sample(
2270: 22 63 22 2c 20 33 2c 20 36 32 30 2c 20 32 29 3b "c", 3, 620, 2);
2280: 0a 2b 20 20 20 20 53 61 6d 70 6c 65 28 22 6c 22 .+ Sample("l"
2290: 2c 20 34 2c 20 34 32 30 2c 20 2d 31 35 29 3b 0a , 4, 420, -15);.
22a0: 2b 0a 2b 20 20 20 20 68 61 6e 64 6c 65 72 73 5b +.+ handlers[
22b0: 22 31 22 5d 20 3d 20 66 75 6e 63 74 69 6f 6e 20 "1"] = function
22c0: 28 76 61 6c 29 20 7b 0a 2b 20 20 20 20 20 20 20 (val) {.+
22d0: 20 69 66 20 28 76 61 6c 20 3e 20 30 2e 35 29 20 if (val > 0.5)
22e0: 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 6d {.+ m
22f0: 65 6d 5b 22 73 74 61 72 74 5f 73 6e 61 72 65 22 em["start_snare"
2300: 5d 20 3d 20 74 72 75 65 3b 0a 2b 20 20 20 20 20 ] = true;.+
2310: 20 20 20 7d 20 65 6c 73 65 20 7b 0a 2b 20 20 20 } else {.+
2320: 20 20 20 20 20 20 20 20 20 6d 65 6d 5b 22 73 74 mem["st
2330: 61 72 74 5f 73 6e 61 72 65 22 5d 20 3d 20 66 61 art_snare"] = fa
2340: 6c 73 65 3b 0a 2b 20 20 20 20 20 20 20 20 7d 0a lse;.+ }.
2350: 2b 20 20 20 20 20 20 20 20 6d 65 6d 5b 22 73 74 + mem["st
2360: 61 62 5f 66 69 6c 74 65 72 22 5d 2e 51 2e 76 61 ab_filter"].Q.va
2370: 6c 75 65 20 3d 20 4d 61 74 68 2e 72 6f 75 6e 64 lue = Math.round
2380: 28 76 61 6c 20 2a 20 35 29 3b 0a 2b 20 20 20 20 (val * 5);.+
2390: 7d 0a 2b 0a 2b 20 20 20 20 64 69 61 6c 73 5b 31 }.+.+ dials[1
23a0: 5d 5b 22 63 65 6c 6c 22 5d 2e 6f 6e 43 68 61 6e ]["cell"].onChan
23b0: 67 65 28 66 75 6e 63 74 69 6f 6e 20 28 65 29 20 ge(function (e)
23c0: 7b 0a 2b 20 20 20 20 20 20 20 20 76 61 72 20 76 {.+ var v
23d0: 61 6c 20 3d 20 70 61 72 73 65 46 6c 6f 61 74 28 al = parseFloat(
23e0: 65 5b 22 64 61 74 61 22 5d 2e 76 61 6c 75 65 29 e["data"].value)
23f0: 3b 0a 2b 20 20 20 20 20 20 20 20 68 61 6e 64 6c ;.+ handl
2400: 65 72 73 5b 22 31 22 5d 28 76 61 6c 29 3b 0a 2b ers["1"](val);.+
2410: 20 20 20 20 7d 29 0a 2b 0a 2b 7d 0a 2b 0a 2b 66 }).+.+}.+.+f
2420: 75 6e 63 74 69 6f 6e 20 74 77 65 61 6b 20 28 29 unction tweak ()
2430: 20 7b 0a 2b 20 20 20 20 6d 65 6d 2e 6b 31 20 3d {.+ mem.k1 =
2440: 20 6b 6e 6f 62 28 7b 72 61 6d 70 20 3a 20 5b 30 knob({ramp : [0
2450: 2e 35 32 35 2c 20 30 2e 38 2c 20 30 2e 34 2c 20 .525, 0.8, 0.4,
2460: 31 2c 20 30 2e 32 35 2c 20 30 2e 37 35 2c 20 31 1, 0.25, 0.75, 1
2470: 2c 20 30 2e 32 35 2c 20 30 2e 31 5d 2c 20 22 6e , 0.25, 0.1], "n
2480: 75 6d 62 65 72 22 3a 20 64 69 61 6c 73 5b 32 5d umber": dials[2]
2490: 5b 22 63 65 6c 6c 22 5d 20 7d 29 3b 0a 2b 20 20 ["cell"] });.+
24a0: 20 20 61 6c 77 61 79 73 20 3d 20 66 75 6e 63 74 always = funct
24b0: 69 6f 6e 20 28 29 20 7b 0a 2b 20 20 20 20 20 20 ion () {.+
24c0: 20 20 6d 65 6d 5b 22 73 74 61 62 5f 66 69 6c 74 mem["stab_filt
24d0: 65 72 22 5d 2e 66 72 65 71 75 65 6e 63 79 2e 76 er"].frequency.v
24e0: 61 6c 75 65 20 3d 20 6d 65 6d 2e 6b 31 2e 6d 6f alue = mem.k1.mo
24f0: 76 65 28 29 20 2a 20 31 30 30 30 30 3b 0a 2b 20 ve() * 10000;.+
2500: 20 20 20 7d 0a 2b 7d 0a 2b 0a 2b 69 66 20 28 62 }.+}.+.+if (b
2510: 61 72 73 20 3c 3d 20 33 20 29 20 7b 0a 2b 20 20 ars <= 3 ) {.+
2520: 20 20 74 72 61 6e 73 69 74 69 6f 6e 20 3d 20 6f transition = o
2530: 6e 63 65 3b 0a 2b 7d 20 65 6c 73 65 20 7b 0a 2b nce;.+} else {.+
2540: 20 20 20 20 74 72 61 6e 73 69 74 69 6f 6e 20 3d transition =
2550: 20 74 77 65 61 6b 3b 0a 2b 7d 0a 2b 0a 2b 69 66 tweak;.+}.+.+if
2560: 20 28 69 73 48 69 74 29 20 7b 0a 2b 20 20 20 20 (isHit) {.+
2570: 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 if (track_no ==
2580: 31 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 69 66 1) {.+ if
2590: 20 28 62 61 72 73 20 3e 20 30 20 29 20 7b 0a 2b (bars > 0 ) {.+
25a0: 20 20 20 20 20 20 20 20 20 20 20 20 70 28 30 29 p(0)
25b0: 3b 0a 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 ;.+ }.+
25c0: 20 20 7d 0a 2b 20 20 20 20 69 66 20 28 74 72 61 }.+ if (tra
25d0: 63 6b 5f 6e 6f 20 3d 3d 20 32 29 20 7b 0a 2b 20 ck_no == 2) {.+
25e0: 20 20 20 20 20 20 20 69 66 20 28 62 61 72 73 20 if (bars
25f0: 3e 20 38 20 29 20 7b 0a 2b 20 20 20 20 20 20 20 > 8 ) {.+
2600: 20 20 20 20 20 70 28 31 29 3b 0a 2b 20 20 20 20 p(1);.+
2610: 20 20 20 20 7d 09 0a 2b 20 20 20 20 7d 0a 2b 20 }..+ }.+
2620: 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 if (track_no
2630: 3d 3d 20 33 29 20 7b 0a 2b 20 20 20 20 20 20 20 == 3) {.+
2640: 20 69 66 20 28 62 61 72 73 20 3e 20 34 20 29 20 if (bars > 4 )
2650: 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 2f {.+ /
2660: 2f 20 73 28 29 3b 0a 2b 20 20 20 20 20 20 20 20 / s();.+
2670: 7d 0a 2b 20 20 20 20 20 20 20 20 69 66 20 28 62 }.+ if (b
2680: 61 72 73 20 3d 3d 20 36 29 20 7b 0a 2b 20 20 20 ars == 6) {.+
2690: 20 20 20 20 20 20 20 20 20 74 72 61 6e 73 69 74 transit
26a0: 69 6f 6e 28 29 3b 0a 2b 20 20 20 20 20 20 20 20 ion();.+
26b0: 7d 0a 2b 20 20 20 20 7d 0a 2b 20 20 20 20 69 66 }.+ }.+ if
26c0: 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 34 29 (track_no == 4)
26d0: 20 7b 0a 2b 20 20 20 20 20 20 20 20 69 66 20 28 {.+ if (
26e0: 6d 65 6d 5b 22 73 74 61 72 74 5f 73 6e 61 72 65 mem["start_snare
26f0: 22 5d 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 "]) {.+
2700: 20 20 20 70 28 32 29 3b 0a 2b 20 20 20 20 20 20 p(2);.+
2710: 20 20 7d 0a 2b 20 20 20 20 7d 0a 2b 20 20 20 20 }.+ }.+
2720: 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 if (track_no ==
2730: 35 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 69 66 5) {.+ if
2740: 20 28 62 61 72 73 20 3e 20 31 32 29 20 7b 0a 2b (bars > 12) {.+
2750: 20 20 20 20 20 20 20 20 20 20 20 20 70 28 33 29 p(3)
2760: 0a 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 .+ }.+
2770: 20 7d 0a 2b 20 20 20 20 69 66 20 28 74 72 61 63 }.+ if (trac
2780: 6b 5f 6e 6f 20 3d 3d 20 36 29 20 7b 0a 2b 20 20 k_no == 6) {.+
2790: 20 20 20 20 20 2f 2f 20 70 28 34 2c 20 22 43 33 // p(4, "C3
27a0: 22 29 0a 2b 20 20 20 20 7d 0a 2b 7d 0a 2b 0a 2b ").+ }.+}.+.+
27b0: 69 66 20 28 63 6f 75 6e 74 20 3d 3d 20 28 6d 65 if (count == (me
27c0: 6d 5b 22 6b 5f 6c 61 73 74 22 5d 20 2b 20 33 29 m["k_last"] + 3)
27d0: 29 20 7b 0a 2b 20 20 20 20 70 6e 28 22 68 22 29 ) {.+ pn("h")
27e0: 3b 0a 2b 7d 0a 2b 0a 0a 63 6f 6d 6d 69 74 20 38 ;.+}.+..commit 8
27f0: 35 65 31 66 37 39 32 32 38 66 61 31 65 63 64 63 5e1f79228fa1ecdc
2800: 35 66 35 37 66 63 65 65 37 30 66 33 31 63 38 62 5f57fcee70f31c8b
2810: 65 65 30 61 38 39 66 0a 41 75 74 68 6f 72 3a 20 ee0a89f.Author:
2820: 58 79 7a 7a 79 20 41 70 70 73 20 3c 78 79 7a 7a Xyzzy Apps <xyzz
2830: 79 61 70 70 73 40 67 6d 61 69 6c 2e 63 6f 6d 3e yapps@gmail.com>
2840: 0a 44 61 74 65 3a 20 20 20 54 75 65 20 4e 6f 76 .Date: Tue Nov
2850: 20 32 20 32 32 3a 30 39 3a 32 36 20 32 30 32 31 2 22:09:26 2021
2860: 20 2b 30 30 30 30 0a 0a 20 20 20 20 2f 55 73 65 +0000.. /Use
2870: 72 73 2f 64 65 76 2f 70 72 6f 6a 2f 70 72 6f 64 rs/dev/proj/prod
2880: 75 63 74 69 6f 6e 2f 62 69 74 72 68 79 74 68 6d uction/bitrhythm
2890: 2f 73 6f 6e 67 2f 34 39 31 33 20 6d 6f 64 69 66 /song/4913 modif
28a0: 69 65 64 0a 0a 64 69 66 66 20 2d 2d 67 69 74 20 ied..diff --git
28b0: 61 2f 2e 67 69 74 69 67 6e 6f 72 65 20 62 2f 2e a/.gitignore b/.
28c0: 67 69 74 69 67 6e 6f 72 65 0a 6e 65 77 20 66 69 gitignore.new fi
28d0: 6c 65 20 6d 6f 64 65 20 31 30 30 36 34 34 0a 69 le mode 100644.i
28e0: 6e 64 65 78 20 30 30 30 30 30 30 30 2e 2e 38 39 ndex 0000000..89
28f0: 34 33 66 62 34 0a 2d 2d 2d 20 2f 64 65 76 2f 6e 43fb4.--- /dev/n
2900: 75 6c 6c 0a 2b 2b 2b 20 62 2f 2e 67 69 74 69 67 ull.+++ b/.gitig
2910: 6e 6f 72 65 0a 40 40 20 2d 30 2c 30 20 2b 31 2c nore.@@ -0,0 +1,
2920: 32 20 40 40 0a 2b 74 61 67 73 0a 2b 64 69 66 66 2 @@.+tags.+diff
2930: 2e 74 78 74 0a 64 69 66 66 20 2d 2d 67 69 74 20 .txt.diff --git
2940: 61 2f 66 69 72 73 74 2e 6a 73 20 62 2f 66 69 72 a/first.js b/fir
2950: 73 74 2e 6a 73 0a 69 6e 64 65 78 20 33 38 37 30 st.js.index 3870
2960: 31 35 36 2e 2e 63 62 32 33 31 66 66 20 31 30 30 156..cb231ff 100
2970: 36 34 34 0a 2d 2d 2d 20 61 2f 66 69 72 73 74 2e 644.--- a/first.
2980: 6a 73 0a 2b 2b 2b 20 62 2f 66 69 72 73 74 2e 6a js.+++ b/first.j
2990: 73 0a 40 40 20 2d 31 30 2c 31 31 33 20 2b 31 30 s.@@ -10,113 +10
29a0: 2c 31 35 34 20 40 40 20 6d 61 69 6e 20 3d 20 5b ,154 @@ main = [
29b0: 0a 20 20 20 20 20 63 65 6c 6c 78 28 22 70 20 30 . cellx("p 0
29c0: 30 30 30 20 78 30 30 30 20 30 30 30 30 20 78 30 000 x000 0000 x0
29d0: 30 30 20 22 29 2c 0a 20 20 20 20 20 63 65 6c 6c 00 "),. cell
29e0: 78 28 22 70 20 78 30 78 30 20 78 30 78 30 20 78 x("p x0x0 x0x0 x
29f0: 30 78 30 20 78 30 78 30 20 22 29 2c 0a 20 20 20 0x0 x0x0 "),.
2a00: 20 20 63 65 6c 6c 78 28 22 70 20 78 30 30 30 20 cellx("p x000
2a10: 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 22 0000 0000 0000 "
2a20: 29 2c 0a 2d 20 20 20 20 63 65 6c 6c 78 28 22 70 ),.- cellx("p
2a30: 20 78 5b 5e 31 32 30 5d 30 30 30 20 30 30 30 30 x[^120]000 0000
2a40: 20 30 30 78 5b 5e 31 32 34 5d 30 20 30 30 78 5b 00x[^124]0 00x[
2a50: 5e 31 31 36 5d 30 20 22 29 2c 20 2f 2f 20 6d 65 ^116]0 "), // me
2a60: 6c 6f 64 79 0a 2d 0a 2b 20 20 20 20 63 65 6c 6c lody.-.+ cell
2a70: 78 28 22 70 20 30 30 30 30 20 30 30 30 30 20 30 x("p 0000 0000 0
2a80: 30 30 30 20 30 30 30 30 22 29 2c 0a 2b 09 63 65 000 0000"),.+.ce
2a90: 6c 6c 78 28 22 70 20 30 30 30 30 20 30 30 30 30 llx("p 0000 0000
2aa0: 20 30 30 30 30 20 30 30 30 30 22 29 2c 0a 20 5d 0000 0000"),. ]
2ab0: 0a 20 0a 20 62 61 73 73 20 3d 20 5b 0a 2d 20 20 . . bass = [.-
2ac0: 20 20 63 65 6c 6c 78 28 22 70 20 78 5b 32 3b 5e cellx("p x[2;^
2ad0: 43 32 3b 2b 30 2e 30 31 5d 30 30 30 20 30 30 30 C2;+0.01]000 000
2ae0: 30 20 78 5b 30 2e 31 5d 30 78 5b 31 5d 30 20 30 0 x[0.1]0x[1]0 0
2af0: 30 78 5b 31 5d 30 20 22 29 2c 0a 2b 20 20 20 09 0x[1]0 "),.+ .
2b00: 63 65 6c 6c 78 28 22 70 20 78 5b 32 3b 5e 43 32 cellx("p x[2;^C2
2b10: 3b 2b 30 2e 30 31 5d 30 30 30 20 30 30 30 30 20 ;+0.01]000 0000
2b20: 78 5b 30 2e 31 5d 30 78 5b 31 5d 30 20 30 30 78 x[0.1]0x[1]0 00x
2b30: 5b 31 5d 30 20 22 29 2c 0a 20 20 20 20 20 63 65 [1]0 "),. ce
2b40: 6c 6c 78 28 22 70 20 30 30 30 30 20 78 30 30 30 llx("p 0000 x000
2b50: 20 30 30 30 30 20 78 30 30 30 20 22 29 2c 0a 20 0000 x000 "),.
2b60: 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 30 78 cellx("p x0x
2b70: 30 20 78 30 78 30 20 78 30 78 30 20 78 30 78 30 0 x0x0 x0x0 x0x0
2b80: 20 22 29 2c 0a 20 20 20 20 20 63 65 6c 6c 78 28 "),. cellx(
2b90: 22 70 20 78 30 30 30 20 30 30 30 30 20 30 30 30 "p x000 0000 000
2ba0: 30 20 30 30 30 30 20 22 29 2c 0a 20 20 20 20 20 0 0000 "),.
2bb0: 63 65 6c 6c 78 28 22 70 20 78 5b 5e 42 32 5d 78 cellx("p x[^B2]x
2bc0: 2e 30 30 20 78 5b 5e 42 32 5d 78 2e 78 5b 5e 42 .00 x[^B2]x.x[^B
2bd0: 32 5d 78 2e 20 78 5b 5e 42 32 5d 78 2e 78 5b 5e 2]x. x[^B2]x.x[^
2be0: 42 32 5d 78 2e 78 5b 5e 42 32 5d 78 2e 30 20 22 B2]x.x[^B2]x.0 "
2bf0: 29 2c 0a 2d 20 20 20 20 63 65 6c 6c 78 28 22 70 ),.- cellx("p
2c00: 20 78 5b 5e 31 32 30 5d 30 30 30 20 30 30 30 30 x[^120]000 0000
2c10: 20 30 30 78 5b 5e 31 32 34 5d 30 20 30 30 78 5b 00x[^124]0 00x[
2c20: 5e 31 31 36 5d 30 20 22 29 2c 20 2f 2f 20 6d 65 ^116]0 "), // me
2c30: 6c 6f 64 79 0a 2d 09 63 65 6c 6c 78 28 22 70 20 lody.-.cellx("p
2c40: 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 0000 0000 0000 0
2c50: 30 30 30 22 29 0a 2b 20 20 20 20 63 65 6c 6c 78 000").+ cellx
2c60: 28 22 70 20 30 30 78 5b 5e 44 33 5d 30 20 30 30 ("p 00x[^D3]0 00
2c70: 30 78 5b 5e 41 32 5d 20 30 30 78 5b 5e 41 32 5d 0x[^A2] 00x[^A2]
2c80: 78 5b 5e 41 32 5d 20 30 78 5b 5e 41 32 5d 30 78 x[^A2] 0x[^A2]0x
2c90: 5b 5e 41 32 5d 20 22 29 2c 20 0a 20 5d 0a 20 0a [^A2] "), . ]. .
2ca0: 2d 66 69 6c 6c 20 3d 20 20 63 65 6c 6c 78 28 22 -fill = cellx("
2cb0: 70 20 78 30 30 30 20 78 30 30 30 20 78 30 78 78 p x000 x000 x0xx
2cc0: 20 30 30 78 30 22 29 0a 2d 65 6d 70 74 79 20 3d 00x0").-empty =
2cd0: 20 63 65 6c 6c 78 28 22 70 20 30 30 30 30 20 30 cellx("p 0000 0
2ce0: 30 30 30 20 30 30 30 30 20 30 30 30 30 22 29 0a 000 0000 0000").
2cf0: 2b 65 6e 64 20 3d 20 5b 0a 2b 20 09 63 65 6c 6c +end = [.+ .cell
2d00: 78 28 22 70 20 78 5b 32 3b 5e 43 32 3b 2b 30 2e x("p x[2;^C2;+0.
2d10: 30 31 5d 30 30 30 20 30 30 30 30 20 78 5b 30 2e 01]000 0000 x[0.
2d20: 31 5d 30 78 5b 31 5d 30 20 30 30 78 5b 31 5d 30 1]0x[1]0 00x[1]0
2d30: 20 22 29 2c 0a 2b 20 20 20 20 63 65 6c 6c 78 28 "),.+ cellx(
2d40: 22 70 20 30 30 30 30 20 78 30 30 30 20 30 30 30 "p 0000 x000 000
2d50: 30 20 78 30 30 30 20 22 29 2c 0a 2b 20 20 20 20 0 x000 "),.+
2d60: 63 65 6c 6c 78 28 22 70 20 78 30 78 30 20 78 30 cellx("p x0x0 x0
2d70: 78 30 20 78 30 78 30 20 78 30 78 30 20 22 29 2c x0 x0x0 x0x0 "),
2d80: 0a 2b 5d 0a 20 0a 2b 73 6f 6c 6f 20 3d 20 5b 0a .+]. .+solo = [.
2d90: 2b 09 63 65 6c 6c 78 28 22 70 20 30 30 30 30 20 +.cellx("p 0000
2da0: 30 30 30 30 20 30 30 30 30 20 30 30 30 30 22 29 0000 0000 0000")
2db0: 2c 0a 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 20 ,.+ cellx("p
2dc0: 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 0000 0000 0000 0
2dd0: 30 30 30 22 29 2c 0a 2b 20 20 20 20 63 65 6c 6c 000"),.+ cell
2de0: 78 28 22 70 20 30 30 30 30 20 30 30 30 30 20 30 x("p 0000 0000 0
2df0: 30 30 30 20 30 30 30 30 22 29 2c 0a 2b 5d 0a 20 000 0000"),.+].
2e00: 0a 2b 66 69 6e 20 3d 20 73 6f 6c 6f 3b 0a 20 0a .+fin = solo;. .
2e10: 2b 65 6e 64 67 61 6d 65 20 3d 20 5b 0a 2b 20 20 +endgame = [.+
2e20: 20 20 63 65 6c 6c 78 28 22 70 20 78 5b 32 3b 5e cellx("p x[2;^
2e30: 43 32 3b 2b 30 2e 30 31 5d 30 30 30 20 30 30 30 C2;+0.01]000 000
2e40: 30 20 78 5b 30 2e 31 5d 30 78 5b 31 5d 30 20 30 0 x[0.1]0x[1]0 0
2e50: 30 78 5b 31 5d 30 20 22 29 2c 0a 2b 20 20 20 20 0x[1]0 "),.+
2e60: 63 65 6c 6c 78 28 22 70 20 30 30 30 30 20 78 30 cellx("p 0000 x0
2e70: 30 30 20 30 30 30 30 20 78 30 30 30 20 22 29 2c 00 0000 x000 "),
2e80: 0a 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 .+ cellx("p x
2e90: 30 78 30 20 78 30 78 30 20 78 30 78 30 20 78 30 0x0 x0x0 x0x0 x0
2ea0: 78 30 20 22 29 2c 0a 2b 20 20 20 20 63 65 6c 6c x0 "),.+ cell
2eb0: 78 28 22 70 20 78 30 30 30 20 30 30 30 30 20 30 x("p x000 0000 0
2ec0: 30 30 30 20 30 30 30 30 20 22 29 2c 0a 2b 20 20 000 0000 "),.+
2ed0: 20 20 63 65 6c 6c 78 28 22 70 20 78 5b 5e 42 32 cellx("p x[^B2
2ee0: 5d 78 2e 30 30 20 78 5b 5e 42 32 5d 78 2e 78 5b ]x.00 x[^B2]x.x[
2ef0: 5e 42 32 5d 78 2e 20 78 5b 5e 42 32 5d 78 2e 78 ^B2]x. x[^B2]x.x
2f00: 5b 5e 42 32 5d 78 2e 78 5b 5e 42 32 5d 78 2e 30 [^B2]x.x[^B2]x.0
2f10: 20 22 29 2c 0a 2b 5d 0a 20 0a 2d 66 75 6e 63 74 "),.+]. .-funct
2f20: 69 6f 6e 20 53 61 6d 70 6c 65 28 6e 61 6d 65 2c ion Sample(name,
2f30: 20 6e 6f 2c 20 66 69 6c 74 65 72 2c 20 76 6f 6c no, filter, vol
2f40: 75 6d 65 29 20 7b 0a 2d 20 20 20 20 6e 61 6d 65 ume) {.- name
2f50: 20 3d 20 6e 61 6d 65 0a 2d 20 20 20 20 66 69 6c = name.- fil
2f60: 74 65 72 20 3d 20 66 69 6c 74 65 72 20 7c 7c 20 ter = filter ||
2f70: 32 30 30 30 30 0a 2d 20 20 20 20 76 6f 6c 75 6d 20000.- volum
2f80: 65 20 3d 20 76 6f 6c 75 6d 65 20 7c 7c 20 30 0a e = volume || 0.
2f90: 2d 20 20 20 20 2f 2f 6d 65 6d 5b 6e 61 6d 65 20 - //mem[name
2fa0: 2b 20 22 5f 66 69 6c 74 65 72 22 5d 20 3d 20 6e + "_filter"] = n
2fb0: 65 77 20 54 6f 6e 65 2e 46 69 6c 74 65 72 28 66 ew Tone.Filter(f
2fc0: 69 6c 74 65 72 2c 20 27 6c 6f 77 70 61 73 73 27 ilter, 'lowpass'
2fd0: 2c 20 2d 39 36 29 3b 0a 2d 20 20 20 20 6d 65 6d , -96);.- mem
2fe0: 5b 6e 61 6d 65 20 2b 20 22 5f 63 68 61 6e 6e 65 [name + "_channe
2ff0: 6c 22 5d 20 3d 20 6e 65 77 20 54 6f 6e 65 2e 43 l"] = new Tone.C
3000: 68 61 6e 6e 65 6c 28 7b 63 68 61 6e 6e 65 6c 43 hannel({channelC
3010: 6f 75 6e 74 3a 20 32 2c 20 76 6f 6c 75 6d 65 3a ount: 2, volume:
3020: 20 76 6f 6c 75 6d 65 7d 29 2e 63 68 61 69 6e 28 volume}).chain(
3030: 6d 65 6d 2e 6d 61 73 74 65 72 29 0a 2d 20 20 20 mem.master).-
3040: 20 73 61 6d 70 6c 65 73 5b 6e 6f 5d 2e 63 6f 6e samples[no].con
3050: 6e 65 63 74 28 6d 65 6d 5b 6e 61 6d 65 20 2b 20 nect(mem[name +
3060: 22 5f 63 68 61 6e 6e 65 6c 22 5d 29 3b 0a 2d 7d "_channel"]);.-}
3070: 0a 20 0a 2d 66 75 6e 63 74 69 6f 6e 20 70 28 73 . .-function p(s
3080: 2c 20 76 6f 6c 2c 20 20 6e 6f 74 65 2c 20 20 6c , vol, note, l
3090: 65 6e 2c 20 64 65 6c 61 79 29 20 7b 0a 2d 20 20 en, delay) {.-
30a0: 20 20 6e 6f 74 65 20 3d 20 6e 6f 74 65 20 7c 7c note = note ||
30b0: 20 22 43 33 22 0a 2d 20 20 20 20 6c 65 6e 20 3d "C3".- len =
30c0: 20 6c 65 6e 20 7c 7c 20 22 31 36 6e 22 0a 2d 20 len || "16n".-
30d0: 20 20 20 76 6f 6c 20 3d 20 76 6f 6c 20 7c 7c 20 vol = vol ||
30e0: 31 0a 2d 20 20 20 20 64 65 6c 61 79 20 3d 20 64 1.- delay = d
30f0: 65 6c 61 79 20 7c 7c 20 22 2b 30 22 3b 0a 2d 20 elay || "+0";.-
3100: 20 20 20 73 61 6d 70 6c 65 73 5b 73 5d 2e 74 72 samples[s].tr
3110: 69 67 67 65 72 41 74 74 61 63 6b 52 65 6c 65 61 iggerAttackRelea
3120: 73 65 28 6e 6f 74 65 2c 20 6c 65 6e 2c 20 64 65 se(note, len, de
3130: 6c 61 79 2c 20 76 6f 6c 29 3b 0a 2d 7d 0a 20 0a lay, vol);.-}. .
3140: 2d 66 75 6e 63 74 69 6f 6e 20 6f 6e 63 65 20 28 -function once (
3150: 29 20 7b 0a 20 0a 2d 20 20 20 20 76 61 72 20 70 ) {. .- var p
3160: 72 3b 0a 2d 20 20 20 20 63 6f 6e 73 74 20 73 20 r;.- const s
3170: 3d 20 28 20 70 20 29 20 3d 3e 20 7b 0a 2d 20 20 = ( p ) => {.-
3180: 20 20 20 20 20 20 70 72 20 3d 20 70 3b 0a 2d 20 pr = p;.-
3190: 20 20 20 20 20 20 20 76 61 72 20 69 6d 67 3b 0a var img;.
31a0: 2b 65 6d 70 74 79 20 3d 20 63 65 6c 6c 78 28 22 +empty = cellx("
31b0: 70 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 p 0000 0000 0000
31c0: 20 30 30 30 30 22 29 0a 2b 0a 2b 0a 2b 66 75 6e 0000").+.+.+fun
31d0: 63 74 69 6f 6e 20 6f 6e 63 65 20 28 29 20 7b 0a ction once () {.
31e0: 2b 20 0a 2b 20 20 20 20 0a 2b 20 20 20 20 20 20 + .+ .+
31f0: 20 20 63 6f 6e 73 74 20 73 65 74 75 70 20 3d 20 const setup =
3200: 28 20 69 6e 73 74 61 6e 63 65 20 29 20 3d 3e 20 ( instance ) =>
3210: 7b 0a 2b 20 20 20 20 20 20 20 20 76 61 72 20 69 {.+ var i
3220: 6e 74 72 6f 20 3d 20 5b 5d 0a 2b 20 20 20 20 20 ntro = [].+
3230: 20 20 20 76 61 72 20 6d 61 69 6e 20 3d 20 5b 5d var main = []
3240: 0a 2b 20 20 20 20 20 20 20 20 76 61 72 20 62 61 .+ var ba
3250: 73 73 20 3d 20 6d 61 69 6e 0a 2b 20 20 20 20 20 ss = main.+
3260: 20 20 20 76 61 72 20 73 6f 6c 6f 20 3d 20 62 61 var solo = ba
3270: 73 73 0a 2b 20 20 20 20 20 20 20 20 76 61 72 20 ss.+ var
3280: 65 6e 64 20 3d 20 5b 5d 20 0a 2b 20 20 20 20 20 end = [] .+
3290: 20 20 20 76 61 72 20 63 6f 75 6e 74 20 3d 20 30 var count = 0
32a0: 3b 0a 2b 20 20 20 20 20 20 20 20 76 61 72 20 6f ;.+ var o
32b0: 6c 64 5f 73 63 65 6e 65 20 3d 20 22 22 3b 0a 2b ld_scene = "";.+
32c0: 20 20 20 20 20 20 20 20 0a 2b 20 20 20 20 20 20 .+
32d0: 20 20 0a 20 0a 2d 20 20 20 20 20 20 20 20 6c 65 . .- le
32e0: 74 20 78 20 3d 20 31 30 30 3b 20 0a 2b 20 20 20 t x = 100; .+
32f0: 20 20 20 20 20 6c 65 74 20 78 20 3d 20 31 30 30 let x = 100
3300: 3b 0a 20 20 20 20 20 20 20 20 20 6c 65 74 20 79 ;. let y
3310: 20 3d 20 31 30 30 3b 0a 20 0a 2d 20 20 20 20 20 = 100;. .-
3320: 20 20 20 70 2e 73 65 74 75 70 20 3d 20 66 75 6e p.setup = fun
3330: 63 74 69 6f 6e 28 29 20 7b 0a 2d 20 20 20 20 20 ction() {.-
3340: 20 20 20 20 20 20 20 76 61 72 20 78 20 3d 20 70 var x = p
3350: 2e 63 72 65 61 74 65 43 61 6e 76 61 73 28 37 30 .createCanvas(70
3360: 30 2c 20 34 31 30 29 3b 0a 2b 20 20 20 20 20 20 0, 410);.+
3370: 20 20 69 6e 73 74 61 6e 63 65 2e 73 65 74 75 70 instance.setup
3380: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a = function() {.
3390: 2b 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 + var
33a0: 20 78 20 3d 20 69 6e 73 74 61 6e 63 65 2e 63 72 x = instance.cr
33b0: 65 61 74 65 43 61 6e 76 61 73 28 37 30 30 2c 20 eateCanvas(700,
33c0: 34 31 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20 410);.
33d0: 20 20 20 78 2e 63 61 6e 76 61 73 2e 73 74 79 6c x.canvas.styl
33e0: 65 2e 70 6f 73 69 74 69 6f 6e 20 3d 20 22 61 62 e.position = "ab
33f0: 73 6f 6c 75 74 65 22 3b 0a 2d 20 20 20 20 20 20 solute";.-
3400: 20 20 20 20 20 20 70 2e 66 72 61 6d 65 52 61 74 p.frameRat
3410: 65 28 32 29 3b 0a 2d 20 20 20 20 20 20 20 20 20 e(2);.-
3420: 20 20 20 69 6d 67 20 3d 20 70 2e 6c 6f 61 64 49 img = p.loadI
3430: 6d 61 67 65 28 27 2f 74 65 73 74 33 2e 70 6e 67 mage('/test3.png
3440: 27 29 3b 0a 2d 20 20 20 20 20 20 20 20 20 20 20 ');.-
3450: 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 69 6d 67 console.log(img
3460: 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 );.+
3470: 69 6e 73 74 61 6e 63 65 2e 66 72 61 6d 65 52 61 instance.frameRa
3480: 74 65 28 32 29 3b 0a 2b 20 20 20 20 20 20 20 20 te(2);.+
3490: 20 20 20 20 69 6e 74 72 6f 2e 70 75 73 68 28 69 intro.push(i
34a0: 6e 73 74 61 6e 63 65 2e 6c 6f 61 64 49 6d 61 67 nstance.loadImag
34b0: 65 28 27 2f 63 6c 6f 73 65 64 2f 69 6e 74 72 6f e('/closed/intro
34c0: 2f 31 2e 70 6e 67 27 29 29 3b 0a 2b 20 20 20 20 /1.png'));.+
34d0: 20 20 20 20 20 20 20 20 69 6e 74 72 6f 2e 70 75 intro.pu
34e0: 73 68 28 69 6e 73 74 61 6e 63 65 2e 6c 6f 61 64 sh(instance.load
34f0: 49 6d 61 67 65 28 27 2f 63 6c 6f 73 65 64 2f 69 Image('/closed/i
3500: 6e 74 72 6f 2f 32 2e 70 6e 67 27 29 29 3b 0a 2b ntro/2.png'));.+
3510: 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 69 6e main
3520: 2e 70 75 73 68 28 69 6e 73 74 61 6e 63 65 2e 6c .push(instance.l
3530: 6f 61 64 49 6d 61 67 65 28 27 2f 63 6c 6f 73 65 oadImage('/close
3540: 64 2f 6d 61 69 6e 2f 31 2e 70 6e 67 27 29 29 3b d/main/1.png'));
3550: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 .+ ma
3560: 69 6e 2e 70 75 73 68 28 69 6e 73 74 61 6e 63 65 in.push(instance
3570: 2e 6c 6f 61 64 49 6d 61 67 65 28 27 2f 63 6c 6f .loadImage('/clo
3580: 73 65 64 2f 6d 61 69 6e 2f 32 2e 70 6e 67 27 29 sed/main/2.png')
3590: 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 );.+
35a0: 6d 61 69 6e 2e 70 75 73 68 28 69 6e 73 74 61 6e main.push(instan
35b0: 63 65 2e 6c 6f 61 64 49 6d 61 67 65 28 27 2f 63 ce.loadImage('/c
35c0: 6c 6f 73 65 64 2f 6d 61 69 6e 2f 33 2e 70 6e 67 losed/main/3.png
35d0: 27 29 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 '));.+
35e0: 20 20 65 6e 64 2e 70 75 73 68 28 69 6e 73 74 61 end.push(insta
35f0: 6e 63 65 2e 6c 6f 61 64 49 6d 61 67 65 28 27 2f nce.loadImage('/
3600: 63 6c 6f 73 65 64 2f 65 6e 64 2f 31 2e 70 6e 67 closed/end/1.png
3610: 27 29 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 '));.+
3620: 20 20 65 6e 64 2e 70 75 73 68 28 69 6e 73 74 61 end.push(insta
3630: 6e 63 65 2e 6c 6f 61 64 49 6d 61 67 65 28 27 2f nce.loadImage('/
3640: 63 6c 6f 73 65 64 2f 65 6e 64 2f 32 2e 70 6e 67 closed/end/2.png
3650: 27 29 29 3b 0a 20 20 20 20 20 20 20 20 20 7d 3b '));. };
3660: 0a 20 0a 2d 20 20 20 20 20 20 20 20 70 2e 64 72 . .- p.dr
3670: 61 77 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 aw = function()
3680: 7b 0a 2d 20 20 20 20 20 20 20 20 20 20 20 20 76 {.- v
3690: 61 72 20 65 20 3d 20 67 65 74 52 61 6e 64 6f 6d ar e = getRandom
36a0: 49 6e 74 28 32 29 3b 0a 2d 20 20 20 20 20 20 20 Int(2);.-
36b0: 20 20 20 20 20 70 2e 63 6c 65 61 72 28 29 3b 0a p.clear();.
36c0: 2d 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 - if
36d0: 28 65 20 3d 3d 20 30 29 20 7b 0a 2d 20 20 20 20 (e == 0) {.-
36e0: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 //
36f0: 20 70 2e 66 69 6c 6c 28 31 32 33 29 3b 0a 2d 20 p.fill(123);.-
3700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f /
3710: 2f 20 20 70 2e 72 65 63 74 28 78 2c 79 2c 35 30 / p.rect(x,y,50
3720: 2c 35 30 29 3b 0a 2d 20 20 20 20 20 20 20 20 20 ,50);.-
3730: 20 20 20 7d 20 65 6c 73 65 20 7b 0a 2d 20 20 20 } else {.-
3740: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 2e 69 p.i
3750: 6d 61 67 65 28 69 6d 67 2c 20 30 2c 20 30 29 3b mage(img, 0, 0);
3760: 0a 2b 20 20 20 20 20 20 20 20 69 6e 73 74 61 6e .+ instan
3770: 63 65 2e 64 72 61 77 20 3d 20 66 75 6e 63 74 69 ce.draw = functi
3780: 6f 6e 28 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 on() {.+
3790: 09 69 66 20 28 6f 6c 64 5f 73 63 65 6e 65 20 21 .if (old_scene !
37a0: 3d 20 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 29 = current_scene)
37b0: 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 {.+
37c0: 09 6f 6c 64 5f 73 63 65 6e 65 20 3d 20 63 75 72 .old_scene = cur
37d0: 72 65 6e 74 5f 73 63 65 6e 65 3b 0a 2b 20 20 20 rent_scene;.+
37e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 75 cou
37f0: 6e 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 nt = 0;.
3800: 20 20 20 20 20 7d 0a 2b 20 20 20 20 2f 2f 20 20 }.+ //
3810: 20 20 20 20 20 20 69 6e 73 74 61 6e 63 65 2e 63 instance.c
3820: 6c 65 61 72 28 29 3b 0a 2b 20 20 20 20 20 20 20 lear();.+
3830: 20 20 20 20 20 76 61 72 20 63 20 3d 20 65 76 61 var c = eva
3840: 6c 28 60 24 7b 63 75 72 72 65 6e 74 5f 73 63 65 l(`${current_sce
3850: 6e 65 7d 60 29 0a 2b 20 20 20 20 20 20 20 2f 2f ne}`).+ //
3860: 20 20 20 20 20 69 6e 73 74 61 6e 63 65 2e 69 6d instance.im
3870: 61 67 65 28 63 5b 63 6f 75 6e 74 5d 2c 20 30 2c age(c[count], 0,
3880: 20 30 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 0);.+
3890: 20 20 63 6f 75 6e 74 20 2b 3d 20 31 0a 2b 20 20 count += 1.+
38a0: 20 20 20 20 20 20 20 20 20 20 63 6f 75 6e 74 20 count
38b0: 3d 20 63 6f 75 6e 74 20 25 20 63 2e 6c 65 6e 67 = count % c.leng
38c0: 74 68 3b 0a 2b 0a 20 20 20 20 20 20 20 20 20 7d th;.+. }
38d0: 3b 0a 20 20 20 20 20 7d 3b 0a 20 0a 2d 20 20 20 ;. };. .-
38e0: 20 6c 65 74 20 6d 79 70 35 20 3d 20 6e 65 77 20 let myp5 = new
38f0: 70 35 28 73 2c 20 20 64 6f 63 75 6d 65 6e 74 2e p5(s, document.
3900: 67 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28 27 getElementById('
3910: 63 61 6e 76 61 73 2d 63 6f 6e 74 61 69 6e 65 72 canvas-container
3920: 27 29 29 3b 0a 2b 20 20 20 20 6c 65 74 20 6d 79 '));.+ let my
3930: 70 35 20 3d 20 6e 65 77 20 70 35 28 73 65 74 75 p5 = new p5(setu
3940: 70 2c 20 20 64 6f 63 75 6d 65 6e 74 2e 67 65 74 p, document.get
3950: 45 6c 65 6d 65 6e 74 42 79 49 64 28 27 63 61 6e ElementById('can
3960: 76 61 73 2d 63 6f 6e 74 61 69 6e 65 72 27 29 29 vas-container'))
3970: 3b 0a 20 0a 2d 20 20 20 20 72 65 6e 64 65 72 5f ;. .- render_
3980: 6c 6f 6f 70 20 3d 20 66 75 6e 63 74 69 6f 6e 20 loop = function
3990: 28 29 20 7b 0a 2d 2f 2f 20 20 20 20 09 70 72 2e () {.-// .pr.
39a0: 72 65 63 74 28 78 2c 79 2c 35 30 2c 35 30 29 3b rect(x,y,50,50);
39b0: 0a 2d 20 20 20 20 7d 0a 20 0a 20 20 20 20 20 54 .- }. . T
39c0: 6f 6e 65 2e 4d 61 73 74 65 72 2e 76 6f 6c 75 6d one.Master.volum
39d0: 65 2e 76 61 6c 75 65 20 3d 20 2d 33 30 0a 2d 20 e.value = -30.-
39e0: 20 20 20 6d 65 6d 2e 6d 61 73 74 65 72 20 3d 20 mem.master =
39f0: 6e 65 77 20 54 6f 6e 65 2e 43 68 61 6e 6e 65 6c new Tone.Channel
3a00: 28 7b 63 68 61 6e 6e 65 6c 43 6f 75 6e 74 3a 20 ({channelCount:
3a10: 32 2c 20 76 6f 6c 75 6d 65 3a 20 2d 31 30 7d 29 2, volume: -10})
3a20: 2e 63 68 61 69 6e 28 54 6f 6e 65 2e 44 65 73 74 .chain(Tone.Dest
3a30: 69 6e 61 74 69 6f 6e 29 3b 0a 2b 0a 2b 09 64 69 ination);.+.+.di
3a40: 61 6c 73 5b 32 5d 5b 22 63 65 6c 6c 22 5d 28 31 als[2]["cell"](1
3a50: 29 0a 2b 20 20 20 20 6d 65 6d 5b 22 6d 61 73 74 ).+ mem["mast
3a60: 65 72 5f 66 69 6c 74 65 72 22 5d 20 3d 20 6e 65 er_filter"] = ne
3a70: 77 20 54 6f 6e 65 2e 46 69 6c 74 65 72 28 31 30 w Tone.Filter(10
3a80: 30 30 30 2c 20 27 6c 6f 77 70 61 73 73 27 2c 20 000, 'lowpass',
3a90: 2d 39 36 29 3b 0a 2b 20 20 20 20 6d 65 6d 5b 22 -96);.+ mem["
3aa0: 6d 61 73 74 65 72 5f 73 74 65 72 65 6f 22 5d 20 master_stereo"]
3ab0: 3d 20 6e 65 77 20 54 6f 6e 65 2e 53 74 65 72 65 = new Tone.Stere
3ac0: 6f 57 69 64 65 6e 65 72 28 7b 77 69 64 74 68 3a oWidener({width:
3ad0: 20 30 2e 35 30 7d 29 3b 0a 2b 20 20 20 20 0a 2b 0.50});.+ .+
3ae0: 20 20 20 20 64 69 61 6c 73 5b 32 5d 5b 22 63 65 dials[2]["ce
3af0: 6c 6c 22 5d 2e 6f 6e 43 68 61 6e 67 65 28 66 75 ll"].onChange(fu
3b00: 6e 63 74 69 6f 6e 20 28 65 29 20 7b 0a 2b 20 20 nction (e) {.+
3b10: 20 20 20 20 20 20 76 61 72 20 76 61 6c 20 3d 20 var val =
3b20: 70 61 72 73 65 46 6c 6f 61 74 28 65 5b 22 64 61 parseFloat(e["da
3b30: 74 61 22 5d 2e 76 61 6c 75 65 29 3b 0a 2b 20 20 ta"].value);.+
3b40: 20 20 20 20 20 20 76 61 72 20 63 75 74 6f 66 66 var cutoff
3b50: 5f 67 75 61 72 64 20 3d 20 67 75 61 72 64 28 5b _guard = guard([
3b60: 31 30 2c 20 32 30 30 30 30 5d 29 3b 0a 2b 20 20 10, 20000]);.+
3b70: 20 20 20 20 20 20 6d 65 6d 5b 22 6d 61 73 74 65 mem["maste
3b80: 72 5f 66 69 6c 74 65 72 22 5d 2e 66 72 65 71 75 r_filter"].frequ
3b90: 65 6e 63 79 2e 76 61 6c 75 65 20 3d 20 63 75 74 ency.value = cut
3ba0: 6f 66 66 5f 67 75 61 72 64 28 76 61 6c 20 2a 20 off_guard(val *
3bb0: 31 30 30 30 30 29 3b 0a 2b 20 20 20 20 7d 29 0a 10000);.+ }).
3bc0: 2b 20 20 20 20 0a 2b 20 20 20 20 64 69 61 6c 73 + .+ dials
3bd0: 5b 33 5d 5b 22 63 65 6c 6c 22 5d 28 30 29 0a 2b [3]["cell"](0).+
3be0: 20 20 20 20 0a 2b 20 20 20 20 64 69 61 6c 73 5b .+ dials[
3bf0: 33 5d 5b 22 63 65 6c 6c 22 5d 2e 6f 6e 43 68 61 3]["cell"].onCha
3c00: 6e 67 65 28 66 75 6e 63 74 69 6f 6e 20 28 65 29 nge(function (e)
3c10: 20 7b 0a 2b 20 20 20 20 20 20 20 20 76 61 72 20 {.+ var
3c20: 76 61 6c 20 3d 20 70 61 72 73 65 46 6c 6f 61 74 val = parseFloat
3c30: 28 65 5b 22 64 61 74 61 22 5d 2e 76 61 6c 75 65 (e["data"].value
3c40: 29 3b 0a 2b 20 20 20 20 20 20 20 20 76 61 72 20 );.+ var
3c50: 76 6f 6c 75 6d 65 5f 67 75 61 72 64 31 20 3d 20 volume_guard1 =
3c60: 67 75 61 72 64 28 5b 30 2c 31 5d 29 0a 2b 20 20 guard([0,1]).+
3c70: 20 20 20 20 20 20 61 75 64 69 6f 2e 6d 61 73 74 audio.mast
3c80: 65 72 2e 69 6e 2e 67 61 69 6e 2e 76 61 6c 75 65 er.in.gain.value
3c90: 20 3d 20 76 6f 6c 75 6d 65 5f 67 75 61 72 64 31 = volume_guard1
3ca0: 28 76 61 6c 20 2f 20 31 30 29 3b 0a 2b 20 20 20 (val / 10);.+
3cb0: 20 7d 29 0a 2b 20 20 20 20 0a 2b 0a 2b 0a 2b 09 }).+ .+.+.+.
3cc0: 6d 65 6d 2e 6d 61 73 74 65 72 20 3d 20 6e 65 77 mem.master = new
3cd0: 20 54 6f 6e 65 2e 43 68 61 6e 6e 65 6c 28 7b 63 Tone.Channel({c
3ce0: 68 61 6e 6e 65 6c 43 6f 75 6e 74 3a 20 32 2c 20 hannelCount: 2,
3cf0: 76 6f 6c 75 6d 65 3a 20 2d 31 30 7d 29 2e 63 68 volume: -10}).ch
3d00: 61 69 6e 28 20 20 6d 65 6d 5b 22 6d 61 73 74 65 ain( mem["maste
3d10: 72 5f 66 69 6c 74 65 72 22 5d 2c 20 20 6d 65 6d r_filter"], mem
3d20: 5b 22 6d 61 73 74 65 72 5f 73 74 65 72 65 6f 22 ["master_stereo"
3d30: 5d 2c 20 54 6f 6e 65 2e 44 65 73 74 69 6e 61 74 ], Tone.Destinat
3d40: 69 6f 6e 29 3b 0a 20 20 20 20 20 53 61 6d 70 6c ion);. Sampl
3d50: 65 28 22 6b 22 2c 20 30 2c 20 6e 75 6c 6c 2c 20 e("k", 0, null,
3d60: 2d 35 29 3b 0a 20 20 20 20 20 53 61 6d 70 6c 65 -5);. Sample
3d70: 28 22 73 6e 31 22 2c 31 2c 20 6e 75 6c 6c 2c 20 ("sn1",1, null,
3d80: 30 29 3b 0a 2d 20 20 20 20 53 61 6d 70 6c 65 28 0);.- Sample(
3d90: 22 68 22 2c 32 2c 20 6e 75 6c 6c 2c 20 2d 31 35 "h",2, null, -15
3da0: 29 3b 0a 2b 20 20 20 20 53 61 6d 70 6c 65 28 22 );.+ Sample("
3db0: 68 22 2c 32 2c 20 35 30 30 30 2c 20 2d 33 35 29 h",2, 5000, -35)
3dc0: 3b 0a 20 20 20 20 20 53 61 6d 70 6c 65 28 22 6d ;. Sample("m
3dd0: 22 2c 33 2c 20 6e 75 6c 6c 2c 20 2d 31 35 29 3b ",3, null, -15);
3de0: 0a 20 20 20 20 20 53 61 6d 70 6c 65 28 22 66 22 . Sample("f"
3df0: 2c 34 2c 20 6e 75 6c 6c 2c 20 2d 31 35 29 3b 0a ,4, null, -15);.
3e00: 2d 20 20 20 20 53 61 6d 70 6c 65 28 22 73 22 2c - Sample("s",
3e10: 35 2c 20 39 30 30 2c 20 2d 31 35 29 3b 0a 2d 0a 5, 900, -15);.-.
3e20: 2d 0a 2d 20 20 20 20 6d 65 6d 5b 22 63 22 5d 20 -.- mem["c"]
3e30: 3d 20 63 65 6c 6c 78 28 31 29 3b 0a 2d 20 20 20 = cellx(1);.-
3e40: 20 6d 65 6d 5b 22 63 22 5d 2e 6f 6e 43 68 61 6e mem["c"].onChan
3e50: 67 65 28 66 75 6e 63 74 69 6f 6e 20 28 65 29 20 ge(function (e)
3e60: 7b 0a 2d 20 20 20 20 20 20 20 20 76 61 72 20 76 {.- var v
3e70: 61 6c 20 3d 20 70 61 72 73 65 49 6e 74 28 65 5b al = parseInt(e[
3e80: 22 64 61 74 61 22 5d 2e 76 61 6c 75 65 29 3b 0a "data"].value);.
3e90: 2d 20 20 20 20 20 20 20 20 0a 2d 20 20 20 20 20 - .-
3ea0: 20 20 20 70 28 30 2c 6e 75 6c 6c 2c 20 6e 75 6c p(0,null, nul
3eb0: 6c 2c 20 22 32 34 6e 22 29 3b 0a 2d 20 20 20 20 l, "24n");.-
3ec0: 20 20 20 20 73 65 74 54 69 6d 65 6f 75 74 28 66 setTimeout(f
3ed0: 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 2d 20 20 unction () {.-
3ee0: 20 20 20 20 20 20 09 70 28 34 2c 20 6e 75 6c 6c .p(4, null
3ef0: 2c 20 6e 75 6c 6c 2c 20 22 34 6e 22 29 0a 2d 20 , null, "4n").-
3f00: 20 20 20 20 20 20 20 7d 2c 20 64 65 6c 74 61 20 }, delta
3f10: 2a 20 32 29 3b 0a 2d 20 20 20 20 20 20 20 20 0a * 2);.- .
3f20: 2d 20 20 20 20 7d 29 0a 2d 20 20 20 20 6d 65 6d - }).- mem
3f30: 5b 22 63 22 5d 2e 6f 6e 45 72 72 6f 72 28 66 75 ["c"].onError(fu
3f40: 6e 63 74 69 6f 6e 20 28 65 29 20 7b 0a 2d 20 20 nction (e) {.-
3f50: 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f console.lo
3f60: 67 28 65 29 3b 0a 2d 0a 2d 20 20 20 20 7d 29 0a g(e);.-.- }).
3f70: 2b 20 20 20 20 0a 2b 20 20 20 20 6e 61 6d 65 20 + .+ name
3f80: 3d 20 22 73 22 0a 2b 20 20 20 20 66 69 6c 74 65 = "s".+ filte
3f90: 72 20 3d 20 32 30 30 30 0a 2b 20 20 20 20 76 6f r = 2000.+ vo
3fa0: 6c 75 6d 65 20 3d 20 2d 31 35 20 0a 2b 20 20 20 lume = -15 .+
3fb0: 20 6d 65 6d 5b 6e 61 6d 65 20 2b 20 22 5f 66 69 mem[name + "_fi
3fc0: 6c 74 65 72 22 5d 20 3d 20 6e 65 77 20 54 6f 6e lter"] = new Ton
3fd0: 65 2e 46 69 6c 74 65 72 28 66 69 6c 74 65 72 2c e.Filter(filter,
3fe0: 20 27 6c 6f 77 70 61 73 73 27 2c 20 2d 39 36 29 'lowpass', -96)
3ff0: 3b 0a 2b 20 20 20 20 6d 65 6d 5b 6e 61 6d 65 20 ;.+ mem[name
4000: 2b 20 22 5f 64 65 6c 61 79 22 5d 20 3d 20 6e 65 + "_delay"] = ne
4010: 77 20 54 6f 6e 65 2e 46 65 65 64 62 61 63 6b 44 w Tone.FeedbackD
4020: 65 6c 61 79 28 22 34 6e 22 2c 20 30 2e 34 29 3b elay("4n", 0.4);
4030: 0a 2b 20 20 20 20 6d 65 6d 5b 6e 61 6d 65 20 2b .+ mem[name +
4040: 20 22 5f 63 68 61 6e 6e 65 6c 22 5d 20 3d 20 6e "_channel"] = n
4050: 65 77 20 54 6f 6e 65 2e 43 68 61 6e 6e 65 6c 28 ew Tone.Channel(
4060: 7b 63 68 61 6e 6e 65 6c 43 6f 75 6e 74 3a 20 32 {channelCount: 2
4070: 2c 20 76 6f 6c 75 6d 65 3a 20 76 6f 6c 75 6d 65 , volume: volume
4080: 2c 20 70 61 6e 3a 20 2d 30 2e 32 35 7d 29 2e 63 , pan: -0.25}).c
4090: 68 61 69 6e 28 6d 65 6d 5b 6e 61 6d 65 20 2b 20 hain(mem[name +
40a0: 22 5f 66 69 6c 74 65 72 22 5d 2c 20 20 20 6d 65 "_filter"], me
40b0: 6d 5b 6e 61 6d 65 20 2b 20 22 5f 64 65 6c 61 79 m[name + "_delay
40c0: 22 5d 2c 20 6d 65 6d 2e 6d 61 73 74 65 72 29 0a "], mem.master).
40d0: 2b 20 20 20 20 73 61 6d 70 6c 65 73 5b 35 5d 2e + samples[5].
40e0: 63 6f 6e 6e 65 63 74 28 6d 65 6d 5b 6e 61 6d 65 connect(mem[name
40f0: 20 2b 20 22 5f 63 68 61 6e 6e 65 6c 22 5d 29 3b + "_channel"]);
4100: 0a 2b 20 20 20 20 68 69 74 5f 6d 61 70 5b 6e 61 .+ hit_map[na
4110: 6d 65 5d 20 3d 20 35 3b 0a 2b 20 20 0a 2b 20 20 me] = 5;.+ .+
4120: 20 20 0a 2b 20 20 20 20 0a 20 0a 2b 20 20 20 20 .+ . .+
4130: 0a 2b 20 20 20 20 0a 2b 20 20 20 20 0a 2b 20 20 .+ .+ .+
4140: 20 20 0a 2b 20 20 20 20 53 61 6d 70 6c 65 28 22 .+ Sample("
4150: 6d 61 6e 61 67 65 72 22 2c 36 2c 20 6e 75 6c 6c manager",6, null
4160: 2c 20 2d 31 35 29 3b 0a 2b 20 20 20 20 53 61 6d , -15);.+ Sam
4170: 70 6c 65 28 22 6f 72 64 65 72 22 2c 37 2c 20 6e ple("order",7, n
4180: 75 6c 6c 2c 20 2d 31 35 29 3b 0a 2b 20 20 20 20 ull, -15);.+
4190: 53 61 6d 70 6c 65 28 22 63 72 22 2c 38 2c 20 6e Sample("cr",8, n
41a0: 75 6c 6c 2c 20 2d 31 35 29 3b 0a 2b 20 20 20 20 ull, -15);.+
41b0: 53 61 6d 70 6c 65 28 22 70 69 61 6e 6f 22 2c 39 Sample("piano",9
41c0: 2c 20 34 30 30 2c 20 2d 31 35 29 3b 0a 2b 20 20 , 400, -15);.+
41d0: 20 09 53 61 6d 70 6c 65 28 22 73 69 74 61 72 22 .Sample("sitar"
41e0: 2c 31 30 2c 20 35 30 30 30 2c 20 2d 31 35 29 3b ,10, 5000, -15);
41f0: 0a 2b 20 20 20 20 0a 20 20 20 20 20 63 6f 6e 73 .+ . cons
4200: 74 20 61 75 64 69 6f 20 3d 20 41 75 64 69 6f 28 t audio = Audio(
4210: 29 3b 0a 20 20 20 20 20 63 6f 6e 73 74 20 74 68 );. const th
4220: 72 65 65 20 3d 20 54 68 72 65 65 4f 68 55 6e 69 ree = ThreeOhUni
4230: 74 28 61 75 64 69 6f 2c 20 22 73 61 77 74 6f 6f t(audio, "sawtoo
4240: 74 68 22 2c 20 7b 0a 2d 20 20 20 20 20 20 20 20 th", {.-
4250: 20 20 20 20 22 63 75 74 6f 66 66 22 3a 20 38 36 "cutoff": 86
4260: 2c 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 22 ,.+ "
4270: 63 75 74 6f 66 66 22 3a 20 37 38 2c 0a 20 20 20 cutoff": 78,.
4280: 20 20 20 20 20 20 20 20 20 20 22 72 65 73 6f 6e "reson
4290: 61 6e 63 65 22 3a 20 31 35 2c 0a 20 20 20 20 20 ance": 15,.
42a0: 20 20 20 20 20 20 20 20 22 65 6e 76 4d 6f 64 22 "envMod"
42b0: 3a 20 34 30 30 30 2c 0a 20 20 20 20 20 20 20 20 : 4000,.
42c0: 20 20 20 20 20 22 64 65 63 61 79 22 3a 20 30 2e "decay": 0.
42d0: 35 0a 20 20 20 20 20 20 20 20 20 7d 0a 20 09 29 5. }. .)
42e0: 0a 2d 20 20 20 20 61 75 64 69 6f 2e 6d 61 73 74 .- audio.mast
42f0: 65 72 2e 69 6e 2e 67 61 69 6e 2e 76 61 6c 75 65 er.in.gain.value
4300: 20 3d 20 30 2e 31 3b 0a 2b 20 20 20 20 61 75 64 = 0.1;.+ aud
4310: 69 6f 2e 6d 61 73 74 65 72 2e 69 6e 2e 67 61 69 io.master.in.gai
4320: 6e 2e 76 61 6c 75 65 20 3d 20 30 3b 0a 20 20 20 n.value = 0;.
4330: 20 20 6d 65 6d 5b 22 74 68 72 65 65 22 5d 20 3d mem["three"] =
4340: 20 74 68 72 65 65 0a 20 20 20 20 20 0a 20 20 20 three. .
4350: 20 20 2f 2f 20 63 75 74 6f 66 66 20 5b 33 30 2c // cutoff [30,
4360: 20 37 30 30 5d 2c 20 34 30 30 0a 40 40 20 2d 31 700], 400.@@ -1
4370: 32 34 2c 37 20 2b 31 36 35 2c 37 20 40 40 20 66 24,7 +165,7 @@ f
4380: 75 6e 63 74 69 6f 6e 20 6f 6e 63 65 20 28 29 20 unction once ()
4390: 7b 0a 20 20 20 20 20 2f 2f 20 65 6e 76 4d 6f 64 {. // envMod
43a0: 3a 20 5b 30 2c 20 38 30 30 30 5d 2c 20 34 30 30 : [0, 8000], 400
43b0: 30 0a 20 20 20 20 20 2f 2f 20 64 65 63 61 79 3a 0. // decay:
43c0: 20 5b 30 2e 31 2c 20 30 2e 39 5d 2c 20 30 2e 35 [0.1, 0.9], 0.5
43d0: 0a 20 20 20 20 20 0a 2d 20 20 20 20 64 69 61 6c . .- dial
43e0: 73 5b 31 5d 5b 22 63 65 6c 6c 22 5d 28 30 2e 30 s[1]["cell"](0.0
43f0: 38 36 30 29 0a 2b 20 20 20 20 64 69 61 6c 73 5b 860).+ dials[
4400: 31 5d 5b 22 63 65 6c 6c 22 5d 28 30 2e 30 37 38 1]["cell"](0.078
4410: 32 35 29 0a 20 0a 20 20 20 20 20 64 69 61 6c 73 25). . dials
4420: 5b 31 5d 5b 22 63 65 6c 6c 22 5d 2e 6f 6e 43 68 [1]["cell"].onCh
4430: 61 6e 67 65 28 66 75 6e 63 74 69 6f 6e 20 28 65 ange(function (e
4440: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 76 61 72 ) {. var
4450: 20 76 61 6c 20 3d 20 70 61 72 73 65 46 6c 6f 61 val = parseFloa
4460: 74 28 65 5b 22 64 61 74 61 22 5d 2e 76 61 6c 75 t(e["data"].valu
4470: 65 29 3b 0a 40 40 20 2d 31 33 33 2c 32 35 20 2b e);.@@ -133,25 +
4480: 31 37 34 2c 31 32 38 20 40 40 20 66 75 6e 63 74 174,128 @@ funct
4490: 69 6f 6e 20 6f 6e 63 65 20 28 29 20 7b 0a 20 20 ion once () {.
44a0: 20 20 20 7d 29 0a 20 7d 0a 20 0a 2b 66 75 6e 63 }). }. .+func
44b0: 74 69 6f 6e 20 74 77 65 61 6b 28 29 20 7b 0a 2b tion tweak() {.+
44c0: 20 0a 2b 20 20 20 20 76 61 72 09 73 6e 61 72 65 .+ var.snare
44d0: 5f 63 6f 75 6e 74 20 3d 20 63 65 6c 6c 78 28 31 _count = cellx(1
44e0: 36 29 3b 0a 2b 20 20 20 20 0a 2b 20 20 20 20 0a 6);.+ .+ .
44f0: 2b 20 20 20 20 0a 2b 20 20 20 20 73 6e 61 72 65 + .+ snare
4500: 5f 63 6f 75 6e 74 2e 6f 6e 43 68 61 6e 67 65 28 _count.onChange(
4510: 66 75 6e 63 74 69 6f 6e 20 28 65 29 20 7b 0a 2b function (e) {.+
4520: 20 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 20 var val
4530: 3d 20 70 61 72 73 65 49 6e 74 28 65 5b 22 64 61 = parseInt(e["da
4540: 74 61 22 5d 2e 76 61 6c 75 65 29 3b 0a 2b 20 20 ta"].value);.+
4550: 20 20 20 20 20 20 69 66 20 28 76 61 6c 20 3d 3d if (val ==
4560: 20 32 32 29 20 7b 0a 2b 20 20 20 20 20 20 09 20 22) {.+ .
4570: 09 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 3d .current_scene =
4580: 20 22 66 69 6e 22 3b 0a 2b 09 09 09 70 31 28 38 "fin";.+...p1(8
4590: 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 31 32 , null, null, 12
45a0: 2e 32 35 29 3b 0a 2b 09 20 20 20 20 7d 20 65 6c .25);.+. } el
45b0: 73 65 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 se {.+
45c0: 20 70 28 31 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c p(1, null, null
45d0: 2c 20 22 34 6e 22 29 0a 2b 20 20 20 20 20 20 20 , "4n").+
45e0: 20 7d 0a 2b 20 20 20 20 7d 29 0a 2b 20 20 20 20 }.+ }).+
45f0: 0a 2b 20 20 20 20 0a 2b 20 20 20 20 0a 2b 20 20 .+ .+ .+
4600: 20 20 4d 6f 75 73 65 74 72 61 70 2e 62 69 6e 64 Mousetrap.bind
4610: 28 5b 27 66 32 27 5d 2c 20 66 75 6e 63 74 69 6f (['f2'], functio
4620: 6e 28 65 29 20 7b 0a 2b 20 20 20 20 0a 2b 20 20 n(e) {.+ .+
4630: 20 20 09 73 6e 61 72 65 5f 63 6f 75 6e 74 28 73 .snare_count(s
4640: 6e 61 72 65 5f 63 6f 75 6e 74 28 29 20 2b 20 31 nare_count() + 1
4650: 29 0a 2b 20 20 20 20 20 20 20 20 69 66 20 28 73 ).+ if (s
4660: 6e 61 72 65 5f 63 6f 75 6e 74 28 29 20 3c 3d 20 nare_count() <=
4670: 32 30 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20) {.+
4680: 20 73 65 74 54 69 6d 65 6f 75 74 28 66 75 6e 63 setTimeout(func
4690: 74 69 6f 6e 20 28 29 20 7b 0a 2b 20 20 20 20 20 tion () {.+
46a0: 20 20 20 20 20 20 20 20 20 70 28 30 2c 20 6e 75 p(0, nu
46b0: 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 32 34 6e 22 2c ll, null, "24n",
46c0: 20 6e 75 6c 6c 20 29 3b 0a 2b 20 20 20 20 20 20 null );.+
46d0: 20 20 20 20 20 20 20 20 20 20 73 65 74 54 69 6d setTim
46e0: 65 6f 75 74 28 66 75 6e 63 74 69 6f 6e 20 28 29 eout(function ()
46f0: 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 {.+
4700: 20 20 20 20 20 20 20 20 70 28 38 2c 20 6e 75 6c p(8, nul
4710: 6c 2c 20 6e 75 6c 6c 2c 20 22 32 6e 22 20 29 3b l, null, "2n" );
4720: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .+
4730: 20 20 20 20 20 20 70 28 31 30 2c 20 30 2e 35 2c p(10, 0.5,
4740: 20 22 41 32 22 2c 20 31 29 3b 0a 2b 20 20 20 20 "A2", 1);.+
4750: 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 20 64 }, d
4760: 65 6c 74 61 20 2a 20 32 29 0a 2b 20 20 0a 2b 20 elta * 2).+ .+
4770: 20 20 20 20 20 20 20 20 20 7d 2c 20 64 65 6c 74 }, delt
4780: 61 20 2a 20 31 2e 35 29 0a 2b 20 20 20 20 20 20 a * 1.5).+
4790: 20 20 7d 0a 2b 20 20 20 20 20 20 20 20 0a 2b 09 }.+ .+.
47a0: 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 return false
47b0: 3b 0a 2b 20 20 20 20 7d 29 0a 2b 0a 2b 0a 2b 20 ;.+ }).+.+.+
47c0: 20 20 20 0a 2b 7d 0a 2b 0a 20 0a 20 0a 20 74 72 .+}.+. . . tr
47d0: 61 6e 73 69 74 69 6f 6e 20 3d 20 6f 6e 63 65 3b ansition = once;
47e0: 0a 2b 0a 20 69 66 20 28 62 61 72 73 20 3c 3d 20 .+. if (bars <=
47f0: 32 29 20 7b 0a 20 09 63 75 72 72 65 6e 74 5f 73 2) {. .current_s
4800: 63 65 6e 65 20 3d 20 22 69 6e 74 72 6f 22 3b 0a cene = "intro";.
4810: 20 7d 20 65 6c 73 65 20 7b 0a 2d 09 63 75 72 72 } else {.-.curr
4820: 65 6e 74 5f 73 63 65 6e 65 20 3d 20 22 6d 61 69 ent_scene = "mai
4830: 6e 22 3b 0a 2b 2f 2f 09 20 20 20 20 20 6d 65 6d n";.+//. mem
4840: 5b 22 74 68 72 65 65 22 5d 2e 73 74 65 70 28 22 ["three"].step("
4850: 6f 66 66 22 29 3b 0a 2b 69 66 20 28 62 61 72 73 off");.+if (bars
4860: 20 3d 3d 20 33 29 20 7b 0a 2b 09 65 76 61 6c 5f == 3) {.+.eval_
4870: 67 75 61 72 64 20 3f 20 63 75 65 28 22 53 74 61 guard ? cue("Sta
4880: 72 74 20 69 6e 74 72 6f 22 29 20 3a 20 22 22 3b rt intro") : "";
4890: 0a 2b 09 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 .+.current_scene
48a0: 20 3d 20 22 69 6e 74 72 6f 22 3b 0a 2b 0a 2b 7d = "intro";.+.+}
48b0: 0a 2b 0a 2b 69 66 20 28 62 61 72 73 20 3d 3d 20 .+.+if (bars ==
48c0: 35 29 20 7b 0a 2b 09 65 76 61 6c 5f 67 75 61 72 5) {.+.eval_guar
48d0: 64 20 3f 20 63 75 65 28 22 53 74 61 72 74 20 64 d ? cue("Start d
48e0: 72 75 6d 73 22 29 20 3a 20 22 22 3b 0a 2b 20 20 rums") : "";.+
48f0: 20 20 09 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 .current_scene
4900: 20 3d 20 22 6d 61 69 6e 22 3b 0a 2b 7d 0a 2b 0a = "main";.+}.+.
4910: 2b 0a 2b 0a 2b 0a 2b 69 66 20 28 62 61 72 73 20 +.+.+.+if (bars
4920: 3d 3d 20 31 32 29 20 7b 0a 2b 09 65 76 61 6c 5f == 12) {.+.eval_
4930: 67 75 61 72 64 20 3f 20 63 75 65 28 22 41 64 64 guard ? cue("Add
4940: 20 62 61 73 73 22 29 3a 20 22 22 3b 0a 2b 20 20 bass"): "";.+
4950: 20 20 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 current_scene
4960: 3d 20 22 62 61 73 73 22 3b 0a 2b 0a 2b 7d 0a 2b = "bass";.+.+}.+
4970: 0a 2b 69 66 20 28 62 61 72 73 20 3d 3d 20 33 32 .+if (bars == 32
4980: 29 20 7b 0a 2b 09 65 76 61 6c 5f 67 75 61 72 64 ) {.+.eval_guard
4990: 20 3f 63 75 65 28 22 52 65 76 65 72 73 65 20 22 ?cue("Reverse "
49a0: 29 3a 20 22 22 3b 0a 2b 20 20 20 20 63 75 72 72 ): "";.+ curr
49b0: 65 6e 74 5f 73 63 65 6e 65 20 3d 20 22 62 61 73 ent_scene = "bas
49c0: 73 22 3b 0a 2b 0a 2b 7d 0a 2b 0a 2b 69 66 20 28 s";.+.+}.+.+if (
49d0: 62 61 72 73 20 3d 3d 20 34 32 29 20 7b 0a 2b 09 bars == 42) {.+.
49e0: 65 76 61 6c 5f 67 75 61 72 64 20 3f 20 63 75 65 eval_guard ? cue
49f0: 28 22 45 6e 64 20 22 29 3a 20 22 22 0a 2b 20 20 ("End "): "".+
4a00: 20 20 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 current_scene
4a10: 3d 20 22 65 6e 64 22 3b 0a 2b 0a 2b 7d 0a 2b 0a = "end";.+.+}.+.
4a20: 2b 69 66 20 28 62 61 72 73 20 3d 3d 20 34 36 29 +if (bars == 46)
4a30: 20 7b 0a 2b 09 65 76 61 6c 5f 67 75 61 72 64 20 {.+.eval_guard
4a40: 3f 20 63 75 65 28 22 53 6f 6c 6f 20 22 29 3a 20 ? cue("Solo "):
4a50: 22 22 0a 2b 20 20 20 20 63 75 72 72 65 6e 74 5f "".+ current_
4a60: 73 63 65 6e 65 20 3d 20 22 73 6f 6c 6f 22 3b 0a scene = "solo";.
4a70: 2b 7d 0a 2b 0a 2b 0a 2b 20 20 20 20 74 72 61 6e +}.+.+.+ tran
4a80: 73 69 74 69 6f 6e 20 3d 20 74 77 65 61 6b 3b 0a sition = tweak;.
4a90: 20 7d 0a 20 0a 2d 63 75 72 72 65 6e 74 5f 73 63 }. .-current_sc
4aa0: 65 6e 65 20 3d 20 22 62 61 73 73 22 3b 0a 20 0a ene = "bass";. .
4ab0: 20 70 61 74 74 65 72 6e 73 20 3d 20 65 76 61 6c patterns = eval
4ac0: 28 60 24 7b 63 75 72 72 65 6e 74 5f 73 63 65 6e (`${current_scen
4ad0: 65 7d 60 29 3b 0a 20 61 6c 77 61 79 73 28 29 3b e}`);. always();
4ae0: 0a 20 0a 2b 69 66 20 28 74 72 61 63 6b 5f 6e 6f . .+if (track_no
4af0: 20 3d 3d 20 31 29 20 7b 0a 2b 69 66 20 28 63 6f == 1) {.+if (co
4b00: 75 6e 74 20 3d 3d 20 30 29 20 7b 0a 2b 09 63 75 unt == 0) {.+.cu
4b10: 65 28 22 53 61 6d 70 6c 65 22 29 0a 2b 20 2f 2f e("Sample").+ //
4b20: 20 20 20 70 31 28 38 2c 20 6e 75 6c 6c 2c 20 6e p1(8, null, n
4b30: 75 6c 6c 2c 20 31 32 2e 32 35 29 3b 0a 2b 7d 0a ull, 12.25);.+}.
4b40: 2b 7d 0a 2b 0a 2b 20 20 20 20 20 0a 2b 0a 20 69 +}.+.+ .+. i
4b50: 66 20 28 69 73 48 69 74 29 20 7b 0a 20 20 20 20 f (isHit) {.
4b60: 20 69 66 20 28 63 75 72 72 65 6e 74 5f 73 63 65 if (current_sce
4b70: 6e 65 20 3d 3d 20 22 69 6e 74 72 6f 22 29 20 7b ne == "intro") {
4b80: 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 74 72 . if (tr
4b90: 61 63 6b 5f 6e 6f 20 3d 3d 20 31 29 20 7b 0a 2d ack_no == 1) {.-
4ba0: 20 20 20 20 20 20 20 20 20 20 20 20 70 28 33 2c p(3,
4bb0: 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 31 6e null, null, "1n
4bc0: 22 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 70 ");.+ p
4bd0: 28 33 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 (3, null, null,
4be0: 22 31 6e 22 29 3b 0a 2b 20 20 20 20 20 20 20 20 "1n");.+
4bf0: 7d 0a 2b 20 20 20 20 7d 20 65 6c 73 65 20 69 66 }.+ } else if
4c00: 20 28 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 (current_scene
4c10: 3d 3d 20 22 66 69 6e 22 29 20 7b 0a 2b 20 20 20 == "fin") {.+
4c20: 0a 2b 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 .+ } else if
4c30: 28 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 3d (current_scene =
4c40: 3d 20 22 73 6f 6c 6f 22 29 20 7b 0a 2b 0a 2b 20 = "solo") {.+.+
4c50: 0a 2b 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 .+ } else if
4c60: 28 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 3d (current_scene =
4c70: 3d 20 22 65 6e 64 22 29 20 7b 0a 2b 20 20 20 20 = "end") {.+
4c80: 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f if (track_no
4c90: 20 3d 3d 20 31 29 20 7b 0a 2b 20 20 20 20 20 20 == 1) {.+
4ca0: 20 20 20 20 20 20 70 28 30 2c 20 6d 65 74 61 5b p(0, meta[
4cb0: 74 69 63 6b 5d 5b 22 76 6f 6c 75 6d 65 22 5d 2c tick]["volume"],
4cc0: 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 70 69 74 meta[tick]["pit
4cd0: 63 68 22 5d 2c 20 22 32 34 6e 22 2c 20 6d 65 74 ch"], "24n", met
4ce0: 61 5b 74 69 63 6b 5d 5b 22 64 65 6c 61 79 22 5d a[tick]["delay"]
4cf0: 20 29 3b 0a 20 20 20 20 20 20 20 20 20 7d 0a 2b );. }.+
4d00: 20 20 20 20 20 20 20 20 69 66 20 28 74 72 61 63 if (trac
4d10: 6b 5f 6e 6f 20 3d 3d 20 32 29 20 7b 0a 2b 20 20 k_no == 2) {.+
4d20: 20 20 20 20 20 20 20 20 20 20 70 28 31 29 3b 0a p(1);.
4d30: 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 + }.+
4d40: 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f if (track_no
4d50: 20 3d 3d 20 33 29 20 7b 0a 2b 20 20 20 20 20 20 == 3) {.+
4d60: 20 20 20 20 20 20 70 28 32 29 0a 2b 20 20 20 20 p(2).+
4d70: 20 20 20 20 7d 0a 2b 20 20 20 20 20 20 20 20 0a }.+ .
4d80: 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 } else if (
4d90: 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 3d 3d current_scene ==
4da0: 20 22 6d 61 69 6e 22 29 20 7b 0a 20 20 20 20 20 "main") {.
4db0: 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f if (track_no
4dc0: 20 3d 3d 20 31 29 20 7b 0a 20 20 20 20 20 20 20 == 1) {.
4dd0: 20 20 20 20 20 20 70 28 30 2c 20 6d 65 74 61 5b p(0, meta[
4de0: 74 69 63 6b 5d 5b 22 76 6f 6c 75 6d 65 22 5d 2c tick]["volume"],
4df0: 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 70 69 74 meta[tick]["pit
4e00: 63 68 22 5d 2c 20 22 32 34 6e 22 2c 20 6d 65 74 ch"], "24n", met
4e10: 61 5b 74 69 63 6b 5d 5b 22 64 65 6c 61 79 22 5d a[tick]["delay"]
4e20: 20 29 3b 0a 40 40 20 2d 31 36 35 2c 31 38 20 2b );.@@ -165,18 +
4e30: 33 30 39 2c 32 36 20 40 40 20 69 66 20 28 69 73 309,26 @@ if (is
4e40: 48 69 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 Hit) {.
4e50: 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 if (track_no ==
4e60: 34 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 4) {.
4e70: 20 20 70 28 33 2c 20 6e 75 6c 6c 2c 20 6e 75 6c p(3, null, nul
4e80: 6c 2c 20 22 31 6e 22 29 3b 0a 20 20 20 20 20 20 l, "1n");.
4e90: 20 20 20 7d 0a 2d 20 20 20 20 20 20 20 20 20 69 }.- i
4ea0: 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 35 f (track_no == 5
4eb0: 29 20 7b 0a 2d 20 20 20 20 20 20 20 20 20 20 20 ) {.-
4ec0: 20 70 28 35 2c 20 30 2e 33 2c 20 6d 65 74 61 5b p(5, 0.3, meta[
4ed0: 74 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d 2c 20 tick]["pitch"],
4ee0: 22 31 6e 22 29 3b 0a 2b 20 20 20 20 20 20 20 20 "1n");.+
4ef0: 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 if (track_no ==
4f00: 35 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 5) {.+
4f10: 20 20 69 66 20 28 6d 65 74 61 5b 74 69 63 6b 5d if (meta[tick]
4f20: 5b 22 70 69 74 63 68 22 5d 29 20 7b 0a 2b 20 20 ["pitch"]) {.+
4f30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 me
4f40: 6d 5b 22 74 68 72 65 65 22 5d 2e 73 74 65 70 28 m["three"].step(
4f50: 7b 22 67 6c 69 64 65 22 3a 20 74 72 75 65 2c 20 {"glide": true,
4f60: 22 61 63 63 65 6e 74 22 3a 20 66 61 6c 73 65 2c "accent": false,
4f70: 20 22 6e 6f 74 65 22 3a 20 6d 65 74 61 5b 74 69 "note": meta[ti
4f80: 63 6b 5d 5b 22 70 69 74 63 68 22 5d 7d 29 3b 0a ck]["pitch"]});.
4f90: 2b 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 + } e
4fa0: 6c 73 65 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 lse {.+
4fb0: 20 20 20 20 20 20 20 6d 65 6d 5b 22 74 68 72 65 mem["thre
4fc0: 65 22 5d 2e 73 74 65 70 28 22 6f 66 66 22 29 3b e"].step("off");
4fd0: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a .+ }.
4fe0: 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 + }.+
4ff0: 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f if (track_no
5000: 20 3d 3d 20 36 29 20 7b 0a 2b 20 20 20 20 20 20 == 6) {.+
5010: 20 20 20 20 20 70 28 35 2c 20 6e 75 6c 6c 2c 20 p(5, null,
5020: 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 70 69 74 63 meta[tick]["pitc
5030: 68 22 5d 2c 20 22 31 6e 22 29 3b 0a 20 20 20 20 h"], "1n");.
5040: 20 20 20 20 20 7d 0a 2d 20 20 20 20 7d 20 65 6c }.- } el
5050: 73 65 20 69 66 20 28 63 75 72 72 65 6e 74 5f 73 se if (current_s
5060: 63 65 6e 65 20 3d 3d 20 22 62 61 73 73 22 29 20 cene == "bass")
5070: 7b 0a 2b 20 20 20 20 0a 2b 20 20 20 20 20 7d 20 {.+ .+ }
5080: 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74 else if (current
5090: 5f 73 63 65 6e 65 20 3d 3d 20 22 62 61 73 73 22 _scene == "bass"
50a0: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 69 66 20 ) {. if
50b0: 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 31 29 20 (track_no == 1)
50c0: 7b 0a 2d 20 20 20 20 20 20 20 20 20 20 20 20 70 {.- p
50d0: 28 30 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 (0, meta[tick]["
50e0: 76 6f 6c 75 6d 65 22 5d 2c 20 6d 65 74 61 5b 74 volume"], meta[t
50f0: 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d 2c 20 22 ick]["pitch"], "
5100: 32 34 6e 22 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 24n", meta[tick]
5110: 5b 22 64 65 6c 61 79 22 5d 20 29 3b 0a 2b 20 20 ["delay"] );.+
5120: 20 20 20 20 20 20 20 20 70 28 30 2c 20 6d 65 74 p(0, met
5130: 61 5b 74 69 63 6b 5d 5b 22 76 6f 6c 75 6d 65 22 a[tick]["volume"
5140: 5d 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 70 ], meta[tick]["p
5150: 69 74 63 68 22 5d 2c 20 22 32 34 6e 22 2c 20 6d itch"], "24n", m
5160: 65 74 61 5b 74 69 63 6b 5d 5b 22 64 65 6c 61 79 eta[tick]["delay
5170: 22 5d 20 29 3b 0a 20 20 20 20 20 20 20 20 20 7d "] );. }
5180: 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 74 72 . if (tr
5190: 61 63 6b 5f 6e 6f 20 3d 3d 20 32 29 20 7b 0a 20 ack_no == 2) {.
51a0: 20 20 20 20 20 20 20 20 20 20 20 20 70 28 31 29 p(1)
51b0: 3b 0a 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 ;. }.
51c0: 20 20 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f if (track_
51d0: 6e 6f 20 3d 3d 20 33 29 20 7b 0a 2d 20 20 20 20 no == 3) {.-
51e0: 20 20 20 20 20 20 20 20 70 28 32 29 0a 2b 20 20 p(2).+
51f0: 20 20 20 20 20 20 20 20 20 70 28 32 29 0a 20 20 p(2).
5200: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 }.
5210: 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d if (track_no =
5220: 3d 20 34 29 20 7b 0a 20 20 20 20 20 20 20 20 20 = 4) {.
5230: 20 20 20 20 70 28 33 2c 20 6e 75 6c 6c 2c 20 6e p(3, null, n
5240: 75 6c 6c 2c 20 22 31 6e 22 29 3b 0a 40 40 20 2d ull, "1n");.@@ -
5250: 31 38 39 2c 31 33 20 2b 33 34 31 2c 31 33 20 40 189,13 +341,13 @
5260: 40 20 69 66 20 28 69 73 48 69 74 29 20 7b 0a 20 @ if (isHit) {.
5270: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 }.
5280: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 }.
5290: 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d if (track_no =
52a0: 3d 20 36 29 20 7b 0a 2d 20 20 20 20 20 20 20 20 = 6) {.-
52b0: 20 20 20 70 28 35 2c 20 6e 75 6c 6c 2c 20 6d 65 p(5, null, me
52c0: 74 61 5b 74 69 63 6b 5d 5b 22 70 69 74 63 68 22 ta[tick]["pitch"
52d0: 5d 2c 20 22 31 6e 22 29 3b 0a 2d 20 20 20 20 20 ], "1n");.-
52e0: 20 20 20 7d 0a 2d 20 20 20 20 20 20 20 20 69 66 }.- if
52f0: 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 37 29 (track_no == 7)
5300: 20 7b 0a 2d 20 20 20 20 20 20 20 20 20 20 20 20 {.-
5310: 6d 65 6d 5b 22 63 22 5d 28 6d 65 6d 5b 22 63 22 mem["c"](mem["c"
5320: 5d 28 29 20 2b 20 31 29 3b 0a 2b 20 2f 2f 20 20 ]() + 1);.+ //
5330: 20 20 20 20 20 20 20 20 70 28 35 2c 20 30 2e 31 p(5, 0.1
5340: 35 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 70 5, meta[tick]["p
5350: 69 74 63 68 22 5d 2c 20 31 29 3b 0a 2b 09 09 2f itch"], 1);.+../
5360: 2f 09 70 28 39 2c 20 31 2c 20 6d 65 74 61 5b 74 /.p(9, 1, meta[t
5370: 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d 2c 20 31 ick]["pitch"], 1
5380: 29 3b 0a 2b 0a 20 20 20 20 20 20 20 20 20 7d 0a );.+. }.
5390: 20 20 20 20 20 7d 20 0a 20 0a 2b 0a 20 7d 0a 20 } . .+. }.
53a0: 0a 20 0a 64 69 66 66 20 2d 2d 67 69 74 20 61 2f . .diff --git a/
53b0: 74 61 67 73 20 62 2f 74 61 67 73 0a 64 65 6c 65 tags b/tags.dele
53c0: 74 65 64 20 66 69 6c 65 20 6d 6f 64 65 20 31 30 ted file mode 10
53d0: 30 36 34 34 0a 69 6e 64 65 78 20 65 65 31 37 63 0644.index ee17c
53e0: 38 39 2e 2e 30 30 30 30 30 30 30 0a 2d 2d 2d 20 89..0000000.---
53f0: 61 2f 74 61 67 73 0a 2b 2b 2b 20 2f 64 65 76 2f a/tags.+++ /dev/
5400: 6e 75 6c 6c 0a 40 40 20 2d 31 2c 31 30 20 2b 30 null.@@ -1,10 +0
5410: 2c 30 20 40 40 0a 2d 21 5f 54 41 47 5f 46 49 4c ,0 @@.-!_TAG_FIL
5420: 45 5f 46 4f 52 4d 41 54 09 32 09 2f 65 78 74 65 E_FORMAT.2./exte
5430: 6e 64 65 64 20 66 6f 72 6d 61 74 3b 20 2d 2d 66 nded format; --f
5440: 6f 72 6d 61 74 3d 31 20 77 69 6c 6c 20 6e 6f 74 ormat=1 will not
5450: 20 61 70 70 65 6e 64 20 3b 22 20 74 6f 20 6c 69 append ;" to li
5460: 6e 65 73 2f 0a 2d 21 5f 54 41 47 5f 46 49 4c 45 nes/.-!_TAG_FILE
5470: 5f 53 4f 52 54 45 44 09 31 09 2f 30 3d 75 6e 73 _SORTED.1./0=uns
5480: 6f 72 74 65 64 2c 20 31 3d 73 6f 72 74 65 64 2c orted, 1=sorted,
5490: 20 32 3d 66 6f 6c 64 63 61 73 65 2f 0a 2d 21 5f 2=foldcase/.-!_
54a0: 54 41 47 5f 50 52 4f 47 52 41 4d 5f 41 55 54 48 TAG_PROGRAM_AUTH
54b0: 4f 52 09 44 61 72 72 65 6e 20 48 69 65 62 65 72 OR.Darren Hieber
54c0: 74 09 2f 64 68 69 65 62 65 72 74 40 75 73 65 72 t./dhiebert@user
54d0: 73 2e 73 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 s.sourceforge.ne
54e0: 74 2f 0a 2d 21 5f 54 41 47 5f 50 52 4f 47 52 41 t/.-!_TAG_PROGRA
54f0: 4d 5f 4e 41 4d 45 09 45 78 75 62 65 72 61 6e 74 M_NAME.Exuberant
5500: 20 43 74 61 67 73 09 2f 2f 0a 2d 21 5f 54 41 47 Ctags.//.-!_TAG
5510: 5f 50 52 4f 47 52 41 4d 5f 55 52 4c 09 68 74 74 _PROGRAM_URL.htt
5520: 70 3a 2f 2f 63 74 61 67 73 2e 73 6f 75 72 63 65 p://ctags.source
5530: 66 6f 72 67 65 2e 6e 65 74 09 2f 6f 66 66 69 63 forge.net./offic
5540: 69 61 6c 20 73 69 74 65 2f 0a 2d 21 5f 54 41 47 ial site/.-!_TAG
5550: 5f 50 52 4f 47 52 41 4d 5f 56 45 52 53 49 4f 4e _PROGRAM_VERSION
5560: 09 35 2e 38 09 2f 2f 0a 2d 70 09 66 69 72 73 74 .5.8.//.-p.first
5570: 2e 6a 73 09 2f 5e 66 75 6e 63 74 69 6f 6e 20 70 .js./^function p
5580: 28 73 2c 20 76 6f 6c 2c 20 20 6e 6f 74 65 2c 20 (s, vol, note,
5590: 20 6c 65 6e 2c 20 64 65 6c 61 79 29 20 7b 24 2f len, delay) {$/
55a0: 3b 22 09 66 0a 2d 70 2e 64 72 61 77 09 66 69 72 ;".f.-p.draw.fir
55b0: 73 74 2e 6a 73 09 2f 5e 20 20 20 20 20 20 20 20 st.js./^
55c0: 70 2e 64 72 61 77 20 3d 20 66 75 6e 63 74 69 6f p.draw = functio
55d0: 6e 28 29 20 7b 24 2f 3b 22 09 66 0a 2d 70 2e 73 n() {$/;".f.-p.s
55e0: 65 74 75 70 09 66 69 72 73 74 2e 6a 73 09 2f 5e etup.first.js./^
55f0: 20 20 20 20 20 20 20 20 70 2e 73 65 74 75 70 20 p.setup
5600: 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 24 2f = function() {$/
5610: 3b 22 09 66 0a 2d 72 65 6e 64 65 72 5f 6c 6f 6f ;".f.-render_loo
5620: 70 09 66 69 72 73 74 2e 6a 73 09 2f 5e 20 20 20 p.first.js./^
5630: 20 72 65 6e 64 65 72 5f 6c 6f 6f 70 20 3d 20 66 render_loop = f
5640: 75 6e 63 74 69 6f 6e 20 28 29 20 7b 24 2f 3b 22 unction () {$/;"
5650: 09 66 0a 64 69 66 66 20 2d 2d 67 69 74 20 61 2f .f.diff --git a/
5660: 74 61 67 73 2e 6c 6f 63 6b 20 62 2f 74 61 67 73 tags.lock b/tags
5670: 2e 6c 6f 63 6b 0a 64 65 6c 65 74 65 64 20 66 69 .lock.deleted fi
5680: 6c 65 20 6d 6f 64 65 20 31 30 30 36 34 34 0a 69 le mode 100644.i
5690: 6e 64 65 78 20 30 37 63 61 63 34 65 2e 2e 30 30 ndex 07cac4e..00
56a0: 30 30 30 30 30 0a 2d 2d 2d 20 61 2f 74 61 67 73 00000.--- a/tags
56b0: 2e 6c 6f 63 6b 0a 2b 2b 2b 20 2f 64 65 76 2f 6e .lock.+++ /dev/n
56c0: 75 6c 6c 0a 40 40 20 2d 31 20 2b 30 2c 30 20 40 ull.@@ -1 +0,0 @
56d0: 40 0a 2d 34 35 36 35 38 0a 64 69 66 66 20 2d 2d @.-45658.diff --
56e0: 67 69 74 20 61 2f 74 61 67 73 2e 74 65 6d 70 20 git a/tags.temp
56f0: 62 2f 74 61 67 73 2e 74 65 6d 70 0a 64 65 6c 65 b/tags.temp.dele
5700: 74 65 64 20 66 69 6c 65 20 6d 6f 64 65 20 31 30 ted file mode 10
5710: 30 36 34 34 0a 69 6e 64 65 78 20 65 65 31 37 63 0644.index ee17c
5720: 38 39 2e 2e 30 30 30 30 30 30 30 0a 2d 2d 2d 20 89..0000000.---
5730: 61 2f 74 61 67 73 2e 74 65 6d 70 0a 2b 2b 2b 20 a/tags.temp.+++
5740: 2f 64 65 76 2f 6e 75 6c 6c 0a 40 40 20 2d 31 2c /dev/null.@@ -1,
5750: 31 30 20 2b 30 2c 30 20 40 40 0a 2d 21 5f 54 41 10 +0,0 @@.-!_TA
5760: 47 5f 46 49 4c 45 5f 46 4f 52 4d 41 54 09 32 09 G_FILE_FORMAT.2.
5770: 2f 65 78 74 65 6e 64 65 64 20 66 6f 72 6d 61 74 /extended format
5780: 3b 20 2d 2d 66 6f 72 6d 61 74 3d 31 20 77 69 6c ; --format=1 wil
5790: 6c 20 6e 6f 74 20 61 70 70 65 6e 64 20 3b 22 20 l not append ;"
57a0: 74 6f 20 6c 69 6e 65 73 2f 0a 2d 21 5f 54 41 47 to lines/.-!_TAG
57b0: 5f 46 49 4c 45 5f 53 4f 52 54 45 44 09 31 09 2f _FILE_SORTED.1./
57c0: 30 3d 75 6e 73 6f 72 74 65 64 2c 20 31 3d 73 6f 0=unsorted, 1=so
57d0: 72 74 65 64 2c 20 32 3d 66 6f 6c 64 63 61 73 65 rted, 2=foldcase
57e0: 2f 0a 2d 21 5f 54 41 47 5f 50 52 4f 47 52 41 4d /.-!_TAG_PROGRAM
57f0: 5f 41 55 54 48 4f 52 09 44 61 72 72 65 6e 20 48 _AUTHOR.Darren H
5800: 69 65 62 65 72 74 09 2f 64 68 69 65 62 65 72 74 iebert./dhiebert
5810: 40 75 73 65 72 73 2e 73 6f 75 72 63 65 66 6f 72 @users.sourcefor
5820: 67 65 2e 6e 65 74 2f 0a 2d 21 5f 54 41 47 5f 50 ge.net/.-!_TAG_P
5830: 52 4f 47 52 41 4d 5f 4e 41 4d 45 09 45 78 75 62 ROGRAM_NAME.Exub
5840: 65 72 61 6e 74 20 43 74 61 67 73 09 2f 2f 0a 2d erant Ctags.//.-
5850: 21 5f 54 41 47 5f 50 52 4f 47 52 41 4d 5f 55 52 !_TAG_PROGRAM_UR
5860: 4c 09 68 74 74 70 3a 2f 2f 63 74 61 67 73 2e 73 L.http://ctags.s
5870: 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 74 09 2f ourceforge.net./
5880: 6f 66 66 69 63 69 61 6c 20 73 69 74 65 2f 0a 2d official site/.-
5890: 21 5f 54 41 47 5f 50 52 4f 47 52 41 4d 5f 56 45 !_TAG_PROGRAM_VE
58a0: 52 53 49 4f 4e 09 35 2e 38 09 2f 2f 0a 2d 70 09 RSION.5.8.//.-p.
58b0: 66 69 72 73 74 2e 6a 73 09 2f 5e 66 75 6e 63 74 first.js./^funct
58c0: 69 6f 6e 20 70 28 73 2c 20 76 6f 6c 2c 20 20 6e ion p(s, vol, n
58d0: 6f 74 65 2c 20 20 6c 65 6e 2c 20 64 65 6c 61 79 ote, len, delay
58e0: 29 20 7b 24 2f 3b 22 09 66 0a 2d 70 2e 64 72 61 ) {$/;".f.-p.dra
58f0: 77 09 66 69 72 73 74 2e 6a 73 09 2f 5e 20 20 20 w.first.js./^
5900: 20 20 20 20 20 70 2e 64 72 61 77 20 3d 20 66 75 p.draw = fu
5910: 6e 63 74 69 6f 6e 28 29 20 7b 24 2f 3b 22 09 66 nction() {$/;".f
5920: 0a 2d 70 2e 73 65 74 75 70 09 66 69 72 73 74 2e .-p.setup.first.
5930: 6a 73 09 2f 5e 20 20 20 20 20 20 20 20 70 2e 73 js./^ p.s
5940: 65 74 75 70 20 3d 20 66 75 6e 63 74 69 6f 6e 28 etup = function(
5950: 29 20 7b 24 2f 3b 22 09 66 0a 2d 72 65 6e 64 65 ) {$/;".f.-rende
5960: 72 5f 6c 6f 6f 70 09 66 69 72 73 74 2e 6a 73 09 r_loop.first.js.
5970: 2f 5e 20 20 20 20 72 65 6e 64 65 72 5f 6c 6f 6f /^ render_loo
5980: 70 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 p = function ()
5990: 7b 24 2f 3b 22 09 66 0a 0a 63 6f 6d 6d 69 74 20 {$/;".f..commit
59a0: 66 34 61 30 34 65 61 63 66 37 65 64 36 37 37 66 f4a04eacf7ed677f
59b0: 36 62 36 30 66 62 30 65 61 39 34 34 32 32 39 61 6b60fb0ea944229a
59c0: 30 31 36 66 34 62 36 31 0a 41 75 74 68 6f 72 3a 016f4b61.Author:
59d0: 20 58 79 7a 7a 79 20 41 70 70 73 20 3c 78 79 7a Xyzzy Apps <xyz
59e0: 7a 79 61 70 70 73 40 67 6d 61 69 6c 2e 63 6f 6d zyapps@gmail.com
59f0: 3e 0a 44 61 74 65 3a 20 20 20 54 75 65 20 4e 6f >.Date: Tue No
5a00: 76 20 32 20 32 32 3a 30 39 3a 32 36 20 32 30 32 v 2 22:09:26 202
5a10: 31 20 2b 30 30 30 30 0a 0a 20 20 20 20 2f 55 73 1 +0000.. /Us
5a20: 65 72 73 2f 64 65 76 2f 70 72 6f 6a 2f 70 72 6f ers/dev/proj/pro
5a30: 64 75 63 74 69 6f 6e 2f 62 69 74 72 68 79 74 68 duction/bitrhyth
5a40: 6d 2f 73 6f 6e 67 20 6d 6f 64 69 66 69 65 64 0a m/song modified.
5a50: 0a 64 69 66 66 20 2d 2d 67 69 74 20 61 2f 66 69 .diff --git a/fi
5a60: 72 73 74 2e 6a 73 20 62 2f 66 69 72 73 74 2e 6a rst.js b/first.j
5a70: 73 0a 69 6e 64 65 78 20 35 62 32 34 32 32 63 2e s.index 5b2422c.
5a80: 2e 33 38 37 30 31 35 36 20 31 30 30 36 34 34 0a .3870156 100644.
5a90: 2d 2d 2d 20 61 2f 66 69 72 73 74 2e 6a 73 0a 2b --- a/first.js.+
5aa0: 2b 2b 20 62 2f 66 69 72 73 74 2e 6a 73 0a 40 40 ++ b/first.js.@@
5ab0: 20 2d 32 2c 37 20 2b 32 2c 37 20 40 40 20 76 6f -2,7 +2,7 @@ vo
5ac0: 6c 75 6d 65 5f 67 75 61 72 64 31 20 3d 20 67 75 lume_guard1 = gu
5ad0: 61 72 64 28 5b 2d 32 30 2c 31 35 5d 29 0a 20 54 ard([-20,15]). T
5ae0: 6f 6e 65 2e 4d 61 73 74 65 72 2e 76 6f 6c 75 6d one.Master.volum
5af0: 65 2e 76 61 6c 75 65 20 3d 20 76 6f 6c 75 6d 65 e.value = volume
5b00: 5f 67 75 61 72 64 31 28 4d 61 74 68 2e 72 6f 75 _guard1(Math.rou
5b10: 6e 64 28 64 69 61 6c 73 5b 30 5d 5b 22 63 65 6c nd(dials[0]["cel
5b20: 6c 22 5d 28 29 20 2a 20 33 30 29 20 2d 32 30 29 l"]() * 30) -20)
5b30: 3b 0a 20 0a 20 69 6e 74 72 6f 20 3d 20 5b 0a 2d ;. . intro = [.-
5b40: 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 30 30 cellx("p x00
5b50: 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 0 0000 0000 0000
5b60: 20 22 29 2c 0a 2b 20 20 20 63 65 6c 6c 78 28 22 "),.+ cellx("
5b70: 70 20 78 30 30 30 20 30 30 30 30 20 30 30 30 30 p x000 0000 0000
5b80: 20 30 30 30 30 20 22 29 2c 0a 20 5d 0a 20 0a 20 0000 "),. ]. .
5b90: 6d 61 69 6e 20 3d 20 5b 0a 40 40 20 2d 31 30 2c main = [.@@ -10,
5ba0: 37 20 2b 31 30 2c 37 20 40 40 20 6d 61 69 6e 20 7 +10,7 @@ main
5bb0: 3d 20 5b 0a 20 20 20 20 20 63 65 6c 6c 78 28 22 = [. cellx("
5bc0: 70 20 30 30 30 30 20 78 30 30 30 20 30 30 30 30 p 0000 x000 0000
5bd0: 20 78 30 30 30 20 22 29 2c 0a 20 20 20 20 20 63 x000 "),. c
5be0: 65 6c 6c 78 28 22 70 20 78 30 78 30 20 78 30 78 ellx("p x0x0 x0x
5bf0: 30 20 78 30 78 30 20 78 30 78 30 20 22 29 2c 0a 0 x0x0 x0x0 "),.
5c00: 20 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 30 cellx("p x0
5c10: 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 30 00 0000 0000 000
5c20: 30 20 22 29 2c 0a 2d 20 20 20 20 63 65 6c 6c 78 0 "),.- cellx
5c30: 28 22 70 20 30 30 30 30 20 30 30 30 30 20 78 30 ("p 0000 0000 x0
5c40: 78 30 20 30 30 78 30 20 22 29 2c 20 2f 2f 20 6d x0 00x0 "), // m
5c50: 65 6c 6f 64 79 0a 2b 20 20 20 20 63 65 6c 6c 78 elody.+ cellx
5c60: 28 22 70 20 78 5b 5e 31 32 30 5d 30 30 30 20 30 ("p x[^120]000 0
5c70: 30 30 30 20 30 30 78 5b 5e 31 32 34 5d 30 20 30 000 00x[^124]0 0
5c80: 30 78 5b 5e 31 31 36 5d 30 20 22 29 2c 20 2f 2f 0x[^116]0 "), //
5c90: 20 6d 65 6c 6f 64 79 0a 20 0a 20 5d 0a 20 0a 40 melody. . ]. .@
5ca0: 40 20 2d 31 39 2c 39 20 2b 31 39 2c 39 20 40 40 @ -19,9 +19,9 @@
5cb0: 20 62 61 73 73 20 3d 20 5b 0a 20 20 20 20 20 63 bass = [. c
5cc0: 65 6c 6c 78 28 22 70 20 30 30 30 30 20 78 30 30 ellx("p 0000 x00
5cd0: 30 20 30 30 30 30 20 78 30 30 30 20 22 29 2c 0a 0 0000 x000 "),.
5ce0: 20 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 30 cellx("p x0
5cf0: 78 30 20 78 30 78 30 20 78 30 78 30 20 78 30 78 x0 x0x0 x0x0 x0x
5d00: 30 20 22 29 2c 0a 20 20 20 20 20 63 65 6c 6c 78 0 "),. cellx
5d10: 28 22 70 20 78 30 30 30 20 30 30 30 30 20 30 30 ("p x000 0000 00
5d20: 30 30 20 30 30 30 30 20 22 29 2c 0a 2d 20 20 20 00 0000 "),.-
5d30: 20 63 65 6c 6c 78 28 22 70 20 78 5b 5e 43 32 5d cellx("p x[^C2]
5d40: 30 30 30 20 30 30 30 78 2e 20 30 30 78 5b 5e 42 000 000x. 00x[^B
5d50: 31 5d 78 2e 20 78 5b 5e 42 31 5d 78 2e 78 5b 5e 1]x. x[^B1]x.x[^
5d60: 42 31 5d 78 2e 20 22 29 2c 0a 2d 20 20 20 20 63 B1]x. "),.- c
5d70: 65 6c 6c 78 28 22 70 20 30 30 30 30 20 30 30 30 ellx("p 0000 000
5d80: 30 20 78 30 78 30 20 30 30 78 30 20 22 29 2c 20 0 x0x0 00x0 "),
5d90: 2f 2f 20 6d 65 6c 6f 64 79 0a 2d 20 20 20 20 63 // melody.- c
5da0: 65 6c 6c 78 28 22 70 20 30 30 30 30 20 30 30 30 ellx("p 0000 000
5db0: 30 20 30 30 30 30 20 30 30 30 30 22 29 0a 2b 20 0 0000 0000").+
5dc0: 20 20 20 63 65 6c 6c 78 28 22 70 20 78 5b 5e 42 cellx("p x[^B
5dd0: 32 5d 78 2e 30 30 20 78 5b 5e 42 32 5d 78 2e 78 2]x.00 x[^B2]x.x
5de0: 5b 5e 42 32 5d 78 2e 20 78 5b 5e 42 32 5d 78 2e [^B2]x. x[^B2]x.
5df0: 78 5b 5e 42 32 5d 78 2e 78 5b 5e 42 32 5d 78 2e x[^B2]x.x[^B2]x.
5e00: 30 20 22 29 2c 0a 2b 20 20 20 20 63 65 6c 6c 78 0 "),.+ cellx
5e10: 28 22 70 20 78 5b 5e 31 32 30 5d 30 30 30 20 30 ("p x[^120]000 0
5e20: 30 30 30 20 30 30 78 5b 5e 31 32 34 5d 30 20 30 000 00x[^124]0 0
5e30: 30 78 5b 5e 31 31 36 5d 30 20 22 29 2c 20 2f 2f 0x[^116]0 "), //
5e40: 20 6d 65 6c 6f 64 79 0a 2b 09 63 65 6c 6c 78 28 melody.+.cellx(
5e50: 22 70 20 30 30 30 30 20 30 30 30 30 20 30 30 30 "p 0000 0000 000
5e60: 30 20 30 30 30 30 22 29 0a 20 5d 0a 20 0a 20 66 0 0000"). ]. . f
5e70: 69 6c 6c 20 3d 20 20 63 65 6c 6c 78 28 22 70 20 ill = cellx("p
5e80: 78 30 30 30 20 78 30 30 30 20 78 30 78 78 20 30 x000 x000 x0xx 0
5e90: 30 78 30 22 29 0a 40 40 20 2d 36 32 2c 36 20 2b 0x0").@@ -62,6 +
5ea0: 36 32 2c 37 20 40 40 20 66 75 6e 63 74 69 6f 6e 62,7 @@ function
5eb0: 20 6f 6e 63 65 20 28 29 20 7b 0a 20 20 20 20 20 once () {.
5ec0: 20 20 20 20 20 20 20 20 78 2e 63 61 6e 76 61 73 x.canvas
5ed0: 2e 73 74 79 6c 65 2e 70 6f 73 69 74 69 6f 6e 20 .style.position
5ee0: 3d 20 22 61 62 73 6f 6c 75 74 65 22 3b 0a 20 20 = "absolute";.
5ef0: 20 20 20 20 20 20 20 20 20 20 20 70 2e 66 72 61 p.fra
5f00: 6d 65 52 61 74 65 28 32 29 3b 0a 20 20 20 20 20 meRate(2);.
5f10: 20 20 20 20 20 20 20 20 69 6d 67 20 3d 20 70 2e img = p.
5f20: 6c 6f 61 64 49 6d 61 67 65 28 27 2f 74 65 73 74 loadImage('/test
5f30: 33 2e 70 6e 67 27 29 3b 0a 2b 20 20 20 20 20 20 3.png');.+
5f40: 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f console.lo
5f50: 67 28 69 6d 67 29 3b 0a 20 20 20 20 20 20 20 20 g(img);.
5f60: 20 7d 3b 0a 20 0a 20 20 20 20 20 20 20 20 20 70 };. . p
5f70: 2e 64 72 61 77 20 3d 20 66 75 6e 63 74 69 6f 6e .draw = function
5f80: 28 29 20 7b 0a 40 40 20 2d 37 39 2c 37 20 2b 38 () {.@@ -79,7 +8
5f90: 30 2c 37 20 40 40 20 66 75 6e 63 74 69 6f 6e 20 0,7 @@ function
5fa0: 6f 6e 63 65 20 28 29 20 7b 0a 20 20 20 20 20 6c once () {. l
5fb0: 65 74 20 6d 79 70 35 20 3d 20 6e 65 77 20 70 35 et myp5 = new p5
5fc0: 28 73 2c 20 20 64 6f 63 75 6d 65 6e 74 2e 67 65 (s, document.ge
5fd0: 74 45 6c 65 6d 65 6e 74 42 79 49 64 28 27 63 61 tElementById('ca
5fe0: 6e 76 61 73 2d 63 6f 6e 74 61 69 6e 65 72 27 29 nvas-container')
5ff0: 29 3b 0a 20 0a 20 20 20 20 20 72 65 6e 64 65 72 );. . render
6000: 5f 6c 6f 6f 70 20 3d 20 66 75 6e 63 74 69 6f 6e _loop = function
6010: 20 28 29 20 7b 0a 2d 20 20 20 20 20 20 20 20 2f () {.- /
6020: 2f 20 20 20 20 09 70 72 2e 72 65 63 74 28 78 2c / .pr.rect(x,
6030: 79 2c 35 30 2c 35 30 29 3b 0a 2b 2f 2f 20 20 20 y,50,50);.+//
6040: 20 09 70 72 2e 72 65 63 74 28 78 2c 79 2c 35 30 .pr.rect(x,y,50
6050: 2c 35 30 29 3b 0a 20 20 20 20 20 7d 0a 20 0a 20 ,50);. }. .
6060: 20 20 20 20 54 6f 6e 65 2e 4d 61 73 74 65 72 2e Tone.Master.
6070: 76 6f 6c 75 6d 65 2e 76 61 6c 75 65 20 3d 20 2d volume.value = -
6080: 33 30 0a 40 40 20 2d 38 39 2c 34 30 20 2b 39 30 30.@@ -89,40 +90
6090: 2c 34 31 20 40 40 20 66 75 6e 63 74 69 6f 6e 20 ,41 @@ function
60a0: 6f 6e 63 65 20 28 29 20 7b 0a 20 20 20 20 20 53 once () {. S
60b0: 61 6d 70 6c 65 28 22 68 22 2c 32 2c 20 6e 75 6c ample("h",2, nul
60c0: 6c 2c 20 2d 31 35 29 3b 0a 20 20 20 20 20 53 61 l, -15);. Sa
60d0: 6d 70 6c 65 28 22 6d 22 2c 33 2c 20 6e 75 6c 6c mple("m",3, null
60e0: 2c 20 2d 31 35 29 3b 0a 20 20 20 20 20 53 61 6d , -15);. Sam
60f0: 70 6c 65 28 22 66 22 2c 34 2c 20 6e 75 6c 6c 2c ple("f",4, null,
6100: 20 2d 31 35 29 3b 0a 2d 20 20 20 20 53 61 6d 70 -15);.- Samp
6110: 6c 65 28 22 73 22 2c 35 2c 20 6e 75 6c 6c 2c 20 le("s",5, null,
6120: 2d 31 35 29 3b 0a 2b 20 20 20 20 53 61 6d 70 6c -15);.+ Sampl
6130: 65 28 22 73 22 2c 35 2c 20 39 30 30 2c 20 2d 31 e("s",5, 900, -1
6140: 35 29 3b 0a 20 0a 20 0a 20 20 20 20 20 6d 65 6d 5);. . . mem
6150: 5b 22 63 22 5d 20 3d 20 63 65 6c 6c 78 28 31 29 ["c"] = cellx(1)
6160: 3b 0a 20 20 20 20 20 6d 65 6d 5b 22 63 22 5d 2e ;. mem["c"].
6170: 6f 6e 43 68 61 6e 67 65 28 66 75 6e 63 74 69 6f onChange(functio
6180: 6e 20 28 65 29 20 7b 0a 20 20 20 20 20 20 20 20 n (e) {.
6190: 20 76 61 72 20 76 61 6c 20 3d 20 70 61 72 73 65 var val = parse
61a0: 49 6e 74 28 65 5b 22 64 61 74 61 22 5d 2e 76 61 Int(e["data"].va
61b0: 6c 75 65 29 3b 0a 2d 0a 2b 20 20 20 20 20 20 20 lue);.-.+
61c0: 20 0a 20 20 20 20 20 20 20 20 20 70 28 30 2c 6e . p(0,n
61d0: 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 32 34 6e 22 ull, null, "24n"
61e0: 29 3b 0a 20 20 20 20 20 20 20 20 20 73 65 74 54 );. setT
61f0: 69 6d 65 6f 75 74 28 66 75 6e 63 74 69 6f 6e 20 imeout(function
6200: 28 29 20 7b 0a 2d 20 20 20 20 20 20 20 20 20 20 () {.-
6210: 20 20 70 28 34 2c 20 6e 75 6c 6c 2c 20 6e 75 6c p(4, null, nul
6220: 6c 2c 20 22 34 6e 22 29 0a 2b 20 20 20 20 20 20 l, "4n").+
6230: 20 20 09 70 28 34 2c 20 6e 75 6c 6c 2c 20 6e 75 .p(4, null, nu
6240: 6c 6c 2c 20 22 34 6e 22 29 0a 20 20 20 20 20 20 ll, "4n").
6250: 20 20 20 7d 2c 20 64 65 6c 74 61 20 2a 20 32 29 }, delta * 2)
6260: 3b 0a 2d 0a 2b 20 20 20 20 20 20 20 20 0a 20 20 ;.-.+ .
6270: 20 20 20 7d 29 0a 20 20 20 20 20 6d 65 6d 5b 22 }). mem["
6280: 63 22 5d 2e 6f 6e 45 72 72 6f 72 28 66 75 6e 63 c"].onError(func
6290: 74 69 6f 6e 20 28 65 29 20 7b 0a 20 20 20 20 20 tion (e) {.
62a0: 20 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 console.log(
62b0: 65 29 3b 0a 2b 0a 20 20 20 20 20 7d 29 0a 20 0a e);.+. }). .
62c0: 20 20 20 20 20 63 6f 6e 73 74 20 61 75 64 69 6f const audio
62d0: 20 3d 20 41 75 64 69 6f 28 29 3b 0a 20 20 20 20 = Audio();.
62e0: 20 63 6f 6e 73 74 20 74 68 72 65 65 20 3d 20 54 const three = T
62f0: 68 72 65 65 4f 68 55 6e 69 74 28 61 75 64 69 6f hreeOhUnit(audio
6300: 2c 20 22 73 61 77 74 6f 6f 74 68 22 2c 20 7b 0a , "sawtooth", {.
6310: 2d 20 20 20 20 20 20 20 20 22 63 75 74 6f 66 66 - "cutoff
6320: 22 3a 20 31 30 30 2c 0a 2d 20 20 20 20 20 20 20 ": 100,.-
6330: 20 22 72 65 73 6f 6e 61 6e 63 65 22 3a 20 31 35 "resonance": 15
6340: 2c 0a 2d 20 20 20 20 20 20 20 20 22 65 6e 76 4d ,.- "envM
6350: 6f 64 22 3a 20 34 30 30 30 2c 0a 2d 20 20 20 20 od": 4000,.-
6360: 20 20 20 20 22 64 65 63 61 79 22 3a 20 30 2e 35 "decay": 0.5
6370: 0a 2d 20 20 20 20 7d 0a 2d 20 20 20 20 29 0a 2d .- }.- ).-
6380: 20 20 20 20 61 75 64 69 6f 2e 6d 61 73 74 65 72 audio.master
6390: 2e 69 6e 2e 67 61 69 6e 2e 76 61 6c 75 65 20 3d .in.gain.value =
63a0: 20 30 2e 32 3b 0a 2b 20 20 20 20 20 20 20 20 20 0.2;.+
63b0: 20 20 20 22 63 75 74 6f 66 66 22 3a 20 38 36 2c "cutoff": 86,
63c0: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 22 72 .+ "r
63d0: 65 73 6f 6e 61 6e 63 65 22 3a 20 31 35 2c 0a 2b esonance": 15,.+
63e0: 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6e 76 "env
63f0: 4d 6f 64 22 3a 20 34 30 30 30 2c 0a 2b 20 20 20 Mod": 4000,.+
6400: 20 20 20 20 20 20 20 20 20 22 64 65 63 61 79 22 "decay"
6410: 3a 20 30 2e 35 0a 2b 20 20 20 20 20 20 20 20 7d : 0.5.+ }
6420: 0a 2b 09 29 0a 2b 20 20 20 20 61 75 64 69 6f 2e .+.).+ audio.
6430: 6d 61 73 74 65 72 2e 69 6e 2e 67 61 69 6e 2e 76 master.in.gain.v
6440: 61 6c 75 65 20 3d 20 30 2e 31 3b 0a 20 20 20 20 alue = 0.1;.
6450: 20 6d 65 6d 5b 22 74 68 72 65 65 22 5d 20 3d 20 mem["three"] =
6460: 74 68 72 65 65 0a 2d 0a 2b 20 20 20 20 0a 20 20 three.-.+ .
6470: 20 20 20 2f 2f 20 63 75 74 6f 66 66 20 5b 33 30 // cutoff [30
6480: 2c 20 37 30 30 5d 2c 20 34 30 30 0a 20 20 20 20 , 700], 400.
6490: 20 2f 2f 20 72 65 73 6f 6e 61 6e 63 65 3a 20 5b // resonance: [
64a0: 31 2c 20 33 30 5d 2c 20 31 35 0a 20 20 20 20 20 1, 30], 15.
64b0: 2f 2f 20 65 6e 76 4d 6f 64 3a 20 5b 30 2c 20 38 // envMod: [0, 8
64c0: 30 30 30 5d 2c 20 34 30 30 30 0a 20 20 20 20 20 000], 4000.
64d0: 2f 2f 20 64 65 63 61 79 3a 20 5b 30 2e 31 2c 20 // decay: [0.1,
64e0: 30 2e 39 5d 2c 20 30 2e 35 0a 2d 0a 2d 20 20 20 0.9], 0.5.-.-
64f0: 20 64 69 61 6c 73 5b 31 5d 5b 22 63 65 6c 6c 22 dials[1]["cell"
6500: 5d 28 30 2e 30 31 30 30 29 0a 2b 20 20 20 20 0a ](0.0100).+ .
6510: 2b 20 20 20 20 64 69 61 6c 73 5b 31 5d 5b 22 63 + dials[1]["c
6520: 65 6c 6c 22 5d 28 30 2e 30 38 36 30 29 0a 20 0a ell"](0.0860). .
6530: 20 20 20 20 20 64 69 61 6c 73 5b 31 5d 5b 22 63 dials[1]["c
6540: 65 6c 6c 22 5d 2e 6f 6e 43 68 61 6e 67 65 28 66 ell"].onChange(f
6550: 75 6e 63 74 69 6f 6e 20 28 65 29 20 7b 0a 20 20 unction (e) {.
6560: 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 20 3d var val =
6570: 20 70 61 72 73 65 46 6c 6f 61 74 28 65 5b 22 64 parseFloat(e["d
6580: 61 74 61 22 5d 2e 76 61 6c 75 65 29 3b 0a 40 40 ata"].value);.@@
6590: 20 2d 31 33 34 2c 37 20 2b 31 33 36 2c 31 34 20 -134,7 +136,14
65a0: 40 40 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 63 65 @@ function once
65b0: 20 28 29 20 7b 0a 20 0a 20 0a 20 74 72 61 6e 73 () {. . . trans
65c0: 69 74 69 6f 6e 20 3d 20 6f 6e 63 65 3b 0a 2b 69 ition = once;.+i
65d0: 66 20 28 62 61 72 73 20 3c 3d 20 32 29 20 7b 0a f (bars <= 2) {.
65e0: 2b 09 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 +.current_scene
65f0: 3d 20 22 69 6e 74 72 6f 22 3b 0a 2b 7d 20 65 6c = "intro";.+} el
6600: 73 65 20 7b 0a 2b 09 63 75 72 72 65 6e 74 5f 73 se {.+.current_s
6610: 63 65 6e 65 20 3d 20 22 6d 61 69 6e 22 3b 0a 2b cene = "main";.+
6620: 7d 0a 2b 0a 20 63 75 72 72 65 6e 74 5f 73 63 65 }.+. current_sce
6630: 6e 65 20 3d 20 22 62 61 73 73 22 3b 0a 2b 0a 20 ne = "bass";.+.
6640: 70 61 74 74 65 72 6e 73 20 3d 20 65 76 61 6c 28 patterns = eval(
6650: 60 24 7b 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 `${current_scene
6660: 7d 60 29 3b 0a 20 61 6c 77 61 79 73 28 29 3b 0a }`);. always();.
6670: 20 0a 40 40 20 2d 31 35 36 2c 38 20 2b 31 36 35 .@@ -156,8 +165
6680: 2c 38 20 40 40 20 69 66 20 28 69 73 48 69 74 29 ,8 @@ if (isHit)
6690: 20 7b 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 {. if (
66a0: 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 34 29 20 7b track_no == 4) {
66b0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 70 28 . p(
66c0: 33 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 3, null, null, "
66d0: 31 6e 22 29 3b 0a 20 20 20 20 20 20 20 20 20 7d 1n");. }
66e0: 0a 2d 20 20 20 20 20 20 20 20 69 66 20 28 74 72 .- if (tr
66f0: 61 63 6b 5f 6e 6f 20 3d 3d 20 35 29 20 7b 0a 2d ack_no == 5) {.-
6700: 20 20 20 20 20 20 20 20 20 20 20 20 70 28 35 2c p(5,
6710: 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 31 6e null, null, "1n
6720: 22 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 69 66 ");.+ if
6730: 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 35 29 (track_no == 5)
6740: 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 {.+
6750: 70 28 35 2c 20 30 2e 33 2c 20 6d 65 74 61 5b 74 p(5, 0.3, meta[t
6760: 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d 2c 20 22 ick]["pitch"], "
6770: 31 6e 22 29 3b 0a 20 20 20 20 20 20 20 20 20 7d 1n");. }
6780: 0a 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 . } else if
6790: 28 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 3d (current_scene =
67a0: 3d 20 22 62 61 73 73 22 29 20 7b 0a 20 20 20 20 = "bass") {.
67b0: 20 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e if (track_n
67c0: 6f 20 3d 3d 20 31 29 20 7b 0a 40 40 20 2d 31 38 o == 1) {.@@ -18
67d0: 30 2c 31 32 20 2b 31 38 39 2c 31 33 20 40 40 20 0,12 +189,13 @@
67e0: 69 66 20 28 69 73 48 69 74 29 20 7b 0a 20 20 20 if (isHit) {.
67f0: 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 }.
6800: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 }.
6810: 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 if (track_no ==
6820: 36 29 20 7b 0a 2d 20 20 20 20 20 20 20 20 20 20 6) {.-
6830: 20 20 70 28 35 2c 20 6e 75 6c 6c 2c 20 6e 75 6c p(5, null, nul
6840: 6c 2c 20 22 31 6e 22 29 3b 0a 2b 20 20 20 20 20 l, "1n");.+
6850: 20 20 20 20 20 20 70 28 35 2c 20 6e 75 6c 6c 2c p(5, null,
6860: 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 70 69 74 meta[tick]["pit
6870: 63 68 22 5d 2c 20 22 31 6e 22 29 3b 0a 20 20 20 ch"], "1n");.
6880: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 }.
6890: 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d if (track_no ==
68a0: 20 37 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 7) {.
68b0: 20 20 20 6d 65 6d 5b 22 63 22 5d 28 6d 65 6d 5b mem["c"](mem[
68c0: 22 63 22 5d 28 29 20 2b 20 31 29 3b 0a 20 20 20 "c"]() + 1);.
68d0: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 7d 20 0a }. } .
68e0: 2b 0a 20 7d 0a 20 0a 20 0a 64 69 66 66 20 2d 2d +. }. . .diff --
68f0: 67 69 74 20 61 2f 74 61 67 73 2e 6c 6f 63 6b 20 git a/tags.lock
6900: 62 2f 74 61 67 73 2e 6c 6f 63 6b 0a 6e 65 77 20 b/tags.lock.new
6910: 66 69 6c 65 20 6d 6f 64 65 20 31 30 30 36 34 34 file mode 100644
6920: 0a 69 6e 64 65 78 20 30 30 30 30 30 30 30 2e 2e .index 0000000..
6930: 30 37 63 61 63 34 65 0a 2d 2d 2d 20 2f 64 65 76 07cac4e.--- /dev
6940: 2f 6e 75 6c 6c 0a 2b 2b 2b 20 62 2f 74 61 67 73 /null.+++ b/tags
6950: 2e 6c 6f 63 6b 0a 40 40 20 2d 30 2c 30 20 2b 31 .lock.@@ -0,0 +1
6960: 20 40 40 0a 2b 34 35 36 35 38 0a 64 69 66 66 20 @@.+45658.diff
6970: 2d 2d 67 69 74 20 61 2f 74 61 67 73 2e 74 65 6d --git a/tags.tem
6980: 70 20 62 2f 74 61 67 73 2e 74 65 6d 70 0a 6e 65 p b/tags.temp.ne
6990: 77 20 66 69 6c 65 20 6d 6f 64 65 20 31 30 30 36 w file mode 1006
69a0: 34 34 0a 69 6e 64 65 78 20 30 30 30 30 30 30 30 44.index 0000000
69b0: 2e 2e 65 65 31 37 63 38 39 0a 2d 2d 2d 20 2f 64 ..ee17c89.--- /d
69c0: 65 76 2f 6e 75 6c 6c 0a 2b 2b 2b 20 62 2f 74 61 ev/null.+++ b/ta
69d0: 67 73 2e 74 65 6d 70 0a 40 40 20 2d 30 2c 30 20 gs.temp.@@ -0,0
69e0: 2b 31 2c 31 30 20 40 40 0a 2b 21 5f 54 41 47 5f +1,10 @@.+!_TAG_
69f0: 46 49 4c 45 5f 46 4f 52 4d 41 54 09 32 09 2f 65 FILE_FORMAT.2./e
6a00: 78 74 65 6e 64 65 64 20 66 6f 72 6d 61 74 3b 20 xtended format;
6a10: 2d 2d 66 6f 72 6d 61 74 3d 31 20 77 69 6c 6c 20 --format=1 will
6a20: 6e 6f 74 20 61 70 70 65 6e 64 20 3b 22 20 74 6f not append ;" to
6a30: 20 6c 69 6e 65 73 2f 0a 2b 21 5f 54 41 47 5f 46 lines/.+!_TAG_F
6a40: 49 4c 45 5f 53 4f 52 54 45 44 09 31 09 2f 30 3d ILE_SORTED.1./0=
6a50: 75 6e 73 6f 72 74 65 64 2c 20 31 3d 73 6f 72 74 unsorted, 1=sort
6a60: 65 64 2c 20 32 3d 66 6f 6c 64 63 61 73 65 2f 0a ed, 2=foldcase/.
6a70: 2b 21 5f 54 41 47 5f 50 52 4f 47 52 41 4d 5f 41 +!_TAG_PROGRAM_A
6a80: 55 54 48 4f 52 09 44 61 72 72 65 6e 20 48 69 65 UTHOR.Darren Hie
6a90: 62 65 72 74 09 2f 64 68 69 65 62 65 72 74 40 75 bert./dhiebert@u
6aa0: 73 65 72 73 2e 73 6f 75 72 63 65 66 6f 72 67 65 sers.sourceforge
6ab0: 2e 6e 65 74 2f 0a 2b 21 5f 54 41 47 5f 50 52 4f .net/.+!_TAG_PRO
6ac0: 47 52 41 4d 5f 4e 41 4d 45 09 45 78 75 62 65 72 GRAM_NAME.Exuber
6ad0: 61 6e 74 20 43 74 61 67 73 09 2f 2f 0a 2b 21 5f ant Ctags.//.+!_
6ae0: 54 41 47 5f 50 52 4f 47 52 41 4d 5f 55 52 4c 09 TAG_PROGRAM_URL.
6af0: 68 74 74 70 3a 2f 2f 63 74 61 67 73 2e 73 6f 75 http://ctags.sou
6b00: 72 63 65 66 6f 72 67 65 2e 6e 65 74 09 2f 6f 66 rceforge.net./of
6b10: 66 69 63 69 61 6c 20 73 69 74 65 2f 0a 2b 21 5f ficial site/.+!_
6b20: 54 41 47 5f 50 52 4f 47 52 41 4d 5f 56 45 52 53 TAG_PROGRAM_VERS
6b30: 49 4f 4e 09 35 2e 38 09 2f 2f 0a 2b 70 09 66 69 ION.5.8.//.+p.fi
6b40: 72 73 74 2e 6a 73 09 2f 5e 66 75 6e 63 74 69 6f rst.js./^functio
6b50: 6e 20 70 28 73 2c 20 76 6f 6c 2c 20 20 6e 6f 74 n p(s, vol, not
6b60: 65 2c 20 20 6c 65 6e 2c 20 64 65 6c 61 79 29 20 e, len, delay)
6b70: 7b 24 2f 3b 22 09 66 0a 2b 70 2e 64 72 61 77 09 {$/;".f.+p.draw.
6b80: 66 69 72 73 74 2e 6a 73 09 2f 5e 20 20 20 20 20 first.js./^
6b90: 20 20 20 70 2e 64 72 61 77 20 3d 20 66 75 6e 63 p.draw = func
6ba0: 74 69 6f 6e 28 29 20 7b 24 2f 3b 22 09 66 0a 2b tion() {$/;".f.+
6bb0: 70 2e 73 65 74 75 70 09 66 69 72 73 74 2e 6a 73 p.setup.first.js
6bc0: 09 2f 5e 20 20 20 20 20 20 20 20 70 2e 73 65 74 ./^ p.set
6bd0: 75 70 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 up = function()
6be0: 7b 24 2f 3b 22 09 66 0a 2b 72 65 6e 64 65 72 5f {$/;".f.+render_
6bf0: 6c 6f 6f 70 09 66 69 72 73 74 2e 6a 73 09 2f 5e loop.first.js./^
6c00: 20 20 20 20 72 65 6e 64 65 72 5f 6c 6f 6f 70 20 render_loop
6c10: 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 24 = function () {$
6c20: 2f 3b 22 09 66 0a 0a 63 6f 6d 6d 69 74 20 64 65 /;".f..commit de
6c30: 61 62 39 66 34 36 33 32 66 66 39 34 32 36 33 65 ab9f4632ff94263e
6c40: 39 39 62 37 32 63 63 37 63 38 31 37 31 30 38 63 99b72cc7c817108c
6c50: 66 62 31 33 64 37 0a 41 75 74 68 6f 72 3a 20 58 fb13d7.Author: X
6c60: 79 7a 7a 79 20 41 70 70 73 20 3c 78 79 7a 7a 79 yzzy Apps <xyzzy
6c70: 61 70 70 73 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a apps@gmail.com>.
6c80: 44 61 74 65 3a 20 20 20 4d 6f 6e 20 4e 6f 76 20 Date: Mon Nov
6c90: 31 20 32 30 3a 30 38 3a 31 31 20 32 30 32 31 20 1 20:08:11 2021
6ca0: 2b 30 30 30 30 0a 0a 20 20 20 20 2f 55 73 65 72 +0000.. /User
6cb0: 73 2f 64 65 76 2f 70 72 6f 6a 2f 70 72 6f 64 75 s/dev/proj/produ
6cc0: 63 74 69 6f 6e 2f 62 69 74 72 68 79 74 68 6d 2f ction/bitrhythm/
6cd0: 73 6f 6e 67 20 6d 6f 64 69 66 69 65 64 0a 0a 64 song modified..d
6ce0: 69 66 66 20 2d 2d 67 69 74 20 61 2f 74 61 67 73 iff --git a/tags
6cf0: 20 62 2f 74 61 67 73 0a 6e 65 77 20 66 69 6c 65 b/tags.new file
6d00: 20 6d 6f 64 65 20 31 30 30 36 34 34 0a 69 6e 64 mode 100644.ind
6d10: 65 78 20 30 30 30 30 30 30 30 2e 2e 65 65 31 37 ex 0000000..ee17
6d20: 63 38 39 0a 2d 2d 2d 20 2f 64 65 76 2f 6e 75 6c c89.--- /dev/nul
6d30: 6c 0a 2b 2b 2b 20 62 2f 74 61 67 73 0a 40 40 20 l.+++ b/tags.@@
6d40: 2d 30 2c 30 20 2b 31 2c 31 30 20 40 40 0a 2b 21 -0,0 +1,10 @@.+!
6d50: 5f 54 41 47 5f 46 49 4c 45 5f 46 4f 52 4d 41 54 _TAG_FILE_FORMAT
6d60: 09 32 09 2f 65 78 74 65 6e 64 65 64 20 66 6f 72 .2./extended for
6d70: 6d 61 74 3b 20 2d 2d 66 6f 72 6d 61 74 3d 31 20 mat; --format=1
6d80: 77 69 6c 6c 20 6e 6f 74 20 61 70 70 65 6e 64 20 will not append
6d90: 3b 22 20 74 6f 20 6c 69 6e 65 73 2f 0a 2b 21 5f ;" to lines/.+!_
6da0: 54 41 47 5f 46 49 4c 45 5f 53 4f 52 54 45 44 09 TAG_FILE_SORTED.
6db0: 31 09 2f 30 3d 75 6e 73 6f 72 74 65 64 2c 20 31 1./0=unsorted, 1
6dc0: 3d 73 6f 72 74 65 64 2c 20 32 3d 66 6f 6c 64 63 =sorted, 2=foldc
6dd0: 61 73 65 2f 0a 2b 21 5f 54 41 47 5f 50 52 4f 47 ase/.+!_TAG_PROG
6de0: 52 41 4d 5f 41 55 54 48 4f 52 09 44 61 72 72 65 RAM_AUTHOR.Darre
6df0: 6e 20 48 69 65 62 65 72 74 09 2f 64 68 69 65 62 n Hiebert./dhieb
6e00: 65 72 74 40 75 73 65 72 73 2e 73 6f 75 72 63 65 ert@users.source
6e10: 66 6f 72 67 65 2e 6e 65 74 2f 0a 2b 21 5f 54 41 forge.net/.+!_TA
6e20: 47 5f 50 52 4f 47 52 41 4d 5f 4e 41 4d 45 09 45 G_PROGRAM_NAME.E
6e30: 78 75 62 65 72 61 6e 74 20 43 74 61 67 73 09 2f xuberant Ctags./
6e40: 2f 0a 2b 21 5f 54 41 47 5f 50 52 4f 47 52 41 4d /.+!_TAG_PROGRAM
6e50: 5f 55 52 4c 09 68 74 74 70 3a 2f 2f 63 74 61 67 _URL.http://ctag
6e60: 73 2e 73 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 s.sourceforge.ne
6e70: 74 09 2f 6f 66 66 69 63 69 61 6c 20 73 69 74 65 t./official site
6e80: 2f 0a 2b 21 5f 54 41 47 5f 50 52 4f 47 52 41 4d /.+!_TAG_PROGRAM
6e90: 5f 56 45 52 53 49 4f 4e 09 35 2e 38 09 2f 2f 0a _VERSION.5.8.//.
6ea0: 2b 70 09 66 69 72 73 74 2e 6a 73 09 2f 5e 66 75 +p.first.js./^fu
6eb0: 6e 63 74 69 6f 6e 20 70 28 73 2c 20 76 6f 6c 2c nction p(s, vol,
6ec0: 20 20 6e 6f 74 65 2c 20 20 6c 65 6e 2c 20 64 65 note, len, de
6ed0: 6c 61 79 29 20 7b 24 2f 3b 22 09 66 0a 2b 70 2e lay) {$/;".f.+p.
6ee0: 64 72 61 77 09 66 69 72 73 74 2e 6a 73 09 2f 5e draw.first.js./^
6ef0: 20 20 20 20 20 20 20 20 70 2e 64 72 61 77 20 3d p.draw =
6f00: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 24 2f 3b function() {$/;
6f10: 22 09 66 0a 2b 70 2e 73 65 74 75 70 09 66 69 72 ".f.+p.setup.fir
6f20: 73 74 2e 6a 73 09 2f 5e 20 20 20 20 20 20 20 20 st.js./^
6f30: 70 2e 73 65 74 75 70 20 3d 20 66 75 6e 63 74 69 p.setup = functi
6f40: 6f 6e 28 29 20 7b 24 2f 3b 22 09 66 0a 2b 72 65 on() {$/;".f.+re
6f50: 6e 64 65 72 5f 6c 6f 6f 70 09 66 69 72 73 74 2e nder_loop.first.
6f60: 6a 73 09 2f 5e 20 20 20 20 72 65 6e 64 65 72 5f js./^ render_
6f70: 6c 6f 6f 70 20 3d 20 66 75 6e 63 74 69 6f 6e 20 loop = function
6f80: 28 29 20 7b 24 2f 3b 22 09 66 0a 64 69 66 66 20 () {$/;".f.diff
6f90: 2d 2d 67 69 74 20 61 2f 74 61 67 73 2e 6c 6f 63 --git a/tags.loc
6fa0: 6b 20 62 2f 74 61 67 73 2e 6c 6f 63 6b 0a 64 65 k b/tags.lock.de
6fb0: 6c 65 74 65 64 20 66 69 6c 65 20 6d 6f 64 65 20 leted file mode
6fc0: 31 30 30 36 34 34 0a 69 6e 64 65 78 20 65 36 30 100644.index e60
6fd0: 65 34 63 38 2e 2e 30 30 30 30 30 30 30 0a 2d 2d e4c8..0000000.--
6fe0: 2d 20 61 2f 74 61 67 73 2e 6c 6f 63 6b 0a 2b 2b - a/tags.lock.++
6ff0: 2b 20 2f 64 65 76 2f 6e 75 6c 6c 0a 40 40 20 2d + /dev/null.@@ -
7000: 31 20 2b 30 2c 30 20 40 40 0a 2d 33 31 32 34 37 1 +0,0 @@.-31247
7010: 0a 0a 63 6f 6d 6d 69 74 20 33 66 32 62 31 34 39 ..commit 3f2b149
7020: 62 64 65 34 37 31 62 66 37 31 65 64 66 38 63 61 bde471bf71edf8ca
7030: 37 33 33 35 30 63 61 35 37 64 31 66 30 32 36 61 73350ca57d1f026a
7040: 61 0a 41 75 74 68 6f 72 3a 20 58 79 7a 7a 79 20 a.Author: Xyzzy
7050: 41 70 70 73 20 3c 78 79 7a 7a 79 61 70 70 73 40 Apps <xyzzyapps@
7060: 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 44 61 74 65 3a gmail.com>.Date:
7070: 20 20 20 4d 6f 6e 20 4e 6f 76 20 31 20 32 30 3a Mon Nov 1 20:
7080: 30 38 3a 31 31 20 32 30 32 31 20 2b 30 30 30 30 08:11 2021 +0000
7090: 0a 0a 20 20 20 20 2f 55 73 65 72 73 2f 64 65 76 .. /Users/dev
70a0: 2f 70 72 6f 6a 2f 70 72 6f 64 75 63 74 69 6f 6e /proj/production
70b0: 2f 62 69 74 72 68 79 74 68 6d 2f 73 6f 6e 67 2f /bitrhythm/song/
70c0: 74 61 67 73 2e 6c 6f 63 6b 20 63 72 65 61 74 65 tags.lock create
70d0: 64 0a 0a 64 69 66 66 20 2d 2d 67 69 74 20 61 2f d..diff --git a/
70e0: 74 61 67 73 2e 6c 6f 63 6b 20 62 2f 74 61 67 73 tags.lock b/tags
70f0: 2e 6c 6f 63 6b 0a 6e 65 77 20 66 69 6c 65 20 6d .lock.new file m
7100: 6f 64 65 20 31 30 30 36 34 34 0a 69 6e 64 65 78 ode 100644.index
7110: 20 30 30 30 30 30 30 30 2e 2e 65 36 30 65 34 63 0000000..e60e4c
7120: 38 0a 2d 2d 2d 20 2f 64 65 76 2f 6e 75 6c 6c 0a 8.--- /dev/null.
7130: 2b 2b 2b 20 62 2f 74 61 67 73 2e 6c 6f 63 6b 0a +++ b/tags.lock.
7140: 40 40 20 2d 30 2c 30 20 2b 31 20 40 40 0a 2b 33 @@ -0,0 +1 @@.+3
7150: 31 32 34 37 0a 0a 63 6f 6d 6d 69 74 20 65 63 66 1247..commit ecf
7160: 66 65 35 37 62 36 38 64 31 62 33 37 66 36 36 38 fe57b68d1b37f668
7170: 39 33 33 32 62 64 37 66 34 65 61 37 37 33 39 63 9332bd7f4ea7739c
7180: 33 66 39 61 64 0a 41 75 74 68 6f 72 3a 20 58 79 3f9ad.Author: Xy
7190: 7a 7a 79 20 41 70 70 73 20 3c 78 79 7a 7a 79 61 zzy Apps <xyzzya
71a0: 70 70 73 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 44 pps@gmail.com>.D
71b0: 61 74 65 3a 20 20 20 4d 6f 6e 20 4e 6f 76 20 31 ate: Mon Nov 1
71c0: 20 30 37 3a 33 39 3a 33 32 20 32 30 32 31 20 2b 07:39:32 2021 +
71d0: 30 30 30 30 0a 0a 20 20 20 20 2f 55 73 65 72 73 0000.. /Users
71e0: 2f 64 65 76 2f 70 72 6f 6a 2f 70 72 6f 64 75 63 /dev/proj/produc
71f0: 74 69 6f 6e 2f 62 69 74 72 68 79 74 68 6d 2f 73 tion/bitrhythm/s
7200: 6f 6e 67 20 6d 6f 64 69 66 69 65 64 0a 0a 64 69 ong modified..di
7210: 66 66 20 2d 2d 67 69 74 20 61 2f 66 69 72 73 74 ff --git a/first
7220: 2e 6a 73 20 62 2f 66 69 72 73 74 2e 6a 73 0a 69 .js b/first.js.i
7230: 6e 64 65 78 20 31 33 62 32 33 62 38 2e 2e 35 62 ndex 13b23b8..5b
7240: 32 34 32 32 63 20 31 30 30 36 34 34 0a 2d 2d 2d 2422c 100644.---
7250: 20 61 2f 66 69 72 73 74 2e 6a 73 0a 2b 2b 2b 20 a/first.js.+++
7260: 62 2f 66 69 72 73 74 2e 6a 73 0a 40 40 20 2d 32 b/first.js.@@ -2
7270: 2c 37 20 2b 32 2c 37 20 40 40 20 76 6f 6c 75 6d ,7 +2,7 @@ volum
7280: 65 5f 67 75 61 72 64 31 20 3d 20 67 75 61 72 64 e_guard1 = guard
7290: 28 5b 2d 32 30 2c 31 35 5d 29 0a 20 54 6f 6e 65 ([-20,15]). Tone
72a0: 2e 4d 61 73 74 65 72 2e 76 6f 6c 75 6d 65 2e 76 .Master.volume.v
72b0: 61 6c 75 65 20 3d 20 76 6f 6c 75 6d 65 5f 67 75 alue = volume_gu
72c0: 61 72 64 31 28 4d 61 74 68 2e 72 6f 75 6e 64 28 ard1(Math.round(
72d0: 64 69 61 6c 73 5b 30 5d 5b 22 63 65 6c 6c 22 5d dials[0]["cell"]
72e0: 28 29 20 2a 20 33 30 29 20 2d 32 30 29 3b 0a 20 () * 30) -20);.
72f0: 0a 20 69 6e 74 72 6f 20 3d 20 5b 0a 2d 20 20 20 . intro = [.-
7300: 63 65 6c 6c 78 28 22 70 20 78 30 30 30 20 30 30 cellx("p x000 00
7310: 30 30 20 30 30 30 30 20 30 30 30 30 20 22 29 2c 00 0000 0000 "),
7320: 0a 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 .+ cellx("p x
7330: 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 000 0000 0000 00
7340: 30 30 20 22 29 2c 0a 20 5d 0a 20 0a 20 6d 61 69 00 "),. ]. . mai
7350: 6e 20 3d 20 5b 0a 40 40 20 2d 32 31 2c 37 20 2b n = [.@@ -21,7 +
7360: 32 31 2c 37 20 40 40 20 62 61 73 73 20 3d 20 5b 21,7 @@ bass = [
7370: 0a 20 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 . cellx("p x
7380: 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 000 0000 0000 00
7390: 30 30 20 22 29 2c 0a 20 20 20 20 20 63 65 6c 6c 00 "),. cell
73a0: 78 28 22 70 20 78 5b 5e 43 32 5d 30 30 30 20 30 x("p x[^C2]000 0
73b0: 30 30 78 2e 20 30 30 78 5b 5e 42 31 5d 78 2e 20 00x. 00x[^B1]x.
73c0: 78 5b 5e 42 31 5d 78 2e 78 5b 5e 42 31 5d 78 2e x[^B1]x.x[^B1]x.
73d0: 20 22 29 2c 0a 20 20 20 20 20 63 65 6c 6c 78 28 "),. cellx(
73e0: 22 70 20 30 30 30 30 20 30 30 30 30 20 78 30 78 "p 0000 0000 x0x
73f0: 30 20 30 30 78 30 20 22 29 2c 20 2f 2f 20 6d 65 0 00x0 "), // me
7400: 6c 6f 64 79 0a 2d 09 63 65 6c 6c 78 28 22 70 20 lody.-.cellx("p
7410: 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 0000 0000 0000 0
7420: 30 30 30 22 29 0a 2b 20 20 20 20 63 65 6c 6c 78 000").+ cellx
7430: 28 22 70 20 30 30 30 30 20 30 30 30 30 20 30 30 ("p 0000 0000 00
7440: 30 30 20 30 30 30 30 22 29 0a 20 5d 0a 20 0a 20 00 0000"). ]. .
7450: 66 69 6c 6c 20 3d 20 20 63 65 6c 6c 78 28 22 70 fill = cellx("p
7460: 20 78 30 30 30 20 78 30 30 30 20 78 30 78 78 20 x000 x000 x0xx
7470: 30 30 78 30 22 29 0a 40 40 20 2d 36 32 2c 37 20 00x0").@@ -62,7
7480: 2b 36 32 2c 36 20 40 40 20 66 75 6e 63 74 69 6f +62,6 @@ functio
7490: 6e 20 6f 6e 63 65 20 28 29 20 7b 0a 20 20 20 20 n once () {.
74a0: 20 20 20 20 20 20 20 20 20 78 2e 63 61 6e 76 61 x.canva
74b0: 73 2e 73 74 79 6c 65 2e 70 6f 73 69 74 69 6f 6e s.style.position
74c0: 20 3d 20 22 61 62 73 6f 6c 75 74 65 22 3b 0a 20 = "absolute";.
74d0: 20 20 20 20 20 20 20 20 20 20 20 20 70 2e 66 72 p.fr
74e0: 61 6d 65 52 61 74 65 28 32 29 3b 0a 20 20 20 20 ameRate(2);.
74f0: 20 20 20 20 20 20 20 20 20 69 6d 67 20 3d 20 70 img = p
7500: 2e 6c 6f 61 64 49 6d 61 67 65 28 27 2f 74 65 73 .loadImage('/tes
7510: 74 33 2e 70 6e 67 27 29 3b 0a 2d 20 20 20 20 20 t3.png');.-
7520: 20 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c console.l
7530: 6f 67 28 69 6d 67 29 3b 0a 20 20 20 20 20 20 20 og(img);.
7540: 20 20 7d 3b 0a 20 0a 20 20 20 20 20 20 20 20 20 };. .
7550: 70 2e 64 72 61 77 20 3d 20 66 75 6e 63 74 69 6f p.draw = functio
7560: 6e 28 29 20 7b 0a 40 40 20 2d 38 30 2c 37 20 2b n() {.@@ -80,7 +
7570: 37 39 2c 37 20 40 40 20 66 75 6e 63 74 69 6f 6e 79,7 @@ function
7580: 20 6f 6e 63 65 20 28 29 20 7b 0a 20 20 20 20 20 once () {.
7590: 6c 65 74 20 6d 79 70 35 20 3d 20 6e 65 77 20 70 let myp5 = new p
75a0: 35 28 73 2c 20 20 64 6f 63 75 6d 65 6e 74 2e 67 5(s, document.g
75b0: 65 74 45 6c 65 6d 65 6e 74 42 79 49 64 28 27 63 etElementById('c
75c0: 61 6e 76 61 73 2d 63 6f 6e 74 61 69 6e 65 72 27 anvas-container'
75d0: 29 29 3b 0a 20 0a 20 20 20 20 20 72 65 6e 64 65 ));. . rende
75e0: 72 5f 6c 6f 6f 70 20 3d 20 66 75 6e 63 74 69 6f r_loop = functio
75f0: 6e 20 28 29 20 7b 0a 2d 2f 2f 20 20 20 20 09 70 n () {.-// .p
7600: 72 2e 72 65 63 74 28 78 2c 79 2c 35 30 2c 35 30 r.rect(x,y,50,50
7610: 29 3b 0a 2b 20 20 20 20 20 20 20 20 2f 2f 20 20 );.+ //
7620: 20 20 09 70 72 2e 72 65 63 74 28 78 2c 79 2c 35 .pr.rect(x,y,5
7630: 30 2c 35 30 29 3b 0a 20 20 20 20 20 7d 0a 20 0a 0,50);. }. .
7640: 20 20 20 20 20 54 6f 6e 65 2e 4d 61 73 74 65 72 Tone.Master
7650: 2e 76 6f 6c 75 6d 65 2e 76 61 6c 75 65 20 3d 20 .volume.value =
7660: 2d 33 30 0a 40 40 20 2d 39 36 2c 33 34 20 2b 39 -30.@@ -96,34 +9
7670: 35 2c 33 33 20 40 40 20 66 75 6e 63 74 69 6f 6e 5,33 @@ function
7680: 20 6f 6e 63 65 20 28 29 20 7b 0a 20 20 20 20 20 once () {.
7690: 6d 65 6d 5b 22 63 22 5d 20 3d 20 63 65 6c 6c 78 mem["c"] = cellx
76a0: 28 31 29 3b 0a 20 20 20 20 20 6d 65 6d 5b 22 63 (1);. mem["c
76b0: 22 5d 2e 6f 6e 43 68 61 6e 67 65 28 66 75 6e 63 "].onChange(func
76c0: 74 69 6f 6e 20 28 65 29 20 7b 0a 20 20 20 20 20 tion (e) {.
76d0: 20 20 20 20 76 61 72 20 76 61 6c 20 3d 20 70 61 var val = pa
76e0: 72 73 65 49 6e 74 28 65 5b 22 64 61 74 61 22 5d rseInt(e["data"]
76f0: 2e 76 61 6c 75 65 29 3b 0a 2d 20 20 20 20 20 20 .value);.-
7700: 20 20 0a 2b 0a 20 20 20 20 20 20 20 20 20 70 28 .+. p(
7710: 30 2c 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 32 0,null, null, "2
7720: 34 6e 22 29 3b 0a 20 20 20 20 20 20 20 20 20 73 4n");. s
7730: 65 74 54 69 6d 65 6f 75 74 28 66 75 6e 63 74 69 etTimeout(functi
7740: 6f 6e 20 28 29 20 7b 0a 2d 20 20 20 20 20 20 20 on () {.-
7750: 20 09 70 28 34 2c 20 6e 75 6c 6c 2c 20 6e 75 6c .p(4, null, nul
7760: 6c 2c 20 22 34 6e 22 29 0a 2b 20 20 20 20 20 20 l, "4n").+
7770: 20 20 20 20 20 20 70 28 34 2c 20 6e 75 6c 6c 2c p(4, null,
7780: 20 6e 75 6c 6c 2c 20 22 34 6e 22 29 0a 20 20 20 null, "4n").
7790: 20 20 20 20 20 20 7d 2c 20 64 65 6c 74 61 20 2a }, delta *
77a0: 20 32 29 3b 0a 2d 20 20 20 20 20 20 20 20 0a 2b 2);.- .+
77b0: 0a 20 20 20 20 20 7d 29 0a 20 20 20 20 20 6d 65 . }). me
77c0: 6d 5b 22 63 22 5d 2e 6f 6e 45 72 72 6f 72 28 66 m["c"].onError(f
77d0: 75 6e 63 74 69 6f 6e 20 28 65 29 20 7b 0a 20 20 unction (e) {.
77e0: 20 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c console.l
77f0: 6f 67 28 65 29 3b 0a 2d 0a 20 20 20 20 20 7d 29 og(e);.-. })
7800: 0a 20 0a 20 20 20 20 20 63 6f 6e 73 74 20 61 75 . . const au
7810: 64 69 6f 20 3d 20 41 75 64 69 6f 28 29 3b 0a 20 dio = Audio();.
7820: 20 20 20 20 63 6f 6e 73 74 20 74 68 72 65 65 20 const three
7830: 3d 20 54 68 72 65 65 4f 68 55 6e 69 74 28 61 75 = ThreeOhUnit(au
7840: 64 69 6f 2c 20 22 73 61 77 74 6f 6f 74 68 22 2c dio, "sawtooth",
7850: 20 7b 0a 2d 20 20 20 20 20 20 20 20 20 20 20 20 {.-
7860: 22 63 75 74 6f 66 66 22 3a 20 31 30 30 2c 0a 2d "cutoff": 100,.-
7870: 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 73 "res
7880: 6f 6e 61 6e 63 65 22 3a 20 31 35 2c 0a 2d 20 20 onance": 15,.-
7890: 20 20 20 20 20 20 20 20 20 20 22 65 6e 76 4d 6f "envMo
78a0: 64 22 3a 20 34 30 30 30 2c 0a 2d 20 20 20 20 20 d": 4000,.-
78b0: 20 20 20 20 20 20 20 22 64 65 63 61 79 22 3a 20 "decay":
78c0: 30 2e 35 0a 2d 20 20 20 20 20 20 20 20 7d 0a 2d 0.5.- }.-
78d0: 09 29 0a 2b 20 20 20 20 20 20 20 20 22 63 75 74 .).+ "cut
78e0: 6f 66 66 22 3a 20 31 30 30 2c 0a 2b 20 20 20 20 off": 100,.+
78f0: 20 20 20 20 22 72 65 73 6f 6e 61 6e 63 65 22 3a "resonance":
7900: 20 31 35 2c 0a 2b 20 20 20 20 20 20 20 20 22 65 15,.+ "e
7910: 6e 76 4d 6f 64 22 3a 20 34 30 30 30 2c 0a 2b 20 nvMod": 4000,.+
7920: 20 20 20 20 20 20 20 22 64 65 63 61 79 22 3a 20 "decay":
7930: 30 2e 35 0a 2b 20 20 20 20 7d 0a 2b 20 20 20 20 0.5.+ }.+
7940: 29 0a 20 20 20 20 20 61 75 64 69 6f 2e 6d 61 73 ). audio.mas
7950: 74 65 72 2e 69 6e 2e 67 61 69 6e 2e 76 61 6c 75 ter.in.gain.valu
7960: 65 20 3d 20 30 2e 32 3b 0a 20 20 20 20 20 6d 65 e = 0.2;. me
7970: 6d 5b 22 74 68 72 65 65 22 5d 20 3d 20 74 68 72 m["three"] = thr
7980: 65 65 0a 2d 20 20 20 20 0a 2b 0a 20 20 20 20 20 ee.- .+.
7990: 2f 2f 20 63 75 74 6f 66 66 20 5b 33 30 2c 20 37 // cutoff [30, 7
79a0: 30 30 5d 2c 20 34 30 30 0a 20 20 20 20 20 2f 2f 00], 400. //
79b0: 20 72 65 73 6f 6e 61 6e 63 65 3a 20 5b 31 2c 20 resonance: [1,
79c0: 33 30 5d 2c 20 31 35 0a 20 20 20 20 20 2f 2f 20 30], 15. //
79d0: 65 6e 76 4d 6f 64 3a 20 5b 30 2c 20 38 30 30 30 envMod: [0, 8000
79e0: 5d 2c 20 34 30 30 30 0a 20 20 20 20 20 2f 2f 20 ], 4000. //
79f0: 64 65 63 61 79 3a 20 5b 30 2e 31 2c 20 30 2e 39 decay: [0.1, 0.9
7a00: 5d 2c 20 30 2e 35 0a 2d 20 20 20 20 0a 2b 0a 20 ], 0.5.- .+.
7a10: 20 20 20 20 64 69 61 6c 73 5b 31 5d 5b 22 63 65 dials[1]["ce
7a20: 6c 6c 22 5d 28 30 2e 30 31 30 30 29 0a 20 0a 20 ll"](0.0100). .
7a30: 20 20 20 20 64 69 61 6c 73 5b 31 5d 5b 22 63 65 dials[1]["ce
7a40: 6c 6c 22 5d 2e 6f 6e 43 68 61 6e 67 65 28 66 75 ll"].onChange(fu
7a50: 6e 63 74 69 6f 6e 20 28 65 29 20 7b 0a 40 40 20 nction (e) {.@@
7a60: 2d 31 35 38 2c 37 20 2b 31 35 36 2c 37 20 40 40 -158,7 +156,7 @@
7a70: 20 69 66 20 28 69 73 48 69 74 29 20 7b 0a 20 20 if (isHit) {.
7a80: 20 20 20 20 20 20 20 69 66 20 28 74 72 61 63 6b if (track
7a90: 5f 6e 6f 20 3d 3d 20 34 29 20 7b 0a 20 20 20 20 _no == 4) {.
7aa0: 20 20 20 20 20 20 20 20 20 70 28 33 2c 20 6e 75 p(3, nu
7ab0: 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 31 6e 22 29 3b ll, null, "1n");
7ac0: 0a 20 20 20 20 20 20 20 20 20 7d 0a 2d 20 20 20 . }.-
7ad0: 20 20 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f if (track_
7ae0: 6e 6f 20 3d 3d 20 35 29 20 7b 0a 2b 20 20 20 20 no == 5) {.+
7af0: 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f if (track_no
7b00: 20 3d 3d 20 35 29 20 7b 0a 20 20 20 20 20 20 20 == 5) {.
7b10: 20 20 20 20 20 20 70 28 35 2c 20 6e 75 6c 6c 2c p(5, null,
7b20: 20 6e 75 6c 6c 2c 20 22 31 6e 22 29 3b 0a 20 20 null, "1n");.
7b30: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 7d 20 }. }
7b40: 65 6c 73 65 20 69 66 20 28 63 75 72 72 65 6e 74 else if (current
7b50: 5f 73 63 65 6e 65 20 3d 3d 20 22 62 61 73 73 22 _scene == "bass"
7b60: 29 20 7b 0a 40 40 20 2d 31 38 32 2c 31 33 20 2b ) {.@@ -182,13 +
7b70: 31 38 30 2c 31 32 20 40 40 20 69 66 20 28 69 73 180,12 @@ if (is
7b80: 48 69 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 Hit) {.
7b90: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 7d }. }
7ba0: 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 74 72 . if (tr
7bb0: 61 63 6b 5f 6e 6f 20 3d 3d 20 36 29 20 7b 0a 2d ack_no == 6) {.-
7bc0: 20 20 20 20 20 20 20 20 20 20 20 70 28 35 2c 20 p(5,
7bd0: 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 31 6e 22 null, null, "1n"
7be0: 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 );.+
7bf0: 70 28 35 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c p(5, null, null,
7c00: 20 22 31 6e 22 29 3b 0a 20 20 20 20 20 20 20 20 "1n");.
7c10: 20 7d 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 }. if (
7c20: 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 37 29 20 7b track_no == 7) {
7c30: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 . me
7c40: 6d 5b 22 63 22 5d 28 6d 65 6d 5b 22 63 22 5d 28 m["c"](mem["c"](
7c50: 29 20 2b 20 31 29 3b 0a 20 20 20 20 20 20 20 20 ) + 1);.
7c60: 20 7d 0a 20 20 20 20 20 7d 20 0a 2d 0a 20 7d 0a }. } .-. }.
7c70: 20 0a 20 0a 0a 63 6f 6d 6d 69 74 20 64 63 31 36 . ..commit dc16
7c80: 39 35 62 65 64 38 66 32 62 36 62 66 63 35 38 36 95bed8f2b6bfc586
7c90: 62 39 37 62 30 31 30 33 61 62 33 61 63 63 62 66 b97b0103ab3accbf
7ca0: 34 61 62 35 0a 41 75 74 68 6f 72 3a 20 58 79 7a 4ab5.Author: Xyz
7cb0: 7a 79 20 41 70 70 73 20 3c 78 79 7a 7a 79 61 70 zy Apps <xyzzyap
7cc0: 70 73 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 44 61 ps@gmail.com>.Da
7cd0: 74 65 3a 20 20 20 4d 6f 6e 20 4e 6f 76 20 31 20 te: Mon Nov 1
7ce0: 30 37 3a 33 39 3a 30 31 20 32 30 32 31 20 2b 30 07:39:01 2021 +0
7cf0: 30 30 30 0a 0a 20 20 20 20 2f 55 73 65 72 73 2f 000.. /Users/
7d00: 64 65 76 2f 70 72 6f 6a 2f 70 72 6f 64 75 63 74 dev/proj/product
7d10: 69 6f 6e 2f 62 69 74 72 68 79 74 68 6d 2f 73 6f ion/bitrhythm/so
7d20: 6e 67 20 6d 6f 64 69 66 69 65 64 0a 0a 64 69 66 ng modified..dif
7d30: 66 20 2d 2d 67 69 74 20 61 2f 66 69 72 73 74 2e f --git a/first.
7d40: 6a 73 20 62 2f 66 69 72 73 74 2e 6a 73 0a 69 6e js b/first.js.in
7d50: 64 65 78 20 33 64 38 65 39 66 62 2e 2e 31 33 62 dex 3d8e9fb..13b
7d60: 32 33 62 38 20 31 30 30 36 34 34 0a 2d 2d 2d 20 23b8 100644.---
7d70: 61 2f 66 69 72 73 74 2e 6a 73 0a 2b 2b 2b 20 62 a/first.js.+++ b
7d80: 2f 66 69 72 73 74 2e 6a 73 0a 40 40 20 2d 31 30 /first.js.@@ -10
7d90: 2c 36 20 2b 31 30 2c 38 20 40 40 20 6d 61 69 6e ,6 +10,8 @@ main
7da0: 20 3d 20 5b 0a 20 20 20 20 20 63 65 6c 6c 78 28 = [. cellx(
7db0: 22 70 20 30 30 30 30 20 78 30 30 30 20 30 30 30 "p 0000 x000 000
7dc0: 30 20 78 30 30 30 20 22 29 2c 0a 20 20 20 20 20 0 x000 "),.
7dd0: 63 65 6c 6c 78 28 22 70 20 78 30 78 30 20 78 30 cellx("p x0x0 x0
7de0: 78 30 20 78 30 78 30 20 78 30 78 30 20 22 29 2c x0 x0x0 x0x0 "),
7df0: 0a 20 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 . cellx("p x
7e00: 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 000 0000 0000 00
7e10: 30 30 20 22 29 2c 0a 2b 20 20 20 20 63 65 6c 6c 00 "),.+ cell
7e20: 78 28 22 70 20 30 30 30 30 20 30 30 30 30 20 78 x("p 0000 0000 x
7e30: 30 78 30 20 30 30 78 30 20 22 29 2c 20 2f 2f 20 0x0 00x0 "), //
7e40: 6d 65 6c 6f 64 79 0a 2b 0a 20 5d 0a 20 0a 20 62 melody.+. ]. . b
7e50: 61 73 73 20 3d 20 5b 0a 40 40 20 2d 31 37 2c 31 ass = [.@@ -17,1
7e60: 31 20 2b 31 39 2c 31 37 20 40 40 20 62 61 73 73 1 +19,17 @@ bass
7e70: 20 3d 20 5b 0a 20 20 20 20 20 63 65 6c 6c 78 28 = [. cellx(
7e80: 22 70 20 30 30 30 30 20 78 30 30 30 20 30 30 30 "p 0000 x000 000
7e90: 30 20 78 30 30 30 20 22 29 2c 0a 20 20 20 20 20 0 x000 "),.
7ea0: 63 65 6c 6c 78 28 22 70 20 78 30 78 30 20 78 30 cellx("p x0x0 x0
7eb0: 78 30 20 78 30 78 30 20 78 30 78 30 20 22 29 2c x0 x0x0 x0x0 "),
7ec0: 0a 20 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 . cellx("p x
7ed0: 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 000 0000 0000 00
7ee0: 30 30 20 22 29 2c 0a 2d 20 20 20 20 63 65 6c 6c 00 "),.- cell
7ef0: 78 28 22 70 20 78 5b 5e 43 33 5d 30 30 30 20 78 x("p x[^C3]000 x
7f00: 2e 30 30 30 20 30 30 30 30 20 30 30 30 30 20 22 .000 0000 0000 "
7f10: 29 2c 0a 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 ),.+ cellx("p
7f20: 20 78 5b 5e 43 32 5d 30 30 30 20 30 30 30 78 2e x[^C2]000 000x.
7f30: 20 30 30 78 5b 5e 42 31 5d 78 2e 20 78 5b 5e 42 00x[^B1]x. x[^B
7f40: 31 5d 78 2e 78 5b 5e 42 31 5d 78 2e 20 22 29 2c 1]x.x[^B1]x. "),
7f50: 0a 20 20 20 20 20 63 65 6c 6c 78 28 22 70 20 30 . cellx("p 0
7f60: 30 30 30 20 30 30 30 30 20 78 30 78 30 20 30 30 000 0000 x0x0 00
7f70: 78 30 20 22 29 2c 20 2f 2f 20 6d 65 6c 6f 64 79 x0 "), // melody
7f80: 0a 2d 20 20 20 20 63 65 6c 6c 78 28 22 70 20 30 .- cellx("p 0
7f90: 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 000 0000 0000 00
7fa0: 30 30 20 22 29 2c 20 2f 2f 20 66 69 6c 6c 0a 2b 00 "), // fill.+
7fb0: 09 63 65 6c 6c 78 28 22 70 20 30 30 30 30 20 30 .cellx("p 0000 0
7fc0: 30 30 30 20 30 30 30 30 20 30 30 30 30 22 29 0a 000 0000 0000").
7fd0: 20 5d 0a 20 0a 2b 66 69 6c 6c 20 3d 20 20 63 65 ]. .+fill = ce
7fe0: 6c 6c 78 28 22 70 20 78 30 30 30 20 78 30 30 30 llx("p x000 x000
7ff0: 20 78 30 78 78 20 30 30 78 30 22 29 0a 2b 65 6d x0xx 00x0").+em
8000: 70 74 79 20 3d 20 63 65 6c 6c 78 28 22 70 20 30 pty = cellx("p 0
8010: 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 000 0000 0000 00
8020: 30 30 22 29 0a 2b 0a 2b 0a 2b 0a 2b 0a 20 66 75 00").+.+.+.+. fu
8030: 6e 63 74 69 6f 6e 20 53 61 6d 70 6c 65 28 6e 61 nction Sample(na
8040: 6d 65 2c 20 6e 6f 2c 20 66 69 6c 74 65 72 2c 20 me, no, filter,
8050: 76 6f 6c 75 6d 65 29 20 7b 0a 20 20 20 20 20 6e volume) {. n
8060: 61 6d 65 20 3d 20 6e 61 6d 65 0a 20 20 20 20 20 ame = name.
8070: 66 69 6c 74 65 72 20 3d 20 66 69 6c 74 65 72 20 filter = filter
8080: 7c 7c 20 32 30 30 30 30 0a 40 40 20 2d 35 32 2c || 20000.@@ -52,
8090: 38 20 2b 36 30 2c 38 20 40 40 20 66 75 6e 63 74 8 +60,8 @@ funct
80a0: 69 6f 6e 20 6f 6e 63 65 20 28 29 20 7b 0a 20 20 ion once () {.
80b0: 20 20 20 20 20 20 20 70 2e 73 65 74 75 70 20 3d p.setup =
80c0: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 20 20 function() {.
80d0: 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 78 var x
80e0: 20 3d 20 70 2e 63 72 65 61 74 65 43 61 6e 76 61 = p.createCanva
80f0: 73 28 37 30 30 2c 20 34 31 30 29 3b 0a 20 20 20 s(700, 410);.
8100: 20 20 20 20 20 20 20 20 20 20 78 2e 63 61 6e 76 x.canv
8110: 61 73 2e 73 74 79 6c 65 2e 70 6f 73 69 74 69 6f as.style.positio
8120: 6e 20 3d 20 22 61 62 73 6f 6c 75 74 65 22 3b 0a n = "absolute";.
8130: 2d 20 20 20 20 20 20 20 20 20 20 20 20 70 2e 66 - p.f
8140: 72 61 6d 65 52 61 74 65 28 33 30 29 3b 0a 2d 20 rameRate(30);.-
8150: 20 20 20 20 20 20 20 20 20 20 20 69 6d 67 20 3d img =
8160: 20 70 2e 6c 6f 61 64 49 6d 61 67 65 28 27 2f 74 p.loadImage('/t
8170: 65 73 74 2e 70 6e 67 27 29 3b 0a 2b 20 20 20 20 est.png');.+
8180: 20 20 20 20 20 20 20 20 70 2e 66 72 61 6d 65 52 p.frameR
8190: 61 74 65 28 32 29 3b 0a 2b 20 20 20 20 20 20 20 ate(2);.+
81a0: 20 20 20 20 20 69 6d 67 20 3d 20 70 2e 6c 6f 61 img = p.loa
81b0: 64 49 6d 61 67 65 28 27 2f 74 65 73 74 33 2e 70 dImage('/test3.p
81c0: 6e 67 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 ng');.
81d0: 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 69 console.log(i
81e0: 6d 67 29 3b 0a 20 20 20 20 20 20 20 20 20 7d 3b mg);. };
81f0: 0a 20 0a 40 40 20 2d 38 38 2c 39 20 2b 39 36 2c . .@@ -88,9 +96,
8200: 31 32 20 40 40 20 66 75 6e 63 74 69 6f 6e 20 6f 12 @@ function o
8210: 6e 63 65 20 28 29 20 7b 0a 20 20 20 20 20 6d 65 nce () {. me
8220: 6d 5b 22 63 22 5d 20 3d 20 63 65 6c 6c 78 28 31 m["c"] = cellx(1
8230: 29 3b 0a 20 20 20 20 20 6d 65 6d 5b 22 63 22 5d );. mem["c"]
8240: 2e 6f 6e 43 68 61 6e 67 65 28 66 75 6e 63 74 69 .onChange(functi
8250: 6f 6e 20 28 65 29 20 7b 0a 20 20 20 20 20 20 20 on (e) {.
8260: 20 20 76 61 72 20 76 61 6c 20 3d 20 70 61 72 73 var val = pars
8270: 65 49 6e 74 28 65 5b 22 64 61 74 61 22 5d 2e 76 eInt(e["data"].v
8280: 61 6c 75 65 29 3b 0a 2d 20 20 20 20 20 20 20 20 alue);.-
8290: 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 76 61 6c 29 console.log(val)
82a0: 3b 0a 2d 20 20 20 20 20 20 20 20 70 28 34 2c 20 ;.- p(4,
82b0: 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 38 6e 22 null, null, "8n"
82c0: 29 3b 0a 2d 0a 2b 20 20 20 20 20 20 20 20 0a 2b );.-.+ .+
82d0: 20 20 20 20 20 20 20 20 70 28 30 2c 6e 75 6c 6c p(0,null
82e0: 2c 20 6e 75 6c 6c 2c 20 22 32 34 6e 22 29 3b 0a , null, "24n");.
82f0: 2b 20 20 20 20 20 20 20 20 73 65 74 54 69 6d 65 + setTime
8300: 6f 75 74 28 66 75 6e 63 74 69 6f 6e 20 28 29 20 out(function ()
8310: 7b 0a 2b 20 20 20 20 20 20 20 20 09 70 28 34 2c {.+ .p(4,
8320: 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 34 6e null, null, "4n
8330: 22 29 0a 2b 20 20 20 20 20 20 20 20 7d 2c 20 64 ").+ }, d
8340: 65 6c 74 61 20 2a 20 32 29 3b 0a 2b 20 20 20 20 elta * 2);.+
8350: 20 20 20 20 0a 20 20 20 20 20 7d 29 0a 20 20 20 . }).
8360: 20 20 6d 65 6d 5b 22 63 22 5d 2e 6f 6e 45 72 72 mem["c"].onErr
8370: 6f 72 28 66 75 6e 63 74 69 6f 6e 20 28 65 29 20 or(function (e)
8380: 7b 0a 20 20 20 20 20 20 20 20 20 63 6f 6e 73 6f {. conso
8390: 6c 65 2e 6c 6f 67 28 65 29 3b 0a 40 40 20 2d 39 le.log(e);.@@ -9
83a0: 38 2c 31 33 20 2b 31 30 39 2c 33 34 20 40 40 20 8,13 +109,34 @@
83b0: 66 75 6e 63 74 69 6f 6e 20 6f 6e 63 65 20 28 29 function once ()
83c0: 20 7b 0a 20 20 20 20 20 7d 29 0a 20 0a 20 20 20 {. }). .
83d0: 20 20 63 6f 6e 73 74 20 61 75 64 69 6f 20 3d 20 const audio =
83e0: 41 75 64 69 6f 28 29 3b 0a 2d 20 20 20 20 63 6f Audio();.- co
83f0: 6e 73 74 20 74 68 72 65 65 20 3d 20 54 68 72 65 nst three = Thre
8400: 65 4f 68 55 6e 69 74 28 61 75 64 69 6f 2c 20 22 eOhUnit(audio, "
8410: 73 61 77 74 6f 6f 74 68 22 29 0a 2d 20 20 20 20 sawtooth").-
8420: 2f 2f 20 61 75 64 69 6f 2e 6d 61 73 74 65 72 2e // audio.master.
8430: 69 6e 2e 67 61 69 6e 2e 76 61 6c 75 65 20 3d 20 in.gain.value =
8440: 30 2e 35 3b 0a 2b 20 20 20 20 63 6f 6e 73 74 20 0.5;.+ const
8450: 74 68 72 65 65 20 3d 20 54 68 72 65 65 4f 68 55 three = ThreeOhU
8460: 6e 69 74 28 61 75 64 69 6f 2c 20 22 73 61 77 74 nit(audio, "sawt
8470: 6f 6f 74 68 22 2c 20 7b 0a 2b 20 20 20 20 20 20 ooth", {.+
8480: 20 20 20 20 20 20 22 63 75 74 6f 66 66 22 3a 20 "cutoff":
8490: 31 30 30 2c 0a 2b 20 20 20 20 20 20 20 20 20 20 100,.+
84a0: 20 20 22 72 65 73 6f 6e 61 6e 63 65 22 3a 20 31 "resonance": 1
84b0: 35 2c 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 5,.+
84c0: 22 65 6e 76 4d 6f 64 22 3a 20 34 30 30 30 2c 0a "envMod": 4000,.
84d0: 2b 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 + "de
84e0: 63 61 79 22 3a 20 30 2e 35 0a 2b 20 20 20 20 20 cay": 0.5.+
84f0: 20 20 20 7d 0a 2b 09 29 0a 2b 20 20 20 20 61 75 }.+.).+ au
8500: 64 69 6f 2e 6d 61 73 74 65 72 2e 69 6e 2e 67 61 dio.master.in.ga
8510: 69 6e 2e 76 61 6c 75 65 20 3d 20 30 2e 32 3b 0a in.value = 0.2;.
8520: 20 20 20 20 20 6d 65 6d 5b 22 74 68 72 65 65 22 mem["three"
8530: 5d 20 3d 20 74 68 72 65 65 0a 2b 20 20 20 20 0a ] = three.+ .
8540: 2b 20 20 20 20 2f 2f 20 63 75 74 6f 66 66 20 5b + // cutoff [
8550: 33 30 2c 20 37 30 30 5d 2c 20 34 30 30 0a 2b 20 30, 700], 400.+
8560: 20 20 20 2f 2f 20 72 65 73 6f 6e 61 6e 63 65 3a // resonance:
8570: 20 5b 31 2c 20 33 30 5d 2c 20 31 35 0a 2b 20 20 [1, 30], 15.+
8580: 20 20 2f 2f 20 65 6e 76 4d 6f 64 3a 20 5b 30 2c // envMod: [0,
8590: 20 38 30 30 30 5d 2c 20 34 30 30 30 0a 2b 20 20 8000], 4000.+
85a0: 20 20 2f 2f 20 64 65 63 61 79 3a 20 5b 30 2e 31 // decay: [0.1
85b0: 2c 20 30 2e 39 5d 2c 20 30 2e 35 0a 2b 20 20 20 , 0.9], 0.5.+
85c0: 20 0a 2b 20 20 20 20 64 69 61 6c 73 5b 31 5d 5b .+ dials[1][
85d0: 22 63 65 6c 6c 22 5d 28 30 2e 30 31 30 30 29 0a "cell"](0.0100).
85e0: 2b 0a 2b 20 20 20 20 64 69 61 6c 73 5b 31 5d 5b +.+ dials[1][
85f0: 22 63 65 6c 6c 22 5d 2e 6f 6e 43 68 61 6e 67 65 "cell"].onChange
8600: 28 66 75 6e 63 74 69 6f 6e 20 28 65 29 20 7b 0a (function (e) {.
8610: 2b 20 20 20 20 20 20 20 20 76 61 72 20 76 61 6c + var val
8620: 20 3d 20 70 61 72 73 65 46 6c 6f 61 74 28 65 5b = parseFloat(e[
8630: 22 64 61 74 61 22 5d 2e 76 61 6c 75 65 29 3b 0a "data"].value);.
8640: 2b 20 20 20 20 20 20 20 20 63 75 74 6f 66 66 5f + cutoff_
8650: 67 75 61 72 64 20 3d 20 67 75 61 72 64 28 5b 33 guard = guard([3
8660: 30 2c 20 37 30 30 5d 29 3b 0a 2b 20 20 20 20 20 0, 700]);.+
8670: 20 20 20 74 68 72 65 65 2e 70 61 72 61 6d 73 2e three.params.
8680: 63 75 74 6f 66 66 2e 76 61 6c 75 65 20 3d 20 63 cutoff.value = c
8690: 75 74 6f 66 66 5f 67 75 61 72 64 28 76 61 6c 20 utoff_guard(val
86a0: 2a 20 31 30 30 30 29 3b 0a 2b 20 20 20 20 7d 29 * 1000);.+ })
86b0: 0a 20 7d 0a 20 0a 2b 0a 2b 0a 20 74 72 61 6e 73 . }. .+.+. trans
86c0: 69 74 69 6f 6e 20 3d 20 6f 6e 63 65 3b 0a 2d 63 ition = once;.-c
86d0: 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 3d 20 22 urrent_scene = "
86e0: 6d 61 69 6e 22 3b 0a 2b 63 75 72 72 65 6e 74 5f main";.+current_
86f0: 73 63 65 6e 65 20 3d 20 22 62 61 73 73 22 3b 0a scene = "bass";.
8700: 20 70 61 74 74 65 72 6e 73 20 3d 20 65 76 61 6c patterns = eval
8710: 28 60 24 7b 63 75 72 72 65 6e 74 5f 73 63 65 6e (`${current_scen
8720: 65 7d 60 29 3b 0a 20 61 6c 77 61 79 73 28 29 3b e}`);. always();
8730: 0a 20 0a 40 40 20 2d 31 32 36 2c 36 20 2b 31 35 . .@@ -126,6 +15
8740: 38 2c 39 20 40 40 20 69 66 20 28 69 73 48 69 74 8,9 @@ if (isHit
8750: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 69 66 20 ) {. if
8760: 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 34 29 20 (track_no == 4)
8770: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 70 {. p
8780: 28 33 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 (3, null, null,
8790: 22 31 6e 22 29 3b 0a 20 20 20 20 20 20 20 20 20 "1n");.
87a0: 7d 0a 2b 20 20 20 20 20 20 20 20 20 69 66 20 28 }.+ if (
87b0: 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 35 29 20 7b track_no == 5) {
87c0: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 70 28 .+ p(
87d0: 35 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 5, null, null, "
87e0: 31 6e 22 29 3b 0a 2b 20 20 20 20 20 20 20 20 7d 1n");.+ }
87f0: 0a 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 . } else if
8800: 28 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 3d (current_scene =
8810: 3d 20 22 62 61 73 73 22 29 20 7b 0a 20 20 20 20 = "bass") {.
8820: 20 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e if (track_n
8830: 6f 20 3d 3d 20 31 29 20 7b 0a 20 20 20 20 20 20 o == 1) {.
8840: 20 20 20 20 20 20 20 70 28 30 2c 20 6d 65 74 61 p(0, meta
8850: 5b 74 69 63 6b 5d 5b 22 76 6f 6c 75 6d 65 22 5d [tick]["volume"]
8860: 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 70 69 , meta[tick]["pi
8870: 74 63 68 22 5d 2c 20 22 32 34 6e 22 2c 20 6d 65 tch"], "24n", me
8880: 74 61 5b 74 69 63 6b 5d 5b 22 64 65 6c 61 79 22 ta[tick]["delay"
8890: 5d 20 29 3b 0a 40 40 20 2d 31 34 37 2c 31 31 20 ] );.@@ -147,11
88a0: 2b 31 38 32 2c 31 33 20 40 40 20 69 66 20 28 69 +182,13 @@ if (i
88b0: 73 48 69 74 29 20 7b 0a 20 20 20 20 20 20 20 20 sHit) {.
88c0: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 }.
88d0: 7d 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 74 }. if (t
88e0: 72 61 63 6b 5f 6e 6f 20 3d 3d 20 36 29 20 7b 0a rack_no == 6) {.
88f0: 2d 20 20 20 20 20 20 20 20 20 20 20 20 70 28 35 - p(5
8900: 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 31 , null, null, "1
8910: 6e 22 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 n");.+
8920: 20 70 28 35 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c p(5, null, null
8930: 2c 20 22 31 6e 22 29 3b 0a 20 20 20 20 20 20 20 , "1n");.
8940: 20 20 7d 0a 20 20 20 20 20 20 20 20 20 69 66 20 }. if
8950: 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 37 29 20 (track_no == 7)
8960: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d {. m
8970: 65 6d 5b 22 63 22 5d 28 6d 65 6d 5b 22 63 22 5d em["c"](mem["c"]
8980: 28 29 20 2b 20 31 29 3b 0a 20 20 20 20 20 20 20 () + 1);.
8990: 20 20 7d 0a 2d 20 20 20 20 7d 0a 2b 20 20 20 20 }.- }.+
89a0: 7d 20 0a 2b 0a 20 7d 0a 20 0a 2b 0a 0a 63 6f 6d } .+. }. .+..com
89b0: 6d 69 74 20 33 31 37 32 32 64 32 62 34 36 63 64 mit 31722d2b46cd
89c0: 33 30 33 39 64 31 62 34 35 32 39 36 65 31 62 38 3039d1b45296e1b8
89d0: 62 61 65 32 38 66 38 33 34 64 34 63 0a 41 75 74 bae28f834d4c.Aut
89e0: 68 6f 72 3a 20 58 79 7a 7a 79 20 41 70 70 73 20 hor: Xyzzy Apps
89f0: 3c 78 79 7a 7a 79 61 70 70 73 40 67 6d 61 69 6c <xyzzyapps@gmail
8a00: 2e 63 6f 6d 3e 0a 44 61 74 65 3a 20 20 20 4d 6f .com>.Date: Mo
8a10: 6e 20 4e 6f 76 20 31 20 30 35 3a 33 35 3a 31 30 n Nov 1 05:35:10
8a20: 20 32 30 32 31 20 2b 30 30 30 30 0a 0a 20 20 20 2021 +0000..
8a30: 20 2f 55 73 65 72 73 2f 64 65 76 2f 70 72 6f 6a /Users/dev/proj
8a40: 2f 70 72 6f 64 75 63 74 69 6f 6e 2f 62 69 74 72 /production/bitr
8a50: 68 79 74 68 6d 2f 73 6f 6e 67 20 6d 6f 64 69 66 hythm/song modif
8a60: 69 65 64 0a 0a 64 69 66 66 20 2d 2d 67 69 74 20 ied..diff --git
8a70: 61 2f 66 69 72 73 74 2e 6a 73 20 62 2f 66 69 72 a/first.js b/fir
8a80: 73 74 2e 6a 73 0a 69 6e 64 65 78 20 66 66 61 61 st.js.index ffaa
8a90: 32 34 32 2e 2e 33 64 38 65 39 66 62 20 31 30 30 242..3d8e9fb 100
8aa0: 36 34 34 0a 2d 2d 2d 20 61 2f 66 69 72 73 74 2e 644.--- a/first.
8ab0: 6a 73 0a 2b 2b 2b 20 62 2f 66 69 72 73 74 2e 6a js.+++ b/first.j
8ac0: 73 0a 40 40 20 2d 31 2c 32 31 20 2b 31 2c 32 36 s.@@ -1,21 +1,26
8ad0: 20 40 40 0a 20 76 6f 6c 75 6d 65 5f 67 75 61 72 @@. volume_guar
8ae0: 64 31 20 3d 20 67 75 61 72 64 28 5b 2d 32 30 2c d1 = guard([-20,
8af0: 31 35 5d 29 0a 2d 76 6f 6c 75 6d 65 5f 67 75 61 15]).-volume_gua
8b00: 72 64 32 20 3d 20 67 75 61 72 64 28 5b 2d 32 30 rd2 = guard([-20
8b10: 2c 31 35 5d 29 0a 20 54 6f 6e 65 2e 4d 61 73 74 ,15]). Tone.Mast
8b20: 65 72 2e 76 6f 6c 75 6d 65 2e 76 61 6c 75 65 20 er.volume.value
8b30: 3d 20 76 6f 6c 75 6d 65 5f 67 75 61 72 64 31 28 = volume_guard1(
8b40: 4d 61 74 68 2e 72 6f 75 6e 64 28 64 69 61 6c 73 Math.round(dials
8b50: 5b 30 5d 5b 22 63 65 6c 6c 22 5d 28 29 20 2a 20 [0]["cell"]() *
8b60: 33 30 29 20 2d 32 30 29 3b 0a 20 0a 2d 73 63 65 30) -20);. .-sce
8b70: 6e 65 31 20 3d 20 5b 0a 2b 69 6e 74 72 6f 20 3d ne1 = [.+intro =
8b80: 20 5b 0a 2b 20 20 20 63 65 6c 6c 78 28 22 70 20 [.+ cellx("p
8b90: 78 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 x000 0000 0000 0
8ba0: 30 30 30 20 22 29 2c 0a 2b 5d 0a 2b 0a 2b 6d 61 000 "),.+].+.+ma
8bb0: 69 6e 20 3d 20 5b 0a 20 20 20 20 20 63 65 6c 6c in = [. cell
8bc0: 78 28 22 70 20 78 5b 32 3b 5e 43 32 3b 2b 30 2e x("p x[2;^C2;+0.
8bd0: 30 31 5d 30 30 30 20 30 30 30 30 20 78 5b 30 2e 01]000 0000 x[0.
8be0: 31 5d 30 78 5b 31 5d 30 20 30 30 78 5b 31 5d 30 1]0x[1]0 00x[1]0
8bf0: 20 22 29 2c 0a 20 20 20 20 20 63 65 6c 6c 78 28 "),. cellx(
8c00: 22 70 20 30 30 30 30 20 78 30 30 30 20 30 30 30 "p 0000 x000 000
8c10: 30 20 78 30 30 30 20 22 29 2c 0a 20 20 20 20 20 0 x000 "),.
8c20: 63 65 6c 6c 78 28 22 70 20 78 30 78 30 20 78 30 cellx("p x0x0 x0
8c30: 78 30 20 78 30 78 30 20 78 30 78 30 20 22 29 2c x0 x0x0 x0x0 "),
8c40: 0a 20 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 . cellx("p x
8c50: 30 30 30 20 30 30 30 30 20 30 30 30 30 20 30 30 000 0000 0000 00
8c60: 30 30 20 22 29 2c 0a 2d 20 20 20 20 63 65 6c 6c 00 "),.- cell
8c70: 78 28 22 70 20 78 5b 5e 43 33 5d 30 30 30 20 78 x("p x[^C3]000 x
8c80: 2e 30 30 30 20 30 30 30 30 20 30 30 30 30 20 22 .000 0000 0000 "
8c90: 29 2c 0a 2d 20 20 20 20 63 65 6c 6c 78 28 22 70 ),.- cellx("p
8ca0: 20 30 30 30 30 20 30 30 30 30 20 78 30 78 30 20 0000 0000 x0x0
8cb0: 30 30 78 30 20 22 29 2c 0a 2d 20 20 20 20 63 65 00x0 "),.- ce
8cc0: 6c 6c 78 28 22 70 20 30 30 30 30 20 30 30 30 30 llx("p 0000 0000
8cd0: 20 30 30 30 30 20 30 30 30 30 20 22 29 2c 0a 2d 0000 0000 "),.-
8ce0: 0a 20 5d 0a 20 0a 2d 70 61 74 74 65 72 6e 73 20 . ]. .-patterns
8cf0: 3d 20 73 63 65 6e 65 31 0a 2d 0a 2d 61 6c 77 61 = scene1.-.-alwa
8d00: 79 73 28 29 3b 0a 2b 62 61 73 73 20 3d 20 5b 0a ys();.+bass = [.
8d10: 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 5b + cellx("p x[
8d20: 32 3b 5e 43 32 3b 2b 30 2e 30 31 5d 30 30 30 20 2;^C2;+0.01]000
8d30: 30 30 30 30 20 78 5b 30 2e 31 5d 30 78 5b 31 5d 0000 x[0.1]0x[1]
8d40: 30 20 30 30 78 5b 31 5d 30 20 22 29 2c 0a 2b 20 0 00x[1]0 "),.+
8d50: 20 20 20 63 65 6c 6c 78 28 22 70 20 30 30 30 30 cellx("p 0000
8d60: 20 78 30 30 30 20 30 30 30 30 20 78 30 30 30 20 x000 0000 x000
8d70: 22 29 2c 0a 2b 20 20 20 20 63 65 6c 6c 78 28 22 "),.+ cellx("
8d80: 70 20 78 30 78 30 20 78 30 78 30 20 78 30 78 30 p x0x0 x0x0 x0x0
8d90: 20 78 30 78 30 20 22 29 2c 0a 2b 20 20 20 20 63 x0x0 "),.+ c
8da0: 65 6c 6c 78 28 22 70 20 78 30 30 30 20 30 30 30 ellx("p x000 000
8db0: 30 20 30 30 30 30 20 30 30 30 30 20 22 29 2c 0a 0 0000 0000 "),.
8dc0: 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 5b + cellx("p x[
8dd0: 5e 43 33 5d 30 30 30 20 78 2e 30 30 30 20 30 30 ^C3]000 x.000 00
8de0: 30 30 20 30 30 30 30 20 22 29 2c 0a 2b 20 20 20 00 0000 "),.+
8df0: 20 63 65 6c 6c 78 28 22 70 20 30 30 30 30 20 30 cellx("p 0000 0
8e00: 30 30 30 20 78 30 78 30 20 30 30 78 30 20 22 29 000 x0x0 00x0 ")
8e10: 2c 20 2f 2f 20 6d 65 6c 6f 64 79 0a 2b 20 20 20 , // melody.+
8e20: 20 63 65 6c 6c 78 28 22 70 20 30 30 30 30 20 30 cellx("p 0000 0
8e30: 30 30 30 20 30 30 30 30 20 30 30 30 30 20 22 29 000 0000 0000 ")
8e40: 2c 20 2f 2f 20 66 69 6c 6c 0a 2b 5d 0a 20 0a 20 , // fill.+]. .
8e50: 66 75 6e 63 74 69 6f 6e 20 53 61 6d 70 6c 65 28 function Sample(
8e60: 6e 61 6d 65 2c 20 6e 6f 2c 20 66 69 6c 74 65 72 name, no, filter
8e70: 2c 20 76 6f 6c 75 6d 65 29 20 7b 0a 20 20 20 20 , volume) {.
8e80: 20 6e 61 6d 65 20 3d 20 6e 61 6d 65 0a 40 40 20 name = name.@@
8e90: 2d 36 37 2c 37 20 2b 37 32 2c 37 20 40 40 20 66 -67,7 +72,7 @@ f
8ea0: 75 6e 63 74 69 6f 6e 20 6f 6e 63 65 20 28 29 20 unction once ()
8eb0: 7b 0a 20 20 20 20 20 6c 65 74 20 6d 79 70 35 20 {. let myp5
8ec0: 3d 20 6e 65 77 20 70 35 28 73 2c 20 20 64 6f 63 = new p5(s, doc
8ed0: 75 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 ument.getElement
8ee0: 42 79 49 64 28 27 63 61 6e 76 61 73 2d 63 6f 6e ById('canvas-con
8ef0: 74 61 69 6e 65 72 27 29 29 3b 0a 20 0a 20 20 20 tainer'));. .
8f00: 20 20 72 65 6e 64 65 72 5f 6c 6f 6f 70 20 3d 20 render_loop =
8f10: 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 2d 20 function () {.-
8f20: 20 20 20 09 70 72 2e 72 65 63 74 28 78 2c 79 2c .pr.rect(x,y,
8f30: 35 30 2c 35 30 29 3b 0a 2b 2f 2f 20 20 20 20 09 50,50);.+// .
8f40: 70 72 2e 72 65 63 74 28 78 2c 79 2c 35 30 2c 35 pr.rect(x,y,50,5
8f50: 30 29 3b 0a 20 20 20 20 20 7d 0a 20 0a 20 20 20 0);. }. .
8f60: 20 20 54 6f 6e 65 2e 4d 61 73 74 65 72 2e 76 6f Tone.Master.vo
8f70: 6c 75 6d 65 2e 76 61 6c 75 65 20 3d 20 2d 33 30 lume.value = -30
8f80: 0a 40 40 20 2d 39 39 2c 33 33 20 2b 31 30 34 2c .@@ -99,33 +104,
8f90: 35 34 20 40 40 20 66 75 6e 63 74 69 6f 6e 20 6f 54 @@ function o
8fa0: 6e 63 65 20 28 29 20 7b 0a 20 7d 0a 20 0a 20 74 nce () {. }. . t
8fb0: 72 61 6e 73 69 74 69 6f 6e 20 3d 20 6f 6e 63 65 ransition = once
8fc0: 3b 0a 2b 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 ;.+current_scene
8fd0: 20 3d 20 22 6d 61 69 6e 22 3b 0a 2b 70 61 74 74 = "main";.+patt
8fe0: 65 72 6e 73 20 3d 20 65 76 61 6c 28 60 24 7b 63 erns = eval(`${c
8ff0: 75 72 72 65 6e 74 5f 73 63 65 6e 65 7d 60 29 3b urrent_scene}`);
9000: 0a 2b 61 6c 77 61 79 73 28 29 3b 0a 20 0a 20 69 .+always();. . i
9010: 66 20 28 69 73 48 69 74 29 20 7b 0a 2d 20 20 20 f (isHit) {.-
9020: 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d if (track_no ==
9030: 20 31 29 20 7b 0a 2d 20 20 20 20 20 20 20 20 70 1) {.- p
9040: 28 30 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 (0, meta[tick]["
9050: 76 6f 6c 75 6d 65 22 5d 2c 20 6d 65 74 61 5b 74 volume"], meta[t
9060: 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d 2c 20 22 ick]["pitch"], "
9070: 32 34 6e 22 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 24n", meta[tick]
9080: 5b 22 64 65 6c 61 79 22 5d 20 29 3b 0a 2d 20 20 ["delay"] );.-
9090: 20 20 7d 0a 2d 20 20 20 20 69 66 20 28 74 72 61 }.- if (tra
90a0: 63 6b 5f 6e 6f 20 3d 3d 20 32 29 20 7b 0a 2d 20 ck_no == 2) {.-
90b0: 20 20 20 20 20 20 20 70 28 31 29 3b 0a 2d 20 20 p(1);.-
90c0: 20 20 7d 0a 2d 20 20 20 20 69 66 20 28 74 72 61 }.- if (tra
90d0: 63 6b 5f 6e 6f 20 3d 3d 20 33 29 20 7b 0a 2d 20 ck_no == 3) {.-
90e0: 20 20 20 20 20 20 20 70 28 32 29 0a 2d 20 20 20 p(2).-
90f0: 20 7d 0a 2d 20 20 20 20 69 66 20 28 74 72 61 63 }.- if (trac
9100: 6b 5f 6e 6f 20 3d 3d 20 34 29 20 7b 0a 2d 20 20 k_no == 4) {.-
9110: 20 20 20 20 20 20 70 28 33 2c 20 6e 75 6c 6c 2c p(3, null,
9120: 20 6e 75 6c 6c 2c 20 22 31 6e 22 29 3b 0a 2d 20 null, "1n");.-
9130: 20 20 20 7d 0a 2d 20 20 20 20 69 66 20 28 74 72 }.- if (tr
9140: 61 63 6b 5f 6e 6f 20 3d 3d 20 35 29 20 7b 0a 2d ack_no == 5) {.-
9150: 20 20 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65 2e console.
9160: 6c 6f 67 28 6d 65 74 61 5b 74 69 63 6b 5d 29 0a log(meta[tick]).
9170: 2d 20 20 20 20 20 20 20 20 69 66 20 28 6d 65 74 - if (met
9180: 61 5b 74 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d a[tick]["pitch"]
9190: 29 20 7b 0a 2d 20 20 20 20 20 20 20 20 20 20 20 ) {.-
91a0: 20 6d 65 6d 5b 22 74 68 72 65 65 22 5d 2e 73 74 mem["three"].st
91b0: 65 70 28 7b 22 67 6c 69 64 65 22 3a 20 74 72 75 ep({"glide": tru
91c0: 65 2c 20 22 61 63 63 65 6e 74 22 3a 20 66 61 6c e, "accent": fal
91d0: 73 65 2c 20 22 6e 6f 74 65 22 3a 20 6d 65 74 61 se, "note": meta
91e0: 5b 74 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d 7d [tick]["pitch"]}
91f0: 29 3b 0a 2d 20 20 20 20 20 20 20 20 7d 20 65 6c );.- } el
9200: 73 65 20 7b 0a 2d 20 20 20 20 20 20 20 20 20 20 se {.-
9210: 20 20 6d 65 6d 5b 22 74 68 72 65 65 22 5d 2e 73 mem["three"].s
9220: 74 65 70 28 22 6f 66 66 22 29 3b 0a 2b 20 20 20 tep("off");.+
9230: 20 69 66 20 28 63 75 72 72 65 6e 74 5f 73 63 65 if (current_sce
9240: 6e 65 20 3d 3d 20 22 69 6e 74 72 6f 22 29 20 7b ne == "intro") {
9250: 0a 2b 20 20 20 20 20 20 20 20 69 66 20 28 74 72 .+ if (tr
9260: 61 63 6b 5f 6e 6f 20 3d 3d 20 31 29 20 7b 0a 2b ack_no == 1) {.+
9270: 20 20 20 20 20 20 20 20 20 20 20 20 70 28 33 2c p(3,
9280: 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 31 6e null, null, "1n
9290: 22 29 3b 0a 2b 20 20 20 20 20 20 20 20 7d 0a 2b ");.+ }.+
92a0: 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 63 } else if (c
92b0: 75 72 72 65 6e 74 5f 73 63 65 6e 65 20 3d 3d 20 urrent_scene ==
92c0: 22 6d 61 69 6e 22 29 20 7b 0a 2b 20 20 20 20 20 "main") {.+
92d0: 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 if (track_no
92e0: 3d 3d 20 31 29 20 7b 0a 2b 20 20 20 20 20 20 20 == 1) {.+
92f0: 20 20 20 20 20 70 28 30 2c 20 6d 65 74 61 5b 74 p(0, meta[t
9300: 69 63 6b 5d 5b 22 76 6f 6c 75 6d 65 22 5d 2c 20 ick]["volume"],
9310: 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 70 69 74 63 meta[tick]["pitc
9320: 68 22 5d 2c 20 22 32 34 6e 22 2c 20 6d 65 74 61 h"], "24n", meta
9330: 5b 74 69 63 6b 5d 5b 22 64 65 6c 61 79 22 5d 20 [tick]["delay"]
9340: 29 3b 0a 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20 );.+ }.+
9350: 20 20 20 20 20 20 20 69 66 20 28 74 72 61 63 6b if (track
9360: 5f 6e 6f 20 3d 3d 20 32 29 20 7b 0a 2b 20 20 20 _no == 2) {.+
9370: 20 20 20 20 20 20 20 20 20 70 28 31 29 3b 0a 2b p(1);.+
9380: 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 20 }.+
9390: 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 if (track_no
93a0: 3d 3d 20 33 29 20 7b 0a 2b 20 20 20 20 20 20 20 == 3) {.+
93b0: 20 20 20 20 20 70 28 32 29 0a 2b 20 20 20 20 20 p(2).+
93c0: 20 20 20 7d 0a 2b 20 20 20 20 20 20 20 20 69 66 }.+ if
93d0: 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 34 29 (track_no == 4)
93e0: 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 {.+
93f0: 70 28 33 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c p(3, null, null,
9400: 20 22 31 6e 22 29 3b 0a 2b 20 20 20 20 20 20 20 "1n");.+
9410: 20 7d 0a 2b 20 20 20 20 7d 20 65 6c 73 65 20 69 }.+ } else i
9420: 66 20 28 63 75 72 72 65 6e 74 5f 73 63 65 6e 65 f (current_scene
9430: 20 3d 3d 20 22 62 61 73 73 22 29 20 7b 0a 2b 20 == "bass") {.+
9440: 20 20 20 20 20 20 20 69 66 20 28 74 72 61 63 6b if (track
9450: 5f 6e 6f 20 3d 3d 20 31 29 20 7b 0a 2b 20 20 20 _no == 1) {.+
9460: 20 20 20 20 20 20 20 20 20 70 28 30 2c 20 6d 65 p(0, me
9470: 74 61 5b 74 69 63 6b 5d 5b 22 76 6f 6c 75 6d 65 ta[tick]["volume
9480: 22 5d 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 "], meta[tick]["
9490: 70 69 74 63 68 22 5d 2c 20 22 32 34 6e 22 2c 20 pitch"], "24n",
94a0: 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 64 65 6c 61 meta[tick]["dela
94b0: 79 22 5d 20 29 3b 0a 2b 20 20 20 20 20 20 20 20 y"] );.+
94c0: 7d 0a 2b 20 20 20 20 20 20 20 20 69 66 20 28 74 }.+ if (t
94d0: 72 61 63 6b 5f 6e 6f 20 3d 3d 20 32 29 20 7b 0a rack_no == 2) {.
94e0: 2b 20 20 20 20 20 20 20 20 20 20 20 20 70 28 31 + p(1
94f0: 29 3b 0a 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20 );.+ }.+
9500: 20 20 20 20 20 20 20 69 66 20 28 74 72 61 63 6b if (track
9510: 5f 6e 6f 20 3d 3d 20 33 29 20 7b 0a 2b 20 20 20 _no == 3) {.+
9520: 20 20 20 20 20 20 20 20 20 70 28 32 29 0a 2b 20 p(2).+
9530: 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 20 20 }.+
9540: 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d if (track_no =
9550: 3d 20 34 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 = 4) {.+
9560: 20 20 20 20 70 28 33 2c 20 6e 75 6c 6c 2c 20 6e p(3, null, n
9570: 75 6c 6c 2c 20 22 31 6e 22 29 3b 0a 2b 20 20 20 ull, "1n");.+
9580: 20 20 20 20 20 7d 0a 2b 20 20 20 20 20 20 20 20 }.+
9590: 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 if (track_no ==
95a0: 35 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 5) {.+
95b0: 20 20 69 66 20 28 6d 65 74 61 5b 74 69 63 6b 5d if (meta[tick]
95c0: 5b 22 70 69 74 63 68 22 5d 29 20 7b 0a 2b 20 20 ["pitch"]) {.+
95d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 me
95e0: 6d 5b 22 74 68 72 65 65 22 5d 2e 73 74 65 70 28 m["three"].step(
95f0: 7b 22 67 6c 69 64 65 22 3a 20 74 72 75 65 2c 20 {"glide": true,
9600: 22 61 63 63 65 6e 74 22 3a 20 66 61 6c 73 65 2c "accent": false,
9610: 20 22 6e 6f 74 65 22 3a 20 6d 65 74 61 5b 74 69 "note": meta[ti
9620: 63 6b 5d 5b 22 70 69 74 63 68 22 5d 7d 29 3b 0a ck]["pitch"]});.
9630: 2b 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 + } e
9640: 6c 73 65 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 lse {.+
9650: 20 20 20 20 20 20 20 6d 65 6d 5b 22 74 68 72 65 mem["thre
9660: 65 22 5d 2e 73 74 65 70 28 22 6f 66 66 22 29 3b e"].step("off");
9670: 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a .+ }.
9680: 2b 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 + }.+
9690: 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f if (track_no
96a0: 20 3d 3d 20 36 29 20 7b 0a 2b 20 20 20 20 20 20 == 6) {.+
96b0: 20 20 20 20 20 20 70 28 35 2c 20 6e 75 6c 6c 2c p(5, null,
96c0: 20 6e 75 6c 6c 2c 20 22 31 6e 22 29 3b 0a 2b 20 null, "1n");.+
96d0: 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 20 20 }.+
96e0: 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d if (track_no =
96f0: 3d 20 37 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 = 7) {.+
9700: 20 20 20 20 6d 65 6d 5b 22 63 22 5d 28 6d 65 6d mem["c"](mem
9710: 5b 22 63 22 5d 28 29 20 2b 20 31 29 3b 0a 20 20 ["c"]() + 1);.
9720: 20 20 20 20 20 20 20 7d 0a 2d 20 20 20 20 7d 0a }.- }.
9730: 2d 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e - if (track_n
9740: 6f 20 3d 3d 20 36 29 20 7b 0a 2d 20 20 20 20 20 o == 6) {.-
9750: 20 20 20 70 28 35 2c 20 6e 75 6c 6c 2c 20 6e 75 p(5, null, nu
9760: 6c 6c 2c 20 22 31 6e 22 29 3b 0a 2d 20 20 20 20 ll, "1n");.-
9770: 7d 0a 2d 20 20 20 20 69 66 20 28 74 72 61 63 6b }.- if (track
9780: 5f 6e 6f 20 3d 3d 20 37 29 20 7b 0a 2d 20 20 20 _no == 7) {.-
9790: 20 20 20 20 20 6d 65 6d 5b 22 63 22 5d 28 6d 65 mem["c"](me
97a0: 6d 5b 22 63 22 5d 28 29 20 2b 20 31 29 3b 0a 20 m["c"]() + 1);.
97b0: 20 20 20 20 7d 0a 20 7d 0a 20 0a 0a 63 6f 6d 6d }. }. ..comm
97c0: 69 74 20 34 33 38 31 36 36 34 39 65 34 39 34 34 it 43816649e4944
97d0: 38 33 61 33 39 65 30 65 36 33 38 36 66 38 39 61 83a39e0e6386f89a
97e0: 35 62 39 30 65 30 39 32 32 37 30 0a 41 75 74 68 5b90e092270.Auth
97f0: 6f 72 3a 20 58 79 7a 7a 79 20 41 70 70 73 20 3c or: Xyzzy Apps <
9800: 78 79 7a 7a 79 61 70 70 73 40 67 6d 61 69 6c 2e xyzzyapps@gmail.
9810: 63 6f 6d 3e 0a 44 61 74 65 3a 20 20 20 4d 6f 6e com>.Date: Mon
9820: 20 4e 6f 76 20 31 20 30 34 3a 34 37 3a 35 35 20 Nov 1 04:47:55
9830: 32 30 32 31 20 2b 30 30 30 30 0a 0a 20 20 20 20 2021 +0000..
9840: 2f 55 73 65 72 73 2f 64 65 76 2f 70 72 6f 6a 2f /Users/dev/proj/
9850: 70 72 6f 64 75 63 74 69 6f 6e 2f 62 69 74 72 68 production/bitrh
9860: 79 74 68 6d 2f 73 6f 6e 67 20 6d 6f 64 69 66 69 ythm/song modifi
9870: 65 64 0a 0a 64 69 66 66 20 2d 2d 67 69 74 20 61 ed..diff --git a
9880: 2f 66 69 72 73 74 2e 6a 73 20 62 2f 66 69 72 73 /first.js b/firs
9890: 74 2e 6a 73 0a 69 6e 64 65 78 20 38 33 66 34 38 t.js.index 83f48
98a0: 66 31 2e 2e 66 66 61 61 32 34 32 20 31 30 30 36 f1..ffaa242 1006
98b0: 34 34 0a 2d 2d 2d 20 61 2f 66 69 72 73 74 2e 6a 44.--- a/first.j
98c0: 73 0a 2b 2b 2b 20 62 2f 66 69 72 73 74 2e 6a 73 s.+++ b/first.js
98d0: 0a 40 40 20 2d 33 35 2c 36 20 2b 33 35 2c 34 31 .@@ -35,6 +35,41
98e0: 20 40 40 20 66 75 6e 63 74 69 6f 6e 20 70 28 73 @@ function p(s
98f0: 2c 20 76 6f 6c 2c 20 20 6e 6f 74 65 2c 20 20 6c , vol, note, l
9900: 65 6e 2c 20 64 65 6c 61 79 29 20 7b 0a 20 7d 0a en, delay) {. }.
9910: 20 0a 20 66 75 6e 63 74 69 6f 6e 20 6f 6e 63 65 . function once
9920: 20 28 29 20 7b 0a 2b 0a 2b 20 20 20 20 76 61 72 () {.+.+ var
9930: 20 70 72 3b 0a 2b 20 20 20 20 63 6f 6e 73 74 20 pr;.+ const
9940: 73 20 3d 20 28 20 70 20 29 20 3d 3e 20 7b 0a 2b s = ( p ) => {.+
9950: 20 20 20 20 20 20 20 20 70 72 20 3d 20 70 3b 0a pr = p;.
9960: 2b 20 20 20 20 20 20 20 20 76 61 72 20 69 6d 67 + var img
9970: 3b 0a 2b 0a 2b 20 20 20 20 20 20 20 20 6c 65 74 ;.+.+ let
9980: 20 78 20 3d 20 31 30 30 3b 20 0a 2b 20 20 20 20 x = 100; .+
9990: 20 20 20 20 6c 65 74 20 79 20 3d 20 31 30 30 3b let y = 100;
99a0: 0a 2b 0a 2b 20 20 20 20 20 20 20 20 70 2e 73 65 .+.+ p.se
99b0: 74 75 70 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 tup = function()
99c0: 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 {.+
99d0: 76 61 72 20 78 20 3d 20 70 2e 63 72 65 61 74 65 var x = p.create
99e0: 43 61 6e 76 61 73 28 37 30 30 2c 20 34 31 30 29 Canvas(700, 410)
99f0: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 78 ;.+ x
9a00: 2e 63 61 6e 76 61 73 2e 73 74 79 6c 65 2e 70 6f .canvas.style.po
9a10: 73 69 74 69 6f 6e 20 3d 20 22 61 62 73 6f 6c 75 sition = "absolu
9a20: 74 65 22 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 te";.+
9a30: 20 20 70 2e 66 72 61 6d 65 52 61 74 65 28 33 30 p.frameRate(30
9a40: 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 );.+
9a50: 69 6d 67 20 3d 20 70 2e 6c 6f 61 64 49 6d 61 67 img = p.loadImag
9a60: 65 28 27 2f 74 65 73 74 2e 70 6e 67 27 29 3b 0a e('/test.png');.
9a70: 2b 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e + con
9a80: 73 6f 6c 65 2e 6c 6f 67 28 69 6d 67 29 3b 0a 2b sole.log(img);.+
9a90: 20 20 20 20 20 20 20 20 7d 3b 0a 2b 0a 2b 20 20 };.+.+
9aa0: 20 20 20 20 20 20 70 2e 64 72 61 77 20 3d 20 66 p.draw = f
9ab0: 75 6e 63 74 69 6f 6e 28 29 20 7b 0a 2b 20 20 20 unction() {.+
9ac0: 20 20 20 20 20 20 20 20 20 76 61 72 20 65 20 3d var e =
9ad0: 20 67 65 74 52 61 6e 64 6f 6d 49 6e 74 28 32 29 getRandomInt(2)
9ae0: 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 20 70 ;.+ p
9af0: 2e 63 6c 65 61 72 28 29 3b 0a 2b 20 20 20 20 20 .clear();.+
9b00: 20 20 20 20 20 20 20 69 66 20 28 65 20 3d 3d 20 if (e ==
9b10: 30 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 0) {.+
9b20: 20 20 20 20 20 20 2f 2f 20 20 20 70 2e 66 69 6c // p.fil
9b30: 6c 28 31 32 33 29 3b 0a 2b 20 20 20 20 20 20 20 l(123);.+
9b40: 20 20 20 20 20 20 20 20 20 2f 2f 20 20 70 2e 72 // p.r
9b50: 65 63 74 28 78 2c 79 2c 35 30 2c 35 30 29 3b 0a ect(x,y,50,50);.
9b60: 2b 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 + } e
9b70: 6c 73 65 20 7b 0a 2b 20 20 20 20 20 20 20 20 20 lse {.+
9b80: 20 20 20 20 20 20 20 70 2e 69 6d 61 67 65 28 69 p.image(i
9b90: 6d 67 2c 20 30 2c 20 30 29 3b 0a 2b 20 20 20 20 mg, 0, 0);.+
9ba0: 20 20 20 20 20 20 20 20 7d 0a 2b 20 20 20 20 20 }.+
9bb0: 20 20 20 7d 3b 0a 2b 20 20 20 20 7d 3b 0a 2b 0a };.+ };.+.
9bc0: 2b 20 20 20 20 6c 65 74 20 6d 79 70 35 20 3d 20 + let myp5 =
9bd0: 6e 65 77 20 70 35 28 73 2c 20 20 64 6f 63 75 6d new p5(s, docum
9be0: 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 42 79 ent.getElementBy
9bf0: 49 64 28 27 63 61 6e 76 61 73 2d 63 6f 6e 74 61 Id('canvas-conta
9c00: 69 6e 65 72 27 29 29 3b 0a 2b 0a 2b 20 20 20 20 iner'));.+.+
9c10: 72 65 6e 64 65 72 5f 6c 6f 6f 70 20 3d 20 66 75 render_loop = fu
9c20: 6e 63 74 69 6f 6e 20 28 29 20 7b 0a 2b 20 20 20 nction () {.+
9c30: 20 09 70 72 2e 72 65 63 74 28 78 2c 79 2c 35 30 .pr.rect(x,y,50
9c40: 2c 35 30 29 3b 0a 2b 20 20 20 20 7d 0a 2b 0a 20 ,50);.+ }.+.
9c50: 20 20 20 20 54 6f 6e 65 2e 4d 61 73 74 65 72 2e Tone.Master.
9c60: 76 6f 6c 75 6d 65 2e 76 61 6c 75 65 20 3d 20 2d volume.value = -
9c70: 33 30 0a 20 20 20 20 20 6d 65 6d 2e 6d 61 73 74 30. mem.mast
9c80: 65 72 20 3d 20 6e 65 77 20 54 6f 6e 65 2e 43 68 er = new Tone.Ch
9c90: 61 6e 6e 65 6c 28 7b 63 68 61 6e 6e 65 6c 43 6f annel({channelCo
9ca0: 75 6e 74 3a 20 32 2c 20 76 6f 6c 75 6d 65 3a 20 unt: 2, volume:
9cb0: 2d 31 30 7d 29 2e 63 68 61 69 6e 28 54 6f 6e 65 -10}).chain(Tone
9cc0: 2e 44 65 73 74 69 6e 61 74 69 6f 6e 29 3b 0a 20 .Destination);.
9cd0: 20 20 20 20 53 61 6d 70 6c 65 28 22 6b 22 2c 20 Sample("k",
9ce0: 30 2c 20 6e 75 6c 6c 2c 20 2d 35 29 3b 0a 0a 63 0, null, -5);..c
9cf0: 6f 6d 6d 69 74 20 63 32 34 39 62 36 30 64 62 61 ommit c249b60dba
9d00: 34 65 35 30 37 61 38 38 30 63 66 62 36 38 63 32 4e507a880cfb68c2
9d10: 39 61 33 32 34 63 61 64 32 37 33 62 33 39 0a 41 9a324cad273b39.A
9d20: 75 74 68 6f 72 3a 20 58 79 7a 7a 79 20 41 70 70 uthor: Xyzzy App
9d30: 73 20 3c 78 79 7a 7a 79 61 70 70 73 40 67 6d 61 s <xyzzyapps@gma
9d40: 69 6c 2e 63 6f 6d 3e 0a 44 61 74 65 3a 20 20 20 il.com>.Date:
9d50: 4d 6f 6e 20 4e 6f 76 20 31 20 30 33 3a 30 31 3a Mon Nov 1 03:01:
9d60: 30 36 20 32 30 32 31 20 2b 30 30 30 30 0a 0a 20 06 2021 +0000..
9d70: 20 20 20 2f 55 73 65 72 73 2f 64 65 76 2f 70 72 /Users/dev/pr
9d80: 6f 6a 2f 70 72 6f 64 75 63 74 69 6f 6e 2f 62 69 oj/production/bi
9d90: 74 72 68 79 74 68 6d 2f 73 6f 6e 67 20 6d 6f 64 trhythm/song mod
9da0: 69 66 69 65 64 0a 0a 64 69 66 66 20 2d 2d 67 69 ified..diff --gi
9db0: 74 20 61 2f 66 69 72 73 74 2e 6a 73 20 62 2f 66 t a/first.js b/f
9dc0: 69 72 73 74 2e 6a 73 0a 69 6e 64 65 78 20 31 38 irst.js.index 18
9dd0: 36 34 61 65 37 2e 2e 38 33 66 34 38 66 31 20 31 64ae7..83f48f1 1
9de0: 30 30 36 34 34 0a 2d 2d 2d 20 61 2f 66 69 72 73 00644.--- a/firs
9df0: 74 2e 6a 73 0a 2b 2b 2b 20 62 2f 66 69 72 73 74 t.js.+++ b/first
9e00: 2e 6a 73 0a 40 40 20 2d 32 36 2c 37 20 2b 32 36 .js.@@ -26,7 +26
9e10: 2c 36 20 40 40 20 66 75 6e 63 74 69 6f 6e 20 53 ,6 @@ function S
9e20: 61 6d 70 6c 65 28 6e 61 6d 65 2c 20 6e 6f 2c 20 ample(name, no,
9e30: 66 69 6c 74 65 72 2c 20 76 6f 6c 75 6d 65 29 20 filter, volume)
9e40: 7b 0a 20 20 20 20 20 73 61 6d 70 6c 65 73 5b 6e {. samples[n
9e50: 6f 5d 2e 63 6f 6e 6e 65 63 74 28 6d 65 6d 5b 6e o].connect(mem[n
9e60: 61 6d 65 20 2b 20 22 5f 63 68 61 6e 6e 65 6c 22 ame + "_channel"
9e70: 5d 29 3b 0a 20 7d 0a 20 0a 2d 0a 20 66 75 6e 63 ]);. }. .-. func
9e80: 74 69 6f 6e 20 70 28 73 2c 20 76 6f 6c 2c 20 20 tion p(s, vol,
9e90: 6e 6f 74 65 2c 20 20 6c 65 6e 2c 20 64 65 6c 61 note, len, dela
9ea0: 79 29 20 7b 0a 20 20 20 20 20 6e 6f 74 65 20 3d y) {. note =
9eb0: 20 6e 6f 74 65 20 7c 7c 20 22 43 33 22 0a 20 20 note || "C3".
9ec0: 20 20 20 6c 65 6e 20 3d 20 6c 65 6e 20 7c 7c 20 len = len ||
9ed0: 22 31 36 6e 22 0a 40 40 20 2d 33 35 2c 38 20 2b "16n".@@ -35,8 +
9ee0: 33 34 2c 36 20 40 40 20 66 75 6e 63 74 69 6f 6e 34,6 @@ function
9ef0: 20 70 28 73 2c 20 76 6f 6c 2c 20 20 6e 6f 74 65 p(s, vol, note
9f00: 2c 20 20 6c 65 6e 2c 20 64 65 6c 61 79 29 20 7b , len, delay) {
9f10: 0a 20 20 20 20 20 73 61 6d 70 6c 65 73 5b 73 5d . samples[s]
9f20: 2e 74 72 69 67 67 65 72 41 74 74 61 63 6b 52 65 .triggerAttackRe
9f30: 6c 65 61 73 65 28 6e 6f 74 65 2c 20 6c 65 6e 2c lease(note, len,
9f40: 20 64 65 6c 61 79 2c 20 76 6f 6c 29 3b 0a 20 7d delay, vol);. }
9f50: 0a 20 0a 2d 0a 2d 0a 20 66 75 6e 63 74 69 6f 6e . .-.-. function
9f60: 20 6f 6e 63 65 20 28 29 20 7b 0a 20 20 20 20 20 once () {.
9f70: 54 6f 6e 65 2e 4d 61 73 74 65 72 2e 76 6f 6c 75 Tone.Master.volu
9f80: 6d 65 2e 76 61 6c 75 65 20 3d 20 2d 33 30 0a 20 me.value = -30.
9f90: 20 20 20 20 6d 65 6d 2e 6d 61 73 74 65 72 20 3d mem.master =
9fa0: 20 6e 65 77 20 54 6f 6e 65 2e 43 68 61 6e 6e 65 new Tone.Channe
9fb0: 6c 28 7b 63 68 61 6e 6e 65 6c 43 6f 75 6e 74 3a l({channelCount:
9fc0: 20 32 2c 20 76 6f 6c 75 6d 65 3a 20 2d 31 30 7d 2, volume: -10}
9fd0: 29 2e 63 68 61 69 6e 28 54 6f 6e 65 2e 44 65 73 ).chain(Tone.Des
9fe0: 74 69 6e 61 74 69 6f 6e 29 3b 0a 40 40 20 2d 36 tination);.@@ -6
9ff0: 34 2c 31 39 20 2b 36 31 2c 31 33 20 40 40 20 66 4,19 +61,13 @@ f
a000: 75 6e 63 74 69 6f 6e 20 6f 6e 63 65 20 28 29 20 unction once ()
a010: 7b 0a 20 20 20 20 20 63 6f 6e 73 74 20 74 68 72 {. const thr
a020: 65 65 20 3d 20 54 68 72 65 65 4f 68 55 6e 69 74 ee = ThreeOhUnit
a030: 28 61 75 64 69 6f 2c 20 22 73 61 77 74 6f 6f 74 (audio, "sawtoot
a040: 68 22 29 0a 20 20 20 20 20 2f 2f 20 61 75 64 69 h"). // audi
a050: 6f 2e 6d 61 73 74 65 72 2e 69 6e 2e 67 61 69 6e o.master.in.gain
a060: 2e 76 61 6c 75 65 20 3d 20 30 2e 35 3b 0a 20 20 .value = 0.5;.
a070: 20 20 20 6d 65 6d 5b 22 74 68 72 65 65 22 5d 20 mem["three"]
a080: 3d 20 74 68 72 65 65 0a 2d 0a 2d 0a 20 7d 0a 20 = three.-.-. }.
a090: 0a 2d 0a 2d 0a 20 74 72 61 6e 73 69 74 69 6f 6e .-.-. transition
a0a0: 20 3d 20 6f 6e 63 65 3b 0a 20 0a 2d 0a 20 69 66 = once;. .-. if
a0b0: 20 28 69 73 48 69 74 29 20 7b 0a 20 20 20 20 20 (isHit) {.
a0c0: 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 if (track_no ==
a0d0: 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20 70 28 1) {. p(
a0e0: 30 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 76 0, meta[tick]["v
a0f0: 6f 6c 75 6d 65 22 5d 2c 20 6d 65 74 61 5b 74 69 olume"], meta[ti
a100: 63 6b 5d 5b 22 70 69 74 63 68 22 5d 2c 20 22 32 ck]["pitch"], "2
a110: 34 6e 22 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 4n", meta[tick][
a120: 22 64 65 6c 61 79 22 5d 20 29 3b 0a 2d 0a 20 20 "delay"] );.-.
a130: 20 20 20 7d 0a 20 20 20 20 20 69 66 20 28 74 72 }. if (tr
a140: 61 63 6b 5f 6e 6f 20 3d 3d 20 32 29 20 7b 0a 20 ack_no == 2) {.
a150: 20 20 20 20 20 20 20 20 70 28 31 29 3b 0a 40 40 p(1);.@@
a160: 20 2d 38 36 2c 38 20 2b 37 37 2c 37 20 40 40 20 -86,8 +77,7 @@
a170: 69 66 20 28 69 73 48 69 74 29 20 7b 0a 20 20 20 if (isHit) {.
a180: 20 20 7d 0a 20 20 20 20 20 69 66 20 28 74 72 61 }. if (tra
a190: 63 6b 5f 6e 6f 20 3d 3d 20 34 29 20 7b 0a 20 20 ck_no == 4) {.
a1a0: 20 20 20 20 20 20 20 70 28 33 2c 20 6e 75 6c 6c p(3, null
a1b0: 2c 20 6e 75 6c 6c 2c 20 22 31 6e 22 29 3b 0a 2d , null, "1n");.-
a1c0: 0a 2d 20 20 20 20 7d 09 0a 2b 20 20 20 20 7d 0a .- }..+ }.
a1d0: 20 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e if (track_n
a1e0: 6f 20 3d 3d 20 35 29 20 7b 0a 20 20 20 20 20 20 o == 5) {.
a1f0: 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 6d console.log(m
a200: 65 74 61 5b 74 69 63 6b 5d 29 0a 20 20 20 20 20 eta[tick]).
a210: 20 20 20 20 69 66 20 28 6d 65 74 61 5b 74 69 63 if (meta[tic
a220: 6b 5d 5b 22 70 69 74 63 68 22 5d 29 20 7b 0a 40 k]["pitch"]) {.@
a230: 40 20 2d 39 35 2c 32 34 20 2b 38 35 2c 31 32 20 @ -95,24 +85,12
a240: 40 40 20 69 66 20 28 69 73 48 69 74 29 20 7b 0a @@ if (isHit) {.
a250: 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 } else
a260: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d {. m
a270: 65 6d 5b 22 74 68 72 65 65 22 5d 2e 73 74 65 70 em["three"].step
a280: 28 22 6f 66 66 22 29 3b 0a 20 20 20 20 20 20 20 ("off");.
a290: 20 20 7d 0a 2d 0a 20 20 20 20 20 7d 0a 2d 0a 20 }.-. }.-.
a2a0: 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f if (track_no
a2b0: 20 3d 3d 20 36 29 20 7b 0a 20 20 20 20 20 20 20 == 6) {.
a2c0: 20 20 70 28 35 2c 20 6e 75 6c 6c 2c 20 6e 75 6c p(5, null, nul
a2d0: 6c 2c 20 22 31 6e 22 29 3b 0a 2d 0a 20 20 20 20 l, "1n");.-.
a2e0: 20 7d 0a 2d 0a 2d 0a 20 20 20 20 20 69 66 20 28 }.-.-. if (
a2f0: 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 37 29 20 7b track_no == 7) {
a300: 0a 20 20 20 20 20 20 20 20 20 6d 65 6d 5b 22 63 . mem["c
a310: 22 5d 28 6d 65 6d 5b 22 63 22 5d 28 29 20 2b 20 "](mem["c"]() +
a320: 31 29 3b 0a 20 20 20 20 20 7d 0a 2d 0a 2d 0a 20 1);. }.-.-.
a330: 7d 0a 20 0a 2d 0a 2d 0a 2d 0a 2d 0a 2d 0a 0a 63 }. .-.-.-.-.-..c
a340: 6f 6d 6d 69 74 20 32 34 33 34 37 65 35 65 32 37 ommit 24347e5e27
a350: 37 66 33 32 65 62 64 33 37 65 36 39 31 34 62 35 7f32ebd37e6914b5
a360: 35 30 38 65 62 34 66 39 39 32 64 34 64 34 0a 41 508eb4f992d4d4.A
a370: 75 74 68 6f 72 3a 20 58 79 7a 7a 79 20 41 70 70 uthor: Xyzzy App
a380: 73 20 3c 78 79 7a 7a 79 61 70 70 73 40 67 6d 61 s <xyzzyapps@gma
a390: 69 6c 2e 63 6f 6d 3e 0a 44 61 74 65 3a 20 20 20 il.com>.Date:
a3a0: 4d 6f 6e 20 4e 6f 76 20 31 20 30 32 3a 35 36 3a Mon Nov 1 02:56:
a3b0: 35 39 20 32 30 32 31 20 2b 30 30 30 30 0a 0a 20 59 2021 +0000..
a3c0: 20 20 20 2f 55 73 65 72 73 2f 64 65 76 2f 70 72 /Users/dev/pr
a3d0: 6f 6a 2f 70 72 6f 64 75 63 74 69 6f 6e 2f 62 69 oj/production/bi
a3e0: 74 72 68 79 74 68 6d 2f 73 6f 6e 67 20 6d 6f 64 trhythm/song mod
a3f0: 69 66 69 65 64 0a 0a 64 69 66 66 20 2d 2d 67 69 ified..diff --gi
a400: 74 20 61 2f 66 69 72 73 74 2e 6a 73 20 62 2f 66 t a/first.js b/f
a410: 69 72 73 74 2e 6a 73 0a 69 6e 64 65 78 20 33 32 irst.js.index 32
a420: 35 62 30 38 31 2e 2e 31 38 36 34 61 65 37 20 31 5b081..1864ae7 1
a430: 30 30 36 34 34 0a 2d 2d 2d 20 61 2f 66 69 72 73 00644.--- a/firs
a440: 74 2e 6a 73 0a 2b 2b 2b 20 62 2f 66 69 72 73 74 t.js.+++ b/first
a450: 2e 6a 73 0a 40 40 20 2d 36 2c 37 20 2b 36 2c 37 .js.@@ -6,7 +6,7
a460: 20 40 40 20 73 63 65 6e 65 31 20 3d 20 5b 0a 20 @@ scene1 = [.
a470: 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 5b 32 cellx("p x[2
a480: 3b 5e 43 32 3b 2b 30 2e 30 31 5d 30 30 30 20 30 ;^C2;+0.01]000 0
a490: 30 30 30 20 78 5b 30 2e 31 5d 30 78 5b 31 5d 30 000 x[0.1]0x[1]0
a4a0: 20 30 30 78 5b 31 5d 30 20 22 29 2c 0a 20 20 20 00x[1]0 "),.
a4b0: 20 20 63 65 6c 6c 78 28 22 70 20 30 30 30 30 20 cellx("p 0000
a4c0: 78 30 30 30 20 30 30 30 30 20 78 30 30 30 20 22 x000 0000 x000 "
a4d0: 29 2c 0a 20 20 20 20 20 63 65 6c 6c 78 28 22 70 ),. cellx("p
a4e0: 20 78 30 78 30 20 78 30 78 30 20 78 30 78 30 20 x0x0 x0x0 x0x0
a4f0: 78 30 78 30 20 22 29 2c 0a 2d 09 63 65 6c 6c 78 x0x0 "),.-.cellx
a500: 28 22 70 20 78 30 30 30 20 30 30 30 30 20 30 30 ("p x000 0000 00
a510: 30 30 20 30 30 30 30 20 22 29 2c 0a 2b 20 20 20 00 0000 "),.+
a520: 20 63 65 6c 6c 78 28 22 70 20 78 30 30 30 20 30 cellx("p x000 0
a530: 30 30 30 20 30 30 30 30 20 30 30 30 30 20 22 29 000 0000 0000 ")
a540: 2c 0a 20 20 20 20 20 63 65 6c 6c 78 28 22 70 20 ,. cellx("p
a550: 78 5b 5e 43 33 5d 30 30 30 20 78 2e 30 30 30 20 x[^C3]000 x.000
a560: 30 30 30 30 20 30 30 30 30 20 22 29 2c 0a 20 20 0000 0000 "),.
a570: 20 20 20 63 65 6c 6c 78 28 22 70 20 30 30 30 30 cellx("p 0000
a580: 20 30 30 30 30 20 78 30 78 30 20 30 30 78 30 20 0000 x0x0 00x0
a590: 22 29 2c 0a 20 20 20 20 20 63 65 6c 6c 78 28 22 "),. cellx("
a5a0: 70 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 p 0000 0000 0000
a5b0: 20 30 30 30 30 20 22 29 2c 0a 40 40 20 2d 34 33 0000 "),.@@ -43
a5c0: 2c 32 38 20 2b 34 33 2c 32 38 20 40 40 20 66 75 ,28 +43,28 @@ fu
a5d0: 6e 63 74 69 6f 6e 20 6f 6e 63 65 20 28 29 20 7b nction once () {
a5e0: 0a 20 20 20 20 20 53 61 6d 70 6c 65 28 22 6b 22 . Sample("k"
a5f0: 2c 20 30 2c 20 6e 75 6c 6c 2c 20 2d 35 29 3b 0a , 0, null, -5);.
a600: 20 20 20 20 20 53 61 6d 70 6c 65 28 22 73 6e 31 Sample("sn1
a610: 22 2c 31 2c 20 6e 75 6c 6c 2c 20 30 29 3b 0a 20 ",1, null, 0);.
a620: 20 20 20 20 53 61 6d 70 6c 65 28 22 68 22 2c 32 Sample("h",2
a630: 2c 20 6e 75 6c 6c 2c 20 2d 31 35 29 3b 0a 2d 20 , null, -15);.-
a640: 09 53 61 6d 70 6c 65 28 22 6d 22 2c 33 2c 20 6e .Sample("m",3, n
a650: 75 6c 6c 2c 20 2d 31 35 29 3b 0a 2b 20 20 20 20 ull, -15);.+
a660: 53 61 6d 70 6c 65 28 22 6d 22 2c 33 2c 20 6e 75 Sample("m",3, nu
a670: 6c 6c 2c 20 2d 31 35 29 3b 0a 20 20 20 20 20 53 ll, -15);. S
a680: 61 6d 70 6c 65 28 22 66 22 2c 34 2c 20 6e 75 6c ample("f",4, nul
a690: 6c 2c 20 2d 31 35 29 3b 0a 20 20 20 20 20 53 61 l, -15);. Sa
a6a0: 6d 70 6c 65 28 22 73 22 2c 35 2c 20 6e 75 6c 6c mple("s",5, null
a6b0: 2c 20 2d 31 35 29 3b 0a 20 0a 2d 20 20 20 20 20 , -15);. .-
a6c0: 20 20 20 0a 2b 0a 20 20 20 20 20 6d 65 6d 5b 22 .+. mem["
a6d0: 63 22 5d 20 3d 20 63 65 6c 6c 78 28 31 29 3b 0a c"] = cellx(1);.
a6e0: 20 20 20 20 20 6d 65 6d 5b 22 63 22 5d 2e 6f 6e mem["c"].on
a6f0: 43 68 61 6e 67 65 28 66 75 6e 63 74 69 6f 6e 20 Change(function
a700: 28 65 29 20 7b 0a 2d 20 20 20 20 09 76 61 72 20 (e) {.- .var
a710: 76 61 6c 20 3d 20 70 61 72 73 65 49 6e 74 28 65 val = parseInt(e
a720: 5b 22 64 61 74 61 22 5d 2e 76 61 6c 75 65 29 3b ["data"].value);
a730: 0a 2b 20 20 20 20 20 20 20 20 76 61 72 20 76 61 .+ var va
a740: 6c 20 3d 20 70 61 72 73 65 49 6e 74 28 65 5b 22 l = parseInt(e["
a750: 64 61 74 61 22 5d 2e 76 61 6c 75 65 29 3b 0a 20 data"].value);.
a760: 20 20 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65 2e console.
a770: 6c 6f 67 28 76 61 6c 29 3b 0a 2d 20 20 20 20 20 log(val);.-
a780: 20 20 09 70 28 34 2c 20 6e 75 6c 6c 2c 20 6e 75 .p(4, null, nu
a790: 6c 6c 2c 20 22 38 6e 22 29 3b 0a 2d 20 0a 2b 20 ll, "8n");.- .+
a7a0: 20 20 20 20 20 20 20 70 28 34 2c 20 6e 75 6c 6c p(4, null
a7b0: 2c 20 6e 75 6c 6c 2c 20 22 38 6e 22 29 3b 0a 2b , null, "8n");.+
a7c0: 0a 20 20 20 20 20 7d 29 0a 20 20 20 20 20 6d 65 . }). me
a7d0: 6d 5b 22 63 22 5d 2e 6f 6e 45 72 72 6f 72 28 66 m["c"].onError(f
a7e0: 75 6e 63 74 69 6f 6e 20 28 65 29 20 7b 0a 2d 20 unction (e) {.-
a7f0: 20 20 20 09 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 .console.log(
a800: 65 29 3b 0a 2d 20 0a 2b 20 20 20 20 20 20 20 20 e);.- .+
a810: 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 65 29 3b 0a console.log(e);.
a820: 2b 0a 20 20 20 20 20 7d 29 0a 20 0a 2d 20 20 20 +. }). .-
a830: 20 20 20 20 20 63 6f 6e 73 74 20 61 75 64 69 6f const audio
a840: 20 3d 20 41 75 64 69 6f 28 29 3b 0a 2d 20 20 20 = Audio();.-
a850: 20 20 20 20 20 63 6f 6e 73 74 20 74 68 72 65 65 const three
a860: 20 3d 20 54 68 72 65 65 4f 68 55 6e 69 74 28 61 = ThreeOhUnit(a
a870: 75 64 69 6f 2c 20 22 73 61 77 74 6f 6f 74 68 22 udio, "sawtooth"
a880: 29 0a 2d 20 20 20 20 20 20 20 20 2f 2f 20 61 75 ).- // au
a890: 64 69 6f 2e 6d 61 73 74 65 72 2e 69 6e 2e 67 61 dio.master.in.ga
a8a0: 69 6e 2e 76 61 6c 75 65 20 3d 20 30 2e 35 3b 0a in.value = 0.5;.
a8b0: 2d 20 20 20 20 20 20 20 20 6d 65 6d 5b 22 74 68 - mem["th
a8c0: 72 65 65 22 5d 20 3d 20 74 68 72 65 65 0a 2d 20 ree"] = three.-
a8d0: 20 20 0a 2b 20 20 20 20 63 6f 6e 73 74 20 61 75 .+ const au
a8e0: 64 69 6f 20 3d 20 41 75 64 69 6f 28 29 3b 0a 2b dio = Audio();.+
a8f0: 20 20 20 20 63 6f 6e 73 74 20 74 68 72 65 65 20 const three
a900: 3d 20 54 68 72 65 65 4f 68 55 6e 69 74 28 61 75 = ThreeOhUnit(au
a910: 64 69 6f 2c 20 22 73 61 77 74 6f 6f 74 68 22 29 dio, "sawtooth")
a920: 0a 2b 20 20 20 20 2f 2f 20 61 75 64 69 6f 2e 6d .+ // audio.m
a930: 61 73 74 65 72 2e 69 6e 2e 67 61 69 6e 2e 76 61 aster.in.gain.va
a940: 6c 75 65 20 3d 20 30 2e 35 3b 0a 2b 20 20 20 20 lue = 0.5;.+
a950: 6d 65 6d 5b 22 74 68 72 65 65 22 5d 20 3d 20 74 mem["three"] = t
a960: 68 72 65 65 0a 2b 0a 20 0a 20 7d 0a 20 0a 40 40 hree.+. . }. .@@
a970: 20 2d 37 35 2c 33 39 20 2b 37 35 2c 33 39 20 40 -75,39 +75,39 @
a980: 40 20 74 72 61 6e 73 69 74 69 6f 6e 20 3d 20 6f @ transition = o
a990: 6e 63 65 3b 0a 20 0a 20 69 66 20 28 69 73 48 69 nce;. . if (isHi
a9a0: 74 29 20 7b 0a 20 20 20 20 20 69 66 20 28 74 72 t) {. if (tr
a9b0: 61 63 6b 5f 6e 6f 20 3d 3d 20 31 29 20 7b 0a 2d ack_no == 1) {.-
a9c0: 09 20 20 20 20 70 28 30 2c 20 6d 65 74 61 5b 74 . p(0, meta[t
a9d0: 69 63 6b 5d 5b 22 76 6f 6c 75 6d 65 22 5d 2c 20 ick]["volume"],
a9e0: 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 70 69 74 63 meta[tick]["pitc
a9f0: 68 22 5d 2c 20 22 32 34 6e 22 2c 20 6d 65 74 61 h"], "24n", meta
aa00: 5b 74 69 63 6b 5d 5b 22 64 65 6c 61 79 22 5d 20 [tick]["delay"]
aa10: 29 3b 0a 2d 20 0a 2b 20 20 20 20 20 20 20 20 70 );.- .+ p
aa20: 28 30 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 (0, meta[tick]["
aa30: 76 6f 6c 75 6d 65 22 5d 2c 20 6d 65 74 61 5b 74 volume"], meta[t
aa40: 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d 2c 20 22 ick]["pitch"], "
aa50: 32 34 6e 22 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 24n", meta[tick]
aa60: 5b 22 64 65 6c 61 79 22 5d 20 29 3b 0a 2b 0a 20 ["delay"] );.+.
aa70: 20 20 20 20 7d 0a 20 20 20 20 20 69 66 20 28 74 }. if (t
aa80: 72 61 63 6b 5f 6e 6f 20 3d 3d 20 32 29 20 7b 0a rack_no == 2) {.
aa90: 2d 20 20 20 20 20 20 20 09 70 28 31 29 3b 0a 2b - .p(1);.+
aaa0: 20 20 20 20 20 20 20 20 70 28 31 29 3b 0a 20 20 p(1);.
aab0: 20 20 20 7d 0a 20 20 20 20 20 69 66 20 28 74 72 }. if (tr
aac0: 61 63 6b 5f 6e 6f 20 3d 3d 20 33 29 20 7b 0a 2d ack_no == 3) {.-
aad0: 09 09 70 28 32 29 0a 2d 09 7d 0a 2d 20 20 20 20 ..p(2).-.}.-
aae0: 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d if (track_no ==
aaf0: 20 34 29 20 7b 0a 2d 20 20 20 20 20 20 09 70 28 4) {.- .p(
ab00: 33 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 3, null, null, "
ab10: 31 6e 22 29 3b 0a 2b 20 20 20 20 20 20 20 20 70 1n");.+ p
ab20: 28 32 29 0a 2b 20 20 20 20 7d 0a 2b 20 20 20 20 (2).+ }.+
ab30: 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 if (track_no ==
ab40: 34 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 70 28 4) {.+ p(
ab50: 33 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 3, null, null, "
ab60: 31 6e 22 29 3b 0a 20 0a 2d 09 7d 09 0a 2b 20 20 1n");. .-.}..+
ab70: 20 20 7d 09 0a 20 20 20 20 20 69 66 20 28 74 72 }.. if (tr
ab80: 61 63 6b 5f 6e 6f 20 3d 3d 20 35 29 20 7b 0a 2d ack_no == 5) {.-
ab90: 20 20 20 20 09 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 .console.log
aba0: 28 6d 65 74 61 5b 74 69 63 6b 5d 29 0a 2b 20 20 (meta[tick]).+
abb0: 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f console.lo
abc0: 67 28 6d 65 74 61 5b 74 69 63 6b 5d 29 0a 20 20 g(meta[tick]).
abd0: 20 20 20 20 20 20 20 69 66 20 28 6d 65 74 61 5b if (meta[
abe0: 74 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d 29 20 tick]["pitch"])
abf0: 7b 0a 2d 09 20 20 20 20 20 20 20 20 6d 65 6d 5b {.-. mem[
ac00: 22 74 68 72 65 65 22 5d 2e 73 74 65 70 28 7b 22 "three"].step({"
ac10: 67 6c 69 64 65 22 3a 20 74 72 75 65 2c 20 22 61 glide": true, "a
ac20: 63 63 65 6e 74 22 3a 20 66 61 6c 73 65 2c 20 22 ccent": false, "
ac30: 6e 6f 74 65 22 3a 20 6d 65 74 61 5b 74 69 63 6b note": meta[tick
ac40: 5d 5b 22 70 69 74 63 68 22 5d 7d 29 3b 0a 2b 20 ]["pitch"]});.+
ac50: 20 20 20 20 20 20 20 20 20 20 20 6d 65 6d 5b 22 mem["
ac60: 74 68 72 65 65 22 5d 2e 73 74 65 70 28 7b 22 67 three"].step({"g
ac70: 6c 69 64 65 22 3a 20 74 72 75 65 2c 20 22 61 63 lide": true, "ac
ac80: 63 65 6e 74 22 3a 20 66 61 6c 73 65 2c 20 22 6e cent": false, "n
ac90: 6f 74 65 22 3a 20 6d 65 74 61 5b 74 69 63 6b 5d ote": meta[tick]
aca0: 5b 22 70 69 74 63 68 22 5d 7d 29 3b 0a 20 20 20 ["pitch"]});.
acb0: 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 2d } else {.-
acc0: 20 20 20 20 20 20 20 20 20 20 20 6d 65 6d 5b 22 mem["
acd0: 74 68 72 65 65 22 5d 2e 73 74 65 70 28 22 6f 66 three"].step("of
ace0: 66 22 29 3b 0a 2b 20 20 20 20 20 20 20 20 20 20 f");.+
acf0: 20 20 6d 65 6d 5b 22 74 68 72 65 65 22 5d 2e 73 mem["three"].s
ad00: 74 65 70 28 22 6f 66 66 22 29 3b 0a 20 20 20 20 tep("off");.
ad10: 20 20 20 20 20 7d 0a 2d 20 20 20 20 09 0a 2b 0a }.- ..+.
ad20: 20 20 20 20 20 7d 0a 2d 20 20 20 20 0a 2d 20 20 }.- .-
ad30: 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 if (track_no
ad40: 3d 3d 20 36 29 20 7b 0a 2d 20 20 20 20 20 20 20 == 6) {.-
ad50: 09 70 28 35 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c .p(5, null, null
ad60: 2c 20 22 31 6e 22 29 3b 0a 2b 0a 2b 20 20 20 20 , "1n");.+.+
ad70: 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 if (track_no ==
ad80: 36 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 70 28 6) {.+ p(
ad90: 35 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 5, null, null, "
ada0: 31 6e 22 29 3b 0a 20 0a 20 20 20 20 20 7d 0a 20 1n");. . }.
adb0: 0a 20 0a 2d 09 69 66 20 28 74 72 61 63 6b 5f 6e . .-.if (track_n
adc0: 6f 20 3d 3d 20 37 29 20 7b 0a 2d 20 20 20 20 09 o == 7) {.- .
add0: 6d 65 6d 5b 22 63 22 5d 28 6d 65 6d 5b 22 63 22 mem["c"](mem["c"
ade0: 5d 28 29 20 2b 20 31 29 3b 0a 2b 20 20 20 20 69 ]() + 1);.+ i
adf0: 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 37 f (track_no == 7
ae00: 29 20 7b 0a 2b 20 20 20 20 20 20 20 20 6d 65 6d ) {.+ mem
ae10: 5b 22 63 22 5d 28 6d 65 6d 5b 22 63 22 5d 28 29 ["c"](mem["c"]()
ae20: 20 2b 20 31 29 3b 0a 20 20 20 20 20 7d 0a 2d 20 + 1);. }.-
ae30: 20 0a 2b 0a 20 0a 20 7d 0a 20 0a 0a 63 6f 6d 6d .+. . }. ..comm
ae40: 69 74 20 34 31 38 33 36 34 62 66 63 65 66 32 32 it 418364bfcef22
ae50: 34 66 33 37 33 39 38 63 38 62 64 33 62 37 63 36 4f37398c8bd3b7c6
ae60: 31 63 62 37 33 63 33 38 36 66 34 0a 41 75 74 68 1cb73c386f4.Auth
ae70: 6f 72 3a 20 58 79 7a 7a 79 20 41 70 70 73 20 3c or: Xyzzy Apps <
ae80: 78 79 7a 7a 79 61 70 70 73 40 67 6d 61 69 6c 2e xyzzyapps@gmail.
ae90: 63 6f 6d 3e 0a 44 61 74 65 3a 20 20 20 4d 6f 6e com>.Date: Mon
aea0: 20 4e 6f 76 20 31 20 30 32 3a 35 35 3a 33 34 20 Nov 1 02:55:34
aeb0: 32 30 32 31 20 2b 30 30 30 30 0a 0a 20 20 20 20 2021 +0000..
aec0: 2f 55 73 65 72 73 2f 64 65 76 2f 70 72 6f 6a 2f /Users/dev/proj/
aed0: 70 72 6f 64 75 63 74 69 6f 6e 2f 62 69 74 72 68 production/bitrh
aee0: 79 74 68 6d 2f 73 6f 6e 67 20 6d 6f 64 69 66 69 ythm/song modifi
aef0: 65 64 0a 0a 64 69 66 66 20 2d 2d 67 69 74 20 61 ed..diff --git a
af00: 2f 66 69 72 73 74 2e 6a 73 20 62 2f 66 69 72 73 /first.js b/firs
af10: 74 2e 6a 73 0a 6e 65 77 20 66 69 6c 65 20 6d 6f t.js.new file mo
af20: 64 65 20 31 30 30 36 34 34 0a 69 6e 64 65 78 20 de 100644.index
af30: 30 30 30 30 30 30 30 2e 2e 33 32 35 62 30 38 31 0000000..325b081
af40: 0a 2d 2d 2d 20 2f 64 65 76 2f 6e 75 6c 6c 0a 2b .--- /dev/null.+
af50: 2b 2b 20 62 2f 66 69 72 73 74 2e 6a 73 0a 40 40 ++ b/first.js.@@
af60: 20 2d 30 2c 30 20 2b 31 2c 31 31 38 20 40 40 0a -0,0 +1,118 @@.
af70: 2b 76 6f 6c 75 6d 65 5f 67 75 61 72 64 31 20 3d +volume_guard1 =
af80: 20 67 75 61 72 64 28 5b 2d 32 30 2c 31 35 5d 29 guard([-20,15])
af90: 0a 2b 76 6f 6c 75 6d 65 5f 67 75 61 72 64 32 20 .+volume_guard2
afa0: 3d 20 67 75 61 72 64 28 5b 2d 32 30 2c 31 35 5d = guard([-20,15]
afb0: 29 0a 2b 54 6f 6e 65 2e 4d 61 73 74 65 72 2e 76 ).+Tone.Master.v
afc0: 6f 6c 75 6d 65 2e 76 61 6c 75 65 20 3d 20 76 6f olume.value = vo
afd0: 6c 75 6d 65 5f 67 75 61 72 64 31 28 4d 61 74 68 lume_guard1(Math
afe0: 2e 72 6f 75 6e 64 28 64 69 61 6c 73 5b 30 5d 5b .round(dials[0][
aff0: 22 63 65 6c 6c 22 5d 28 29 20 2a 20 33 30 29 20 "cell"]() * 30)
b000: 2d 32 30 29 3b 0a 2b 0a 2b 73 63 65 6e 65 31 20 -20);.+.+scene1
b010: 3d 20 5b 0a 2b 20 20 20 20 63 65 6c 6c 78 28 22 = [.+ cellx("
b020: 70 20 78 5b 32 3b 5e 43 32 3b 2b 30 2e 30 31 5d p x[2;^C2;+0.01]
b030: 30 30 30 20 30 30 30 30 20 78 5b 30 2e 31 5d 30 000 0000 x[0.1]0
b040: 78 5b 31 5d 30 20 30 30 78 5b 31 5d 30 20 22 29 x[1]0 00x[1]0 ")
b050: 2c 0a 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 20 ,.+ cellx("p
b060: 30 30 30 30 20 78 30 30 30 20 30 30 30 30 20 78 0000 x000 0000 x
b070: 30 30 30 20 22 29 2c 0a 2b 20 20 20 20 63 65 6c 000 "),.+ cel
b080: 6c 78 28 22 70 20 78 30 78 30 20 78 30 78 30 20 lx("p x0x0 x0x0
b090: 78 30 78 30 20 78 30 78 30 20 22 29 2c 0a 2b 09 x0x0 x0x0 "),.+.
b0a0: 63 65 6c 6c 78 28 22 70 20 78 30 30 30 20 30 30 cellx("p x000 00
b0b0: 30 30 20 30 30 30 30 20 30 30 30 30 20 22 29 2c 00 0000 0000 "),
b0c0: 0a 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 20 78 .+ cellx("p x
b0d0: 5b 5e 43 33 5d 30 30 30 20 78 2e 30 30 30 20 30 [^C3]000 x.000 0
b0e0: 30 30 30 20 30 30 30 30 20 22 29 2c 0a 2b 20 20 000 0000 "),.+
b0f0: 20 20 63 65 6c 6c 78 28 22 70 20 30 30 30 30 20 cellx("p 0000
b100: 30 30 30 30 20 78 30 78 30 20 30 30 78 30 20 22 0000 x0x0 00x0 "
b110: 29 2c 0a 2b 20 20 20 20 63 65 6c 6c 78 28 22 70 ),.+ cellx("p
b120: 20 30 30 30 30 20 30 30 30 30 20 30 30 30 30 20 0000 0000 0000
b130: 30 30 30 30 20 22 29 2c 0a 2b 0a 2b 5d 0a 2b 0a 0000 "),.+.+].+.
b140: 2b 70 61 74 74 65 72 6e 73 20 3d 20 73 63 65 6e +patterns = scen
b150: 65 31 0a 2b 0a 2b 61 6c 77 61 79 73 28 29 3b 0a e1.+.+always();.
b160: 2b 0a 2b 66 75 6e 63 74 69 6f 6e 20 53 61 6d 70 +.+function Samp
b170: 6c 65 28 6e 61 6d 65 2c 20 6e 6f 2c 20 66 69 6c le(name, no, fil
b180: 74 65 72 2c 20 76 6f 6c 75 6d 65 29 20 7b 0a 2b ter, volume) {.+
b190: 20 20 20 20 6e 61 6d 65 20 3d 20 6e 61 6d 65 0a name = name.
b1a0: 2b 20 20 20 20 66 69 6c 74 65 72 20 3d 20 66 69 + filter = fi
b1b0: 6c 74 65 72 20 7c 7c 20 32 30 30 30 30 0a 2b 20 lter || 20000.+
b1c0: 20 20 20 76 6f 6c 75 6d 65 20 3d 20 76 6f 6c 75 volume = volu
b1d0: 6d 65 20 7c 7c 20 30 0a 2b 20 20 20 20 2f 2f 6d me || 0.+ //m
b1e0: 65 6d 5b 6e 61 6d 65 20 2b 20 22 5f 66 69 6c 74 em[name + "_filt
b1f0: 65 72 22 5d 20 3d 20 6e 65 77 20 54 6f 6e 65 2e er"] = new Tone.
b200: 46 69 6c 74 65 72 28 66 69 6c 74 65 72 2c 20 27 Filter(filter, '
b210: 6c 6f 77 70 61 73 73 27 2c 20 2d 39 36 29 3b 0a lowpass', -96);.
b220: 2b 20 20 20 20 6d 65 6d 5b 6e 61 6d 65 20 2b 20 + mem[name +
b230: 22 5f 63 68 61 6e 6e 65 6c 22 5d 20 3d 20 6e 65 "_channel"] = ne
b240: 77 20 54 6f 6e 65 2e 43 68 61 6e 6e 65 6c 28 7b w Tone.Channel({
b250: 63 68 61 6e 6e 65 6c 43 6f 75 6e 74 3a 20 32 2c channelCount: 2,
b260: 20 76 6f 6c 75 6d 65 3a 20 76 6f 6c 75 6d 65 7d volume: volume}
b270: 29 2e 63 68 61 69 6e 28 6d 65 6d 2e 6d 61 73 74 ).chain(mem.mast
b280: 65 72 29 0a 2b 20 20 20 20 73 61 6d 70 6c 65 73 er).+ samples
b290: 5b 6e 6f 5d 2e 63 6f 6e 6e 65 63 74 28 6d 65 6d [no].connect(mem
b2a0: 5b 6e 61 6d 65 20 2b 20 22 5f 63 68 61 6e 6e 65 [name + "_channe
b2b0: 6c 22 5d 29 3b 0a 2b 7d 0a 2b 0a 2b 0a 2b 66 75 l"]);.+}.+.+.+fu
b2c0: 6e 63 74 69 6f 6e 20 70 28 73 2c 20 76 6f 6c 2c nction p(s, vol,
b2d0: 20 20 6e 6f 74 65 2c 20 20 6c 65 6e 2c 20 64 65 note, len, de
b2e0: 6c 61 79 29 20 7b 0a 2b 20 20 20 20 6e 6f 74 65 lay) {.+ note
b2f0: 20 3d 20 6e 6f 74 65 20 7c 7c 20 22 43 33 22 0a = note || "C3".
b300: 2b 20 20 20 20 6c 65 6e 20 3d 20 6c 65 6e 20 7c + len = len |
b310: 7c 20 22 31 36 6e 22 0a 2b 20 20 20 20 76 6f 6c | "16n".+ vol
b320: 20 3d 20 76 6f 6c 20 7c 7c 20 31 0a 2b 20 20 20 = vol || 1.+
b330: 20 64 65 6c 61 79 20 3d 20 64 65 6c 61 79 20 7c delay = delay |
b340: 7c 20 22 2b 30 22 3b 0a 2b 20 20 20 20 73 61 6d | "+0";.+ sam
b350: 70 6c 65 73 5b 73 5d 2e 74 72 69 67 67 65 72 41 ples[s].triggerA
b360: 74 74 61 63 6b 52 65 6c 65 61 73 65 28 6e 6f 74 ttackRelease(not
b370: 65 2c 20 6c 65 6e 2c 20 64 65 6c 61 79 2c 20 76 e, len, delay, v
b380: 6f 6c 29 3b 0a 2b 7d 0a 2b 0a 2b 0a 2b 0a 2b 66 ol);.+}.+.+.+.+f
b390: 75 6e 63 74 69 6f 6e 20 6f 6e 63 65 20 28 29 20 unction once ()
b3a0: 7b 0a 2b 20 20 20 20 54 6f 6e 65 2e 4d 61 73 74 {.+ Tone.Mast
b3b0: 65 72 2e 76 6f 6c 75 6d 65 2e 76 61 6c 75 65 20 er.volume.value
b3c0: 3d 20 2d 33 30 0a 2b 20 20 20 20 6d 65 6d 2e 6d = -30.+ mem.m
b3d0: 61 73 74 65 72 20 3d 20 6e 65 77 20 54 6f 6e 65 aster = new Tone
b3e0: 2e 43 68 61 6e 6e 65 6c 28 7b 63 68 61 6e 6e 65 .Channel({channe
b3f0: 6c 43 6f 75 6e 74 3a 20 32 2c 20 76 6f 6c 75 6d lCount: 2, volum
b400: 65 3a 20 2d 31 30 7d 29 2e 63 68 61 69 6e 28 54 e: -10}).chain(T
b410: 6f 6e 65 2e 44 65 73 74 69 6e 61 74 69 6f 6e 29 one.Destination)
b420: 3b 0a 2b 20 20 20 20 53 61 6d 70 6c 65 28 22 6b ;.+ Sample("k
b430: 22 2c 20 30 2c 20 6e 75 6c 6c 2c 20 2d 35 29 3b ", 0, null, -5);
b440: 0a 2b 20 20 20 20 53 61 6d 70 6c 65 28 22 73 6e .+ Sample("sn
b450: 31 22 2c 31 2c 20 6e 75 6c 6c 2c 20 30 29 3b 0a 1",1, null, 0);.
b460: 2b 20 20 20 20 53 61 6d 70 6c 65 28 22 68 22 2c + Sample("h",
b470: 32 2c 20 6e 75 6c 6c 2c 20 2d 31 35 29 3b 0a 2b 2, null, -15);.+
b480: 20 09 53 61 6d 70 6c 65 28 22 6d 22 2c 33 2c 20 .Sample("m",3,
b490: 6e 75 6c 6c 2c 20 2d 31 35 29 3b 0a 2b 20 20 20 null, -15);.+
b4a0: 20 53 61 6d 70 6c 65 28 22 66 22 2c 34 2c 20 6e Sample("f",4, n
b4b0: 75 6c 6c 2c 20 2d 31 35 29 3b 0a 2b 20 20 20 20 ull, -15);.+
b4c0: 53 61 6d 70 6c 65 28 22 73 22 2c 35 2c 20 6e 75 Sample("s",5, nu
b4d0: 6c 6c 2c 20 2d 31 35 29 3b 0a 2b 0a 2b 20 20 20 ll, -15);.+.+
b4e0: 20 20 20 20 20 0a 2b 20 20 20 20 6d 65 6d 5b 22 .+ mem["
b4f0: 63 22 5d 20 3d 20 63 65 6c 6c 78 28 31 29 3b 0a c"] = cellx(1);.
b500: 2b 20 20 20 20 6d 65 6d 5b 22 63 22 5d 2e 6f 6e + mem["c"].on
b510: 43 68 61 6e 67 65 28 66 75 6e 63 74 69 6f 6e 20 Change(function
b520: 28 65 29 20 7b 0a 2b 20 20 20 20 09 76 61 72 20 (e) {.+ .var
b530: 76 61 6c 20 3d 20 70 61 72 73 65 49 6e 74 28 65 val = parseInt(e
b540: 5b 22 64 61 74 61 22 5d 2e 76 61 6c 75 65 29 3b ["data"].value);
b550: 0a 2b 20 20 20 20 20 20 20 20 63 6f 6e 73 6f 6c .+ consol
b560: 65 2e 6c 6f 67 28 76 61 6c 29 3b 0a 2b 20 20 20 e.log(val);.+
b570: 20 20 20 20 09 70 28 34 2c 20 6e 75 6c 6c 2c 20 .p(4, null,
b580: 6e 75 6c 6c 2c 20 22 38 6e 22 29 3b 0a 2b 20 0a null, "8n");.+ .
b590: 2b 20 20 20 20 7d 29 0a 2b 20 20 20 20 6d 65 6d + }).+ mem
b5a0: 5b 22 63 22 5d 2e 6f 6e 45 72 72 6f 72 28 66 75 ["c"].onError(fu
b5b0: 6e 63 74 69 6f 6e 20 28 65 29 20 7b 0a 2b 20 20 nction (e) {.+
b5c0: 20 20 09 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 65 .console.log(e
b5d0: 29 3b 0a 2b 20 0a 2b 20 20 20 20 7d 29 0a 2b 0a );.+ .+ }).+.
b5e0: 2b 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 61 + const a
b5f0: 75 64 69 6f 20 3d 20 41 75 64 69 6f 28 29 3b 0a udio = Audio();.
b600: 2b 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 74 + const t
b610: 68 72 65 65 20 3d 20 54 68 72 65 65 4f 68 55 6e hree = ThreeOhUn
b620: 69 74 28 61 75 64 69 6f 2c 20 22 73 61 77 74 6f it(audio, "sawto
b630: 6f 74 68 22 29 0a 2b 20 20 20 20 20 20 20 20 2f oth").+ /
b640: 2f 20 61 75 64 69 6f 2e 6d 61 73 74 65 72 2e 69 / audio.master.i
b650: 6e 2e 67 61 69 6e 2e 76 61 6c 75 65 20 3d 20 30 n.gain.value = 0
b660: 2e 35 3b 0a 2b 20 20 20 20 20 20 20 20 6d 65 6d .5;.+ mem
b670: 5b 22 74 68 72 65 65 22 5d 20 3d 20 74 68 72 65 ["three"] = thre
b680: 65 0a 2b 20 20 20 0a 2b 0a 2b 7d 0a 2b 0a 2b 0a e.+ .+.+}.+.+.
b690: 2b 0a 2b 74 72 61 6e 73 69 74 69 6f 6e 20 3d 20 +.+transition =
b6a0: 6f 6e 63 65 3b 0a 2b 0a 2b 0a 2b 69 66 20 28 69 once;.+.+.+if (i
b6b0: 73 48 69 74 29 20 7b 0a 2b 20 20 20 20 69 66 20 sHit) {.+ if
b6c0: 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 31 29 20 (track_no == 1)
b6d0: 7b 0a 2b 09 20 20 20 20 70 28 30 2c 20 6d 65 74 {.+. p(0, met
b6e0: 61 5b 74 69 63 6b 5d 5b 22 76 6f 6c 75 6d 65 22 a[tick]["volume"
b6f0: 5d 2c 20 6d 65 74 61 5b 74 69 63 6b 5d 5b 22 70 ], meta[tick]["p
b700: 69 74 63 68 22 5d 2c 20 22 32 34 6e 22 2c 20 6d itch"], "24n", m
b710: 65 74 61 5b 74 69 63 6b 5d 5b 22 64 65 6c 61 79 eta[tick]["delay
b720: 22 5d 20 29 3b 0a 2b 20 0a 2b 20 20 20 20 7d 0a "] );.+ .+ }.
b730: 2b 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e + if (track_n
b740: 6f 20 3d 3d 20 32 29 20 7b 0a 2b 20 20 20 20 20 o == 2) {.+
b750: 20 20 09 70 28 31 29 3b 0a 2b 20 20 20 20 7d 0a .p(1);.+ }.
b760: 2b 20 20 20 20 69 66 20 28 74 72 61 63 6b 5f 6e + if (track_n
b770: 6f 20 3d 3d 20 33 29 20 7b 0a 2b 09 09 70 28 32 o == 3) {.+..p(2
b780: 29 0a 2b 09 7d 0a 2b 20 20 20 20 20 69 66 20 28 ).+.}.+ if (
b790: 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 34 29 20 7b track_no == 4) {
b7a0: 0a 2b 20 20 20 20 20 20 09 70 28 33 2c 20 6e 75 .+ .p(3, nu
b7b0: 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 31 6e 22 29 3b ll, null, "1n");
b7c0: 0a 2b 0a 2b 09 7d 09 0a 2b 20 20 20 20 69 66 20 .+.+.}..+ if
b7d0: 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 35 29 20 (track_no == 5)
b7e0: 7b 0a 2b 20 20 20 20 09 63 6f 6e 73 6f 6c 65 2e {.+ .console.
b7f0: 6c 6f 67 28 6d 65 74 61 5b 74 69 63 6b 5d 29 0a log(meta[tick]).
b800: 2b 20 20 20 20 20 20 20 20 69 66 20 28 6d 65 74 + if (met
b810: 61 5b 74 69 63 6b 5d 5b 22 70 69 74 63 68 22 5d a[tick]["pitch"]
b820: 29 20 7b 0a 2b 09 20 20 20 20 20 20 20 20 6d 65 ) {.+. me
b830: 6d 5b 22 74 68 72 65 65 22 5d 2e 73 74 65 70 28 m["three"].step(
b840: 7b 22 67 6c 69 64 65 22 3a 20 74 72 75 65 2c 20 {"glide": true,
b850: 22 61 63 63 65 6e 74 22 3a 20 66 61 6c 73 65 2c "accent": false,
b860: 20 22 6e 6f 74 65 22 3a 20 6d 65 74 61 5b 74 69 "note": meta[ti
b870: 63 6b 5d 5b 22 70 69 74 63 68 22 5d 7d 29 3b 0a ck]["pitch"]});.
b880: 2b 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 + } else
b890: 7b 0a 2b 20 20 20 20 20 20 20 20 20 20 20 6d 65 {.+ me
b8a0: 6d 5b 22 74 68 72 65 65 22 5d 2e 73 74 65 70 28 m["three"].step(
b8b0: 22 6f 66 66 22 29 3b 0a 2b 20 20 20 20 20 20 20 "off");.+
b8c0: 20 7d 0a 2b 20 20 20 20 09 0a 2b 20 20 20 20 7d }.+ ..+ }
b8d0: 0a 2b 20 20 20 20 0a 2b 20 20 20 20 20 69 66 20 .+ .+ if
b8e0: 28 74 72 61 63 6b 5f 6e 6f 20 3d 3d 20 36 29 20 (track_no == 6)
b8f0: 7b 0a 2b 20 20 20 20 20 20 20 09 70 28 35 2c 20 {.+ .p(5,
b900: 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 22 31 6e 22 null, null, "1n"
b910: 29 3b 0a 2b 0a 2b 20 20 20 20 7d 0a 2b 0a 2b 0a );.+.+ }.+.+.
b920: 2b 09 69 66 20 28 74 72 61 63 6b 5f 6e 6f 20 3d +.if (track_no =
b930: 3d 20 37 29 20 7b 0a 2b 20 20 20 20 09 6d 65 6d = 7) {.+ .mem
b940: 5b 22 63 22 5d 28 6d 65 6d 5b 22 63 22 5d 28 29 ["c"](mem["c"]()
b950: 20 2b 20 31 29 3b 0a 2b 20 20 20 20 7d 0a 2b 20 + 1);.+ }.+
b960: 20 0a 2b 0a 2b 7d 0a 2b 0a 2b 0a 2b 0a 2b 0a 2b .+.+}.+.+.+.+.+
b970: 0a 2b 0a .+.