From cbc23f8723df11dfd16f8e813cd570c7f7432609 Mon Sep 17 00:00:00 2001 From: nycki Date: Thu, 10 Jul 2025 15:26:45 -0700 Subject: [PATCH] v2 full release --- static/qrplay/index.html | 260 ++++++++++++++++++++++++++++---------- static/qrplay/index1.html | 101 +++++++++++++++ static/qrplay/min.html | 65 +++++++++- 3 files changed, 360 insertions(+), 66 deletions(-) create mode 100644 static/qrplay/index1.html diff --git a/static/qrplay/index.html b/static/qrplay/index.html index 0dda4b9..08b7869 100644 --- a/static/qrplay/index.html +++ b/static/qrplay/index.html @@ -2,6 +2,14 @@ qrplay + @@ -10,92 +18,214 @@

qrplay by nycki and SArpnt

a QR-code sized implementation of ZZT Play, which you may know from the ZZT Hall of Music.

-

I designed this because I wanted a program I could print on a business card, and SArpnt found some clever ways to shrink it even further. The version on this page is commented, the version in the QR code is minified.

+

I designed this because I wanted a program I could print on a business card, and SArpnt found some clever ways to shrink it even further. The source on this page is commented, the source in the QR code is minified.

paste ZZT music code in this box, then click the button to #play!

- -
+ +
+

qrplay v2c

+

+ G=new GainNode(A,{gain:z<7&&.5**(12-v/5)}), + O.connect(G), + G.connect(A.destination), + 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 + z<31?l=2**(z-25): + // change channel + z<32?( + T[Z]=t,L[Z]=l, + t=T[Z=E|0]||0,l=L[Z]||l, + c+=2 + ): + // change tempo + z<33?u=E+s[c+=2,c++]: + // change volume + z<34?(v=E,c+=2): + // set octave + (o=E-4,c+=2) +)z=`\n;-+.3cdefgabx012456789@jtsiqhwzuvo`.indexOf(C) +'>#play - - +

-
+

qr codes

- - - - - - - - - - -
qrplaySolfeggetio in C Minor
- - - -

+ + + +
+ qrplay v1: proof of concept. musical notes only. +
+

qrplay v1

+ +

+
+
+ +
+ song: Solfeggettio in C Minor +
+

+@i+ge!dc-ge!dh.c +

+ + + -

for security reasons, your phone probably won't open these as links. you'll have to copy and paste the text into your browser's uri input.

+
+ song: We Will Rock You +
+

+
+
+ +

command reference

+ +basic commands: + + + +extended commands: this stuff wasn't in ZZT! + + +not implemented: + \ No newline at end of file diff --git a/static/qrplay/index1.html b/static/qrplay/index1.html new file mode 100644 index 0000000..0dda4b9 --- /dev/null +++ b/static/qrplay/index1.html @@ -0,0 +1,101 @@ + + + + qrplay + + + + + +

qrplay by nycki and SArpnt

+

a QR-code sized implementation of ZZT Play, which you may know from the ZZT Hall of Music.

+ +

I designed this because I wanted a program I could print on a business card, and SArpnt found some clever ways to shrink it even further. The version on this page is commented, the version in the QR code is minified.

+ +

paste ZZT music code in this box, then click the button to #play!

+ + + +
+ + + + + + + +
+ + + + + + + + + + + +
qrplaySolfeggetio in C Minor
+ + + +
+ +

for security reasons, your phone probably won't open these as links. you'll have to copy and paste the text into your browser's uri input.

+ + + \ No newline at end of file diff --git a/static/qrplay/min.html b/static/qrplay/min.html index fcc4bdb..512244e 100644 --- a/static/qrplay/min.html +++ b/static/qrplay/min.html @@ -1 +1,64 @@ -
\ No newline at end of file + +
+

qrplay v2c

+

+