From dc3811b5d590308b325950327b1ed6da206733ea Mon Sep 17 00:00:00 2001 From: nycki Date: Thu, 10 Jul 2025 14:26:23 -0700 Subject: [PATCH] v2 --- static/qrplay/qrplay-v2-nupas-theme.png | Bin 0 -> 3081 bytes static/qrplay/v2c.html | 32 +++++++----- static/qrplay/v2c.min.html | 65 +++++++++++++++++++++++- 3 files changed, 82 insertions(+), 15 deletions(-) create mode 100644 static/qrplay/qrplay-v2-nupas-theme.png diff --git a/static/qrplay/qrplay-v2-nupas-theme.png b/static/qrplay/qrplay-v2-nupas-theme.png new file mode 100644 index 0000000000000000000000000000000000000000..2bce1190b42a9ce9fc4bafa43f65db4a3c5cbd02 GIT binary patch literal 3081 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 literal 0 HcmV?d00001 diff --git a/static/qrplay/v2c.html b/static/qrplay/v2c.html index 3973543..751cb03 100644 --- a/static/qrplay/v2c.html +++ b/static/qrplay/v2c.html @@ -37,8 +37,6 @@ T=[];L=[]; u=137; // volume. 40 is default, 35 is half, 30 is half again. v=40; -// percussion can be approximated as 1024th notes. -P=x=>(s=`z99${x}z${Z} o${o+4} x`+s.slice(c),c=0,T[99]=t,L[99]=2**-5); for( c=t=k=Z=0;D=s[c+1],E=D+s[c+2],C=s[c++]; // no match @@ -50,18 +48,8 @@ for( // dots and triplets z<5?l*=3/2: z<6?l/=3: - // percussion - C==`0`?P(`o07g`): - C==`1`?P(`o05b+c#deff#gg#aa#b+cc#d`): - C==`2`?P(`o06g++ddb--g++ddb--g++ddb--g++ddb`): - C==`4`?P(`o07g`): // todo - C==`5`?P(`o07g`): // todo - C==`6`?P(`o05a++c#-aae+e--a++c#-aae+e--a++c#`): - C==`7`?P(`o07g`): // todo - C==`8`?P(`o07g`): // todo - C==`9`?P(`o04a++c#-aae+e--a++c#-aae+e--a++c#`): // todo // note or rest - z<23?( + z<14?( z-=6, O=new OscillatorNode(A,{ type:`square`, @@ -73,6 +61,22 @@ for( O.start(t), O.stop(t+=7.5*l/u) ): + // percussion + z<23?( + // insert micronotes to match ZZTs drums. random numbers chosen in advance. + s=`z99o06${[ + "+g", + "-b+c#deff#gg#aa#b+cc#d", + "g++ddb--g++ddb--g++ddb--g++ddb", + , + "+ea-g--b++g++c#----b++g+cd#-g+cec", + "a#ga#g-a#+g-b+g", + "-a++c#-aae+e--a++c#-aae+e--a++c#", + "-fffeeed#d#dddc#c#c#", + "dddddedc#ded#fee", + "--ba#bb-a+a#-baaa+a#bb-a", + ][z-14]}z${Z} o${o+4} x`+s.slice(c),c=0,T[99]=t,L[99]=u/2**12 + ): // reset octave and duration z<24?(o=0,l=1): // set note length @@ -89,7 +93,7 @@ for( z<34?(v=E,c+=2): // set octave (o=E-4,c+=2) -)z=`\n;-+.3cdefgab012456789x@jtsiqhwzuvo`.indexOf(C) +)z=`\n;-+.3cdefgabx012456789@jtsiqhwzuvo`.indexOf(C) '>#play diff --git a/static/qrplay/v2c.min.html b/static/qrplay/v2c.min.html index f08afcb..029f776 100644 --- a/static/qrplay/v2c.min.html +++ b/static/qrplay/v2c.min.html @@ -1 +1,64 @@ -

qrplay v2c

\ No newline at end of file + +

+

qrplay v2c

+

+ \ No newline at end of file