From c3bf6840d11eb2f89bec6de403471d2a849168d8 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 10 Oct 2020 16:47:39 -0400 Subject: [PATCH 01/31] Added setup files --- .gitignore | 3 +++ public/button.png | Bin 0 -> 10602 bytes public/css/style.css | 7 +++++++ public/index.html | 21 ++++++++++++++++++++ public/js/scripts.js | 46 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 77 insertions(+) create mode 100644 .gitignore create mode 100644 public/button.png create mode 100644 public/css/style.css create mode 100644 public/index.html create mode 100644 public/js/scripts.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..57195033 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.DS_Store +node_modules/ +package-lock.json diff --git a/public/button.png b/public/button.png new file mode 100644 index 0000000000000000000000000000000000000000..c48de760a0f67352672877474ad7a0e53ba55436 GIT binary patch literal 10602 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 UuERA_0QRS>@Jzm3))e)B07W`hivR!s literal 0 HcmV?d00001 diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 00000000..0ba994e1 --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,7 @@ +@import url('https://fonts.googleapis.com/css?family=Lato'); +body { + font-family: "Lato"; + font-size: 20px; + color: rgba(0, 0, 0, 0.8); + padding: 1px; +} diff --git a/public/index.html b/public/index.html new file mode 100644 index 00000000..8e22366d --- /dev/null +++ b/public/index.html @@ -0,0 +1,21 @@ + + + + + CS4241 Assignment 4 + + + + + + +
+

Welcome to Assignment 4

+ +

+ +

+
+ + + \ No newline at end of file diff --git a/public/js/scripts.js b/public/js/scripts.js new file mode 100644 index 00000000..7891834b --- /dev/null +++ b/public/js/scripts.js @@ -0,0 +1,46 @@ +console.log("Welcome to assignment 4!") + + +// const submit = function (e) { +// //prevent default form action from being carried out +// e.preventDefault(); + +// if (document.getElementById('yourname').value === "") { +// alert("Please don't leave the name blank"); +// return false; +// } + +// const userScore = { +// name: document.getElementById('yourname').value, +// clicks: clickcount, +// seconds: seconds +// } + +// const body = JSON.stringify(userScore); + +// fetch('/submit', { +// method: 'POST', +// body +// }) +// .then(function (response) { +// //response +// response.json().then(function (data) { +// //data +// console.log("Submit Response:", response); +// console.log("Returned data: ", data); +// restartGame(); + +// buildTable(data); +// }) +// }) + +// return false; +// } + + + +window.onload = function () { +// const button = document.getElementById('submitbtn'); + + console.log("Loaded!"); +} \ No newline at end of file From 909cae98514b75e3ea6764988ceaa5cf4127bc52 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 10 Oct 2020 16:48:19 -0400 Subject: [PATCH 02/31] added blank server file in case needed --- server.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 server.js diff --git a/server.js b/server.js new file mode 100644 index 00000000..e69de29b From b2651f7208a377bd8a86dac35c86cab44bf343cb Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 10 Oct 2020 16:55:35 -0400 Subject: [PATCH 03/31] Modified project directory --- public/index.html => index.html | 4 ++-- server.js => module.js | 0 public/button.png | Bin 10602 -> 0 bytes public/js/scripts.js => scripts.js | 0 public/css/style.css => style.css | 0 5 files changed, 2 insertions(+), 2 deletions(-) rename public/index.html => index.html (70%) rename server.js => module.js (100%) delete mode 100644 public/button.png rename public/js/scripts.js => scripts.js (100%) rename public/css/style.css => style.css (100%) diff --git a/public/index.html b/index.html similarity index 70% rename from public/index.html rename to index.html index 8e22366d..117c0b6e 100644 --- a/public/index.html +++ b/index.html @@ -4,8 +4,8 @@ CS4241 Assignment 4 - - + + diff --git a/server.js b/module.js similarity index 100% rename from server.js rename to module.js diff --git a/public/button.png b/public/button.png deleted file mode 100644 index c48de760a0f67352672877474ad7a0e53ba55436..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10602 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 UuERA_0QRS>@Jzm3))e)B07W`hivR!s diff --git a/public/js/scripts.js b/scripts.js similarity index 100% rename from public/js/scripts.js rename to scripts.js diff --git a/public/css/style.css b/style.css similarity index 100% rename from public/css/style.css rename to style.css From c62cea41bf75a0b27b56c8141fe90add30fa9522 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 10 Oct 2020 20:46:58 -0400 Subject: [PATCH 04/31] Created a template piano application. --- color pad.png | Bin 0 -> 25142 bytes index.html | 34 ++++++++++++++++++++++++++++++++-- notes/A.mp3 | Bin 0 -> 9612 bytes notes/Ab.mp3 | Bin 0 -> 8776 bytes notes/B.mp3 | Bin 0 -> 8358 bytes notes/Bb.mp3 | Bin 0 -> 10332 bytes notes/C.mp3 | Bin 0 -> 10030 bytes notes/D.mp3 | Bin 0 -> 7104 bytes notes/Db.mp3 | Bin 0 -> 7104 bytes notes/E.mp3 | Bin 0 -> 8358 bytes notes/Eb.mp3 | Bin 0 -> 8776 bytes notes/F.mp3 | Bin 0 -> 9612 bytes notes/G.mp3 | Bin 0 -> 8776 bytes notes/Gb.mp3 | Bin 0 -> 10030 bytes scripts.js | 33 +++++++++++++++++++++++++++++++++ style.css | 44 +++++++++++++++++++++++++++++++++++++++++++- 16 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 color pad.png create mode 100644 notes/A.mp3 create mode 100644 notes/Ab.mp3 create mode 100644 notes/B.mp3 create mode 100644 notes/Bb.mp3 create mode 100644 notes/C.mp3 create mode 100644 notes/D.mp3 create mode 100644 notes/Db.mp3 create mode 100644 notes/E.mp3 create mode 100644 notes/Eb.mp3 create mode 100644 notes/F.mp3 create mode 100644 notes/G.mp3 create mode 100644 notes/Gb.mp3 diff --git a/color pad.png b/color pad.png new file mode 100644 index 0000000000000000000000000000000000000000..999067e92d2cefd757e503ac22065c700825b01a GIT binary patch literal 25142 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 xvtadigY{VMO`z86qQtNMUs CS4241 Assignment 4 - + @@ -13,9 +13,39 @@

Welcome to Assignment 4

- + Welcome to [Piano App] which is Jordan Stoessel's assignment 4 for CS4241.

+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/notes/A.mp3 b/notes/A.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e72e5f2e2d585131a654249e445b39497ed1e21d GIT binary patch literal 9612 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 literal 0 HcmV?d00001 diff --git a/notes/B.mp3 b/notes/B.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ed63b89c9286b5c2ed27a13cc1bcf48eb0ae1949 GIT binary patch literal 8358 zcmeI1XHZjbn}-h}gb-Tjy+|*CKS=K#>AeI(@4bV73ZZxD2#8Xog(AHvy^0i(UIY{c zL_riml$Hf|-<|i{e%lW_d(C8$NzVN4JLk&%oHI|b=NVw&e?Zg6#rOIU((4BW0I*g9 z#5d62z;lDxUsP@|xWVQI&%cD-5Pw6?4W)l+xS{)o*EcNvW&4Js8?ZNA*OJmv(p3`? zl#&X-srgrjlxPl!j5+|IZ~E{+k`n&wga5P7*uR2s{t!&8~1@#x&-Rw&i)(U!zH{h~z+{}(pJVR>t< zEcYGyn8o>feD5tC_x25oT~IFlFvrsxTKIK**d@*+opy)gG|&#fWxF+dc3Hn>?Y#_4 z=pd}S<6k`L+8&`EeL;RjU(qkFcg zYB6sAS-HojIBcrp>!E%_IsvX+?O?YKC#Acgfj{I$Q8fK zVX;Y|F3~gBtco8iGX42Ce(y9AKH+hf$m{fO%M+0ap#u`7{yAuaEN>&^G{x!@#N*Ed z3Tqo^j2eH3vP1$r$!VRdT3WegZWfmTsq)_*ts;hRYpGYvENPEC=iMK=5}vR&ftpI5rEY^#;k<91srJQ_-^=9=t!s3jqph!n#<$9BIS40rv4 zB1yWr)=`CNbTrFO{-}+5C@e-TKVDN~{ssNoY|4Ycq7Le=9@g@_`*PA^JP2qtZo6xG z&*87pZ-0tnmz9NUIG%B)bKH)NWl%NCQm+l)!S{XZA#%>t5_ce|kE$7oLzrpuKh$L+ zBgiZXI_t)1_fA$cXRsfoxG_WwfUY>+d6FvW*gB=8*?;Cug|F!AHX0~JGVq;L63l0F zj0S&iK*Md&NcA%p?k6@WLaJt#w5@7S&TNAbRM$nyEPK@;#6fiMvKtI*X^v4SVm};FA;lT;I;M5u}aCSUajEA@ACTSAUM< z5PGz?;i>VUOgXY?nLMM!T(16GtPVMjQ5?QB%J!86SF0ulqd&w|pW<**62%_a{v}HX zBfAV%8wnz2vO8qc@hh#qF+>D_ev4bV?@`pDTwbrcN4uoj8Co33YTBof*9KRm{_;C+ zo$pU8F!YjiaEmH;yJXTEDtCF_aNrUw!qyRl%@=r`=xRan+1m*=M6O|2rYILrCM)3J z_~u=qO)#D`H7psZ>5ev|Rs=L)Y!(69x1wg?f@+1;O|$HjxlrvknkOrh9hPW8uG)4tt(My*Uim@V$JxBUU``kSTrF zhw%~t%bekAHtgUDf)AiQc~dtF8tKcypFXCT%;#s&x=FO+YGUF>#4T%Au4e)j#+in% zSP58XO;pK0z7{tT0@z8|c^N}|w(x+*CU~;v8br(a=7-Sy^)MM%0rnh)_vwT)N~t=aiZmZZ~)9`ev+2wr>@aC_C1sKg`y4J2_* z&8~hEOm?Qi#H_gYGyXD%-xz|SL0=K(A2s>wteulD+#PLG`U`^hIedP^kz?9A(%hn5 zh{Rs>Mw}R&IT{Z@e#UIm^FeE6N1F?bK6`W`!`2s&c{8uREl7!c)wRYat8~@oj^(eS zAAVLN5lHLQ$+bj#GO_2GG;a+D$T(JBpsYvU>Xfw!-4l?+efoL}t}_rHUHZ<-u|`Qg zA!QO85Hosf$KzB66Ex=c&1-n|+X2T!Q)xl)+`GO%dPHd=?oK~*=VFmL_kDs>Z|hKa zriQk2AVsjR3&+pcQFO10R z`w-Zmk3`UfDk$gico4ZH_`&Zj#W!TpPs+8ZSW4xL_VHheFmw*q{3AkbFY|zT(lDa- zrby9Ek>0NxPd|y`3Zs?Et33zLbxjIK4cAac4IHB3vuU;w0y5zV)TOZ>J;%M$UVmw+ z{xa!Qt4gc8Q(4_UgJSzTLuk-1-Zf7M6T;qEdf$CVE*0^}vrcxbDW3eWC$3=eHHuI?RuO9uQqdrII znMG67$Yh?s>Uq-|v7{o(R z?%ZOy<{_Hrm-W5K3Lo^0wF#MAWUy+Pu1?Unm?Dz?=&?M6I#;&;z8yE-WckMLJMt>S zt4><^h*ppGzWct9`>oU;ZJ@!}Wkiw5 zEPP@6hhh(;=Zw-_t@snIB+2JuYuzI9m_?DFQMeOb|c7?J2DqZ#EW<|?N6uZ zCDz#poTc&Lwstiv*wP8+@=J+u(ONj`XIfU{Tl?@pun_ zfpMNfV|}(7rT7GaV?T+{rta1VU*C0E#%ouRq>h zb>)}UqcFBi@Hl5`w?nt_AWe`bAb~LRoDDmLnHUK1b$(5FiHiu?yM2-)I*bcf!+@=v zTMcHf6ftgHFY}=Ax`4vcRY;i!fvSpLMA)fyo9af%NEA@0zCQbs*h{sfq>#|yS!=Sa zQNdLpW7U7nP#)FNM_vY56GzkoIriXWyAI!~*pMFvFmJJVPQ8%NJSuF_OxqGgY%>~W z`1F?^QE*ztf-Xa2t~5s4;}pCNaDWJN#+O=v>N zM&hm`DZAf&<2Y;ohwyLab7~#OV|$f?j{SDC5zcayJDh^G8d5je?@Gmc6rK}3KiA3E zaG=jNmb2wEnX?fR@2FZts!5q6JRX(!$-UUQ660=nuGwXV%&({my5EfP#r}@i;Ca|; z2nwz!&m4Z|Z&?&fO$AdWbr~s7u@Y|l^foKw&6e)H^V zj;``KH_f3-UOsl0@S0m?47d}mmdq<4l;E~-q3}bMuQEa8u4izw4Dif~j=h9-P@)sG zYO|6o8Lad;!Je)OuqUNevM{Zeb1T)(_C7vITU=n<842PvvBrL`I&qJR;}aZ5 zq+tw;#~95s9}&v0tHl}l&M7n`6KyyBbjF2-4vOSGcx&+L^$|vs3h(uCX*L!2@O+;; zd9pM<44}qD?ckOvj@PJ7#RZa@#BE+BN17D^1dX2A8rjoXvZ-ij?^ltz;Xw)$bkwr8 zA~vb4r+o_Ow_eZij7*vj?Yt0@J26qI0h=jF8{rB_m0 zEzK2w@p6bGj0fhP9^7}gxOnv-Nk4Qw<8@K?UIZqiRQSk=5#lkDF;C-RHZ(jd2Adx^ zSQFJ=-g)V3^j_;~hnrB^SS8L*k>_>saR;wE;iRSB3vZ@C!LKsrbt}UrCQ28mIp+M) z8$&VxsD|Fcla$`da7gRI{+VlXqPe1=z1x6U@@KqB0ow8Cm`ZP=c=Q-LO2kybffj@j)TA z5rpo-+f*e5-_N`#7=*|wO)pT=W=>&{9ju{9yhWi6(RA*pr{=uUn- zO-JS~ue2P40a=w1;fVoKN=#hu5=#T8{9%#{{4Q_4Xs-4+yp1YRn>Jb(nt_)Suc+s< zbJ@0Zh++kMZ_=xoZQfNlY6u~MJT_dZ@Hx%x^#pIVE>MF5m6SEeI~(}eL)oHpWjeO| zJdo$TocSsN1u>c?eaeV9SA4$h9BSaH-AIX~EsyPN^WyaJNVU|a&Wy$WjUmHCPzBTM zoG-nBDQ?Y_^G9tM)Lj>G;C#y{jn}=Mc;+8n#=Z>(Wg^l3W8&CA916tuSYzi{%kO}s zTyl$=Q(IaUF`*`2jrMW(~s^z9K#;;sc@3i>6Zz`CoEU zQp$1JZ|M=uxR&u_jp1tEb;(JjDmpbICWDq^=a&xa!6w5-(^V%|BN>WdV|LZ;%<)wN zzq-VfHaerBu9eAbb(_uB^2X<+3@bA$5BTTVWl$}R4xh}NzC^P_9wLt#_Ij5(taH51 z9Hy0z*}EPap1riGp{&aJ+z$YFmYYs$Lc;xdtpue?SJoK(b28`8TN{n~gw2knrTv&`gD!daYUTSOZd3B<~S3<*A z5Y+l|;$gUGCj3BKht|pY^@k_fu8SEjcT1b2KOFc_;!*^7#La!m|H$z!^~R7p0172v zyvNTVX~Y)J>%FHA^9q(Hxt^grBy}fow?^lBG&jaj5@n&RR{1#rg+K1n9tf(m57N}X zS^hG1u26-&swokdV1Fo{k@32kJIuZKp50~X`tsB$HwrYXC%L7Xf6-cv zN65V7^qi*Idx_}5kC-+VhxM)d&7p7YwtX}%G32yOA~E|>#qwk8ziShYnw8$iyH_4P zHyb|Xjyzq#Vk->C3as+K+r9ru31_%9?rd1KnRmTA_~tsYJe6(s)Jph-!9()Saz~ha zKI#ObXSGRsFkVnKX9%aAPPI4a#Og zdJ>4#nZzX5yR(JCkh-cKOf)6^| zs-IpSl-?tO^Tc2+1uJ`2oTbw26ABdMivW#i_tx!nj_TAOr6gau-QQI&`D73w?m!JJ zb~U25oadNbaBErNDePy9n~W`6j)~Agj{0=u3H~@?PY0o841V9eh@nJf1q%)JeA2td z1=pz$F#TXPq|@i@T=|i~Tq)pI@lpq$ANfknM-Et<_EP_X7lG2iAF>pkMt_9F!}Q(= zlU8L~;K$ZqbSD^rmby4%CmPepk0#;(7x!wQNBrXTGq} zfWz3x7SU`y6D&pbq{6tN$r6<)Vc=XUN58_3f~*7LZy6dl zG!o-~8#L)TuyCuOGIa^K8X3#O?|~C}4MEk#Ck01L-j^yGiTXw4)Z4Lxsc${Y!lxz}XBN)Sx4*&46S^<0yfwS@#!2Glo4?UNn>7(QL(LP~k?bQ>q_V=QCkB zQ$WOL)OEp(6>#C^?4F_ejEI)CyWuVcsBoTFB_BK5{N;w<2FAh8cv#bIyq!qr7oyzG zq>7umSsCDMh%|1C8u!~-yi5xj-r9&4&vJ+_fT}+h>8Ilkg9&F$zxV#e=0=j3DJ`cY3J?HK$6byKD24!D*Y=L_sW@jn?&~@LtNs;=-P!k&T_Ii~g)$BAY zEA)2MU?8N-)lTE^DYYQx3(iTKH+DpIELtxNd5u!@Tlo#xJexz^HW(>;cw(l>|o$5v5Z}|Ay?NL@hWT64&H%vUzTnw@h#;o=~6M zs?DO&V>Cn1&goqh{!QllY-bPai{4PswwnRgb|RXnhER!X zF!J>Ofiy`Dcfew^Fv`i&k?i-bT6&*C3D8slF>PuB@OXTb_p1FDT+o_!u15hM*nI`J z#Nn7l=8j|~D6Ti(ZJx{^OE88N4QGpkb<^>Q-Gow$pwg2E%Q$}W(O@rf4b_+w&hBG2 zwMrE6RE$kS+Qth#EM*-AqgFEXcRPDy9B=83GRL(dZw&RLLEB7b=cM#V3sCZf{hmbf zyEymV#_1-LWM2PD;-c+0cO_hpxax>jaH1V1@HHM1cKh9C@C1Vfe*0;KdkxOudrT6Q zy?DrGsTKCwhOfE7ZZdkT6r@w$&|!D`ZQ7EW+mN@g1;rHqRT2rDiKiiU(|{i#M2D!&2Qu76X5oU zae8;$4}?L7or+o$w5UMIMUoc%^Jac%zr>Qn+S7z^U2oVQS32DE1fM$BAFiCEDur5_qtG%8S+31+pg^|8=)B&w<} z3EY~EQ!Fd1qI_Te@A0u;zXf|>Z_-!0a#9c$JOBXCuAWt6OX5J|;QYKNO9Z7Ar=$fe zMTL={lrx}y;nSd0=Kb4F0Pl^V>1#tIrsqWAP|GrUD^EfR!fFN0wkkAEIDs2i`*#4X zxQ$<0`XeD~6b6P4^S%~rb-@*-&EO?lj~JX?K(b>pMk>73wtX2pgBSK?Csv$l99Xv$ z;4**o*4Z*XQHUTS*Zw4q(mV_Lp?y}7z^7-Vk}Ke-uYhQ>I6L#=3NvdvkGw0brM-ap zQMFxgrWKx(+i=PlfGOHOgDqlq+amdCQ4O_n->42e@=hZ|BJ)>k@8&yq`$Wf$6PDk` z4f9(mQWgI2mQ|b|cD?*weFvm-@e~0f5aE=D0TBs|7;K&jVM%RgCXObZ#3zJ2`6&cA zW)5akqkn>wZZ|n;I0*IA3n3|C@$Rn$o9IZ?gmhkS=dF%ke={~VPEr`|Jv;MEY=Vu= z(DZp1UrBxhTbAUA%m9f>2JwpH)#ju+Ux2v}Z^Sk-;L|pTl+oht^MDDevdugS>Dt`$ z2c^>%h#oQhv|fv1jJ{D;Tkpq*rXodsN|p;RE&FoQP*n?0Phme-D|$B9i+2S~U*03? znCSfQXKCl&q2Hm%;nm%HH-_c`$gtkjVjuu~)E>{9eh*MN2by*zpg|?iznltv2k!l| z^wT0>SDO?ZwUfuucYPYfl>i`z?H>k0wZRXpotAJN4kqosAw;ZR>YWRw1YSQLnm@8U zAJi|9gW?7_Y#MhCFX(ZB##pbH61S$XSGKwVe*VS6QA(A&0?X z#MVtqr>T>V{2ZS=X&Q(olxLZt#a+tCb-1IPpa#mc+4v9bag|1tTOprpu$-f{YKlsTLW$a3n@)Tk(F6F1dJnz?tW}L8Bqft_u z?DNT7JiGja>DO%-h*z(z$6}i#`ByC7i`H`eT5qxZLUY}blW(A7W@Zh) z%wnkFV^3;of#TxpchASTbUKBn-{1^;SPqU<@Lxjz^@p;cNX@@)j0{|2Nh*{qQIM)MSe!ZE?3IL*L0095{@&Et&fBOvl2Nxthn*aa+ literal 0 HcmV?d00001 diff --git a/notes/Bb.mp3 b/notes/Bb.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ba15c26778616fdaaccc74a28f63d5489ea05433 GIT binary patch literal 10332 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 X0L%a&5{d?}Bn0kP{D1y$^}zoCmEZ79 literal 0 HcmV?d00001 diff --git a/notes/D.mp3 b/notes/D.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d7e7f6ed92c7d6a0b9bdd171db1d63c1f588677d GIT binary patch literal 7104 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 Rzg~&```40yi1Ghz{sVmUY-0cb literal 0 HcmV?d00001 diff --git a/notes/Db.mp3 b/notes/Db.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ecb0cf82596824d6b04575a80de121b4b1773c89 GIT binary patch literal 7104 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 XRDIFQTr_(!7yy9$H@m0*!|eVWa!uH6 literal 0 HcmV?d00001 diff --git a/notes/Eb.mp3 b/notes/Eb.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5f70bcd56686b9e96543c3ecef895d6b0141ff85 GIT binary patch literal 8776 zcmeI1Wl&tto9~BVaEHML2{r_WAi-gb-?R4*XZN7*xbr2h zAqQ6y;u9D5!6^Ta2*F4;tgI&h0P;SLfi|Q2xc=V;{f|Jv5+Z#fS|*@=L3wBq8$f-@ z#zedni4h2{5oN3e0(z_kXaxiOp8-LnW9*n1QCPqTTv8?^P2e5(>G>}kIAqb$e|rG3 zmm%nmyR6>;0GMYaBq6nclO=3S4CF{!N5e2FQ5UqRwAZ0Ziv2S00vg%&lgS9MaLm{~DkQV4t_CSepnnQe7dx-f930*4A z7%#8J)9SMi3@S_KXX`@grr!jwG9MUPdAbIK+$^lFog0@XfD#*-0A`lKa4(0qrYGI+ zfyNMq>(Rl>Y?x6e*5{0z7Bnz3L-!PFQAqu(q9NI`&^H{)ndfIa7FOc zPSyFPoitt&Qx)qHFI*3eT=g%GC^2MGkS7Tb_+|6URCUQMHaoX*C!r@U{`#5*dw%xS zE*9INlZWxB1A$MqH!SFvOMLU7Mwp{s5!bKPa|3z>lfy^2!UF5tI5LkkZg)WTSLaJxfhx--CPR6XfzS;dOLF~*iZD0^y0lnFckO9G+( zHoYFBqoY?^eD8~wb!y0zDPpNmk4KT&(;0NS#&A8 zF83c38=1u!#a9*W@T`38GdypZwJc1h5s@vy3OzLvEeZP|K|&0=SwPl&YnGO3&*?40 zs@mz0Cgdgil9%jtDdM{HfxY%*wWeFXpj zQyBc~Eq3CuGh4Y_tf}&P2ZPO#?U1@^xw&$gl z?vH{qkNqMO9~W#YI2SWbWFkJk1h9vmv-JNgD-w0eDZe?ZB*DRCCnbZ>nJNu-4FGu% zRD3D8ONV?Jl+3F*pN=|6w{WRvu zkd_4(7hn2(IhVCH#Kth&o>QH_YQ-{jscML~ypltpF17X_OXK^EJv%h zRDB=lK<(v;>vdXj;$rMn{Jx)v_MxIUrOS;$`nhmsmqMqE z)N0f3^1FD+FIwMurA$7R2u)Mt*_w0m+&lxj2zqP{CI{Z{7JW zxm_2Zm#f4gx;;NGZ1%PG>ki2fSrDV7*hTLZ!bbv80-LDsv^Q4o>29UNWfMRR-ld(+ zbuWnAoL?vWRl%_<7!~G8`8<;g6CYPDik21f&RZru!Oa*hZM0Qfirc->n6P>2*ch#q zAV(sM?fq>FW$LOnU|Lv9alX8HZn(N_ncg`IFIKGEY(cwveqFQWM7+bUj(+-D=hN@8PWQdbZk=$8@dxT-c*n5yJz;~#yyM?;@Wl^#JHwD?i~B5JD2YI6 z#)8Mfwo1ns@5=4uirf8XP03!48xsZIsz?3f6UH9)lni5Ca$_9xsCM<|&MVYw-{0+f ztX$G?i~DQ`XgTv`gnkBde0feDQ@MsnrS=ggKC6y>P0}P6ZAS0&V|N&qeC6`dX|`{^ z#b+5GApzgN_Xqfa z)}RI~diQQslXS1wQj?#FsP+5HJq7u_N>z^jSCu;eFS>G?iCKQS{w$sJAVJvG2wv;) zH7wD!={?b!%#wix8CK;f*}8akzVmiVh4JW1MVJ2Hw}TO0#)uSCQmVgQY{Ybyj;L%fUbZfQOrVg+ybumf-l1i5{g6_}dy z850ov0p@j3seoO-O-G6DiloM-#AJO%yYl|XIRg(T!arm>V&)9Q@u9ZSPx?+|_8pE5 zjays9*FLN7&ux)20jJ}Aod7WNF*@f1UGjpSuy0f0>KN8X3^fY4CT2;YPwnx|tQ!+X zjn2t2;7@Oz8Y+aA<(pbB!`vJMf3!oBvg4D$?<}IjH9&G+vm~@+7}$J8D{^bR zodf=E^KwKKWz_q`9LeB_B7op43l^N)AuJK`W3?@|@T8>iF50A5uLZ z?4z|;A*XT!b(0u%#FTPI1XYR(IZPt&=@D7!u1B@BC;YPZLo+Onn=nAM+A3YzmWuZn zf>VImlEA{rkPbNbMw3l7&BSY}Od$}*poh$Rv%uAA(RUIjbPr2`O*2b^XRtHb>p4Hh zv?+dD$(*9t6{}$y#vqYcI!nt@t@wuJHJ?lhh0GNt2wTmY8xh+!+?zoOfb1EG&`h?w zDkp$Wbng`+0sup}%}{$3YdYcaZ=_@FQ3&_R% zGhpqO^c~8a*|-pA5X#T;j6HLT^wW2$vk!I~LpD3AS0-h*T5Lt-IoA~h4WSz`Lg zF~``tET^pqi3aPe!iT>))$m&;Qst_KU{XygOJtZ6W+wc{!|7`q0ZM3q%18gX*E!Z& z`PF-2d<}DS0aYcFal)3#!|b>zVC}PJj5RE&l(?=_1l26pvl2glRJLn{@7&p;+Q>1t zI6LrFv0*-rS%P0oZiYso{WwyA!7gJWf; zEEWbZ0ApgwqDOCprec$w+)SfvF9WVJ!ZB+7IQzBNuGG~`?Fy^fgetPAjIs=1SfWa& zq@}d?j?LFlRg_=;y(#uFymjU>yS}HI^m%p_fa_3RK-cN&E4+U$0>TD%9Y_o6$1_#> zghQX|xNxt~10*no&QuSJu2WyZOwA@rFK+G~qO#cIs|7AscBjBxv52yP)vfgJFeZ6f zvZ}L(1l&YOZvEoK!qUPstyJ*}w%peRdc2rk5AlCRKzTQNU&C(LAbTD^5& z;RWJXGI3?pq2lSE!?xsrtUZ^tZVKX_w^x4jIzy5N&m;h8;~Bx$09b5C_kwC?x%@MM z5~;r=x%Mad&tJ;L3r8{LJ(jOznG~cp^rA9o*)n*|bk!o{msvno*(p=bCXuYF>jVS; zo~;3+RbvP_E>HNC6C(zg{?dVG&#X;pjo zHav419^NY?3;>qWF6eR7sp#*nirXN}VsCOCdFVZUYEgKc_a$y5LQ=5kiAe)3QtI*U5_`^RehP;Ji<#azB1O03DaI*c#HbzV5bauhJ&w#iyAbXf1v z$cCxf@z-oCiSzP^pAC#@aQbqospC)A%rAS|rkLT@ix-l7dmtp}hg3ao*~>Y<;mr-!PbKNlCuCjn^G2Y(v6|SF9J& zEtAHzyJ~BfC#8B;&xqomG3CY(eS52sHAU!Oj|w@E)lXx%)*FyhW`q7TXh=oR=?M1F5T2++Itpr+OlGLmH+?GS;b%nPMl{EG`AI{o-BD3cmDOqqr!s&)$# z|3jH#88M4?i9D{n7l$Q8ppeM-C`eGmvSm`5?5E;W%R`hx^llFmrN1(3ZX92%=T8C6 z-`BdwK_n1m7xrtIuNWj;c2}}H6q-o}3d4}I6NzRQq2$P5?pMU(B9*5Ii(G&RaL82$ z*X+0~Tr|V3!{L#KMYiJs`G4}`cxVH29EEN%&;iq{)Pn*#1E@s8QZn+ z{JP$KzlIzEz(P_ZJ$}_z-7WkBdz2`?U6S$lVs~aZ+4m0@iSOU|KCn|VpVra(lX6<+ z$NZ&Sw_%bIr`XHjh}xF-0XIp=L3_Mo@?`e!7FjhIts%TWRx44^<7SYkR@}ttx6|zK*L7A6lpca%EJW4TYlUWv2aErcY~sp%ZAL zDQE)wDE40RPR?Y2s8qQ`S)Iy;m(6Xea5;UV;0a%{<8*~pxy=MdcRN&OX;^e0aQ`TT zkQFrgXv3zS*lAEw3NlgA7xZ%0<|tGk>AmY-kuE)(Kp%K|OEDE5o(rHGHI$C*MxTP)a-9nRvInoX%bFSBG%o| zmo9!%*a97)hQfqw2+SlCvfco^NR0ESm{3=>@nXWSBZApbnkqAjtBemiKEoPAW|mLR zn|@cBM&2tF0sxjXm^vRq+;muTEu;~$aUYb7ze7E2^l;1ZG-{=4HC1N&p|#97U%D8w z8kDIxzv`34JOqW-p1G&|s88xV=3OK95d~H{(WngKFxIn%9kX-Hy$O9( zfns{WaZ%cQMEoUatbi~GdlB%N#Pw-tMIga`J3|6x10;!+iD@qxGETc z7NpGAG;*$=z^l12u%(4twGWkGM$U)lQtVbUWE;`;aZ1PVKDZP$N?v)_G;#gNoQ4bs zhHWTtIw?)cgxE55d@8l9KiaVJ5nbk~xkzhFZ{PyJrORlfoYti|T~&&(qjT`f9|X&* ztPX9BBDYk6gbLdeMKUUBO08B^FFSB}=9GkqBjVp;Ch9(kh+!MuNZAFDjR%s}_{yS% z9Ih#Uh_zn|MZlPWuG;)un$GVk+3y|H z7G-Hpd-n=uL;!PH3}!j?KIj*#9og8L;XAn-RaUw)tCMou-&MIv)m>}va+RqRP__l@ zD1b^l2}r44?TFrU+qCVn_P+aup(M2wM6%=`MLTfqYu&|5hRh4(axofu{@+2!_h!G1)&wdaLX z3X|v~XQuO$f}~0uTV-Ro?FWVGR(R7*DcZz$aN3t=ic}*xv*USDZg_-tHZVdY^7FZE zeqwz;RyOrBk0?VvyR&H%j~KK0KRRJRu4TQHah>ArFEN2kq;Vaf39(!)XxQGI$z&FL z?8?E#^)UOdlk3g>KLTNP5lyS>^lS7i5yN2SNy)_=~F)dA;3`D zy>7Dj_FkbXBruO=ewI*=Mh^jLw~0gGrw3b=);fOGOR6}(B)n0LE{LltMC`KK*#ttY zU6UUrC9-{C6yr9|*8YXdcs(vGW9Z<+IxQ}iHfCGm$g0pXn<*XqS<3y@?nF?W1ci|G zjG3e!Y{-MAgn_J%vR6fw8*|zeh6$iZGIR4q$?Dqd+g3Pb{ZUz_vBb`T><}WhRmBbk zHDfbKyh2Yp`;^5^vWJrtceb>6<1+FRi8nQkFMbLCY?gd2e!zj6eM|&xXc8v${~D(= zO-E*~iU+k0;#R?B!_XPy(G2G1q@WFFcp91;UvCq5OE{8$GWIf8nQl=tFE?=VlU?i- z3&%4rq1R43IRZ55S&xPF`>1&l89rA>518KnT4tPoJUjT;gD}(B9t@) z4D2g?s;w-FcEB6gtOxEDi9}|LWj2 zCQAk`ALRA zVc=^kw^UcWLM5ucUO!>u95CZSY&n5isI_oE83umW z^tb>er16opNDjsY@f$jU;;Qpxo89?i&x8&#e9RaWPRh5LrXVO&bsc?qnHKtozM zV)9<02>>RpkeTy$h?|XrtGjeKJbu6XpEZOe;`WOoT64=q?0KdYLqyx7(jCoyh?wq1 zfQp~BsvzEk1Tj8_GTAW4=<6%;D?VRcWJ4YoLn`LVA~^`$1Yl57fq`-a%A_^&ntKu=+4tl)vC`=EV0BjO^eX?(lZ| zMfH%*;cnSCOK-=)>dLrpcHYiU)KA;k_AV;KC~*zP1IKW_n3A5NFz^Ayo9?MvLp_zL zCHT>5BY}&OQ*f=-C#Ny}IA8EHrP2=2+NnGG>!MyS7q&{+isF6Z zMHt)WLg;0B6^C%&wDrH8|D^F;DKed*FJ^XGu=b^^!VEKYkEcaby_MdQB9F)*OvL(L zq4B%FK5Qna6WSYuf=idpo-AS3qDiHc<%X)sPQ_+vB8GsrK%d6BL0J4GoxU3nO|`$Olg34s?olRH6@Irzt!=hn zV{IIy1F(^LK2K%>s1o36_Jhqhx$40vGol8^aPZt045z?9GGXPS18jKLxR*7aY<2&# zo^KNs4(BU?FrMREJ_!8Qso7ZYDHEb3KYNBhv@q>2cz*1;9vpV!rv&gKJGKteh2ad$ zJ`ptGaBrz=O(Dk%=8W28Wz_E?NUm*rb2X7hMBP}F^P}a0VmE><3bz#Z)$$+Kjl9oC zd(X*DIBmy=7~OEC_z21}#bkQCdLJ3Rz>@8HJ~Gw)2|K4GK1;-j7$~AaqNW1)-R?A~ z4kc>76eVYo<1Z0d-9e1Le)R(*!}j9_MKZsWoM)J0;fvbzC?zpP|H)Bl)cD4RV;wX# za}SY35{eVq>nAvbvqVh8&UJz;{Z$o^RuB?#x5pS5hcs)%^ypeWO)SsHh9zX)D>Q@z zZqhHJzC)HQ5jkBp;m(8!ZCX519$yn)bMD@)p$jiJTu5Si76D-eM}sY*Pchk&318k% zK!sj-8v|=(4FwTzQbCNrMfL(X$L2^y5woA|uiG~JyK`xlEQRpsTIlWipyDQe<&Iz!U4%1<05OMl(@C|$RDe>l_C?Y@fk zFSs-)`!-IWH^{u#CVY1w2m*lIGXNMc!j)7ZpvthiuR1woOicpMT$R`@H6>jMi1g#c zZqd+m7t}uQw~MwZ%1TQ>M(@>yXo#_qYX<>yu2Npj_p0V&uz~9+7jouW6gayy`WbQj zb%+{XqsHy3er=oaeqPI547Dfa+4-3Eb=?*HclXz+g@YO4N)zuyXCZ(0E&5pO+IT0d zvU#w|d{j>auHHd+cLs?rxq6;AsHEjFz^isC($QSG*d2Y}jovLgd~>hR01{IYVdO3i z!*!|*x-HGafY=0xW{)E=<@g{zf$RG@!t&+#(x*tvPc3Eg_<9GGdZWHkh$ zBXV}zZJlNrD#AV5X<0Qi{0&Eh3Mzu?`#p#?3V!+6e5)IH)(u(qh}w~SeA>@wVrQw7 zdtDWRUTfS@Dn;;Dm7(09wMJNlTyGxZdR6*>(g*FcOxs-aM7T=U6Vd2HG%7^$-=}QO zy|nPlWg@umpBba--(R%Oa=viF6DEOA##0%utADaZ-~yAF<}c22GZj9{QT^q_8U0#L8Jpdw)pLRBF{P^Z9;c;>#+lF2I$IUqp0_)O zPZdiu{^P8lPpJGq;a(xNq*F37u_S3Gknk58wJ#tHBmkrMF8xdZfH3mz;rmZ+`~O}4 HV;T52VGZy? literal 0 HcmV?d00001 diff --git a/notes/F.mp3 b/notes/F.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ed6bec27e6053162eee064a5861767d730edd0d8 GIT binary patch literal 9612 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 literal 0 HcmV?d00001 diff --git a/notes/G.mp3 b/notes/G.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..68534d68628e07d96fc99370019f9d54232c1b7c GIT binary patch literal 8776 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 SBkvcx|Hn=L|HS{rC-7gl3;iLP8Ao z;QiNIb>HseRbAav)74Ymzv}Mkr)H{WdQgAiVBr6NnzysheF))wq5uFkUI6zV@_QH_ z;J)X{J@OA|-D7r-;{!hTytpUo0r)-n_mn-*bWis^BM;2ovvJSS1K0PU?z!(vTvJX< zNr+cm+#jv#zau1tF{8gz1_0Q@IPfmRPXAl+|7?!>k04MDrrBF&S&#wZgrp1`(73J) zZ2JKahh*}8phbYd$b5Ke0u#6oijLov_!b%*9Q-gJ&=8c^fAUb2?L%(2wYAd+$lRdr zzM+(9X=$YZ0DUH=_x3BQ7jD?xPQO_?GnS~R^&&u@4*}3~~ObqNk z2rcHG|2gUX$%MN39g_k8sLB7WO_dTt)Xkea6sqq&ocKQaJ^&Enzqt8}008_^PjXxU zrprE$jefDt-#;&^F5tg4yU3aTk>iQ(qCQC>gr1xTbWz0%f)7%KaD2iz98toxu5%zt zQK^tdjb^-Xr$OxwGA+t|N13`dUSu!(XlTgW+!|-Osy1W*fcLm9+!PE7Q%1k4La9XjE$7?HpPX95fT|bv9u({5ThJMum$At#zm58v28O`U zu_!lup3>u4Z&y{FLD6vAwk&w~H5y+Pa5*89f+~a|CZzIl%&jw8UhCAiYHWt6@ZXHK z4Wu#udgqo#MuHm#G&nVbB~pLVaHEre`krA7)AB;iWPTiV%44TtS&jtakOexuQm0^1 zCj!t`)75Cs2D{kO`~-rWsqsE?NvWi(G1^4?_S)A)cBo0i$;#?pHyY~ap$>MKRoRcZ zM1#8?+YN{BuROvmEPk(57!nkl0dBtJ=~+KKhe}~m8a*NKo@+H^AoIQv2dJw4Sd?n- zsJ~{m&3?oMhT!;rAbufsL}bRaY-kazeCJvhWIYSdC8Ep7~Cj(hwlOxOBZ{;j0uFL%G>f8|D|mC#W#i_aPc z)7iaZsCWCcyW^)VD2&K3KXb*90mHQC=Tcm@puDUnTuG9`>ZI43Bb6kp#3U`L!B06F3FQQyNK05V%?h?6NLzPWIbzL>r-wr260xFv z16lg7{mO}g{ZqzV&LmRHTV;oxM73%6;G{B6cA@z{8M8;-=YnQQp2aqT!sO6kW^ALt zAP#ygNf|DqQI^NrUd@Rn%Mpvqx|#Lpev&Of<*sqNVxt;)VWoMk(4m{fCs^pn^dCbo z(5=wI2_L1H&0tlB6O$2cgN(YjopV@lOl8sp|40#uqFW~TGLs~wW2)_!v;y`gIzK({ z8;+u+T+uTFsv0w58lmBHn-?LKWxcF@1^;9V5@v~1P2XBeOLI`9w_KzAAHVavZsD~A zOak6`WiK1~T22hAbeLxG2+_MSGYG1ZiV%NEj0h0QlcrPNxc?>*C+q-WU)i3On}Ol*9mm{bKO1j;DC151cL(G+Th=7VuKzG;RB#6 z@h?Z))ZBKERj;R@&zkY>FL!f()%Flbo%j*ZE@B!*SoQTQdS}sx zbuTU0F+F!^xqIzWsrnK%)cD9|vBr-XGpu?h>UP@XgIQqNMd|Z&dRBh*RVd2`=B8C9 z?{4aWrEqL=+fAVP97DBQ;&bIvsHDHEWctq0hUY|2Rb&gd!9hD2#otoxJN+V}h0dyX z+TYBXD&r1bS2ksHNt_t>te@PimEP2K8(w`4b};Ykbs;Qc+W+k?fA(_~71TK*tX_kG zmN)!`lwjzE*r+944(B4b!)m+LUynQF<=WY;v0n9tvNQ50!&t2H>`Bkx4*vI?JlcT= z0$~y0a>?16a(7B26lxBInl{!WC^LTUuKu$@i0!Xhzv8Mz-JjJucxdkOqZoF@5K{V> z-}9^$VeJl29nd7J3_Yq~<{fwD=cPrJzOpfB6Exz@8gC8i9)n^Y4B-Kw zAIeJ_cqFH`u`6F3`!f@XjPz=~B8y%oRka|KEU{h`r4+nF&cb$gPi5dgIvG?n{eS>BHl5RT(A@^XDVzI6|srB#AoVvi5ko5GUL1W2P`Zd zf3^Z+hVuc|z$Z*C;Sv9pmD)%RHtLs-b!CFqFZc1jv-WsjT{R{VJ_WCgs@ST3L$sR3 zj*SL7Fg~Tt%Kdr0k)T9V@tl#Ea|8ccT;}2>jm$1bfAOA%wJPQ}!f8O2!zz{et6LZ_ z)$XD>oX)x_#_0!&<1eb;k%dx+QC*Tp(|#nEZ{gwoK1dx=>9+GK5Ro9KQUUKngedO5 z^Dqy|uVJD=7YiO5oXjfYIkz$TP$?1^5hq%NixWk7NeDobnj|fQg0Kl#y@wPh*wfs= zARQvd93A7f_gF;XLa|CPMkkC0Q78EHOJXM9m-+4UZkr>vx>CjdI&pcb-?=4ioorp7 z^{*#j?!^+*vpz@lR{f(^rEP@1jQc%Y2LtPg&S<;*epbjZz8i3et!h^E%Q_D9-=`d% z!JHapn=RAvs8fVff@z=yca4WY2*KfcE50cRqPBrI!4rjL>w`RDS!=K)6j-J|zgEyu*;AK(`*0lBrxh_r)9eNqsyBB|45)&hx64-DB zBOQv+R{aYPy$l|$*_+cviw16s>{Cw}wnALwly0OVm!rCy!!RRNNeCkEu-H1QX}fNgftp{t>}~6o zofC-5FWx+ZgK=3kbd3QyR7fzt?i+8o9{FreCCS(2-I>F@DU^r|6T!LG<2 z#*zK+LlN10^qVkpt`{%jt7I`qmsW2UZOX<}m99Nmaaca?i5-t&%7Ib@SRM=!0HAtS z6Ax}mQ=_50-*ygG3924mHBZ?DY~pJJqj|J>`i&@6w${u%*c5GN#=tR6f7g*56!pES z3mgibP8dBjj*KJJk`fscJM$d9YmvX2`tN#ELv@}UtpW?{x7BNUf_?R6;XJIryx;zy z^0R_bn3b34qx``FeK zN%zlSO#RMvj;y-=4a13T(!gv4rnQj2lDQQh#q5Bam?3LP@wl_4)xya8u}*uA#edq1 z?KZQ0yrbM{CX_+d*mfPpYW@|`#Ay}w=p>5xR&+#}yY0byeYU6;^ZDbNkEw16h#m67 z&5y8SXtN6L=TgTi!f0#PzhM{K%RIXsnHP)fA8g9=&1nZCo5*@#;8m}-ZN*9)okkV| zf-vtVXwRC5G*9{Yi%V_f*|&z>Ye+ipj%;aLx)BSENeQ2YUBRMgy!+%DR9%%1hG+p$ zJlV1bo?w@Oe20oxgfXN-$E=3ieM^t!^!hT(`;%nB^iA%Z(&Nv&C#whIX_#g|#$s%7 z)P%R2oV9)T)bVW3<=_B_X_iJ&eo_(-kG;}lg~@L4xQ3*C98(;lY3^}89=zbYEGyN0 zr^MJecphT~0rh&5gr;8WxcqEy{&=8{gimBR^8gOv>TC__Z&$W)Gwa|)_Yzj2Li+q# z0#bqb-I$PW&LhSp`mhU2?^xez74TsDM@pqQ(4}+S^gapwQaUaRHmQ5KhLLrG$PA(q zS=wq@x8H~|O$JE3I(Cy1?r>)5JZz#KD~e zPouj`HeayW>Gn&5+f-n`G?LwnT{)&l$Yt+z-4*wArf;ZoU;r6rMr>kV(x8=8-)h&2EH2S zfN6S6=xufe&i=Q z2>oVpQ(+A7PnnuE-;b+ENj`mJ+4uRx$o;z?N3G5VF?YwsFidFe|Xv-ew9Su_i;ue0l% z$>dpnuJl^#Y!iByR-MK@dqySmeaENNs$_2re;~^^JRt0A9nDR-Z(T{_#^%~y#8B$N zd4{swo~C8>P92`6hK|-U7ee~^ zgPES4lHZ#aR zC%b1>arU@muh@!WOrUQKA<2;C!A3rejz3r|ZRJ?G7=nvrs^@+#1b!uDpJ%l(QvxmY zz3#ay-5Xnx8Up!ghx&>?Df|6x8_DD4~qX=T~ zw`*!S@`=RnA2@U9$p(m(7(J}if+lh7`rZa)v`E&(b*eGyXz4C7&?QhwTKLxidH8&~V*g$rNdIRo=LCRi z#FoZ!NY-?t{~X!vJ&BKvu&UvA-_n6|HUGr7G=k%}O#-eh_o~voa zDR8Z%z&3pOygcy&gM)R_G<`cjWUN%4^8!tE{XL31yIkQH8XfUPD+#}jP@=$#w{)B? zB2;!U+kex12#sa=$dH0ywja*ve_gm-@r;ocUz@KHVl5&N38wd7OAg3ys>Zp*CaymB zd|3)hQL6&zRkKn7HRKsc%#EqlOcfDOKn&+sYvd6v^}Qm?;fs~TGh}2bqJIV|RlJD6 z#YmM{6i4v;MQN$jI!AcQhmvwu`;1=Vzv_HtGfS;KLYfi^P>xw^dH94NGf5>LvqV2O zW60ANTqyWx9=)9xHu3J`X`C`ehmiYIChK=xu*Q|K54#Y8ERqm6U5LHxE_(LZ?dK; zjfh|wJrL*3;q~}Q_}9|tFw@N?CR!RS^b!8BDXm(w#xSy?M9lriN)g{GO~_2qzWtV& zX{3}v-7JLY()tSVH>?e*fMS;`8A zc4M0R@xl5H9a;(7$Kr^b59!zp+YT!7aw;*08F_9k#tcbVGo#Pkjdf3m82!{#PG>|Llq$nWAqKMqt&!j5XF(=$8n`mD z#bgXVU#xkzX_dK4=1o*;Oo7--{4x8T`m-hGX;*2<(|$f3t9Lq=HQ$N$uKx4*uu>Pu zWAFT9lFh94hyxOvDZMilH0?Cwj3!3-h3H&#ww|Oyx&i7dapgD~3ob5Vp>|-wdoYv@ z29-i}&~wzL^&=qNb`ctoSU=@6ZtssWu^x?4nZ{w}gtT&%W(Bp3LAZ&>yuAB?`tgVC zZr@OA?*j9T`dYeGXIT^vHNtv+Da92T^WseZQXnAuRYz}xrjInlY4#MieL^Q2I9lPk zTxn;3m>XamRp$(D19iRvN13zxeN|gsAZ;PG*A+mjdd@3q74aqG8-@9=-*OcpiqR%7 zVdi+YnhaDN;8{sb=(1)j#o}yzJP} zc(yP%Jv3+DXRft;0hzbuAD(hB@YOmd+Xz=NVQa-IF|vw@vU}o1%D!x2R3?HytCvVf zk;aeU#v#2U0ZR`P0_oi20z}`HscGB4vGCD-2|ewe>{Oq|&^**UN)4zgla*dfY^~^c zyKx|EVIthBiV-M0_sKRC>BmY9Qr=t0=Y;#e{gY{`VCs;~4T{sCIuIOZ*xJnRPbR0Z zRh1yj;kO#l%(qC0nO)b$m(m=zZs*?2e=yX5 zEm%%rGIK!LWdJfilG=BQA2Bl0Y;dttgPhpK#-cdDx(Y`ahWJQ{4+|71t@RjiLG2eFEg5|rkk2|;n?5MY zau|2no7wkUb9LJqQ!P5>Wu(kV3(5%&@FG;oqy#Asp|;;uFsrGJ+JDFoF`yGrY}mW{ zjFS@Qi-Wr^KdcZPU`wkr`Wk5#-M%?xpMl*dk*OCEPd~Av3pn)eZ1)f5!P!=vm%b&o zy{B7DXzP$ooj5zGd~=LI2UsK>{Ip0F_>By<>}I|0*zl4;=r>x9H!JLGs0Me6a#3Bz z2zSG10$hRIPY64TsNtcgIN^pz-g81*15SkUx{trsKexJEQ2BFgvs#4!tErY#DrOyF zk>+G1d@SN`Nqmh4C#Ux_<9-Y`bD$u7{p*rEu(z6%)6#$OI^G>Jx~NXd&WIO-^I+%` z475aR?siBuVYGX!;T;2jfmF3*;q5*J&&F^#JNoA;^0XWk{Zt}D&2P+^ zx9|eQ^oYALzug7aD8@dXJp*0WmE*`+`9L(gb8bWq`bJJ>HvD61-jH)66BuOG+(1t) zDoifX$XvM%E(BZct<5Eql&up{p#E`bTJa9z`XWq2fUon;B6ES9EWWy1KxIEj#GbtW zaYS{z&JGK^2p8+$r~;7ej`$3E&;IbmYgCe0hnLQRpt?gy%q@Y`OHqIy}f z6^X;APDG|WpU7zYG_Ja1b`+p@eUln2m2tBOq2sZgfZnWbbdtZ;-cHP%QZm0VlV zj*9M(Cy7>BIkLDUlZbB4^9@#^oUWxV$gU(syhwh)ywz~0R9!uuM#CbvxZ$G+6-ENj zq}6tLc!YVn%+^(9s03c7bQKOGOus28T+p2!8rMv(`%5W{O}?PH?5?RwN!M9`IGbOF zb#3NtLDQGq0eFIcv_G9t6i(Wid*;^fwe*kb95+`=+P5JAKs zaIE!*H?FaSHeBCkZek)Aui#wlKgbVg;6RwRvk*uHGQ5kJPv?;Brh!K+N zSmsUfj|zJZT*^<6KG7su_)Etr3zg37Rh5@)ShQx_l(n?1P9eGWm}F45p$~=*!2QD< zvs64(s+QZ722Mvxc+WzlCO1dXa&leNy2#kGeNeZNs^{@`=Hgd5DS@PY;87*3`!zQ= z8I)^&H$AB$SOa;u(P9Tbr{^{gDf+qh>h4W`NIIEBV1H`ZGS1KQ^4&MAk;6i()?Yp+ z_4M@OT2~%g!KTSTl<&xdV`RL3a5QkO-xV=AXDIKaaPR?uKr(CU7r|618@N5vC^l6p zQB2K)m_Z)NJcBu2o2{u%8~a7hrk?z(@DEW(|Ab^UbonC3aK`Ut^F;bXigB!-Ux;O& zl`P>7iYArS2RRm*4)f*~*l- zXx7VEka%)%UsftQPU9b3Ckz=K^5r@$%u7lW!p42eMKqBAhYZ___m)pNM&1fWC$!i% z9?zQxS|;bz;?>pHR*{m-U*uLH09hV!rnspkMZ3qFz4B=B5G^3vT8UDSAtjIGH@GOG zV4#V!2uG+1za3-lBS#dH)39iPKFkh#y5VQs1~+0p@A;;drwulxpXc%7<%6Mp0CZtz zaKg>0YP~;JYv*8rM{S{@*)`1Y2DgHy8|tgr(Vivs>dHIRj_BK}c06EQjgLLxy!_%QloG6XYnS82;H zi1L27KDX*d%wA-hEBmetO;OjF=|VnuF57Lq zr+UAbf@n{#xONC#!^lhQeTVVYZMDPbGg0@<`iab$NaBe2ka?oA>l946t0O6&0CvSZ zQIZz1#S+|1X@320&uOuVR~RYa;*KCzU6yHv`F{Q|@UwSe^PdI}@5p}}*j~ag55Zt5 zd2XuAb-L4;$^17$;bm24%QJ6L0|CvF zry`LHN%t*Uj&fyYJhG) z5}?-DKWtGPJR6^tg~pEW>~o{+E@2*0K^|_iz#O`F`zH%~6fS$6kd9Mizn%>tq~uw-JvOxHf^Z_U4yulEgGpS~O%p%heNkWZ8lh<|}GT9&sw%zRaTD%_*# zrX-ddCydt}%CgKmYk1~70$>oS=@VH8Y_!MZWEZbsy5yC|5s-#&s>CS60QdPQ(o8P= z>XHl*xODFF?vB*4D6Evx)emH^tbm!O#1tfSiCe#J{VY4E(#XU76i>IjS|CC)ag1WgdeE<8n)h2picH3ecVT$% zHtV_HTZhi<#Bv6TwS#ZC-<~nHQ(ly0XY#w5O5=#7b$d3=|_U*xu#vI7~I7v-thvm6o%Fis4{5#XF#q|;js$Ni1}QEuKUiRFLmDM zXzQ>#=3%L;=_r>qns~9d+h>2{M}lhll=VzO#+~+YT}LI2gQDYA3HHe}2|x2|3bEWn zgiJf_UBy`WzM3@Y>@T>~JrDVTZvLtMm5U6K;x0i~Ly01quHZ^z00U66tyj&-mA(v^ ziM2sA`gtweW$_ih-C+eB&kO3oh)P$fv|O}!U=FR;vkmcL(cT^29hX7%>2lel^oHTh z6QhqyD!wzGzW;tAHc{mr?@`gwQkngVg(HwYbGGK37lbWvRY#i?M_LG&@57K)UuZq= z+qXcO(tNJgRsF3D7~TIhfsKs;LIY&^iLe2|>FIJ?Y+Y5EKVn~gO)~6Ikn4^I=M*^F zPUCoH_nzX1$QB{4!$-35v2|^W8I0)~%%9*l;A8uVPyi{hzK9r#2SbOj@IL}Z9+=c( zHjM7#Zu{bRicUI4F))S*lFH+TX)vtM&ww7b>Ziic-%2wmX8Dz=e=WZ5gb5bmVjijtGVy#-l4*sqQbg1MP%g;Mv z#nXuc7*olgu*NoiXXJi4Qi$4*v_hBXb#&D!;C-~m^621^AY1yw!N=-otvS+-xN;JS>N;MM-WRZp z_#TkmCvw#GxH!3l{Enck^Z4NO0Tp~}iYHwWx|YZI^)}&Hm@k*!Mz5%Sh^pegnV@UJ<8(y})E~@ah5LQIi9EK%h5!EN^q;334D&ol+uI)o>?e=bOljWF02-1S W0O$cgI06QMd4-JrKmXTe;C}&U(vmp< literal 0 HcmV?d00001 diff --git a/scripts.js b/scripts.js index 7891834b..ef670c20 100644 --- a/scripts.js +++ b/scripts.js @@ -1,6 +1,39 @@ console.log("Welcome to assignment 4!") +const BLACK_KEYS = ['s', 'd', 'g', 'h', 'j'] +const WHITE_KEYS = ['z', 'x', 'c', 'v', 'b', 'n', 'm'] +const keys = document.querySelectorAll('.key'); +const whiteKeys = document.querySelectorAll('.key.white'); +const blackKeys = document.querySelectorAll('.key.black'); + + + +keys.forEach(key => { + key.addEventListener('click', () => playNote(key)) +}) + +document.addEventListener('keydown', e => { + if (e.repeat) return + const key = e.key; + const blackKeyIndex = BLACK_KEYS.indexOf(key) + const whiteKeyIndex = WHITE_KEYS.indexOf(key) + + if (whiteKeyIndex > -1) playNote(whiteKeys[whiteKeyIndex]); + if (blackKeyIndex > -1) playNote(blackKeys[blackKeyIndex]); + +}) + +function playNote(key) { + const noteAudio = document.getElementById(key.dataset.note); + noteAudio.currentTime = 0; + noteAudio.play() + key.classList.add('active'); + noteAudio.addEventListener('ended', () => { + key.classList.remove('active'); + }) +} + // const submit = function (e) { // //prevent default form action from being carried out // e.preventDefault(); diff --git a/style.css b/style.css index 0ba994e1..26e2dbe1 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,49 @@ @import url('https://fonts.googleapis.com/css?family=Lato'); +*, *::before, *::after { + box-sizing: border-box; +} + body { font-family: "Lato"; font-size: 20px; - color: rgba(0, 0, 0, 0.8); + color: #332F2E; padding: 1px; + background-color: #2B83B3; + margin: 0; + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; +} + +.piano { + display: flex; + +} + +.key { + height: calc(var(--width) * 4); + width: var(--width); +} + +.white { + --width: 100px; + background-color: white; + border: 1px solid #333; +} + +.white.active { + background-color: #CCC; +} + +.black { + --width: 60px; + background-color: black; + margin-left: calc(var(--width) / -2); + margin-right: calc(var(--width) / -2); + z-index: 2; } + +.black.active { + background-color: #333; +} \ No newline at end of file From fbe0451af6934c77f418da01a2aa9c72075ce4c2 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 10 Oct 2020 21:16:44 -0400 Subject: [PATCH 05/31] Piano working and added new color palette --- color pad.png | Bin 25142 -> 200331 bytes index.html | 79 +++++++++++++++++++++++++++----------------------- style.css | 39 ++++++++++++++++++++----- 3 files changed, 74 insertions(+), 44 deletions(-) diff --git a/color pad.png b/color pad.png index 999067e92d2cefd757e503ac22065c700825b01a..96c779067640cbcd95e3f749ff0e249c4b3103d2 100644 GIT binary patch literal 200331 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 z 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 literal 25142 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 xvtadigY{VMO`z86qQtNMUs - CS4241 Assignment 4 + Virtual Piano with Audio API -
-

Welcome to Assignment 4

+

Welcome to Assignment 4

-

- Welcome to [Piano App] which is Jordan Stoessel's assignment 4 for CS4241. -

-
- +

+ Welcome to [Piano App]! Here you can mess around on the Piano and play to your heart's content. You can control the + Frequency(pitch), Volume, Number of Octaves, and toggle Piano sounds below. Don't worry if you edit too much as you + can always reset the application to default with the reset button. Have fun! +

- -
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - - - - - - - - - - - +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + +
+ +
+ \ No newline at end of file diff --git a/style.css b/style.css index 26e2dbe1..b7b9b522 100644 --- a/style.css +++ b/style.css @@ -3,22 +3,45 @@ box-sizing: border-box; } -body { - font-family: "Lato"; +html { font-size: 20px; - color: #332F2E; - padding: 1px; background-color: #2B83B3; +} + +body, html { + font-family: "Lato"; + color: #FFFFFF; margin: 0; - min-height: 100vh; - display: flex; - justify-content: center; + padding: 0; + height: 100%; + min-width: 770px; align-items: center; } +.title { + text-align: center; +} + +.intro { + padding-left: 220px; + padding-right: 220px; + justify-content: center; +} + +a { + text-decoration: none; + font-weight: bold; + color: #2BCF4C; + justify-content: center; +} + .piano { + margin: 10px 90px; + min-width: 755px; display: flex; - + justify-content: center; + flex: 1; + min-height: 30vh; } .key { From 56a4e23c86d9fad2327ec9eac525bad1497a770b Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 10 Oct 2020 23:50:30 -0400 Subject: [PATCH 06/31] Basic UI done. --- index.html | 31 +++++++++++- module.js | 1 + scripts.js | 31 ++++++++++-- style.css | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 4 files changed, 196 insertions(+), 11 deletions(-) diff --git a/index.html b/index.html index c477e154..35dba8c8 100644 --- a/index.html +++ b/index.html @@ -52,7 +52,36 @@

Welcome to Assignment 4

- + +
+ + +

+ + +
+ + +

+ +
+
+ + + + + + +

+ + +
+ +
+
\ No newline at end of file diff --git a/module.js b/module.js index e69de29b..d477c36c 100644 --- a/module.js +++ b/module.js @@ -0,0 +1 @@ +const log = (obj, prop) => console.log( `${prop}: ${obj[prop]}`) diff --git a/scripts.js b/scripts.js index ef670c20..2afd8bed 100644 --- a/scripts.js +++ b/scripts.js @@ -2,12 +2,37 @@ console.log("Welcome to assignment 4!") const BLACK_KEYS = ['s', 'd', 'g', 'h', 'j'] const WHITE_KEYS = ['z', 'x', 'c', 'v', 'b', 'n', 'm'] - const keys = document.querySelectorAll('.key'); const whiteKeys = document.querySelectorAll('.key.white'); const blackKeys = document.querySelectorAll('.key.black'); +const freqLevelRange = document.getElementById('freqLevelRange'); +const freqLevelNumber = document.getElementById('freqLevelNumber'); + +freqLevelRange.addEventListener('input', syncFreqAmount) +freqLevelNumber.addEventListener('input', syncFreqAmount) + +function syncFreqAmount(e) { + const val = e.target.value + freqLevelRange.value = val; + freqLevelNumber.value = val; +} + +const volLevelRange = document.getElementById('volLevelRange'); +const volLevelNumber = document.getElementById('volLevelNumber'); +volLevelRange.addEventListener('input', syncVolAmount) +volLevelNumber.addEventListener('input', syncVolAmount) + +function syncVolAmount(e) { + const val = e.target.value + volLevelRange.value = val; + volLevelNumber.value = val; +} + +document.getElementById("freqLevelRange").oninput = function () { + this.style.background = 'linear-gradient(to right, #82CFD0 0%, #82CFD0 ' + this.value + '%, #fff ' + this.value + '%, white 100%)' +}; keys.forEach(key => { key.addEventListener('click', () => playNote(key)) @@ -73,7 +98,7 @@ function playNote(key) { window.onload = function () { -// const button = document.getElementById('submitbtn'); - + // const button = document.getElementById('submitbtn'); + document.getElementById('pianoSoundCheckBox').checked = true; console.log("Loaded!"); } \ No newline at end of file diff --git a/style.css b/style.css index b7b9b522..a496d9bb 100644 --- a/style.css +++ b/style.css @@ -35,6 +35,19 @@ a { justify-content: center; } +.form-checkbox { + margin: auto; + display: block; +} + +.controllers { + justify-content: center; + align-items: center; + color: #FFFFFF; + margin-left: 50px; +} + + .piano { margin: 10px 90px; min-width: 755px; @@ -45,12 +58,12 @@ a { } .key { - height: calc(var(--width) * 4); - width: var(--width); + height: calc(var(--piano-width) * 4); + width: var(--piano-width); } .white { - --width: 100px; + --piano-width: 100px; background-color: white; border: 1px solid #333; } @@ -60,13 +73,130 @@ a { } .black { - --width: 60px; + --piano-width: 60px; background-color: black; - margin-left: calc(var(--width) / -2); - margin-right: calc(var(--width) / -2); + margin-left: calc(var(--piano-width) / -2); + margin-right: calc(var(--piano-width) / -2); z-index: 2; } .black.active { background-color: #333; -} \ No newline at end of file +} + + + +/* This CSS is for styling range inputs which was taken and edited from css-tricks.com */ +input[type=range] { + -webkit-appearance: none; + margin: 18px 0; + width: 15%; + } + + input[type=range]:focus { + outline: none; + } + + input[type=range]::-webkit-slider-runnable-track { + width: 100%; + height: 8.4px; + cursor: pointer; + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; + background: #2BCF4C; + border-radius: 1.3px; + border: 0.2px solid #010101; + } + + input[type=range]::-webkit-slider-thumb { + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; + border: 1px solid #000000; + height: 30px; + width: 16px; + border-radius: 3px; + background: #ffffff; + cursor: pointer; + -webkit-appearance: none; + margin-top: -14px; + } + + input[type=range]:focus::-webkit-slider-runnable-track { + background: #33F259; + } + +/* This CSS was taken and modified from w3schools.com */ +/* Customize the label (the container) */ +.piano-sound-container { + display: block; + position: relative; + padding-left: 35px; + margin-bottom: 12px; + cursor: pointer; + font-size: 22px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + + /* Hide the browser's default checkbox */ + .piano-sound-container input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; + } + + /* Create a custom checkbox */ + .checkmark { + position: absolute; + top: 0; + left: 0; + height: 22px; + width: 22px; + background-color: #eee; + } + + /* On mouse-over, add a grey background color */ + .piano-sound-container:hover input ~ .checkmark { + background-color: #ccc; + } + + /* When the checkbox is checked, add a blue background */ + .piano-sound-container input:checked ~ .checkmark { + background-color: #2BCF4C; + } + + /* Create the checkmark/indicator (hidden when not checked) */ + .checkmark:after { + content: ""; + position: absolute; + display: none; + } + + /* Show the checkmark when checked */ + .piano-sound-container input:checked ~ .checkmark:after { + display: block; + } + + /* Style the checkmark/indicator */ + .piano-sound-container .checkmark:after { + left: 9px; + top: 5px; + width: 5px; + height: 10px; + border: solid white; + border-width: 0 3px 3px 0; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } + + /* Hide the browser's default radio button */ +.container input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; + } \ No newline at end of file From 90b68f41983ddc51e9cd322799bbac3f16fdc499 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 00:28:18 -0400 Subject: [PATCH 07/31] Added express server --- index.html | 2 ++ package.json | 13 +++++++++++++ server.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 package.json create mode 100644 server.js diff --git a/index.html b/index.html index 35dba8c8..f93bd2ba 100644 --- a/index.html +++ b/index.html @@ -81,6 +81,8 @@

Welcome to Assignment 4

+ + diff --git a/package.json b/package.json new file mode 100644 index 00000000..1572975c --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "a4-jordanstoessel", + "version": "1.0", + "description": "The fourth assignment of my WebWare course that helps teach creative coding.", + "author": "Jordan Stoessel", + "scripts": { + "start": "node server.js" + }, + "dependencies": { + "express": "^4.17.1", + "nodejs": "0.0.0" + } +} diff --git a/server.js b/server.js new file mode 100644 index 00000000..321dece4 --- /dev/null +++ b/server.js @@ -0,0 +1,43 @@ +// A simple express server for storing settings data +const express = require('express'); +const app = express(); +const port = 3000; +const bodyParser = require('body-parser'); +app.use(express.static('./')) + +//simple server for storing settings and defaults +const settings = { volume: 50, frequency: 262, octaves: 1, piano: true } +const default_settings = { volume: 50, frequency: 262, octaves: 1, piano: true } + + + +//default get method +app.get('/', (req, res) => { + res.sendFile('index.html', { root: __dirname }) +}) + +//get default settings +app.get("/reset", bodyParser.json(), (req, res) => { + console.log("Loading defaults: " + JSON.stringify(default_settings)); + res.json(default_settings); + console.log("Defaulted!"); +}) + +//get server settings +app.post("/load", bodyParser.json(), (req, res) => { + console.log("Loading old settings: " + JSON.stringify(settings)); + res.json(settings); + console.log("Loaded!"); +}) + +//post to update server settings +app.post("/save", bodyParser.json(), (req, res) => { + console.log("These settings saved: " + req.body); + settings = req.body + console.log("Saved!"); +}) + +//listen to port +app.listen(port, () => { + console.log(`Example app listening at http://localhost:${port}`) +}) \ No newline at end of file From d4e8ccd7abe92b15ed08184d6bf75e360c1f5e0e Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 03:25:17 -0400 Subject: [PATCH 08/31] Piano works but piano generation doesn't. --- index.html | 55 ++++++++------- package.json | 1 + scripts.js | 187 ++++++++++++++++++++++++++++++++++++++++++--------- server.js | 29 ++++++-- 4 files changed, 205 insertions(+), 67 deletions(-) diff --git a/index.html b/index.html index f93bd2ba..de36d9cc 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,7 @@ + @@ -21,36 +22,34 @@

Welcome to Assignment 4

link here.

+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+ + + + + + + + + + + +
- - - - - - - - - - - - - -
@@ -77,7 +76,7 @@

Welcome to Assignment 4

diff --git a/package.json b/package.json index 1572975c..77a13861 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "start": "node server.js" }, "dependencies": { + "body-parser": "^1.19.0", "express": "^4.17.1", "nodejs": "0.0.0" } diff --git a/scripts.js b/scripts.js index 2afd8bed..61c538bd 100644 --- a/scripts.js +++ b/scripts.js @@ -59,46 +59,167 @@ function playNote(key) { }) } -// const submit = function (e) { -// //prevent default form action from being carried out -// e.preventDefault(); +//gets default settings from server +const reset = function (e) { + //prevent default form action from being carried out + // e.preventDefault(); -// if (document.getElementById('yourname').value === "") { -// alert("Please don't leave the name blank"); -// return false; -// } - -// const userScore = { -// name: document.getElementById('yourname').value, -// clicks: clickcount, -// seconds: seconds -// } - -// const body = JSON.stringify(userScore); + fetch('/reset', { + method: 'GET' + }) + .then(function (res) { + //response + res.json().then(function (data) { + //data + console.log("Submit Response:", res); + console.log("Returned data: ", data); + + buildPiano(data); + }) + }) + + return false; +} -// fetch('/submit', { -// method: 'POST', -// body -// }) -// .then(function (response) { -// //response -// response.json().then(function (data) { -// //data -// console.log("Submit Response:", response); -// console.log("Returned data: ", data); -// restartGame(); +//gets last saved settings from server +const load = function (e) { + //prevent default form action from being carried out + e.preventDefault(); -// buildTable(data); -// }) -// }) + fetch('/load', { + method: 'GET' + }) + .then(function (res) { + //response + res.json().then(function (data) { + //data + console.log("Submit Response:", res); + console.log("Returned data: ", data); + + buildPiano(data); + }) + }) + + return false; +} -// return false; -// } +// const freqLevelRange = document.getElementById('freqLevelRange'); +// const freqLevelNumber = document.getElementById('freqLevelNumber'); +//posts current settings to server +const save = function (e) { + //prevent default form action from being carried out + e.preventDefault(); + + if (document.getElementById('volLevelNumber').value > 100) { + alert("Volume cannot be that high"); + document.getElementById('volLevelNumber').value = 100; + document.getElementById('volLevelRange').value = 100; + } + + let num_octaves = 0; + if (document.getElementById('oneOctave').checked) { + num_octaves = 1; + } else if (document.getElementById('twoOctave').checked) { + num_octaves = 2; + } else if (document.getElementById('threeOctave').checked) { + num_octaves = 3; + } else { + console.log("Error, octave somehow not checked"); + } + + + const userSettings = { + volume: document.getElementById('volLevelNumber').value, + frequency: document.getElementById('freqLevelNumber').value, + octaves: num_octaves, + piano: document.getElementById('piano-checkbox').checked + } + console.log("User settings: " + userSettings) + + fetch('/save', { + method: 'POST', + body: JSON.stringify(userSettings), + headers: { + "Content-Type": "application/json" + } + }) + .then(function (res) { + //response + res.json().then(function (data) { + //data + console.log("Submit Response:", res); + console.log("Returned data: ", data); + alert('Settings saved!'); + }) + }) + + return false; +} +//builds Piano page with server settings +function buildPiano(settings) { + let piano = document.getElementById('pianotable'); + + //set data values from settings + document.getElementById('volLevelNumber').value = settings.volume; + document.getElementById('volLevelRange').value = settings.volume; + document.getElementById('freqLevelNumber').value = settings.frequency; + document.getElementById('freqLevelRange').value = settings.frequency; + + //generate octaves here using the int settings.octaves + let newPiano = `
\n`; + + console.log("Number of octaves: " + settings.octaves); + //for adding octaves to virtual piano + for (let i = 0; i < settings.octaves; i++) { + newPiano += (`
\n`); + newPiano += (`
\n`); + newPiano += (`
\n`); + newPiano += (`
\n`); + newPiano += (`
\n`); + newPiano += (`
\n`); + newPiano += (`
\n`); + newPiano += (`
\n`); + newPiano += (`
\n`); + newPiano += (`
\n`); + newPiano += (`
\n`); + newPiano += (`
\n`); + } + newPiano += "\n"; + + for (let i = 0; i < settings.octaves; i++) { + newPiano += (`\n`); + newPiano += (`\n`); + newPiano += (`\n`); + newPiano += (`\n`); + newPiano += (`\n`); + newPiano += (`\n`); + newPiano += (`\n`); + newPiano += (`\n`); + newPiano += (`\n`); + newPiano += (`\n`); + newPiano += (`\n`); + newPiano += (`\n`); + } + + newPiano += (`
`); + piano = newPiano; + document.getElementById('piano-checkbox').checked = settings.piano; + + console.log("Table populated"); + console.log(newPiano); +} window.onload = function () { - // const button = document.getElementById('submitbtn'); - document.getElementById('pianoSoundCheckBox').checked = true; + const savebtn = document.getElementById('savebtn'); + savebtn.onclick = save; + const loadbtn = document.getElementById('loadbtn'); + loadbtn.onclick = load; + const resetbtn = document.getElementById('resetbtn'); + resetbtn.onclick = reset; + reset(); + document.getElementById('oneOctave').checked = true; + document.getElementById('piano-checkbox').checked = true; console.log("Loaded!"); } \ No newline at end of file diff --git a/server.js b/server.js index 321dece4..036213ac 100644 --- a/server.js +++ b/server.js @@ -3,10 +3,12 @@ const express = require('express'); const app = express(); const port = 3000; const bodyParser = require('body-parser'); -app.use(express.static('./')) +const { json } = require('body-parser'); +app.use(express.static('./')); +app.use(bodyParser.urlencoded({extended: true})); //simple server for storing settings and defaults -const settings = { volume: 50, frequency: 262, octaves: 1, piano: true } +let settings = { volume: 50, frequency: 262, octaves: 1, piano: true } const default_settings = { volume: 50, frequency: 262, octaves: 1, piano: true } @@ -17,24 +19,39 @@ app.get('/', (req, res) => { }) //get default settings -app.get("/reset", bodyParser.json(), (req, res) => { +app.get("/reset", (req, res) => { console.log("Loading defaults: " + JSON.stringify(default_settings)); + settings = default_settings; + res.json(default_settings); console.log("Defaulted!"); }) //get server settings -app.post("/load", bodyParser.json(), (req, res) => { +app.get("/load", (req, res) => { console.log("Loading old settings: " + JSON.stringify(settings)); + res.json(settings); console.log("Loaded!"); }) //post to update server settings app.post("/save", bodyParser.json(), (req, res) => { - console.log("These settings saved: " + req.body); - settings = req.body + console.log("Before change: " + JSON.stringify(settings)); + console.log("The volume is: " + req.body.volume); + + settings = { + volume: req.body.volume, + frequency: req.body.frequency, + octaves: req.body.octaves, + piano: req.body.piano + } + + console.log("These settings saved: " + JSON.stringify(settings)); + //console.log("After change: " + JSON.stringify(settings)); console.log("Saved!"); + // res.writeHead(200, "OK", {'Content-Type': 'text/plain' }); + // res.end(); }) //listen to port From eeea15118c0de1e2ef62b881b823f16677e32ad1 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 13:59:32 -0400 Subject: [PATCH 09/31] Removed old project files and injected new Audio Web API --- index.html | 127 ++++++------------- module.js | 1 - notes/A.mp3 | Bin 9612 -> 0 bytes notes/Ab.mp3 | Bin 8776 -> 0 bytes notes/B.mp3 | Bin 8358 -> 0 bytes notes/Bb.mp3 | Bin 10332 -> 0 bytes notes/C.mp3 | Bin 10030 -> 0 bytes notes/D.mp3 | Bin 7104 -> 0 bytes notes/Db.mp3 | Bin 7104 -> 0 bytes notes/E.mp3 | Bin 8358 -> 0 bytes notes/Eb.mp3 | Bin 8776 -> 0 bytes notes/F.mp3 | Bin 9612 -> 0 bytes notes/G.mp3 | Bin 8776 -> 0 bytes notes/Gb.mp3 | Bin 10030 -> 0 bytes scripts.js | 344 +++++++++++++++++++-------------------------------- style.css | 202 ------------------------------ 16 files changed, 166 insertions(+), 508 deletions(-) delete mode 100644 module.js delete mode 100644 notes/A.mp3 delete mode 100644 notes/Ab.mp3 delete mode 100644 notes/B.mp3 delete mode 100644 notes/Bb.mp3 delete mode 100644 notes/C.mp3 delete mode 100644 notes/D.mp3 delete mode 100644 notes/Db.mp3 delete mode 100644 notes/E.mp3 delete mode 100644 notes/Eb.mp3 delete mode 100644 notes/F.mp3 delete mode 100644 notes/G.mp3 delete mode 100644 notes/Gb.mp3 diff --git a/index.html b/index.html index de36d9cc..3e699206 100644 --- a/index.html +++ b/index.html @@ -1,88 +1,39 @@ - - - - - Virtual Piano with Audio API - - - - - - - -

Welcome to Assignment 4

- -

- Welcome to [Piano App]! Here you can mess around on the Piano and play to your heart's content. You can control the - Frequency(pitch), Volume, Number of Octaves, and toggle Piano sounds below. Don't worry if you edit too much as you - can always reset the application to default with the reset button. Have fun! -

- - - - -
-
-
-
-
-
-
-
-
-
-
-
-
- - - - - - - - - - - - - -
- -
- -
- - -

- - -
- - -

- -
-
- - - - - - -

- - -
- -
- - - -
- - \ No newline at end of file + + + + + + + + + + Waveform: + +
+ + Gain: + +
+
+ + Filter Type: + +
+ + Filter Frequency: + +
+ + + diff --git a/module.js b/module.js deleted file mode 100644 index d477c36c..00000000 --- a/module.js +++ /dev/null @@ -1 +0,0 @@ -const log = (obj, prop) => console.log( `${prop}: ${obj[prop]}`) diff --git a/notes/A.mp3 b/notes/A.mp3 deleted file mode 100644 index e72e5f2e2d585131a654249e445b39497ed1e21d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9612 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 diff --git a/notes/B.mp3 b/notes/B.mp3 deleted file mode 100644 index ed63b89c9286b5c2ed27a13cc1bcf48eb0ae1949..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8358 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 diff --git a/notes/Bb.mp3 b/notes/Bb.mp3 deleted file mode 100644 index ba15c26778616fdaaccc74a28f63d5489ea05433..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10332 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 X0L%a&5{d?}Bn0kP{D1y$^}zoCmEZ79 diff --git a/notes/D.mp3 b/notes/D.mp3 deleted file mode 100644 index d7e7f6ed92c7d6a0b9bdd171db1d63c1f588677d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7104 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 Rzg~&```40yi1Ghz{sVmUY-0cb diff --git a/notes/Db.mp3 b/notes/Db.mp3 deleted file mode 100644 index ecb0cf82596824d6b04575a80de121b4b1773c89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7104 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 XRDIFQTr_(!7yy9$H@m0*!|eVWa!uH6 diff --git a/notes/Eb.mp3 b/notes/Eb.mp3 deleted file mode 100644 index 5f70bcd56686b9e96543c3ecef895d6b0141ff85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8776 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 HV;T52VGZy? diff --git a/notes/F.mp3 b/notes/F.mp3 deleted file mode 100644 index ed6bec27e6053162eee064a5861767d730edd0d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9612 zcmd^_XEa>lxA2cq!swmR8H^f4528mIz4y_L79?ug=%X{b=tS=Z(UMW4C3+{(l4wap zh=hojd*A<;_sjeJ-rrj1oDb(&d+)V=Yn`*#ex9p~R081tgSM~RgX<-f*B1i-@FoJJ z*D&6|eU0c1^4DnGV04Y$4IbA#x&d`f!VTFslwQ+tL)SG!H%wo%e#7oHCpTPObDc{L zuA--LM^sKO0I%jh71E)g1SXmQfV!zefbjzFKQI2rKCk{u5Qvvnk6Zx(NNmLGlo8`m zto^vhTn3P=v%`2KPVI{biL4XImz4}{>;J9^lsf@xKS1-rt5O8j6h%s3|P%@+Cu0tLxjd>5pqS`or$+_H-kRS4pPs*y1)>SqClf!Q!xkxVC5P{H9-czb1c-EhXK6Q z_}xfZ9Dv|NTW0j)R;J@1D;15_npjm4fzY?X~CUJw0BT_EoBf| zZrq;O0D;TG=laqbd40mgvi6sJ@jt<03PZY})IPR74WZT=jM8{Fw_Xl$E&&grJ0+QS zwJk8J5blQ_-E}5_h#DN(>7UGK$m&A}Gq@ebp0-!n3)|*blILrbOeQq0&JMVryt%wu zy!!ZO_|Z!@2AbR?L(7pLan*UDwuUcQ?>AmN zInJHQ%(2vQrw@%%s~o8;>HdYBe#Nx(psYH5LcH7cA}tb)Jk{~qaNR9@hfLsE+Rm}{ z{~E;On2t02K|UhQ*tb!5katq{$Q?5b`f?78Jv43c_*IMId}2$b*LEv z#>?wQH1bmnXUfV{-cCXiSp48%t>e;pYq>2-zIej-h~J z7!nj-r!PgRg7HPg58sfNP5gZ$5xijctRk>^I4>((4js)#UT=%LO)u-KDk!J1LYTne zZTDw?4JQwPdA3dhO4}UPcM$|u`ZB^v-SY2eR&&fzx{A^ zwg2$jNgi^ycNs@OQP4j6WdFOkaB2_ET??N98V}BGbtkzu>tSu$C%|4}ze;v;Ok|ND zwm1g3WNRvR0An|7C{q7MWNLfBJ;mcr2JwVFzD(|3bDE-yb(gk0$Mp*bH zo~<1K7k!;~{M4`l%_66wt&gjF8TNVd#t;|{`T<$e)nQ?`$G0ItsyUCN{H^MnJWHM> z3!i2r6_)G1t4NLIX7r<4->vm_3gY%_J=QoT?)W4s5%F&I{jv}l%j+VQH`}2P%x&8` zk_%&m<4lF_JFVXR7o&ar{oljOltapo&DpH~IQbYI^d3zRf<3}pGw3o7!DAK;-skE) zD@fu1u3$X!5Ap58{7(F&_n;1(3D1nHqex{Q+;v+*tp7P-`6rWg>N;-!V>W*%(+oVl z)Uo>iMhA#=Mp=uHvW_SrBF1dvCJ+--L7x-FO2!h0wKC-+K`c9wjJ(9aPd>rz#$_}<$3GKNGmcj1B*Ijq+=k(x07Gw4Sf&d#(r!6 zYQX-pHf$}12Zd0Q-AVUbN*$o<44s+ih}{*Ro^U2g=rMY)mR>cT-an~EX>QG_N|*P^ zTxMacGRq(C>~UZXhyhle<(QB$F8rdmiCHd!?8NXrxIK(lrI7TAzD2)5TVUn!OmqRr zxfK`UnExVXFq!G46n4+sX5fTrcY6Xc9ULz=65wN0#vff6!(N9~juNu1!6|yVnvBa< zh+{piadSxum3{@3mKEpq)juTo>xYk`Sx7y5$+1}Z_ zREnRs(v0x7O`%OcBYhxpk+yv?_lM?OwPBwWrcbMqCRd*eP7fJpczCtFPT``Uw?%w; z@xkUL#;sT_CM}Tj2mU52N68PdJqz-g2f!qFmWUBpsFbp8{7~>Mf96Z$2{sqoUiGa8#>l1<)mSfeNK+IvL`Ni) zviybP#}ZNzb4&LB`pNE~G?zzCI<7 z2oDgfLz#t?ofU3R)njNw6fR}OY*Rm5e45NLC4T!Vwd6;wapCJGZ%hLejzVfcgx|`V zsLty&xIW#EsSTTfB6$E12#{?*sDIsJogqXghkl0kOcidkax^kzecGIjahKJ9X#6p0 zD`Z&w6AhEj_pd4uOBstAd!#ORYt7OKOUfsy(>3`>JJFWYI7Tth|xXs3Cy0?#`)Fz5zRu05*2|F5kAgWdO)*S%mA0<4DaH5p7s)_Csu2ZSRiA< zC7(5gWaIQji+t7RUSFmSF?t;Pz@FfmD+$6fx2H~YoGp)ef@H;OzE)aRf+vuiAm-ca z_3aL3{CNFsI2L#+MC=5g6PpvUDG3_vXCaH4)yj5|O!T zF$IDy)JJ2ccYb~bY35V!3;f^cTx`i?p54d=fr*@1P5=OvuONj)bV_c2TOLW?%#p}Q z?H?|4{qO$}sDg6d%Sv0z%&FT)F-9%kGSJl9L#;$Nxwbkxj#cIDr2NCi1iBHRKSk3z zU7Og{6hy^6%XNo8zeMOmHq>Y%>AMdc$)FTnPwguEq)1D$+;>*v-^a>RsuC2n>s@HF z^fs)Y`HWC+yc3&F)U|PG7*yVzkAGf)t%1>3xD5L|O~MSg|0fvBhn2{BvL@zY+Zq}$ zZ1<1ir@ohvEOBTq>HEsN0m&wp88SlALdrVno<-Ytt>UwUiwUF1r3>*1R$a?-Y+iLa z*dLP(dvt4LaNAMPw`-d%(N3c2CCQRFIVszSr729RqE%?kA<36Pa2}Cn zDgpi%4{2`LElHAB?-t$opFVh!H??rP^y-SfYn7t}MWHlapLOnLOtCpnSFldSEi8|_ zL(&$zjhCA5?5KED`)NBq7~=KR##V^(Y^dpn^DSp!gm2jJY0^kq7D2Z zz<@6KNtaXTGy>G{RAUns;HwWbUPtlms^^p$OXgs-boeCG9C7!_ zz1+RKUyY+Nj4Oe3&2O$8_TG=4z0(nl0+kxC3j1{Jh7COCDN=JB4KkkV9*O4ljaX{1 zpm>`IoGAonXS#hdibstq)0rv>Gllrl6i8@r)bCmusf)(QNMc(K77FezSH9GdwTLkx z8EpcD>7o9m>7}N-cFiQ-^i)4pyv=Lxyt-61p!Bz`9hS)l{Zi`ie`0lbT6$yX9so*X zu-W^fmT$&AE`r!|jYqrN)Rp^|7?T|YW+cr4+R75z_?$~mEX6`(2rJcGjFubiihMn~ zEPqzoW9v~5D+^T~P=~!aR|Xi=+P?|~o7->}^OLK+RBPb^wP3pl({7t|QzqI(%Qu>F zoZCY3pNUYHPD&m)&*9kTQ&Gu5q>)EzR!b~QUSu$ zZ{0fU^I0P>k^#d#!$Y)kUA<_yi|*XFfo+CO{o48a|FVfH*(IjP8A2;<=q8w<9R4yj zKbjLD<*XPn52JQ2&t{wI!)e`{n66o0&Ys3`0toVPucY2QYy7@aO2zonG>!VixL^|R z`nY``?u<|W6iw}JM@CZ-hvQVI@J^#L`sBXA;%y2SIQVuegxMC#P?DmvNL~9?(GUCg zP8^mBX9N+zrm;2;5|%?1<*xF2tCT12o&O2Ve6ylnPL}Ia(YSWUsR4Jm#%L}B3etp$ zR{xS;D&S=u79Bg_8!ru|I55INq+jS*ADi3t&OP6K)2vu-IwdgorG5FvkU0R#p;+*` zt&?NCWuvEZKpJ1J^02bNTioc@fm9YRoF{iT4YWS8`D$Fj2JE38*K?vfQ03PRuRh@c zPnH1UCE;q?@^5pL;>6-KlMTHZ{34fqw?9W~7DIi66i+=5*9q3Q#5uoEa~0H_NDm zu1Qs<09Ga#{)ka)Tp8-Xe&QMYY4 zog@?0>lcGteTO>lY7h_87-ijqzGRXPk6&E3xMJfq>OMF8)O+2cgyyIfjPpD&cjNpj z0EcZhIgYkZ$EH!cF04p`PxN+UL5D&mZYaJ0EqZQtYEn%gQ89s3=Ejf@F({69Dl(6G z!^|cAt0Q+X$()8&-Nq1?7P@9Hiy0n9XyU&B7^&BF{>v!)ZV}+SGJmy?Sg9|`fTM_t z)-aM^UAIVSjGZmWBgpv*?#E=H8!G#^Ml1_a`J_z^(Roxq`BH&2O5*4&F#^X!%MMl# z)1JMXfVC<|SP>ngv)WFj8Lz9kzFw?ELJdI1&1t6*cXFmUPJ1EI5nf5cr7VayT zR9G)Ukr;#dReUT%YQ1P{+kWBGW}Q*H_x0jlKwt#L*6%#ZSrYPvo%UsxKx1g%8-MrW zUri=2u#BVrmF&!RSk~g9luxaltWV5^AR8eJ7r~@UC==hR1wK zm0`DHMXu_-lPU+EC2wTFA}0|kYZCUb?IDqKEUs!Zf{C<~arMR!8UVdyoSVHZA#1D# z?sbhZ1EZ}TROa|Lo5XrnSLV_s5wt9`q>#lgy@iQ8Uvy9ir^eGbJ#$IduwLj*;P&_% zN5pL#rDL_Vtv}%{y4lV0dkm+qbDDA%-(I<|yD~eX%v|%&Xct_jCmKm&X-14&nn^}h zZACgt7VMla6^Fy@h78rH54d4n`c-j()$Qhqx0Jk%k~v!pINF=LHL)-)G-x{S@x9Ww znS&RtlW&x5oUH+7+xFqvMd~M_LT);GgeQ8@?(DgSnz6S~Kcr)}Id|yx*QTxYB}@&e zNwaA{C?9~nV=)NtDlrQBi@ z_euN5XFKm(x=lnvy(U}delWZPfAsVq=$bXwhUnZKoTj@&^Cxaee?$Ws?FE~XPo7Cv zmA^wWJN$z}D3T$8G}qd1{k-tmvdb1rZ5))5Ux#{1pD|@sKjFqu5dg|&x6mbn)ERGq zyBv`!;3hr0I)(dON|>)wv5C@SwVvN+-7n}Ke{+@ks1>mlWW|H5I#EJ7JYnaETNyoE z4@d7Rd?D{7((;$M-K@*$ZZZUUu{=@b5*Ro#M$J5y_$YWOTFCdL*5gCQ)$YRi;I&`VW;Q)g$j!4l*V9~%>q->-s=-zKF0uG}#E_GD_ez|pwM_S9U+6F#Y)+IAR7 zF9n03=-2lDdhaxB`Vue9XHUb!#RsbL5dDGj(N9Q=fhBj9V}LQqF^TbCu3g=!l_Tz> z=Sk6WPrjVHRTVsOUS%3k2|%>g8f8FeGoiO#!|TmSll7c$3wJ=yt~$O3AAjwA9smGr z*mz*%Xv^JL54u#49vRN!b0rjyhsdMsf>4}WH&fgpnO85K@w+kf3KdbUw1PaOSu^an z_C)TPfvI$@>NdGIHNe$-bjh;LOVQDi=qc3r$bb9Z=b*A6ThYbbj?7xOt3+NLc{*zR|aCX5`; zz}CSxx4=fsrBP^}7ZjbN^o*cba3-FtS=EWvrRnpaYM1q=6Yn)=vZ9okzTvqO@utrK z`OL&oA+o{}-RJ8rCt#i?USsN?5&vp)_b4S!vJyA!Qm>-mp51;?5G}kFgtWKo*KR&@ zk&lb}*7eETaa~E(mw(nz-Db(Rv{J!c5qR>$pxt7+QbyQ?NMdU*p}|yeoKrP6<-B21 z3+jqZ5X>N@Qc@;}DO7fg_$tOCEm6OsGnk?S37?Rc|6RYJKR{3rox-t~( z*)^>{fwrE`NH!G|UA?5<6Uxk6G+oVp^UL|*S+FO(sN)|AsO?tXny@mUT(JYo6d+QQ z8w>1XNW%BKM?7l3SxI@T*j(%F0uytU*C4i_=W~ESLYZ`mLJ=jA$`1+S;=ECPs80=^ z7~(uZ;=Aa_8jd{TeF4F<-8)(@=MOuuyHLp;y-Hq?ggbPbUtIKgqC)gefX-P^p1r4( zf6@T^-=$>Lc*4Wa(T~-NKhR2@EWUw$=P_VZ@bHT+wV=!6!%~4cX&GQRr`R{qyYB9Q zj5Bn0>O3c@&0-e@V#8t{D)p&+8I>^4#d_`xwUV8~v z81RmR5q#5W(}P^Vt}e&Vs^Zbh?uR&qpu#zuh)ll^%|u;lGRHVuqBF8 z_iL3S20(eA#Z+78%n6C}z@ZP|1$7?*l^9JYXqh@-JU>xJx`QtDx3f1KX^UPOvLfc@ z%AdA6v4>?B^1ip>;g%y#T%Bx_q&enY^d3uUTdkW_oLTSeVy~J=>}vZI6yVEYx0-)B zd2I4a;;m6A`~K^18+bq(4KX2(JC5Rx1!9``(OA!Tn2sMCke`@M&1l{T;@x1gr8It- z+%ui0Dr5ZQLy+|?5#CCqN~3A$ML9&+zi>K`Ay?Z_j4Y3c~|AbH`O&qkH&F)^E zovzfM{aw6xar@##00qM1hEkEDG-z1e8v079_A*1WPBJ#+@#L6Axkc;k33PGtuh?Je zvW1pOM!A*$=}8d5&%(@NH(ytut!9dkFD5Sfj#h2Y{k`lkv7`9nb3FCmd8XH{&OU#o zeR?JJ@ALS-ORy78>K>9u?+YD`q3=-(PlW~tMDZ8w#?TH5KgD9^t~MRF|EN5^Pec^_ zubH-jPx{F5%*RtbuxuKZ;(@$IMk#vdajvZ`>IoM#3C~{C@GUd? zBtqPzi;7t5qxT!B#4yj1s5xvdwFYE_DovUiT%eY}GUdQ6ck1s73q2h1G|#0I7a)pC zo$v~9G4i}MWpzIzk07|y5H70b$0{veowUL1{(wDV*TG9yqqN4AGc;YJ0ft}4pB)Q0%ZMFv)nqvnLV))QR?(6(U( zm1c{XJD0^#u;q-0n!-F77)~Wu()EKa1<~NK)CSCdsnu^fl*=EOn%NggpJFrhlQB&DOKc zEZZlmN~!j3?Gw2JN3(PM?}TGs-n`p&b5AHXcRRd0yCWzhJ*xYkZe7~hf_d( zlzcXj;VtAqlGq=Ump+9X1+}jb zTI(e~O%p1~n$fCc))pveC&X(S<41Vv?QVJ`lFVyp&Gwv&Dkc=Zm&M$u*JjVf*BdXY~iR z$_C%PWLAS@k_-MVURF$jY^Ue&;urRMZVc5Y4q%`Lv?(l2{_1gC{@X$1gOTb!O@47J zrC&5A$i)yEOlShc@6-SU(_P}}tl#Yc>b&Hf(ItG*iR{+xiv;!c%O(A@4=Q~=owrMj z=wOX$B_s?T$J}^JoUj0ox{On;w1zM`FaMFpyWOmlm$z+CBt&V3n)6%bhmR3M=Z4V$ z;a6w&cH#WAdrcTYR2i+=9uHE0L@f}E?UAogABtdjSdN35?^?@yGTs>_HJ2+G)lpcJ zQAHg7dnGX)j;YhQgIx4U>3aPDZZ(b9cP4C!Gz=jlAnw4^Y(slJvaJ91F|3Nz4fwoDb7l(NQ&ASFOKIQJp4^h|b>=BcbnNNY0C%I93fzb`LPl^kpd#3wmzL z?9r!f&Yg=rXn(uZ82qZW6hCt2Qv$glCBCw9f}eFai9na|_n?dUrE_0;zDVD>G~zyh z0IU-G4(jVUx?u*f-f72j?nNTHMLvno2biNN*q(Q9wk zdNhkkj1a_?lw~MxUMwt>l<l$M&lj>i{<3@m8(JrS>FudZM%K_i8|0Dd#tYB3Hx_Jh$^!bJiEkc|U7FY9 z@UdKV?Jy^Kms;^OIfl0 zukoOgwK`I*#u7iNNkznw6c!XW2qF?{9uYjMVzMrSyHdwA{lS5+x3qU;e>{J_9nj=J zbLDn~d)rJAy!g7Cr5lM2^;{4lO?bt3ydN>M^MNj2o<-F^KAYB>K;I~+mlpTf=J!kV z6D)cr*6X^vg+X6rjq_pN@=AXp}AShbK9QZ{Z1kx*KOc)=n-@r^RatM{Vros(8q})W~h1KQp;c6a>IF6HVQ{$ zJ&FLOL3Yd41M9&FV<}jF&wGW#_KD^%Pwil$6xk+UoC4+*YmTd5(9!H&nBVrrT-rV? zYOKwe=cUWuxNGKXpyzn{xNy%mU|o1<u0it@HpI%Og5PrzPYdgpBj$1=?&?jIZ{2zi&%Zl|5F^kxV}TNp(lbr{?ljSc zFJUNS*)_W}*?6cU^1L|Ui$$q9*PEiv&&z11bsNT?EtaPq+CNU~UY7Q;xGK-cKTw0b{Pck;9y8^LXXgH%=73PeqdM diff --git a/notes/G.mp3 b/notes/G.mp3 deleted file mode 100644 index 68534d68628e07d96fc99370019f9d54232c1b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8776 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 SBkvcx|Hn=L|HS{rC-7gl3;iLP8Ao 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 W0O$cgI06QMd4-JrKmXTe;C}&U(vmp< diff --git a/scripts.js b/scripts.js index 61c538bd..23c1b6cf 100644 --- a/scripts.js +++ b/scripts.js @@ -1,225 +1,135 @@ -console.log("Welcome to assignment 4!") -const BLACK_KEYS = ['s', 'd', 'g', 'h', 'j'] -const WHITE_KEYS = ['z', 'x', 'c', 'v', 'b', 'n', 'm'] - -const keys = document.querySelectorAll('.key'); -const whiteKeys = document.querySelectorAll('.key.white'); -const blackKeys = document.querySelectorAll('.key.black'); - -const freqLevelRange = document.getElementById('freqLevelRange'); -const freqLevelNumber = document.getElementById('freqLevelNumber'); - -freqLevelRange.addEventListener('input', syncFreqAmount) -freqLevelNumber.addEventListener('input', syncFreqAmount) - -function syncFreqAmount(e) { - const val = e.target.value - freqLevelRange.value = val; - freqLevelNumber.value = val; -} - -const volLevelRange = document.getElementById('volLevelRange'); -const volLevelNumber = document.getElementById('volLevelNumber'); - -volLevelRange.addEventListener('input', syncVolAmount) -volLevelNumber.addEventListener('input', syncVolAmount) - -function syncVolAmount(e) { - const val = e.target.value - volLevelRange.value = val; - volLevelNumber.value = val; -} - -document.getElementById("freqLevelRange").oninput = function () { - this.style.background = 'linear-gradient(to right, #82CFD0 0%, #82CFD0 ' + this.value + '%, #fff ' + this.value + '%, white 100%)' -}; - -keys.forEach(key => { - key.addEventListener('click', () => playNote(key)) -}) - -document.addEventListener('keydown', e => { - if (e.repeat) return - const key = e.key; - const blackKeyIndex = BLACK_KEYS.indexOf(key) - const whiteKeyIndex = WHITE_KEYS.indexOf(key) - - if (whiteKeyIndex > -1) playNote(whiteKeys[whiteKeyIndex]); - if (blackKeyIndex > -1) playNote(blackKeys[blackKeyIndex]); - -}) - -function playNote(key) { - const noteAudio = document.getElementById(key.dataset.note); - noteAudio.currentTime = 0; - noteAudio.play() - key.classList.add('active'); - noteAudio.addEventListener('ended', () => { - key.classList.remove('active'); - }) -} - -//gets default settings from server -const reset = function (e) { - //prevent default form action from being carried out - // e.preventDefault(); - - fetch('/reset', { - method: 'GET' - }) - .then(function (res) { - //response - res.json().then(function (data) { - //data - console.log("Submit Response:", res); - console.log("Returned data: ", data); - - buildPiano(data); - }) - }) - - return false; -} - -//gets last saved settings from server -const load = function (e) { - //prevent default form action from being carried out - e.preventDefault(); - - fetch('/load', { - method: 'GET' - }) - .then(function (res) { - //response - res.json().then(function (data) { - //data - console.log("Submit Response:", res); - console.log("Returned data: ", data); - - buildPiano(data); - }) - }) - - return false; -} - // const freqLevelRange = document.getElementById('freqLevelRange'); // const freqLevelNumber = document.getElementById('freqLevelNumber'); -//posts current settings to server -const save = function (e) { - //prevent default form action from being carried out - e.preventDefault(); - - if (document.getElementById('volLevelNumber').value > 100) { - alert("Volume cannot be that high"); - document.getElementById('volLevelNumber').value = 100; - document.getElementById('volLevelRange').value = 100; - } - let num_octaves = 0; - if (document.getElementById('oneOctave').checked) { - num_octaves = 1; - } else if (document.getElementById('twoOctave').checked) { - num_octaves = 2; - } else if (document.getElementById('threeOctave').checked) { - num_octaves = 3; - } else { - console.log("Error, octave somehow not checked"); - } +// freqLevelRange.addEventListener('input', syncFreqAmount) +// freqLevelNumber.addEventListener('input', syncFreqAmount) + +// function syncFreqAmount(e) { +// const val = e.target.value +// freqLevelRange.value = val; +// freqLevelNumber.value = val; +// } + +// const volLevelRange = document.getElementById('volLevelRange'); +// const volLevelNumber = document.getElementById('volLevelNumber'); + +// volLevelRange.addEventListener('input', syncVolAmount) +// volLevelNumber.addEventListener('input', syncVolAmount) + +// //syncs volume range with volume number +// function syncVolAmount(e) { +// const val = e.target.value +// volLevelRange.value = val; +// volLevelNumber.value = val; +// } + +//EVERYTHING IS PLACED INSIDE A DOMContentLoaded EVENT SO THAT WHEN +//WE getElementById, THE ELEMENTS ARE LOADED & AVAILABLE +document.addEventListener("DOMContentLoaded", function(event) { + //SET UP AUDIO CONTEXT + const audioCtx = new (window.AudioContext || window.webkitAudioContext)(); - - const userSettings = { - volume: document.getElementById('volLevelNumber').value, - frequency: document.getElementById('freqLevelNumber').value, - octaves: num_octaves, - piano: document.getElementById('piano-checkbox').checked - } - console.log("User settings: " + userSettings) + //PROCESSING CHAIN + const gain = audioCtx.createGain(); + const filter = audioCtx.createBiquadFilter(); - fetch('/save', { - method: 'POST', - body: JSON.stringify(userSettings), - headers: { - "Content-Type": "application/json" + //CURRENT WAVEFORM OSCILLATOR WILL USE + let waveform = 'sawtooth' + + //OBJECT FOR STORING ACTIVE NOTES + const activeOscillators = {}; + + //KEYCODE TO MUSICAL FREQUENCY CONVERSION + const keyboardFrequencyMap = { + '90': 261.625565300598634, //Z - C + '83': 277.182630976872096, //S - C# + '88': 293.664767917407560, //X - D + '68': 311.126983722080910, //D - D# + '67': 329.627556912869929, //C - Ez + '86': 349.228231433003884, //V - F + '71': 369.994422711634398, //G - F# + '66': 391.995435981749294, //B - G + '72': 415.304697579945138, //H - G# + '78': 440.000000000000000, //N - A + '74': 466.163761518089916, //J - A# + '77': 493.883301256124111, //M - B + '81': 523.251130601197269, //Q - C + '50': 554.365261953744192, //2 - C# + '87': 587.329535834815120, //W - D + '51': 622.253967444161821, //3 - D# + '69': 659.255113825739859, //E - E + '82': 698.456462866007768, //R - F + '53': 739.988845423268797, //5 - F# + '84': 783.990871963498588, //T - G + '54': 830.609395159890277, //6 - G# + '89': 880.000000000000000, //Y - A + '55': 932.327523036179832, //7 - A# + '85': 987.766602512248223, //U - B } - }) - .then(function (res) { - //response - res.json().then(function (data) { - //data - console.log("Submit Response:", res); - console.log("Returned data: ", data); - alert('Settings saved!'); - }) - }) - - return false; -} - -//builds Piano page with server settings -function buildPiano(settings) { - let piano = document.getElementById('pianotable'); - - //set data values from settings - document.getElementById('volLevelNumber').value = settings.volume; - document.getElementById('volLevelRange').value = settings.volume; - document.getElementById('freqLevelNumber').value = settings.frequency; - document.getElementById('freqLevelRange').value = settings.frequency; - - //generate octaves here using the int settings.octaves - let newPiano = `
\n`; - - console.log("Number of octaves: " + settings.octaves); - //for adding octaves to virtual piano - for (let i = 0; i < settings.octaves; i++) { - newPiano += (`
\n`); - newPiano += (`
\n`); - newPiano += (`
\n`); - newPiano += (`
\n`); - newPiano += (`
\n`); - newPiano += (`
\n`); - newPiano += (`
\n`); - newPiano += (`
\n`); - newPiano += (`
\n`); - newPiano += (`
\n`); - newPiano += (`
\n`); - newPiano += (`
\n`); - } - newPiano += "\n"; - - for (let i = 0; i < settings.octaves; i++) { - newPiano += (`\n`); - newPiano += (`\n`); - newPiano += (`\n`); - newPiano += (`\n`); - newPiano += (`\n`); - newPiano += (`\n`); - newPiano += (`\n`); - newPiano += (`\n`); - newPiano += (`\n`); - newPiano += (`\n`); - newPiano += (`\n`); - newPiano += (`\n`); - } - - newPiano += (`
`); - piano = newPiano; - document.getElementById('piano-checkbox').checked = settings.piano; - - console.log("Table populated"); - console.log(newPiano); -} + + //CONNECTIONS + gain.connect(filter); + filter.connect(audioCtx.destination); + + //EVENT LISTENERS FOR SYNTH PARAMETER INTERFACE + const waveformControl = document.getElementById('waveform') + waveformControl.addEventListener('change', function(event) { + waveform = event.target.value + }); + + const gainControl = document.getElementById('gain') + gainControl.addEventListener('change', function(event) { + gain.gain.setValueAtTime(event.target.value, audioCtx.currentTime) + }); + + const filterTypeControl = document.getElementById('filterType') + filterTypeControl.addEventListener('change', function(event) { + filter.type = event.target.value + }); + + const filterFrequencyControl = document.getElementById('filterFrequency') + filterFrequencyControl.addEventListener('change', function(event) { + filter.frequency.setValueAtTime(event.target.value, audioCtx.currentTime) + }); + + //EVENT LISTENERS FOR MUSICAL KEYBOARD + window.addEventListener('keydown', keyDown, false); + window.addEventListener('keyup', keyUp, false); + + //CALLED ON KEYDOWN EVENT - CALLS PLAYNOTE IF KEY PRESSED IS ON MUSICAL + //KEYBOARD && THAT KEY IS NOT CURRENTLY ACTIVE + function keyDown(event) { + const key = (event.detail || event.which).toString(); + if (keyboardFrequencyMap[key] && !activeOscillators[key]) { + playNote(key); + } + } + + //STOPS & DELETES OSCILLATOR ON KEY RELEASE IF KEY RELEASED IS ON MUSICAL + //KEYBOARD && THAT KEY IS CURRENTLY ACTIVE + function keyUp(event) { + const key = (event.detail || event.which).toString(); + if (keyboardFrequencyMap[key] && activeOscillators[key]) { + activeOscillators[key].stop(); + delete activeOscillators[key]; + } + } + + //HANDLES CREATION & STORING OF OSCILLATORS + function playNote(key) { + const osc = audioCtx.createOscillator(); + osc.frequency.setValueAtTime(keyboardFrequencyMap[key], audioCtx.currentTime) + osc.type = waveform + activeOscillators[key] = osc + activeOscillators[key].connect(gain) + activeOscillators[key].start(); + } + + }); + +// window.onload = function () { + -window.onload = function () { - const savebtn = document.getElementById('savebtn'); - savebtn.onclick = save; - const loadbtn = document.getElementById('loadbtn'); - loadbtn.onclick = load; - const resetbtn = document.getElementById('resetbtn'); - resetbtn.onclick = reset; - reset(); - document.getElementById('oneOctave').checked = true; - document.getElementById('piano-checkbox').checked = true; - console.log("Loaded!"); -} \ No newline at end of file +// console.log("Loaded!"); +// } \ No newline at end of file diff --git a/style.css b/style.css index a496d9bb..e69de29b 100644 --- a/style.css +++ b/style.css @@ -1,202 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Lato'); -*, *::before, *::after { - box-sizing: border-box; -} - -html { - font-size: 20px; - background-color: #2B83B3; -} - -body, html { - font-family: "Lato"; - color: #FFFFFF; - margin: 0; - padding: 0; - height: 100%; - min-width: 770px; - align-items: center; -} - -.title { - text-align: center; -} - -.intro { - padding-left: 220px; - padding-right: 220px; - justify-content: center; -} - -a { - text-decoration: none; - font-weight: bold; - color: #2BCF4C; - justify-content: center; -} - -.form-checkbox { - margin: auto; - display: block; -} - -.controllers { - justify-content: center; - align-items: center; - color: #FFFFFF; - margin-left: 50px; -} - - -.piano { - margin: 10px 90px; - min-width: 755px; - display: flex; - justify-content: center; - flex: 1; - min-height: 30vh; -} - -.key { - height: calc(var(--piano-width) * 4); - width: var(--piano-width); -} - -.white { - --piano-width: 100px; - background-color: white; - border: 1px solid #333; -} - -.white.active { - background-color: #CCC; -} - -.black { - --piano-width: 60px; - background-color: black; - margin-left: calc(var(--piano-width) / -2); - margin-right: calc(var(--piano-width) / -2); - z-index: 2; -} - -.black.active { - background-color: #333; -} - - - -/* This CSS is for styling range inputs which was taken and edited from css-tricks.com */ -input[type=range] { - -webkit-appearance: none; - margin: 18px 0; - width: 15%; - } - - input[type=range]:focus { - outline: none; - } - - input[type=range]::-webkit-slider-runnable-track { - width: 100%; - height: 8.4px; - cursor: pointer; - box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; - background: #2BCF4C; - border-radius: 1.3px; - border: 0.2px solid #010101; - } - - input[type=range]::-webkit-slider-thumb { - box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; - border: 1px solid #000000; - height: 30px; - width: 16px; - border-radius: 3px; - background: #ffffff; - cursor: pointer; - -webkit-appearance: none; - margin-top: -14px; - } - - input[type=range]:focus::-webkit-slider-runnable-track { - background: #33F259; - } - -/* This CSS was taken and modified from w3schools.com */ -/* Customize the label (the container) */ -.piano-sound-container { - display: block; - position: relative; - padding-left: 35px; - margin-bottom: 12px; - cursor: pointer; - font-size: 22px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } - - /* Hide the browser's default checkbox */ - .piano-sound-container input { - position: absolute; - opacity: 0; - cursor: pointer; - height: 0; - width: 0; - } - - /* Create a custom checkbox */ - .checkmark { - position: absolute; - top: 0; - left: 0; - height: 22px; - width: 22px; - background-color: #eee; - } - - /* On mouse-over, add a grey background color */ - .piano-sound-container:hover input ~ .checkmark { - background-color: #ccc; - } - - /* When the checkbox is checked, add a blue background */ - .piano-sound-container input:checked ~ .checkmark { - background-color: #2BCF4C; - } - - /* Create the checkmark/indicator (hidden when not checked) */ - .checkmark:after { - content: ""; - position: absolute; - display: none; - } - - /* Show the checkmark when checked */ - .piano-sound-container input:checked ~ .checkmark:after { - display: block; - } - - /* Style the checkmark/indicator */ - .piano-sound-container .checkmark:after { - left: 9px; - top: 5px; - width: 5px; - height: 10px; - border: solid white; - border-width: 0 3px 3px 0; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg); - } - - /* Hide the browser's default radio button */ -.container input { - position: absolute; - opacity: 0; - cursor: pointer; - height: 0; - width: 0; - } \ No newline at end of file From 7cae96fd8127a6e1bb9462b1f79c4c6e41837985 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 15:53:55 -0400 Subject: [PATCH 10/31] Keyboard implemented and works with key presses --- index.html | 126 +++++++++++++++++-------- scripts.js | 263 ++++++++++++++++++++++++++++++----------------------- style.css | 67 ++++++++++++++ 3 files changed, 307 insertions(+), 149 deletions(-) diff --git a/index.html b/index.html index 3e699206..0973847d 100644 --- a/index.html +++ b/index.html @@ -1,39 +1,91 @@ - - - - - - - - Waveform: - -
- - Gain: - -
-
- - Filter Type: - -
- - Filter Frequency: - -
- - - + + + Virtual Piano with Audio API + + + + + + + +

Welcome to Assignment 4

+

+ Welcome to [Piano App]! Here you can mess around on the Piano and play to your heart's content. You can control the + Frequency(pitch), Volume, Number of Octaves, and toggle Piano sounds below. Don't worry if you edit too much as you + can always reset the application to default with the reset button. Have fun! +

+ +
+ + + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+ +
+ +
+ Waveform: + +
+ + Volume: + + +
+
+ + Pass Filter Type: + +
+ + Filter Frequency: + + +
+
+ + + + \ No newline at end of file diff --git a/scripts.js b/scripts.js index 23c1b6cf..002da2fa 100644 --- a/scripts.js +++ b/scripts.js @@ -1,135 +1,174 @@ -// const freqLevelRange = document.getElementById('freqLevelRange'); -// const freqLevelNumber = document.getElementById('freqLevelNumber'); - -// freqLevelRange.addEventListener('input', syncFreqAmount) -// freqLevelNumber.addEventListener('input', syncFreqAmount) - -// function syncFreqAmount(e) { -// const val = e.target.value -// freqLevelRange.value = val; -// freqLevelNumber.value = val; -// } - -// const volLevelRange = document.getElementById('volLevelRange'); -// const volLevelNumber = document.getElementById('volLevelNumber'); - -// volLevelRange.addEventListener('input', syncVolAmount) -// volLevelNumber.addEventListener('input', syncVolAmount) - -// //syncs volume range with volume number -// function syncVolAmount(e) { -// const val = e.target.value -// volLevelRange.value = val; -// volLevelNumber.value = val; -// } - -//EVERYTHING IS PLACED INSIDE A DOMContentLoaded EVENT SO THAT WHEN -//WE getElementById, THE ELEMENTS ARE LOADED & AVAILABLE -document.addEventListener("DOMContentLoaded", function(event) { - //SET UP AUDIO CONTEXT +//key press buttons for UI keyboard +const WHITE_KEYS = ['z', 'x', 'c', 'v', 'b', 'n', 'm', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i'] +const BLACK_KEYS = ['s', 'd', 'g', 'h', 'j', '2', '3', '5', '6', '7'] + +const keys = document.querySelectorAll('.key'); +const whiteKeys = document.querySelectorAll('.key.white'); +const blackKeys = document.querySelectorAll('.key.black'); + +const freqLevelRange = document.getElementById('freqLevelRange'); +const freqLevelNumber = document.getElementById('freqLevelNumber'); + +freqLevelRange.addEventListener('input', syncFreqAmount) +freqLevelNumber.addEventListener('input', syncFreqAmount) + +function syncFreqAmount(e) { + const val = e.target.value + freqLevelRange.value = val; + freqLevelNumber.value = val; +} + +const volLevelRange = document.getElementById('volLevelRange'); +const volLevelNumber = document.getElementById('volLevelNumber'); + +volLevelRange.addEventListener('input', syncVolAmount) +volLevelNumber.addEventListener('input', syncVolAmount) + +//syncs volume range with volume number +function syncVolAmount(e) { + const val = e.target.value + volLevelRange.value = val; + volLevelNumber.value = val; +} + + +//event listeners to add active effect to keyboard +document.addEventListener('keydown', e => { + if (e.repeat) return + const key = e.key; + const blackKeyIndex = BLACK_KEYS.indexOf(key) + const whiteKeyIndex = WHITE_KEYS.indexOf(key) + + if (whiteKeyIndex > -1) + whiteKeys[whiteKeyIndex].classList.add('active'); + if (blackKeyIndex > -1) + blackKeys[blackKeyIndex].classList.add('active'); +}); + +//event listeners to remove active effect from keyboard +document.addEventListener('keyup', e => { + if (e.repeat) return + const key = e.key; + const blackKeyIndex = BLACK_KEYS.indexOf(key) + const whiteKeyIndex = WHITE_KEYS.indexOf(key) + + if (whiteKeyIndex > -1) + whiteKeys[whiteKeyIndex].classList.remove('active') + if (blackKeyIndex > -1) + blackKeys[blackKeyIndex].classList.remove('active'); +}); + + + +//Initialize audio on window load to avoid null pointers +function initializeAudio() { + + //Web Audio API utilization const audioCtx = new (window.AudioContext || window.webkitAudioContext)(); - - //PROCESSING CHAIN - const gain = audioCtx.createGain(); + + //Process volume and filter + const volume = audioCtx.createGain(); const filter = audioCtx.createBiquadFilter(); - - //CURRENT WAVEFORM OSCILLATOR WILL USE - let waveform = 'sawtooth' - + + //default waveform + let waveform = 'sine' + //OBJECT FOR STORING ACTIVE NOTES const activeOscillators = {}; - + //KEYCODE TO MUSICAL FREQUENCY CONVERSION const keyboardFrequencyMap = { - '90': 261.625565300598634, //Z - C - '83': 277.182630976872096, //S - C# - '88': 293.664767917407560, //X - D - '68': 311.126983722080910, //D - D# - '67': 329.627556912869929, //C - Ez - '86': 349.228231433003884, //V - F - '71': 369.994422711634398, //G - F# - '66': 391.995435981749294, //B - G - '72': 415.304697579945138, //H - G# - '78': 440.000000000000000, //N - A - '74': 466.163761518089916, //J - A# - '77': 493.883301256124111, //M - B - '81': 523.251130601197269, //Q - C - '50': 554.365261953744192, //2 - C# - '87': 587.329535834815120, //W - D - '51': 622.253967444161821, //3 - D# - '69': 659.255113825739859, //E - E - '82': 698.456462866007768, //R - F - '53': 739.988845423268797, //5 - F# - '84': 783.990871963498588, //T - G - '54': 830.609395159890277, //6 - G# - '89': 880.000000000000000, //Y - A - '55': 932.327523036179832, //7 - A# - '85': 987.766602512248223, //U - B + '90': 130.81, //Z - note: C3 + '83': 138.59, //S - C3# + '88': 146.83, //X - D3 + '68': 155.56, //D - D3# + '67': 164.81, //C - E3 + '86': 174.61, //V - F3 + '71': 185.00, //G - F3# + '66': 196.00, //B - G3 + '72': 207.65, //H - G3# + '78': 220.00, //N - A3 + '74': 233.08, //J - A3# + '77': 246.94, //M - B3 + '81': 261.63, //Q - C4 + '50': 277.18, //2 - C4# + '87': 293.66, //W - D4 + '51': 311.13, //3 - D4# + '69': 329.63, //E - E4 + '82': 349.23, //R - F4 + '53': 369.99, //5 - F4# + '84': 392.00, //T - G4 + '54': 415.30, //6 - G4# + '89': 440.00, //Y - A4 + '55': 466.16, //7 - A4# + '85': 493.88, //U - B4 + '73': 523.25, //I - C5 } - + //CONNECTIONS - gain.connect(filter); + volume.connect(filter); filter.connect(audioCtx.destination); - - //EVENT LISTENERS FOR SYNTH PARAMETER INTERFACE - const waveformControl = document.getElementById('waveform') - waveformControl.addEventListener('change', function(event) { - waveform = event.target.value + + //Listens for changes to the volume + const volumeControl = document.getElementById('volLevelRange') + volumeControl.addEventListener('change', function (event) { + volume.gain.setValueAtTime(event.target.value, audioCtx.currentTime) }); - - const gainControl = document.getElementById('gain') - gainControl.addEventListener('change', function(event) { - gain.gain.setValueAtTime(event.target.value, audioCtx.currentTime) + + //Listens for changes to the waveform + const waveformControl = document.getElementById('waveform') + waveformControl.addEventListener('change', function (event) { + waveform = event.target.value }); - - const filterTypeControl = document.getElementById('filterType') - filterTypeControl.addEventListener('change', function(event) { - filter.type = event.target.value + + + //Listens for change in pass type + const passTypeControl = document.getElementById('passType') + passTypeControl.addEventListener('change', function (event) { + filter.type = event.target.value }); - - const filterFrequencyControl = document.getElementById('filterFrequency') - filterFrequencyControl.addEventListener('change', function(event) { - filter.frequency.setValueAtTime(event.target.value, audioCtx.currentTime) + + //Listens for change in frequency + const frequencyLevelControl = document.getElementById('freqLevelRange') + frequencyLevelControl.addEventListener('change', function (event) { + filter.frequency.setValueAtTime(event.target.value, audioCtx.currentTime) }); - - //EVENT LISTENERS FOR MUSICAL KEYBOARD + + //Listen for keypresses to play notes window.addEventListener('keydown', keyDown, false); window.addEventListener('keyup', keyUp, false); - - //CALLED ON KEYDOWN EVENT - CALLS PLAYNOTE IF KEY PRESSED IS ON MUSICAL - //KEYBOARD && THAT KEY IS NOT CURRENTLY ACTIVE + + //When key is pressed, if it's the right key and key is not pressed, play note function keyDown(event) { - const key = (event.detail || event.which).toString(); - if (keyboardFrequencyMap[key] && !activeOscillators[key]) { - playNote(key); - } + const key = (event.detail || event.which).toString(); + if (keyboardFrequencyMap[key] && !activeOscillators[key]) { + playNote(key); + } } - - //STOPS & DELETES OSCILLATOR ON KEY RELEASE IF KEY RELEASED IS ON MUSICAL - //KEYBOARD && THAT KEY IS CURRENTLY ACTIVE + + //When key is released, delete key's oscillator function keyUp(event) { - const key = (event.detail || event.which).toString(); - if (keyboardFrequencyMap[key] && activeOscillators[key]) { - activeOscillators[key].stop(); - delete activeOscillators[key]; - } + const key = (event.detail || event.which).toString(); + if (keyboardFrequencyMap[key] && activeOscillators[key]) { + activeOscillators[key].stop(); + delete activeOscillators[key]; + } } - - //HANDLES CREATION & STORING OF OSCILLATORS + + //Creates an oscillation for a specific key function playNote(key) { - const osc = audioCtx.createOscillator(); - osc.frequency.setValueAtTime(keyboardFrequencyMap[key], audioCtx.currentTime) - osc.type = waveform - activeOscillators[key] = osc - activeOscillators[key].connect(gain) - activeOscillators[key].start(); + const osc = audioCtx.createOscillator(); + osc.frequency.setValueAtTime(keyboardFrequencyMap[key], audioCtx.currentTime) + osc.type = waveform + activeOscillators[key] = osc + activeOscillators[key].connect(volume) + activeOscillators[key].start(); } - - }); - +}; -// window.onload = function () { - +//run functions on window load +window.onload = function () { + initializeAudio(); -// console.log("Loaded!"); -// } \ No newline at end of file + console.log("Loaded!"); +} \ No newline at end of file diff --git a/style.css b/style.css index e69de29b..19a4ae48 100644 --- a/style.css +++ b/style.css @@ -0,0 +1,67 @@ +@import url('https://fonts.googleapis.com/css?family=Lato'); +*, *::before, *::after { + box-sizing: border-box; +} + +html { + font-size: 20px; + background-color: #2B83B3; +} + +body, html { + font-family: "Lato"; + color: #FFFFFF; + margin: 0; + padding: 0; + height: 100%; + min-width: 770px; + align-items: center; +} + +.title { + text-align: center; +} + +.intro { + padding-left: 220px; + padding-right: 220px; + justify-content: center; +} + +a { + text-decoration: none; + font-weight: bold; + color: #2BCF4C; + justify-content: center; +} + +.piano { + display: flex; + } + + .key { + height: calc(var(--width) * 4); + width: var(--width); + } + + .white { + --width: 100px; + background-color: white; + border: 1px solid #333; + } + + .white.active { + background-color: #CCC; + } + + .black { + --width: 60px; + background-color: black; + margin-left: calc(var(--width) / -2); + margin-right: calc(var(--width) / -2); + z-index: 2; + } + + .black.active { + background-color: #333; + } \ No newline at end of file From 18d4a096c64e53ce77330c077f33c12abbeabfb1 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 16:16:08 -0400 Subject: [PATCH 11/31] fixed json settings to new code --- index.html | 20 +++++++---- scripts.js | 102 +++++++++++++++++++++++++++++++++++++++++++++++++---- server.js | 10 +++--- 3 files changed, 115 insertions(+), 17 deletions(-) diff --git a/index.html b/index.html index 0973847d..82ea86d9 100644 --- a/index.html +++ b/index.html @@ -57,6 +57,12 @@

Welcome to Assignment 4

+ Volume: + + +
+
+ Waveform:
- - Volume: - - -

Pass Filter Type: @@ -79,13 +80,20 @@

Welcome to Assignment 4


- +
Filter Frequency:
+
+
+
+ + + +
\ No newline at end of file diff --git a/scripts.js b/scripts.js index 002da2fa..cd0f72ab 100644 --- a/scripts.js +++ b/scripts.js @@ -1,6 +1,7 @@ //key press buttons for UI keyboard const WHITE_KEYS = ['z', 'x', 'c', 'v', 'b', 'n', 'm', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i'] const BLACK_KEYS = ['s', 'd', 'g', 'h', 'j', '2', '3', '5', '6', '7'] +let waveform; const keys = document.querySelectorAll('.key'); const whiteKeys = document.querySelectorAll('.key.white'); @@ -69,14 +70,13 @@ function initializeAudio() { //Process volume and filter const volume = audioCtx.createGain(); const filter = audioCtx.createBiquadFilter(); + const activeOscillators = {}; //default waveform - let waveform = 'sine' + waveform = 'sine' - //OBJECT FOR STORING ACTIVE NOTES - const activeOscillators = {}; - //KEYCODE TO MUSICAL FREQUENCY CONVERSION + //Keycode to musical frequency hashmap const keyboardFrequencyMap = { '90': 130.81, //Z - note: C3 '83': 138.59, //S - C3# @@ -105,7 +105,6 @@ function initializeAudio() { '73': 523.25, //I - C5 } - //CONNECTIONS volume.connect(filter); filter.connect(audioCtx.destination); @@ -166,9 +165,100 @@ function initializeAudio() { } }; +//gets default settings from server +const reset = function (e) { + //prevent default form action from being carried out + // e.preventDefault(); + + fetch('/reset', { + method: 'GET' + }) + .then(function (res) { + //response + res.json().then(function (data) { + //data + console.log("Submit Response:", res); + console.log("Returned data: ", data); + + setSettings(data); + }) + }) + + return false; + } + + //gets last saved settings from server + const load = function (e) { + //prevent default form action from being carried out + e.preventDefault(); + + fetch('/load', { + method: 'GET' + }) + .then(function (res) { + //response + res.json().then(function (data) { + //data + console.log("Submit Response:", res); + console.log("Returned data: ", data); + + setSettings(data); + }) + }) + + return false; + } + + // const freqLevelRange = document.getElementById('freqLevelRange'); + // const freqLevelNumber = document.getElementById('freqLevelNumber'); + //posts current settings to server + const save = function (e) { + //prevent default form action from being carried out + e.preventDefault(); + + if (document.getElementById('volLevelNumber').value > 100) { + alert("Volume cannot be that high"); + document.getElementById('volLevelNumber').value = 100; + document.getElementById('volLevelRange').value = 100; + } + + const userSettings = { + volume: document.getElementById('volLevelNumber').value, + waveform: document.getElementById('waveform').value, + passtype: document.getElementById('passType').value, + frequency: document.getElementById('freqLevelNumber').value + } + console.log("User settings: " + userSettings) + + fetch('/save', { + method: 'POST', + body: JSON.stringify(userSettings), + headers: { + "Content-Type": "application/json" + } + }) + .then(function (res) { + //response + res.json().then(function (data) { + //data + console.log("Submit Response:", res); + console.log("Returned data: ", data); + alert('Settings saved!'); + }) + }) + + return false; + } + //run functions on window load window.onload = function () { initializeAudio(); - + //initialize buttons + const savebtn = document.getElementById('savebtn'); + savebtn.onclick = save; + const loadbtn = document.getElementById('loadbtn'); + loadbtn.onclick = load; + const resetbtn = document.getElementById('resetbtn'); + resetbtn.onclick = reset; console.log("Loaded!"); } \ No newline at end of file diff --git a/server.js b/server.js index 036213ac..8c2f587f 100644 --- a/server.js +++ b/server.js @@ -8,8 +8,8 @@ app.use(express.static('./')); app.use(bodyParser.urlencoded({extended: true})); //simple server for storing settings and defaults -let settings = { volume: 50, frequency: 262, octaves: 1, piano: true } -const default_settings = { volume: 50, frequency: 262, octaves: 1, piano: true } +let settings = { volume: 0.5, waveform: "sine", passtype: "Lowpass", frequency: 1000.0 } +const default_settings = { volume: 0.5, waveform: "sine", passtype: "Lowpass", frequency: 1000.0 } @@ -42,9 +42,9 @@ app.post("/save", bodyParser.json(), (req, res) => { settings = { volume: req.body.volume, - frequency: req.body.frequency, - octaves: req.body.octaves, - piano: req.body.piano + waveform: req.body.waveform, + passtype: req.body.passtype, + frequency: req.body.frequency } console.log("These settings saved: " + JSON.stringify(settings)); From 6e7e58580d8c9c2dce5dda3c8812cf0d7dbdf77a Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 16:19:03 -0400 Subject: [PATCH 12/31] created setSettings function --- scripts.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scripts.js b/scripts.js index cd0f72ab..c25fe1ba 100644 --- a/scripts.js +++ b/scripts.js @@ -209,6 +209,21 @@ const reset = function (e) { return false; } +//builds Piano page with server settings +function setSettings(settings) { + + //set data values from settings + document.getElementById('volLevelNumber').value = settings.volume; + document.getElementById('volLevelRange').value = settings.volume; + document.getElementById('waveform').value = settings.waveform; + document.getElementById('passType').value = settings.passType; + document.getElementById('freqLevelNumber').value = settings.frequency; + document.getElementById('freqLevelRange').value = settings.frequency; + + + console.log("Settings applied!"); + } + // const freqLevelRange = document.getElementById('freqLevelRange'); // const freqLevelNumber = document.getElementById('freqLevelNumber'); //posts current settings to server From d6e19dd4964d9495d765b406847161dbcd33b085 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 16:40:26 -0400 Subject: [PATCH 13/31] fixed number and range bug --- README.md | 3 + index.html | 4 +- scripts.js | 177 +++++++++++++++++++++++++++-------------------------- server.js | 4 +- 4 files changed, 98 insertions(+), 90 deletions(-) diff --git a/README.md b/README.md index b61d3e2b..67b6832a 100644 --- a/README.md +++ b/README.md @@ -57,3 +57,6 @@ Include a very brief summary of your project here. Images are encouraged when ne - the goal of the application - challenges you faced in realizing the application - the instructions you present in the website should be clear enough to use the application, but if you feel any need to provide additional instructions please do so here. + + +Bug: Volume goes to maximum after defaulted \ No newline at end of file diff --git a/index.html b/index.html index 82ea86d9..86562de8 100644 --- a/index.html +++ b/index.html @@ -59,7 +59,7 @@

Welcome to Assignment 4

Volume: - +

@@ -86,7 +86,7 @@

Welcome to Assignment 4



- +
diff --git a/scripts.js b/scripts.js index c25fe1ba..f9583164 100644 --- a/scripts.js +++ b/scripts.js @@ -1,7 +1,9 @@ //key press buttons for UI keyboard const WHITE_KEYS = ['z', 'x', 'c', 'v', 'b', 'n', 'm', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i'] const BLACK_KEYS = ['s', 'd', 'g', 'h', 'j', '2', '3', '5', '6', '7'] -let waveform; + +//default waveform, this is to remove undefined warning +let waveform = 'sine'; const keys = document.querySelectorAll('.key'); const whiteKeys = document.querySelectorAll('.key.white'); @@ -72,10 +74,6 @@ function initializeAudio() { const filter = audioCtx.createBiquadFilter(); const activeOscillators = {}; - //default waveform - waveform = 'sine' - - //Keycode to musical frequency hashmap const keyboardFrequencyMap = { '90': 130.81, //Z - note: C3 @@ -108,11 +106,15 @@ function initializeAudio() { volume.connect(filter); filter.connect(audioCtx.destination); - //Listens for changes to the volume - const volumeControl = document.getElementById('volLevelRange') - volumeControl.addEventListener('change', function (event) { - volume.gain.setValueAtTime(event.target.value, audioCtx.currentTime) + //Listens for changes to the volume on range and number + const volumeRangeControl = document.getElementById('volLevelRange') + const volumeNumControl = document.getElementById('volLevelNumber'); + volumeRangeControl.addEventListener('change', function(e) { + volume.gain.setValueAtTime(e.target.value, audioCtx.currentTime) }); + volumeNumControl.addEventListener('change', function(e) { + volume.gain.setValueAtTime(e.target.value, audioCtx.currentTime); + }) //Listens for changes to the waveform const waveformControl = document.getElementById('waveform') @@ -127,11 +129,15 @@ function initializeAudio() { filter.type = event.target.value }); - //Listens for change in frequency - const frequencyLevelControl = document.getElementById('freqLevelRange') - frequencyLevelControl.addEventListener('change', function (event) { - filter.frequency.setValueAtTime(event.target.value, audioCtx.currentTime) + //Listens for change in frequency on range and number + const frequencyRangeControl = document.getElementById('freqLevelRange') + const frequencyNumControl = document.getElementById('freqLevelNumber'); + frequencyRangeControl.addEventListener('change', function(e) { + filter.frequency.setValueAtTime(e.target.value, audioCtx.currentTime) }); + frequencyNumControl.addEventListener('change', function(e) { + filter.frequency.setValueAtTime(e.target.value, audioCtx.currentTime); + }) //Listen for keypresses to play notes window.addEventListener('keydown', keyDown, false); @@ -169,101 +175,100 @@ function initializeAudio() { const reset = function (e) { //prevent default form action from being carried out // e.preventDefault(); - + fetch('/reset', { - method: 'GET' + method: 'GET' }) - .then(function (res) { - //response - res.json().then(function (data) { - //data - console.log("Submit Response:", res); - console.log("Returned data: ", data); - - setSettings(data); + .then(function (res) { + //response + res.json().then(function (data) { + //data + console.log("Submit Response:", res); + console.log("Returned data: ", data); + + setSettings(data); + }) }) - }) - + return false; - } - - //gets last saved settings from server - const load = function (e) { +} + +//gets last saved settings from server +const load = function (e) { //prevent default form action from being carried out e.preventDefault(); - + fetch('/load', { - method: 'GET' + method: 'GET' }) - .then(function (res) { - //response - res.json().then(function (data) { - //data - console.log("Submit Response:", res); - console.log("Returned data: ", data); - - setSettings(data); + .then(function (res) { + //response + res.json().then(function (data) { + //data + console.log("Submit Response:", res); + console.log("Returned data: ", data); + + setSettings(data); + }) }) - }) - - return false; - } - -//builds Piano page with server settings -function setSettings(settings) { - //set data values from settings - document.getElementById('volLevelNumber').value = settings.volume; - document.getElementById('volLevelRange').value = settings.volume; - document.getElementById('waveform').value = settings.waveform; - document.getElementById('passType').value = settings.passType; - document.getElementById('freqLevelNumber').value = settings.frequency; - document.getElementById('freqLevelRange').value = settings.frequency; - - - console.log("Settings applied!"); - } + return false; +} - // const freqLevelRange = document.getElementById('freqLevelRange'); - // const freqLevelNumber = document.getElementById('freqLevelNumber'); - //posts current settings to server - const save = function (e) { +//posts current settings to server +const save = function (e) { //prevent default form action from being carried out e.preventDefault(); - + if (document.getElementById('volLevelNumber').value > 100) { - alert("Volume cannot be that high"); - document.getElementById('volLevelNumber').value = 100; - document.getElementById('volLevelRange').value = 100; + alert("Volume cannot be that high"); + document.getElementById('volLevelNumber').value = 100; + document.getElementById('volLevelRange').value = 100; } - + const userSettings = { - volume: document.getElementById('volLevelNumber').value, - waveform: document.getElementById('waveform').value, - passtype: document.getElementById('passType').value, - frequency: document.getElementById('freqLevelNumber').value + volume: document.getElementById('volLevelNumber').value, + waveform: document.getElementById('waveform').value, + passtype: document.getElementById('passType').value, + frequency: document.getElementById('freqLevelNumber').value } console.log("User settings: " + userSettings) - + fetch('/save', { - method: 'POST', - body: JSON.stringify(userSettings), - headers: { - "Content-Type": "application/json" - } + method: 'POST', + body: JSON.stringify(userSettings), + headers: { + "Content-Type": "application/json" + } }) - .then(function (res) { - //response - res.json().then(function (data) { - //data - console.log("Submit Response:", res); - console.log("Returned data: ", data); - alert('Settings saved!'); + .then(function (res) { + //response + res.json().then(function (data) { + //data + console.log("Submit Response:", res); + console.log("Returned data: ", data); + alert('Settings saved!'); + }) }) - }) - + return false; - } +} + +//builds Piano page with server settings +function setSettings(settings) { + + //set data values from settings + document.getElementById('volLevelNumber').value = settings.volume; + document.getElementById('volLevelRange').value = settings.volume; + document.getElementById('waveform').value = settings.waveform; + document.getElementById('passType').value = settings.passtype; + document.getElementById('freqLevelNumber').value = settings.frequency; + document.getElementById('freqLevelRange').value = settings.frequency; + // initializeAudio(); + + + console.log("Settings applied!"); +} //run functions on window load window.onload = function () { diff --git a/server.js b/server.js index 8c2f587f..9b3fc18c 100644 --- a/server.js +++ b/server.js @@ -8,8 +8,8 @@ app.use(express.static('./')); app.use(bodyParser.urlencoded({extended: true})); //simple server for storing settings and defaults -let settings = { volume: 0.5, waveform: "sine", passtype: "Lowpass", frequency: 1000.0 } -const default_settings = { volume: 0.5, waveform: "sine", passtype: "Lowpass", frequency: 1000.0 } +let settings = { volume: 0.5, waveform: "sine", passtype: "lowpass", frequency: 1000 } +const default_settings = { volume: 0.5, waveform: "sine", passtype: "lowpass", frequency: 1000 } From 81ea8cbe926da8fb56a36f1351d16f0fdcfdd608 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 16:57:37 -0400 Subject: [PATCH 14/31] buttons now set and apply settings as anticipated --- scripts.js | 223 ++++++++++++++++++++++++++++------------------------- 1 file changed, 117 insertions(+), 106 deletions(-) diff --git a/scripts.js b/scripts.js index f9583164..40affdb9 100644 --- a/scripts.js +++ b/scripts.js @@ -5,29 +5,34 @@ const BLACK_KEYS = ['s', 'd', 'g', 'h', 'j', '2', '3', '5', '6', '7'] //default waveform, this is to remove undefined warning let waveform = 'sine'; +//Web Audio API utilization +const audioCtx = new (window.AudioContext || window.webkitAudioContext)(); + +//Process volume and filter +const volume = audioCtx.createGain(); +const filter = audioCtx.createBiquadFilter(); +const activeOscillators = {}; + const keys = document.querySelectorAll('.key'); const whiteKeys = document.querySelectorAll('.key.white'); const blackKeys = document.querySelectorAll('.key.black'); +//sync range and number const freqLevelRange = document.getElementById('freqLevelRange'); const freqLevelNumber = document.getElementById('freqLevelNumber'); - freqLevelRange.addEventListener('input', syncFreqAmount) freqLevelNumber.addEventListener('input', syncFreqAmount) - function syncFreqAmount(e) { const val = e.target.value freqLevelRange.value = val; freqLevelNumber.value = val; } +//syncs volume range with volume number const volLevelRange = document.getElementById('volLevelRange'); const volLevelNumber = document.getElementById('volLevelNumber'); - volLevelRange.addEventListener('input', syncVolAmount) volLevelNumber.addEventListener('input', syncVolAmount) - -//syncs volume range with volume number function syncVolAmount(e) { const val = e.target.value volLevelRange.value = val; @@ -64,112 +69,107 @@ document.addEventListener('keyup', e => { //Initialize audio on window load to avoid null pointers -function initializeAudio() { - - //Web Audio API utilization - const audioCtx = new (window.AudioContext || window.webkitAudioContext)(); - - //Process volume and filter - const volume = audioCtx.createGain(); - const filter = audioCtx.createBiquadFilter(); - const activeOscillators = {}; - - //Keycode to musical frequency hashmap - const keyboardFrequencyMap = { - '90': 130.81, //Z - note: C3 - '83': 138.59, //S - C3# - '88': 146.83, //X - D3 - '68': 155.56, //D - D3# - '67': 164.81, //C - E3 - '86': 174.61, //V - F3 - '71': 185.00, //G - F3# - '66': 196.00, //B - G3 - '72': 207.65, //H - G3# - '78': 220.00, //N - A3 - '74': 233.08, //J - A3# - '77': 246.94, //M - B3 - '81': 261.63, //Q - C4 - '50': 277.18, //2 - C4# - '87': 293.66, //W - D4 - '51': 311.13, //3 - D4# - '69': 329.63, //E - E4 - '82': 349.23, //R - F4 - '53': 369.99, //5 - F4# - '84': 392.00, //T - G4 - '54': 415.30, //6 - G4# - '89': 440.00, //Y - A4 - '55': 466.16, //7 - A4# - '85': 493.88, //U - B4 - '73': 523.25, //I - C5 - } +// function initializeAudio() { + +//Keycode to musical frequency hashmap +const keyboardFrequencyMap = { + '90': 130.81, //Z - note: C3 + '83': 138.59, //S - C3# + '88': 146.83, //X - D3 + '68': 155.56, //D - D3# + '67': 164.81, //C - E3 + '86': 174.61, //V - F3 + '71': 185.00, //G - F3# + '66': 196.00, //B - G3 + '72': 207.65, //H - G3# + '78': 220.00, //N - A3 + '74': 233.08, //J - A3# + '77': 246.94, //M - B3 + '81': 261.63, //Q - C4 + '50': 277.18, //2 - C4# + '87': 293.66, //W - D4 + '51': 311.13, //3 - D4# + '69': 329.63, //E - E4 + '82': 349.23, //R - F4 + '53': 369.99, //5 - F4# + '84': 392.00, //T - G4 + '54': 415.30, //6 - G4# + '89': 440.00, //Y - A4 + '55': 466.16, //7 - A4# + '85': 493.88, //U - B4 + '73': 523.25, //I - C5 +} - volume.connect(filter); - filter.connect(audioCtx.destination); - - //Listens for changes to the volume on range and number - const volumeRangeControl = document.getElementById('volLevelRange') - const volumeNumControl = document.getElementById('volLevelNumber'); - volumeRangeControl.addEventListener('change', function(e) { - volume.gain.setValueAtTime(e.target.value, audioCtx.currentTime) - }); - volumeNumControl.addEventListener('change', function(e) { - volume.gain.setValueAtTime(e.target.value, audioCtx.currentTime); - }) +volume.connect(filter); +filter.connect(audioCtx.destination); - //Listens for changes to the waveform - const waveformControl = document.getElementById('waveform') - waveformControl.addEventListener('change', function (event) { - waveform = event.target.value - }); - - - //Listens for change in pass type - const passTypeControl = document.getElementById('passType') - passTypeControl.addEventListener('change', function (event) { - filter.type = event.target.value - }); - - //Listens for change in frequency on range and number - const frequencyRangeControl = document.getElementById('freqLevelRange') - const frequencyNumControl = document.getElementById('freqLevelNumber'); - frequencyRangeControl.addEventListener('change', function(e) { - filter.frequency.setValueAtTime(e.target.value, audioCtx.currentTime) - }); - frequencyNumControl.addEventListener('change', function(e) { - filter.frequency.setValueAtTime(e.target.value, audioCtx.currentTime); - }) +//Listens for changes to the volume on range and number +const volumeRangeControl = document.getElementById('volLevelRange') +const volumeNumControl = document.getElementById('volLevelNumber'); +volumeRangeControl.addEventListener('change', function (e) { + volume.gain.setValueAtTime(e.target.value, audioCtx.currentTime) +}); +volumeNumControl.addEventListener('change', function (e) { + volume.gain.setValueAtTime(e.target.value, audioCtx.currentTime); +}) + +//Listens for changes to the waveform +const waveformControl = document.getElementById('waveform') +waveformControl.addEventListener('change', function (event) { + waveform = event.target.value +}); - //Listen for keypresses to play notes - window.addEventListener('keydown', keyDown, false); - window.addEventListener('keyup', keyUp, false); - //When key is pressed, if it's the right key and key is not pressed, play note - function keyDown(event) { - const key = (event.detail || event.which).toString(); - if (keyboardFrequencyMap[key] && !activeOscillators[key]) { - playNote(key); - } - } +//Listens for change in pass type +const passTypeControl = document.getElementById('passType') +passTypeControl.addEventListener('change', function (event) { + filter.type = event.target.value +}); - //When key is released, delete key's oscillator - function keyUp(event) { - const key = (event.detail || event.which).toString(); - if (keyboardFrequencyMap[key] && activeOscillators[key]) { - activeOscillators[key].stop(); - delete activeOscillators[key]; - } +//Listens for change in frequency on range and number +const frequencyRangeControl = document.getElementById('freqLevelRange') +const frequencyNumControl = document.getElementById('freqLevelNumber'); +frequencyRangeControl.addEventListener('change', function (e) { + filter.frequency.setValueAtTime(e.target.value, audioCtx.currentTime) +}); +frequencyNumControl.addEventListener('change', function (e) { + filter.frequency.setValueAtTime(e.target.value, audioCtx.currentTime); +}) + +//Listen for keypresses to play notes +window.addEventListener('keydown', keyDown, false); +window.addEventListener('keyup', keyUp, false); + +//When key is pressed, if it's the right key and key is not pressed, play note +function keyDown(event) { + const key = (event.detail || event.which).toString(); + if (keyboardFrequencyMap[key] && !activeOscillators[key]) { + playNote(key); } +} - //Creates an oscillation for a specific key - function playNote(key) { - const osc = audioCtx.createOscillator(); - osc.frequency.setValueAtTime(keyboardFrequencyMap[key], audioCtx.currentTime) - osc.type = waveform - activeOscillators[key] = osc - activeOscillators[key].connect(volume) - activeOscillators[key].start(); +//When key is released, delete key's oscillator +function keyUp(event) { + const key = (event.detail || event.which).toString(); + if (keyboardFrequencyMap[key] && activeOscillators[key]) { + activeOscillators[key].stop(); + delete activeOscillators[key]; } -}; +} + +//Creates an oscillation for a specific key +function playNote(key) { + const osc = audioCtx.createOscillator(); + osc.frequency.setValueAtTime(keyboardFrequencyMap[key], audioCtx.currentTime) + osc.type = waveform + activeOscillators[key] = osc + activeOscillators[key].connect(volume) + activeOscillators[key].start(); +} +// }; + + +//Get and post methods: //gets default settings from server const reset = function (e) { @@ -254,7 +254,9 @@ const save = function (e) { return false; } -//builds Piano page with server settings + + +//sets html values to server settings function setSettings(settings) { //set data values from settings @@ -264,15 +266,24 @@ function setSettings(settings) { document.getElementById('passType').value = settings.passtype; document.getElementById('freqLevelNumber').value = settings.frequency; document.getElementById('freqLevelRange').value = settings.frequency; - // initializeAudio(); + //updates sound settings with html settings + applySettings(settings); console.log("Settings applied!"); } +//helper function for dealing with 4 parts of json +function applySettings(settings) { + volume.gain.setValueAtTime(settings.volume, audioCtx.currentTime); + waveform = settings.waveform; + filter.type = settings.passtype; + filter.frequency.setValueAtTime(settings.frequency, audioCtx.currentTime); +} + //run functions on window load window.onload = function () { - initializeAudio(); + // initializeAudio(); //initialize buttons const savebtn = document.getElementById('savebtn'); savebtn.onclick = save; From 82fe8e8adb287371a2db637ac2751abfa4412fc8 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 17:00:37 -0400 Subject: [PATCH 15/31] Sectioned code with comments --- scripts.js | 73 ++++++++++++++++++++++++------------------------------ 1 file changed, 32 insertions(+), 41 deletions(-) diff --git a/scripts.js b/scripts.js index 40affdb9..65ae2dca 100644 --- a/scripts.js +++ b/scripts.js @@ -1,6 +1,34 @@ //key press buttons for UI keyboard const WHITE_KEYS = ['z', 'x', 'c', 'v', 'b', 'n', 'm', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i'] const BLACK_KEYS = ['s', 'd', 'g', 'h', 'j', '2', '3', '5', '6', '7'] +//Keycode to musical frequency hashmap +const keyboardFrequencyMap = { + '90': 130.81, //Z - note: C3 + '83': 138.59, //S - C3# + '88': 146.83, //X - D3 + '68': 155.56, //D - D3# + '67': 164.81, //C - E3 + '86': 174.61, //V - F3 + '71': 185.00, //G - F3# + '66': 196.00, //B - G3 + '72': 207.65, //H - G3# + '78': 220.00, //N - A3 + '74': 233.08, //J - A3# + '77': 246.94, //M - B3 + '81': 261.63, //Q - C4 + '50': 277.18, //2 - C4# + '87': 293.66, //W - D4 + '51': 311.13, //3 - D4# + '69': 329.63, //E - E4 + '82': 349.23, //R - F4 + '53': 369.99, //5 - F4# + '84': 392.00, //T - G4 + '54': 415.30, //6 - G4# + '89': 440.00, //Y - A4 + '55': 466.16, //7 - A4# + '85': 493.88, //U - B4 + '73': 523.25, //I - C5 +} //default waveform, this is to remove undefined warning let waveform = 'sine'; @@ -66,40 +94,7 @@ document.addEventListener('keyup', e => { blackKeys[blackKeyIndex].classList.remove('active'); }); - - -//Initialize audio on window load to avoid null pointers -// function initializeAudio() { - -//Keycode to musical frequency hashmap -const keyboardFrequencyMap = { - '90': 130.81, //Z - note: C3 - '83': 138.59, //S - C3# - '88': 146.83, //X - D3 - '68': 155.56, //D - D3# - '67': 164.81, //C - E3 - '86': 174.61, //V - F3 - '71': 185.00, //G - F3# - '66': 196.00, //B - G3 - '72': 207.65, //H - G3# - '78': 220.00, //N - A3 - '74': 233.08, //J - A3# - '77': 246.94, //M - B3 - '81': 261.63, //Q - C4 - '50': 277.18, //2 - C4# - '87': 293.66, //W - D4 - '51': 311.13, //3 - D4# - '69': 329.63, //E - E4 - '82': 349.23, //R - F4 - '53': 369.99, //5 - F4# - '84': 392.00, //T - G4 - '54': 415.30, //6 - G4# - '89': 440.00, //Y - A4 - '55': 466.16, //7 - A4# - '85': 493.88, //U - B4 - '73': 523.25, //I - C5 -} - +//____________________________________WEB_AUDIO_API_CONTROLLING____________________________________ volume.connect(filter); filter.connect(audioCtx.destination); @@ -111,7 +106,7 @@ volumeRangeControl.addEventListener('change', function (e) { }); volumeNumControl.addEventListener('change', function (e) { volume.gain.setValueAtTime(e.target.value, audioCtx.currentTime); -}) +}); //Listens for changes to the waveform const waveformControl = document.getElementById('waveform') @@ -119,7 +114,6 @@ waveformControl.addEventListener('change', function (event) { waveform = event.target.value }); - //Listens for change in pass type const passTypeControl = document.getElementById('passType') passTypeControl.addEventListener('change', function (event) { @@ -166,11 +160,10 @@ function playNote(key) { activeOscillators[key].connect(volume) activeOscillators[key].start(); } -// }; -//Get and post methods: +//____________________________________GET AND POST METHODS____________________________________ //gets default settings from server const reset = function (e) { //prevent default form action from being carried out @@ -255,7 +248,7 @@ const save = function (e) { } - +//____________________________________APPLY_AND_CHANGE_SETTINGS____________________________________ //sets html values to server settings function setSettings(settings) { @@ -269,7 +262,6 @@ function setSettings(settings) { //updates sound settings with html settings applySettings(settings); - console.log("Settings applied!"); } @@ -283,7 +275,6 @@ function applySettings(settings) { //run functions on window load window.onload = function () { - // initializeAudio(); //initialize buttons const savebtn = document.getElementById('savebtn'); savebtn.onclick = save; From 66178b739f9886f1b27f85c3ccad7449b6405e90 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 17:57:25 -0400 Subject: [PATCH 16/31] Modal works, everything besides Piano centered --- index.html | 25 ++++++++++++------ scripts.js | 38 ++++++++++++++++++++++++++++ server.js | 7 +++--- style.css | 74 ++++++++++++++++++++++++++++++++++++++++++++++++------ 4 files changed, 125 insertions(+), 19 deletions(-) diff --git a/index.html b/index.html index 86562de8..3a6bfcf8 100644 --- a/index.html +++ b/index.html @@ -10,17 +10,23 @@ -

Welcome to Assignment 4

-

- Welcome to [Piano App]! Here you can mess around on the Piano and play to your heart's content. You can control the - Frequency(pitch), Volume, Number of Octaves, and toggle Piano sounds below. Don't worry if you edit too much as you - can always reset the application to default with the reset button. Have fun! -

+

Virtual Piano

+ +
+
@@ -53,9 +59,11 @@

Welcome to Assignment 4

-
+
+ +
Volume: @@ -94,6 +102,9 @@

Welcome to Assignment 4

+
+ + \ No newline at end of file diff --git a/scripts.js b/scripts.js index 65ae2dca..841a9706 100644 --- a/scripts.js +++ b/scripts.js @@ -246,7 +246,45 @@ const save = function (e) { return false; } +//____________________________________POPUP_MODAL____________________________________ +const openModalButtons = document.querySelectorAll('[data-modal-target]'); +const closeModalButtons = document.querySelectorAll('[data-close-button]'); +const overlay = document.getElementById("overlay"); + +openModalButtons.forEach(button => { + button.addEventListener('click', () => { + const modal = document.querySelector(button.dataset.modalTarget) + openModal(modal) + }) +}) + +overlay.addEventListener('click', () => { + const modals = document.querySelectorAll('.modal.active'); + modals.forEach(modal => { + closeModal(modal); + }) +}) + +closeModalButtons.forEach(button => { + button.addEventListener('click', () => { + const modal = button.closest('.modal'); + closeModal(modal) + }) +}) + + +function openModal(modal) { + if (modal == null) return; + modal.classList.add('active'); + overlay.classList.add('active'); +} + +function closeModal(modal) { + if (modal == null) return; + modal.classList.remove('active'); + overlay.classList.remove('active'); +} //____________________________________APPLY_AND_CHANGE_SETTINGS____________________________________ //sets html values to server settings diff --git a/server.js b/server.js index 9b3fc18c..3cfbcb36 100644 --- a/server.js +++ b/server.js @@ -21,10 +21,9 @@ app.get('/', (req, res) => { //get default settings app.get("/reset", (req, res) => { console.log("Loading defaults: " + JSON.stringify(default_settings)); - settings = default_settings; - res.json(default_settings); console.log("Defaulted!"); + res.end(); }) //get server settings @@ -33,6 +32,7 @@ app.get("/load", (req, res) => { res.json(settings); console.log("Loaded!"); + res.end(); }) //post to update server settings @@ -48,10 +48,9 @@ app.post("/save", bodyParser.json(), (req, res) => { } console.log("These settings saved: " + JSON.stringify(settings)); - //console.log("After change: " + JSON.stringify(settings)); console.log("Saved!"); // res.writeHead(200, "OK", {'Content-Type': 'text/plain' }); - // res.end(); + res.end(); }) //listen to port diff --git a/style.css b/style.css index 19a4ae48..ac2482bb 100644 --- a/style.css +++ b/style.css @@ -11,21 +11,77 @@ html { body, html { font-family: "Lato"; color: #FFFFFF; - margin: 0; - padding: 0; height: 100%; min-width: 770px; - align-items: center; + text-align: center; } .title { text-align: center; } -.intro { - padding-left: 220px; - padding-right: 220px; - justify-content: center; +.modal { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%) scale(0); + transition: 200ms ease-in-out; + border: 1px solid black; + border-radius: 5px; + z-index: 5; + background-color: white; + width: 500px; + max-width: 80%; + color: black; +} + +.modal.active{ + transform: translate(-50%, -50%) scale(1); +} + +.modal-header { + padding: 10px 15px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid black; +} + +.modal-header .modal-title { + font-size: 1.25rem; + font-weight: bold; +} + +.modal-header .close-button { + cursor: pointer; + border: none; + outline: none; + background: none; + font-size: 1.25rem; + font-weight: bold; + color: red; +} + +.modal-body { + padding: 10px 15px; + user-select: none; +} + +#overlay { + position: fixed; + opacity: 0; + transition: 200ms ease-in-out; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, .5); + pointer-events: none; +} + +#overlay.active { + opacity: 1; + pointer-events: all; } a { @@ -64,4 +120,6 @@ a { .black.active { background-color: #333; - } \ No newline at end of file + } + + \ No newline at end of file From 55ef440c87ffb236a9ce21a1e79520ce2a353243 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 18:23:02 -0400 Subject: [PATCH 17/31] Added some style and fixed piano positioning. --- scripts.js | 1 + style.css | 131 +++++++++++++++++++++++++++++++++++------------------ 2 files changed, 87 insertions(+), 45 deletions(-) diff --git a/scripts.js b/scripts.js index 841a9706..861ab27a 100644 --- a/scripts.js +++ b/scripts.js @@ -1,6 +1,7 @@ //key press buttons for UI keyboard const WHITE_KEYS = ['z', 'x', 'c', 'v', 'b', 'n', 'm', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i'] const BLACK_KEYS = ['s', 'd', 'g', 'h', 'j', '2', '3', '5', '6', '7'] + //Keycode to musical frequency hashmap const keyboardFrequencyMap = { '90': 130.81, //Z - note: C3 diff --git a/style.css b/style.css index ac2482bb..84bef32b 100644 --- a/style.css +++ b/style.css @@ -1,23 +1,23 @@ @import url('https://fonts.googleapis.com/css?family=Lato'); *, *::before, *::after { - box-sizing: border-box; + box-sizing: border-box; } html { - font-size: 20px; - background-color: #2B83B3; + font-size: 20px; + background-color: #2B83B3; } body, html { - font-family: "Lato"; - color: #FFFFFF; - height: 100%; - min-width: 770px; - text-align: center; + font-family: "Lato"; + color: #FFFFFF; + height: 100%; + min-width: 770px; + text-align: center; } .title { - text-align: center; + text-align: center; } .modal { @@ -35,7 +35,7 @@ body, html { color: black; } -.modal.active{ +.modal.active { transform: translate(-50%, -50%) scale(1); } @@ -85,41 +85,82 @@ body, html { } a { - text-decoration: none; - font-weight: bold; - color: #2BCF4C; - justify-content: center; + text-decoration: none; + font-weight: bold; + color: #2BCF4C; + justify-content: center; } .piano { - display: flex; - } - - .key { - height: calc(var(--width) * 4); - width: var(--width); - } - - .white { - --width: 100px; - background-color: white; - border: 1px solid #333; - } - - .white.active { - background-color: #CCC; - } - - .black { - --width: 60px; - background-color: black; - margin-left: calc(var(--width) / -2); - margin-right: calc(var(--width) / -2); - z-index: 2; - } - - .black.active { - background-color: #333; - } - - \ No newline at end of file + margin: 10px 90px; + min-width: 755px; + display: flex; + justify-content: center; + flex: 1; + min-height: 30vh; +} + +.key { + height: calc(var(--width) * 4); + width: var(--width); +} + +.white { + --width: 100px; + background-color: white; + border: 1px solid #333; +} + +.white.active { + background-color: #CCC; +} + +.black { + --width: 60px; + background-color: black; + margin-left: calc(var(--width) / -2); + margin-right: calc(var(--width) / -2); + z-index: 2; +} + +.black.active { + background-color: #333; +} + +/* This CSS is for styling range inputs which was taken and edited from css-tricks.com */ + +input[type=range] { + -webkit-appearance: none; + margin: 18px 0; + width: 15%; +} + +input[type=range]:focus { + outline: none; +} + +input[type=range]::-webkit-slider-runnable-track { + width: 100%; + height: 8.4px; + cursor: pointer; + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; + background: #2BCF4C; + border-radius: 1.3px; + border: 0.2px solid #010101; +} + +input[type=range]::-webkit-slider-thumb { + box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d; + border: 1px solid #000000; + height: 30px; + width: 16px; + border-radius: 3px; + background: #ffffff; + cursor: pointer; + -webkit-appearance: none; + margin-top: -14px; +} + +input[type=range]:focus::-webkit-slider-runnable-track { + background: #33F259; +} \ No newline at end of file From 701be566343e2bee049d478f34e709bc4c687984 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 18:34:00 -0400 Subject: [PATCH 18/31] Added keyboard keys to piano --- README.md | 6 +++++- index.html | 50 +++++++++++++++++++++++++------------------------- style.css | 4 ++++ 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 67b6832a..95319675 100644 --- a/README.md +++ b/README.md @@ -59,4 +59,8 @@ Include a very brief summary of your project here. Images are encouraged when ne - the instructions you present in the website should be clear enough to use the application, but if you feel any need to provide additional instructions please do so here. -Bug: Volume goes to maximum after defaulted \ No newline at end of file +Credits to: +Web Dev Simplified for Piano visual tutorial and modal tutorial +css-tricks.com for slider customization options +https://pages.mtu.edu/~suits/notefreqs.html for note frequencies +https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API for Web Audio API tutorial \ No newline at end of file diff --git a/index.html b/index.html index 3a6bfcf8..42d4eed3 100644 --- a/index.html +++ b/index.html @@ -30,35 +30,35 @@

Virtual Piano

-
-
-
-
-
-
-
-
-
-
-
-
+
Z
+
S
+
X
+
D
+
C
+
V
+
G
+
B
+
H
+
N
+
J
+
M
-
-
-
-
-
-
-
-
-
-
-
-
+
Q
+
2
+
W
+
3
+
E
+
R
+
5
+
T
+
6
+
Y
+
7
+
U
-
+
I

diff --git a/style.css b/style.css index 84bef32b..9876ecf0 100644 --- a/style.css +++ b/style.css @@ -109,6 +109,9 @@ a { --width: 100px; background-color: white; border: 1px solid #333; + color: black; + text-align: center; + align-items: center; } .white.active { @@ -118,6 +121,7 @@ a { .black { --width: 60px; background-color: black; + color: white; margin-left: calc(var(--width) / -2); margin-right: calc(var(--width) / -2); z-index: 2; From b030f738bd1e3966e28ac3090448947ec8751c40 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 18:36:42 -0400 Subject: [PATCH 19/31] added easteregg --- index.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/index.html b/index.html index 42d4eed3..3d334169 100644 --- a/index.html +++ b/index.html @@ -12,8 +12,7 @@

Virtual Piano

- +
diff --git a/style.css b/style.css index 9876ecf0..9a57ac96 100644 --- a/style.css +++ b/style.css @@ -57,7 +57,7 @@ body, html { border: none; outline: none; background: none; - font-size: 1.25rem; + font-size: 3rem; font-weight: bold; color: red; } From 91b5f123aea703501ab07eef22808c9d8498058c Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 19:07:03 -0400 Subject: [PATCH 21/31] added project link to github --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4229c2ed..cd0ee43c 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ For this assignment we will focus on client-side development using popular audio ## Virtual Piano using Web Audio API -[Link] +https://a4-jordan-stoessel.herokuapp.com/ The Virtual Piano app was made to allow a Piano to be played on a computer's physical keyboard. It makes use of Web Audio API as seen in https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API. Virtual Piano features a Piano interface which was created using Web Dev Simplified's HTML & CSS tutorial. Playing notes can be done by pressing the key on the note that you want to play. There are also user parameters that can be controlled such as a volume bar, filter frequency bar, waveforms, and pass filter types. The volume and frequency bars are synced with the numberal input next to it and vice versa; this was done using a sync function to read changes in input from either inputs. The user can also save their current settings, load their last saved settings, or reset their current settings to default. This was done by creating a simple server that holds the default settings of 0.5 volume, sine waveform, low-pass pass filter type, and a frequency of 1,000. The server utilizes express and the body-parser middleware for ease of use. There is a modal that can be opened and closed at will for those who are confused about using the app. This modal can be found after clicking the "Help!" button at the bottom of the application. From 456d96ad7dbdb84299741e8d6d4166a3fa5068de Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 19:08:41 -0400 Subject: [PATCH 22/31] fixed naming convention --- color pad.png => color_palette.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename color pad.png => color_palette.png (100%) diff --git a/color pad.png b/color_palette.png similarity index 100% rename from color pad.png rename to color_palette.png From 57b300c028c3a0258c84a684ecc22864d5e6abd7 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 19:08:53 -0400 Subject: [PATCH 23/31] added link to readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cd0ee43c..ed1e2ea2 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ https://a4-jordan-stoessel.herokuapp.com/ The Virtual Piano app was made to allow a Piano to be played on a computer's physical keyboard. It makes use of Web Audio API as seen in https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API. Virtual Piano features a Piano interface which was created using Web Dev Simplified's HTML & CSS tutorial. Playing notes can be done by pressing the key on the note that you want to play. There are also user parameters that can be controlled such as a volume bar, filter frequency bar, waveforms, and pass filter types. The volume and frequency bars are synced with the numberal input next to it and vice versa; this was done using a sync function to read changes in input from either inputs. The user can also save their current settings, load their last saved settings, or reset their current settings to default. This was done by creating a simple server that holds the default settings of 0.5 volume, sine waveform, low-pass pass filter type, and a frequency of 1,000. The server utilizes express and the body-parser middleware for ease of use. There is a modal that can be opened and closed at will for those who are confused about using the app. This modal can be found after clicking the "Help!" button at the bottom of the application. There were multiple challenges with creating this application. At first, I made use of .mp3 files to create and test the Piano while also trying to generate different amounts of octaves. This proved to be difficult as the Piano became unresponsive when generated with javascript into HTML. As such, I had to redo the project and salvage code while implementing the Web Audio API for the next attempt. Key presses and sound are disconnected, but synced to the same key presses. As such, pressing Z will both play the "C1" note while also making the lower C key highlighted. Adding and removing key presses proved to be difficult since it required a separate function to not give an error. Clicking was working for the broken code, but a click function would prove to be unecessary and also inefficient to add. The application makes use of Adobe's color palette which then led me to changing the sliders to stand out on the blue background. The color palette can be seen below. -![alt text](https://github.com/[username]/[reponame]/blob/[branch]/image.jpg?raw=true) +![Color Palette](https://github.com/jstoessel/a4-creative-coding/blob/master/color_palette.png?raw=true) Credits to: From 1309f4799af90eba89e7cc28b68c6ba89442ccf9 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 19:11:01 -0400 Subject: [PATCH 24/31] Added virtual_piano app png --- README.md | 3 ++- virtual_piano.PNG | Bin 0 -> 58383 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 virtual_piano.PNG diff --git a/README.md b/README.md index ed1e2ea2..fb7d704a 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,8 @@ For this assignment we will focus on client-side development using popular audio https://a4-jordan-stoessel.herokuapp.com/ -The Virtual Piano app was made to allow a Piano to be played on a computer's physical keyboard. It makes use of Web Audio API as seen in https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API. Virtual Piano features a Piano interface which was created using Web Dev Simplified's HTML & CSS tutorial. Playing notes can be done by pressing the key on the note that you want to play. There are also user parameters that can be controlled such as a volume bar, filter frequency bar, waveforms, and pass filter types. The volume and frequency bars are synced with the numberal input next to it and vice versa; this was done using a sync function to read changes in input from either inputs. The user can also save their current settings, load their last saved settings, or reset their current settings to default. This was done by creating a simple server that holds the default settings of 0.5 volume, sine waveform, low-pass pass filter type, and a frequency of 1,000. The server utilizes express and the body-parser middleware for ease of use. There is a modal that can be opened and closed at will for those who are confused about using the app. This modal can be found after clicking the "Help!" button at the bottom of the application. +The Virtual Piano app was made to allow a Piano to be played on a computer's physical keyboard. It makes use of Web Audio API as seen in https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API. Virtual Piano features a Piano interface which was created using Web Dev Simplified's HTML & CSS tutorial. Playing notes can be done by pressing the key on the note that you want to play. There are also user parameters that can be controlled such as a volume bar, filter frequency bar, waveforms, and pass filter types. The volume and frequency bars are synced with the numberal input next to it and vice versa; this was done using a sync function to read changes in input from either inputs. The user can also save their current settings, load their last saved settings, or reset their current settings to default. This was done by creating a simple server that holds the default settings of 0.5 volume, sine waveform, low-pass pass filter type, and a frequency of 1,000. The server utilizes express and the body-parser middleware for ease of use. There is a modal that can be opened and closed at will for those who are confused about using the app. This modal can be found after clicking the "Help!" button at the bottom of the application. The Virtual Piano app can be seen below. +![Virtual Piano](https://github.com/jstoessel/a4-creative-coding/blob/master/virtual_piano.png?raw=true) There were multiple challenges with creating this application. At first, I made use of .mp3 files to create and test the Piano while also trying to generate different amounts of octaves. This proved to be difficult as the Piano became unresponsive when generated with javascript into HTML. As such, I had to redo the project and salvage code while implementing the Web Audio API for the next attempt. Key presses and sound are disconnected, but synced to the same key presses. As such, pressing Z will both play the "C1" note while also making the lower C key highlighted. Adding and removing key presses proved to be difficult since it required a separate function to not give an error. Clicking was working for the broken code, but a click function would prove to be unecessary and also inefficient to add. The application makes use of Adobe's color palette which then led me to changing the sliders to stand out on the blue background. The color palette can be seen below. ![Color Palette](https://github.com/jstoessel/a4-creative-coding/blob/master/color_palette.png?raw=true) diff --git a/virtual_piano.PNG b/virtual_piano.PNG new file mode 100644 index 0000000000000000000000000000000000000000..52be0e99d79c19589fb809e173fad4ce852808af GIT binary patch literal 58383 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 literal 0 HcmV?d00001 From fe98c037871f5d1760689afb41020ac80aeac4dc Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 19:12:10 -0400 Subject: [PATCH 25/31] added capital PNG to file --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fb7d704a..eab36293 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ For this assignment we will focus on client-side development using popular audio https://a4-jordan-stoessel.herokuapp.com/ The Virtual Piano app was made to allow a Piano to be played on a computer's physical keyboard. It makes use of Web Audio API as seen in https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API. Virtual Piano features a Piano interface which was created using Web Dev Simplified's HTML & CSS tutorial. Playing notes can be done by pressing the key on the note that you want to play. There are also user parameters that can be controlled such as a volume bar, filter frequency bar, waveforms, and pass filter types. The volume and frequency bars are synced with the numberal input next to it and vice versa; this was done using a sync function to read changes in input from either inputs. The user can also save their current settings, load their last saved settings, or reset their current settings to default. This was done by creating a simple server that holds the default settings of 0.5 volume, sine waveform, low-pass pass filter type, and a frequency of 1,000. The server utilizes express and the body-parser middleware for ease of use. There is a modal that can be opened and closed at will for those who are confused about using the app. This modal can be found after clicking the "Help!" button at the bottom of the application. The Virtual Piano app can be seen below. -![Virtual Piano](https://github.com/jstoessel/a4-creative-coding/blob/master/virtual_piano.png?raw=true) +![Virtual Piano](https://github.com/jstoessel/a4-creative-coding/blob/master/virtual_piano.PNG?raw=true) There were multiple challenges with creating this application. At first, I made use of .mp3 files to create and test the Piano while also trying to generate different amounts of octaves. This proved to be difficult as the Piano became unresponsive when generated with javascript into HTML. As such, I had to redo the project and salvage code while implementing the Web Audio API for the next attempt. Key presses and sound are disconnected, but synced to the same key presses. As such, pressing Z will both play the "C1" note while also making the lower C key highlighted. Adding and removing key presses proved to be difficult since it required a separate function to not give an error. Clicking was working for the broken code, but a click function would prove to be unecessary and also inefficient to add. The application makes use of Adobe's color palette which then led me to changing the sliders to stand out on the blue background. The color palette can be seen below. ![Color Palette](https://github.com/jstoessel/a4-creative-coding/blob/master/color_palette.png?raw=true) From cb7aeb41622bc2b613dffc996b16e613228f7d17 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 11 Oct 2020 19:21:35 -0400 Subject: [PATCH 26/31] fixed html warnings --- index.html | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index f8a26e1c..29570e40 100644 --- a/index.html +++ b/index.html @@ -3,17 +3,16 @@ Virtual Piano with Audio API - + -

Virtual Piano

-
- +